+ request_irq-remove-warnings-from-irq-probing.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     request_irq(): remove warnings from irq probing

has been added to the -mm tree.  Its filename is

     request_irq-remove-warnings-from-irq-probing.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this


From: Andrew Morton <akpm@xxxxxxxx>

- Add new SA_PROBEIRQ which suppresses the new sharing-mismatch warning. 
  Some drivers like to use request_irq() to find an unused interrupt slot.

- Use it in i82365.c

- Kill unused SA_PROBE.



Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/pcmcia/i82365.c     |    7 ++++---
 include/asm-xtensa/signal.h |    2 +-
 include/linux/signal.h      |    4 +++-
 kernel/irq/manage.c         |    6 ++++--
 4 files changed, 12 insertions(+), 7 deletions(-)

diff -puN include/linux/signal.h~request_irq-remove-warnings-from-irq-probing include/linux/signal.h
--- devel/include/linux/signal.h~request_irq-remove-warnings-from-irq-probing	2006-04-23 14:55:13.000000000 -0700
+++ devel-akpm/include/linux/signal.h	2006-04-23 15:02:17.000000000 -0700
@@ -14,10 +14,12 @@
  *
  * SA_INTERRUPT is also used by the irq handling routines.
  * SA_SHIRQ is for shared interrupt support on PCI and EISA.
+ * SA_PROBEIRQ is set by callers when they expect sharing mismatches to occur
  */
-#define SA_PROBE		SA_ONESHOT
 #define SA_SAMPLE_RANDOM	SA_RESTART
 #define SA_SHIRQ		0x04000000
+#define SA_PROBEIRQ		0x08000000
+
 /*
  * As above, these correspond to the IORESOURCE_IRQ_* defines in
  * linux/ioport.h to select the interrupt line behaviour.  When
diff -puN kernel/irq/manage.c~request_irq-remove-warnings-from-irq-probing kernel/irq/manage.c
--- devel/kernel/irq/manage.c~request_irq-remove-warnings-from-irq-probing	2006-04-23 14:55:13.000000000 -0700
+++ devel-akpm/kernel/irq/manage.c	2006-04-23 14:57:01.000000000 -0700
@@ -246,8 +246,10 @@ int setup_irq(unsigned int irq, struct i
 
 mismatch:
 	spin_unlock_irqrestore(&desc->lock, flags);
-	printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__);
-	dump_stack();
+	if (!(new->flags & SA_PROBE_IRQ)) {
+		printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__);
+		dump_stack();
+	}
 	return -EBUSY;
 }
 
diff -puN drivers/pcmcia/i82365.c~request_irq-remove-warnings-from-irq-probing drivers/pcmcia/i82365.c
--- devel/drivers/pcmcia/i82365.c~request_irq-remove-warnings-from-irq-probing	2006-04-23 14:55:13.000000000 -0700
+++ devel-akpm/drivers/pcmcia/i82365.c	2006-04-23 14:58:14.000000000 -0700
@@ -509,7 +509,8 @@ static irqreturn_t i365_count_irq(int ir
 static u_int __init test_irq(u_short sock, int irq)
 {
     debug(2, "  testing ISA irq %d\n", irq);
-    if (request_irq(irq, i365_count_irq, 0, "scan", i365_count_irq) != 0)
+    if (request_irq(irq, i365_count_irq, SA_PROBEIRQ, "scan",
+			i365_count_irq) != 0)
 	return 1;
     irq_hits = 0; irq_sock = sock;
     msleep(10);
@@ -561,7 +562,7 @@ static u_int __init isa_scan(u_short soc
     } else {
 	/* Fallback: just find interrupts that aren't in use */
 	for (i = 0; i < 16; i++)
-	    if ((mask0 & (1 << i)) && (_check_irq(i, 0) == 0))
+	    if ((mask0 & (1 << i)) && (_check_irq(i, SA_PROBEIRQ) == 0))
 		mask1 |= (1 << i);
 	printk("default");
 	/* If scan failed, default to polled status */
