linux/arch
Richard Weinberger 4756227734 um: call free_irq() only on enabled channels
When I use OpenSUSE-11.2 on UML (> 2.6.25)
I get lots of such errors:

Registering fd 1 twice
Irqs : 3, 3
Ids : 0x09cb41a0, 0x09cb4120
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:896 __free_irq+0x79/0x11a()
Trying to free already-free IRQ 3
Modules linked in:
09dadc6c:  [<081b2edb>] dump_stack+0x1c/0x20
09dadc84:  [<080716da>] warn_slowpath_common+0x49/0x77
09dadc9c:  [<08071772>] warn_slowpath_fmt+0x26/0x2a
09dadcb4:  [<08094e08>] __free_irq+0x79/0x11a
09dadce4:  [<08094ed6>] free_irq+0x2d/0x49
09dadcf4:  [<0805b4bc>] close_one_chan+0x70/0x9c
09dadd0c:  [<0805b833>] close_chan+0x17/0x22
09dadd1c:  [<0805bdda>] enable_chan+0x70/0x7c
09dadd3c:  [<0805cbb7>] line_open+0x34/0x9f
09dadd54:  [<0805b21e>] con_open+0x13/0x35
09dadd6c:  [<0814dc89>] tty_open+0x285/0x384
09dadda0:  [<080b754e>] chrdev_open+0xe0/0xf9
09daddc0:  [<080b3fb2>] __dentry_open+0xf3/0x1e2
09dadde4:  [<080b4142>] nameidata_to_filp+0x35/0x49
09daddfc:  [<080bd270>] do_last+0x409/0x50e
09dade28:  [<080bea04>] do_filp_open+0x175/0x446
09dadecc:  [<080b3d89>] do_sys_open+0x4a/0x128
09dadf04:  [<080b3ea2>] sys_open+0x19/0x21
09dadf28:  [<0805ab5a>] handle_syscall+0x7a/0x98
09dadf78:  [<08068441>] userspace+0x2c9/0x370
09dadfe0:  [<08058bb3>] fork_handler+0x53/0x5b
09dadffc:  [<00766564>] 0x766564

---[ end trace 9ebc1094aaf4bded ]---

This patch fixes the issue.

Signed-off-by: Richard Weinberger <richard@nod.at>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-08-09 20:45:04 -07:00
..
alpha alpha: implement HW performance events on the EV67 and later CPUs 2010-08-09 20:45:04 -07:00
arm kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
avr32 avr32: invoke oom-killer from page fault 2010-08-09 20:44:58 -07:00
blackfin Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
cris Merge branch 'for-linus' of git://www.jni.nu/cris 2010-08-08 10:08:26 -07:00
frv kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
h8300 Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
ia64 topology: alternate fix for ia64 tiger_defconfig build breakage 2010-08-09 20:44:57 -07:00
m32r Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
m68k Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
m68knommu time: Kill off CONFIG_GENERIC_TIME 2010-07-27 12:40:54 +02:00
microblaze Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
mips kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
mn10300 kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
parisc kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
powerpc kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
s390 mm: provide init_mm mm_context initializer 2010-08-09 20:44:54 -07:00
score Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
sh Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
sparc kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
tile arch/tile: check kmalloc() result 2010-07-16 13:37:14 -04:00
um um: call free_irq() only on enabled channels 2010-08-09 20:45:04 -07:00
x86 gcc-4.6: mm: fix unused but set warnings 2010-08-09 20:44:58 -07:00
xtensa Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
.gitignore
Kconfig Merge branch 'perf/nmi' into perf/core 2010-08-05 08:45:05 +02:00