linux/drivers
Atsushi Nemoto 1e9a51dca1 [PATCH] SPI: alternative fix for spi_busnum_to_master
If a SPI master device exists, udev (udevtrigger) causes kernel crash, due
to wrong kobj pointer in kobject_uevent_env().  This problem was not in
2.6.19.

The backtrace (on MIPS) was:
[<8024db6c>] kobject_uevent_env+0x54c/0x5e8
[<802a8264>] store_uevent+0x1c/0x3c  (in drivers/class.c)
[<801cb14c>] subsys_attr_store+0x2c/0x50
[<801cb80c>] flush_write_buffer+0x38/0x5c
[<801cb900>] sysfs_write_file+0xd0/0x190
[<80181444>] vfs_write+0xc4/0x1a0
[<80181cdc>] sys_write+0x54/0xa0
[<8010dae4>] stack_done+0x20/0x3c

flush_write_buffer() passes kobject of spi_master_class.subsys to
subsys_addr_store(), then subsys_addr_store() passes a pointer to a struct
subsystem to store_uevent() which expects a pointer to a struct
class_device.  The problem seems subsys_attr_store() called instead of
class_device_attr_store().

This mismatch was caused by commit
3bd0f69435, which overrides kset of master
class.  This made spi_master_class.subsys.kset.ktype NULL so
subsys_sysfs_ops is used instead of class_dev_sysfs_ops.

The commit was to fix spi_busnum_to_master().  Here is a patch fixes
this function in other way, just searching children list of
class_device.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-01-26 13:50:58 -08:00
..
acorn [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
acpi [PATCH] acpi: remove "video device notify" message 2007-01-23 07:52:07 -08:00
amba
ata libata: Fixup n_elem initialization 2007-01-24 02:04:34 -05:00
atm [PATCH] horizon.c: missing __devinit 2007-01-23 11:09:49 -08:00
base [PATCH] fix kernel-doc warnings in 2.6.20-rc1 2006-12-22 08:55:47 -08:00
block [PATCH] Fix BUG at drivers/scsi/scsi_lib.c:1118 caused by "pktsetup dvd /dev/sr0" 2007-01-05 23:55:22 -08:00
bluetooth [Bluetooth] Correct SCO buffer for Broadcom based Dell laptops 2007-01-09 00:29:59 -08:00
cdrom [PATCH] cdrom: set default timeout to 7 seconds 2007-01-03 17:32:54 -08:00
char Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2007-01-23 11:19:32 -08:00
clocksource [PATCH] clocksource: small cleanup 2006-12-10 09:57:22 -08:00
connector [PATCH] connector: some fixes for ia64 unaligned access errors 2007-01-05 23:55:29 -08:00
cpufreq [CPUFREQ] Bug fix for acpi-cpufreq and cpufreq_stats oops on frequency change notification 2006-12-22 22:45:41 -05:00
crypto [PATCH] geode crypto is PCI device 2006-12-10 09:55:40 -08:00
dio
dma
edac
eisa
fc4 [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
firmware
hid HID: hid/hid-input.c doesn't need to include linux/usb/input.h 2007-01-21 22:17:57 +01:00
hwmon hwmon/w83793: Hide invalid VID readings 2007-01-18 22:14:24 +01:00
i2c i2c/m41t00: Do not forget to write year 2007-01-05 17:54:05 +01:00
ide [PATCH] atiixp: Old drivers/ide layer driver for the ATIIXP hang fix 2007-01-05 23:55:22 -08:00
ieee1394 ieee1394: sbp2: fix probing of some DVD-ROM/RWs 2007-01-10 20:24:42 +01:00
infiniband IB/ehca: Fix mismatched spin_unlock in irq handler 2007-01-22 17:03:55 -08:00
input [SPARC64]: Fix of_iounmap() region release. 2006-12-31 14:06:05 -08:00
isdn [PATCH] Call init_timer() for ISDN PPP CCP reset state timer 2006-12-22 14:31:24 -08:00
kvm [PATCH] KVM: SVM: Propagate cpu shutdown events to userspace 2007-01-26 13:50:57 -08:00
leds [PATCH] Fix leds-s3c24xx hardware.h reference 2007-01-05 23:55:21 -08:00
macintosh [PATCH] Fix implicit declarations in via-pmu 2007-01-05 23:55:21 -08:00
mca
md [PATCH] md: pass down BIO_RW_SYNC in raid{1,10} 2007-01-11 18:18:21 -08:00
media V4L/DVB (5123): Buf_qbuf: fix: videobuf_queue->stream corruption and lockup 2007-01-23 22:00:21 -02:00
message [SCSI] fusion: bump version 2007-01-06 09:32:49 -06:00
mfd
misc Pull platform-drivers into test branch 2006-12-20 02:52:17 -05:00
mmc mmc: Correct definition of R6 2007-01-15 06:44:03 +01:00
mtd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2007-01-18 10:34:51 +11:00
net Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2007-01-24 07:45:35 -08:00
nubus
oprofile [PATCH] struct path: convert oprofile 2006-12-08 08:28:48 -08:00
parisc [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
parport [PATCH] Kconfig refactoring for better menu nesting 2006-12-10 09:55:39 -08:00
pci PCI: fix pci-driver kernel-doc 2007-01-22 12:00:54 -08:00
pcmcia [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() 2006-12-13 09:05:52 -08:00
pnp [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
ps3 [POWERPC] ps3: Add vuart support 2006-12-11 13:49:53 +11:00
rapidio
rtc [PATCH] rtc-sh: act on rtc_wkalrm.enabled when setting an alarm 2007-01-23 07:52:06 -08:00
s390 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-01-09 09:36:06 -08:00
sbus [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2007-01-22 10:35:34 -08:00
serial [PATCH] x86-64: modpost add more symbols to whitelist pattern2 2007-01-11 01:52:44 +01:00
sh
sn
spi [PATCH] SPI: alternative fix for spi_busnum_to_master 2007-01-26 13:50:58 -08:00
tc [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
telephony [PATCH] struct path: convert ixj 2006-12-08 08:28:46 -08:00
usb [PATCH] funsoft: ktermios fix 2007-01-23 11:09:49 -08:00
video backlight: fix backlight_device_register compile failures 2007-01-02 00:06:18 -05:00
w1 [PATCH] w1: Fix for kconfig entry typo 2006-12-13 09:05:48 -08:00
zorro [PATCH] struct path: convert zorro 2006-12-08 08:28:50 -08:00
Kconfig [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00
Makefile [PATCH] kvm: userspace interface 2006-12-10 09:57:22 -08:00