android_kernel_xiaomi_sm7250/fs/sysfs
Mark Lord 0de1517e23 [PATCH] Fix 2.6.21 rfcomm lockups
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    c1a3313698
| tree    337a876f72    tree | snapshot
| parent    f5ffd4620a    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>
2007-03-06 09:30:24 -08:00
..
bin.c sysfs: kobject_put cleanup 2007-02-07 10:37:13 -08:00
dir.c [PATCH] Fix 2.6.21 rfcomm lockups 2007-03-06 09:30:24 -08:00
file.c sysfs: allow attributes to be added to groups 2007-02-23 15:03:46 -08:00
group.c sysfs: Shadow directory support 2007-02-07 10:37:14 -08:00
inode.c [PATCH] mark struct inode_operations const 3 2007-02-12 09:48:46 -08:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mount.c [PATCH] Mark struct super_operations const 2007-02-12 09:48:47 -08:00
symlink.c [PATCH] mark struct inode_operations const 3 2007-02-12 09:48:46 -08:00
sysfs.h sysfs: move struct sysfs_dirent to private header 2007-02-23 14:52:09 -08:00