Revision 0de1517e23c2e28d58a6344b97a120596ea200bb authored by Mark Lord on 06 March 2007, 09:42:03 UTC, committed by Linus Torvalds on 06 March 2007, 17:30:24 UTC
Any attempt to open/use a bluetooth rfcomm device locks up
scheduling completely on my machine.

Interrupts (ping, alt-sysrq) seem to be alive, but nothing else.

This was working fine in 2.6.20, broken now in 2.6.21-rc2-git*

Reverting this change (below) fixes it:

| author    Marcel Holtmann <marcel@holtmann.org>
|      Sat, 17 Feb 2007 22:58:57 +0000 (23:58 +0100)
| committer    David S. Miller <davem@sunset.davemloft.net>
|      Mon, 26 Feb 2007 19:42:41 +0000 (11:42 -0800)
| commit    c1a3313698895d8ad4760f98642007bf236af2e8
| tree    337a876f727061362b6a169f8759849c105b8f7a    tree | snapshot
| parent    f5ffd4620aba9e55656483ae1ef5c79ba81f5403    commit | diff
| | [Bluetooth] Make use of device_move() for RFCOMM TTY devices
| | In the case of bound RFCOMM TTY devices the parent is not available
| before its usage. So when opening a RFCOMM TTY device, move it to
| the corresponding ACL device as a child. When closing the device,
| move it back to the virtual device tree.
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

The simplest fix for this bug is to prevent sysfs_move_dir()
from self-deadlocking when (old_parent == new_parent).

This patch prevents total system lockup when using rfcomm devices.

Signed-off-by:  Mark Lord <mlord@pobox.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 166f60d
History
File Mode Size
Kconfig -rw-r--r-- 5.0 KB
Makefile -rw-r--r-- 1017 bytes
allocpercpu.c -rw-r--r-- 3.7 KB
backing-dev.c -rw-r--r-- 1.7 KB
bootmem.c -rw-r--r-- 12.0 KB
bounce.c -rw-r--r-- 6.5 KB
fadvise.c -rw-r--r-- 2.6 KB
filemap.c -rw-r--r-- 62.6 KB
filemap.h -rw-r--r-- 2.8 KB
filemap_xip.c -rw-r--r-- 10.3 KB
fremap.c -rw-r--r-- 6.1 KB
highmem.c -rw-r--r-- 7.8 KB
hugetlb.c -rw-r--r-- 19.4 KB
internal.h -rw-r--r-- 1.0 KB
madvise.c -rw-r--r-- 8.6 KB
memory.c -rw-r--r-- 72.9 KB
memory_hotplug.c -rw-r--r-- 7.3 KB
mempolicy.c -rw-r--r-- 47.1 KB
mempool.c -rw-r--r-- 9.0 KB
migrate.c -rw-r--r-- 21.5 KB
mincore.c -rw-r--r-- 5.7 KB
mlock.c -rw-r--r-- 5.3 KB
mmap.c -rw-r--r-- 56.4 KB
mmzone.c -rw-r--r-- 750 bytes
mprotect.c -rw-r--r-- 7.5 KB
mremap.c -rw-r--r-- 10.7 KB
msync.c -rw-r--r-- 2.4 KB
nommu.c -rw-r--r-- 31.4 KB
oom_kill.c -rw-r--r-- 11.9 KB
page-writeback.c -rw-r--r-- 27.5 KB
page_alloc.c -rw-r--r-- 91.1 KB
page_io.c -rw-r--r-- 3.6 KB
pdflush.c -rw-r--r-- 6.3 KB
prio_tree.c -rw-r--r-- 6.3 KB
readahead.c -rw-r--r-- 16.9 KB
rmap.c -rw-r--r-- 24.9 KB
shmem.c -rw-r--r-- 63.2 KB
shmem_acl.c -rw-r--r-- 4.6 KB
slab.c -rw-r--r-- 115.5 KB
slob.c -rw-r--r-- 8.2 KB
sparse.c -rw-r--r-- 7.8 KB
swap.c -rw-r--r-- 12.4 KB
swap_state.c -rw-r--r-- 9.3 KB
swapfile.c -rw-r--r-- 44.0 KB
thrash.c -rw-r--r-- 2.1 KB
tiny-shmem.c -rw-r--r-- 3.2 KB
truncate.c -rw-r--r-- 12.3 KB
util.c -rw-r--r-- 1.7 KB
vmalloc.c -rw-r--r-- 17.3 KB
vmscan.c -rw-r--r-- 47.2 KB
vmstat.c -rw-r--r-- 14.8 KB

back to top