@@ -725,7 +726,7 @@ static void __init add_pcic(int ns, int 
 	u_int cs_mask = mask & ((cs_irq) ? (1<<cs_irq) : ~(1<<12));
 	for (cs_irq = 15; cs_irq > 0; cs_irq--)
 	    if ((cs_mask & (1 << cs_irq)) &&
-		(_check_irq(cs_irq, 0) == 0))
+		(_check_irq(cs_irq, SA_PROBEIRQ) == 0))
 		break;
 	if (cs_irq) {
 	    grab_irq = 1;
diff -puN include/asm-xtensa/signal.h~request_irq-remove-warnings-from-irq-probing include/asm-xtensa/signal.h
--- devel/include/asm-xtensa/signal.h~request_irq-remove-warnings-from-irq-probing	2006-04-23 14:59:43.000000000 -0700
+++ devel-akpm/include/asm-xtensa/signal.h	2006-04-23 15:00:07.000000000 -0700
@@ -118,9 +118,9 @@ typedef struct {
  * SA_INTERRUPT is also used by the irq handling routines.
  * SA_SHIRQ is for shared interrupt support on PCI and EISA.
  */
-#define SA_PROBE		SA_ONESHOT
 #define SA_SAMPLE_RANDOM	SA_RESTART
 #define SA_SHIRQ		0x04000000
+#define SA_PROBEIRQ		0x08000000
 #endif
 
 #define SIG_BLOCK          0	/* for blocking signals */
_

Patches currently in -mm which might be from akpm@xxxxxxxx are

origin.patch
config_net=n-build-fix.patch
revert-x86-deterine-xapic-using-apic-version.patch
git-acpi.patch
acpi-update-asus_acpi-driver-registration-fix.patch
acpi-memory-hotplug-cannot-manage-_crs-with-plural-resoureces.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch
remove-for_each_cpu.patch
sony_apci-resume.patch
powernow-k8-crash-workaround.patch
git-dvb.patch
dvb-core-ule-fixes-and-rfc4326-additions-kernel-2616-tidy.patch
sparc32-vivi-fix.patch
git-dvb-compat-build-fix.patch
bt866-build-fix.patch
connector-exports.patch
opencores-i2c-bus-driver-tidy.patch
git-libata-all.patch
git-mtd.patch
pci-error-recovery-e1000-network-device-driver.patch
powerpc-pseries-avoid-crash-in-pci-code-if-mem-system-not-up-tidy.patch
gregkh-pci-pci-64-bit-resources-drivers-others-changes-amba-fix.patch
git-pcmcia.patch
git-scsi-misc.patch
megaraid-unused-variable.patch
enable-advansys-driver.patch
advansys-warning-workaround.patch
scsi-clean-up-warnings-in-advansys-driver-fix.patch
fix-sco-on-some-bluetooth-adapters-tidy.patch
git-watchdog.patch
pg_uncached-is-ia64-only.patch
migration-remove-unnecessary-pageswapcache-checks-fix.patch
wait_table-and-zonelist-initializing-for-memory-hotadd-wait_table-initialization-fixes.patch
preserve-write-permissions-in-migration-entries-fix.patch
read-write-migration-entries-make-mprotect-convert-write-migration-fix.patch
read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix.patch
read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix-fix.patch
slab-cleanup-kmem_getpages-fix.patch
slab-stop-using-list_for_each-fix.patch
pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch
pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch
pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch
pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch
mm-introduce-remap_vmalloc_range-fix.patch
acx1xx-wireless-driver.patch
x86-x86_64-avoid-irq0-ioapic-pin-collision-tidy.patch
prune_one_dentry-tweaks.patch
mmput-might-sleep.patch
jbd-avoid-kfree-null.patch
ext3_clear_inode-avoid-kfree-null.patch
hangcheck-remove-monotomic_clock-on-x86.patch
pi-futex-futex-code-cleanups-fix.patch
reiser4.patch
savagefb-add-state-save-and_restore-hooks-tidy.patch
kgdb-core-lite-add-reboot-command.patch
kgdb-8250-fix.patch
nr_blockdev_pages-in_interrupt-warning.patch
device-suspend-debug.patch
revert-tty-buffering-comment-out-debug-code.patch
slab-leaks3-default-y.patch
x86-kmap_atomic-debugging.patch
request_irq-remove-warnings-from-irq-probing.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux