diff options
Diffstat (limited to 'debian/patches/700002-Disable-disabling-the-irq-via-device_intr_enable.patch')
-rw-r--r-- | debian/patches/700002-Disable-disabling-the-irq-via-device_intr_enable.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/debian/patches/700002-Disable-disabling-the-irq-via-device_intr_enable.patch b/debian/patches/700002-Disable-disabling-the-irq-via-device_intr_enable.patch deleted file mode 100644 index d4a5ce1..0000000 --- a/debian/patches/700002-Disable-disabling-the-irq-via-device_intr_enable.patch +++ /dev/null @@ -1,92 +0,0 @@ -From f7c2f4ba69c3ae7df8fddcc2969e2c21e109dbd1 Mon Sep 17 00:00:00 2001 -From: Justus Winter <justus@gnupg.org> -Date: Thu, 25 Feb 2016 18:56:43 +0100 -Subject: [PATCH gnumach 02/10] Disable disabling the irq via - device_intr_enable - ---- - device/ds_routines.c | 9 ++++----- - device/intr.c | 3 ++- - include/mach/experimental.defs | 22 +++++++++++++++------- - 3 files changed, 21 insertions(+), 13 deletions(-) - -diff --git a/device/ds_routines.c b/device/ds_routines.c -index 4f6b345..9d399ee 100644 ---- a/device/ds_routines.c -+++ b/device/ds_routines.c -@@ -1844,11 +1844,10 @@ experimental_device_intr_enable(ipc_port_t master_port, int line, char status) - if (master_port != master_device_port) - return D_INVALID_OPERATION; - -- if (status) -- /* TODO: better name for generic-to-arch-specific call */ -- enable_irq (line); -- else -- disable_irq (line); -+ if (! status) -+ return D_INVALID_OPERATION; -+ -+ enable_irq (line); - return 0; - #endif /* MACH_XEN */ - } -diff --git a/device/intr.c b/device/intr.c -index 6fca328..02e0bab 100644 ---- a/device/intr.c -+++ b/device/intr.c -@@ -35,11 +35,12 @@ search_intr (int line, ipc_port_t dest) - return NULL; - } - -+void intr_thread (void); -+ - /* This function can only be used in the interrupt handler. */ - void - queue_intr (int line, ipc_port_t dest) - { -- extern void intr_thread (); - struct intr_entry *e; - - cli (); -diff --git a/include/mach/experimental.defs b/include/mach/experimental.defs -index ca1eb92..11c51d6 100644 ---- a/include/mach/experimental.defs -+++ b/include/mach/experimental.defs -@@ -52,19 +52,27 @@ routine device_intr_register( - in flags : int; - in receive_port : mach_port_send_t - ); -+/* JW: It doesn't look safe to pass flags through. dde sets -+ * SA_SHIRQ. -+ * -+ * ID seems unused. dde hands in 0. -+ */ - - /* -- * enable/disable the specified line. -+ * enable the specified line. -+ */ -+/* Is the disable part actually used at all? -- No. */ -+/* AIUI, the kernel IRQ handler should always disable the line; and -+ * the userspace driver only has to reenable it, after acknowledging -+ * and handling the interrupt... -+ * -+ * -- Indeed, and we should change the interface so that the irq is -+ * also re-enabled if the driver crashes. - */ --/* XXX: Naming a function taht can disable something "xxx_enable" is confusing. */ --/* Is the disable part actually used at all? AIUI, the kernel IRQ handler --should always disable the line; and the userspace driver only has to --reenable it, after acknowledging and handling the interrupt... --*/ - routine device_intr_enable( - master_port : mach_port_t; - line : int; -- status : char); -+ status : char /* MUST be true-ish */); - - /* - * This routine is created for allocating DMA buffers. --- -2.1.4 - |