linux/block
James Bottomley 8df5fc042c [SCSI] bsg: fix oops on remove
If you do a modremove of any sas driver, you run into an oops on
shutdown when the host is removed (coming from the host bsg device).
The root cause seems to be that there's a use after free of the
bsg_class_device:  In bsg_kref_release_function, this is used (to do a
put_device(bcg->parent) after bcg->release has been called.  In sas (and
possibly many other things) bcd->release frees the queue which contains
the bsg_class_device, so we get a put_device on unreferenced memory.
Fix this by taking a copy of the pointer to the parent before releasing
bsg.

Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-07-12 10:14:56 -05:00
..
as-iosched.c block: Fix the starving writes bug in the anticipatory IO scheduler 2008-07-01 09:06:42 +02:00
blk-barrier.c
blk-core.c
blk-exec.c
blk-ioc.c
blk-map.c
blk-merge.c
blk-settings.c
blk-sysfs.c
blk-tag.c
blk.h
blktrace.c block: disable IRQs until data is written to relay channel 2008-06-12 11:20:57 -07:00
bsg.c [SCSI] bsg: fix oops on remove 2008-07-12 10:14:56 -05:00
cfq-iosched.c cfq-iosched: fix RCU problem in cfq_cic_lookup() 2008-05-28 14:49:28 +02:00
compat_ioctl.c
deadline-iosched.c
elevator.c Added in elevator switch message to blktrace stream 2008-05-28 14:49:27 +02:00
genhd.c Fix invalid access errors in blk_lookup_devt 2008-06-09 10:06:24 -07:00
ioctl.c
Kconfig
Kconfig.iosched
Makefile
noop-iosched.c
scsi_ioctl.c