android_kernel_xiaomi_sm8350/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
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
block
bluetooth [Bluetooth] Correct SCO buffer for Broadcom based Dell laptops 2007-01-09 00:29:59 -08:00
cdrom
char Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2007-01-23 11:19:32 -08:00
clocksource
connector [PATCH] connector: some fixes for ia64 unaligned access errors 2007-01-05 23:55:29 -08:00
cpufreq
crypto
dio
dma
edac
eisa
fc4
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
ide
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
isdn
kvm [PATCH] KVM: SVM: Propagate cpu shutdown events to userspace 2007-01-26 13:50:57 -08:00
leds
macintosh
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
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
parisc
parport
pci PCI: fix pci-driver kernel-doc 2007-01-22 12:00:54 -08:00
pcmcia
pnp
ps3
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
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
telephony
usb [PATCH] funsoft: ktermios fix 2007-01-23 11:09:49 -08:00
video
w1
zorro
Kconfig
Makefile