aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtd_blkdevs.c
diff options
context:
space:
mode:
authorMaxim Levitsky <maximlevitsky@gmail.com>2010-07-28 11:53:16 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-08-06 04:20:47 -0400
commitdba76c033f1b88b6eb0fa697b824f954b11f8a97 (patch)
tree2417e535c570a84efb4073efa3712fa4d99e81f5 /drivers/mtd/mtd_blkdevs.c
parentef41e1bb11fc21acad35c8c3b673fe9f2f29d819 (diff)
mtd: blkdevs: fix crash related to sysfs attributes.
Remove the attributes group before disk to avoid use after free Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/mtd_blkdevs.c')
-rw-r--r--drivers/mtd/mtd_blkdevs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index a6bb5863e8f3..89e07e5af577 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -410,13 +410,14 @@ int del_mtd_blktrans_dev(struct mtd_blktrans_dev *old)
410 BUG(); 410 BUG();
411 } 411 }
412 412
413 /* Stop new requests to arrive */
414 del_gendisk(old->disk);
415
416 if (old->disk_attributes) 413 if (old->disk_attributes)
417 sysfs_remove_group(&disk_to_dev(old->disk)->kobj, 414 sysfs_remove_group(&disk_to_dev(old->disk)->kobj,
418 old->disk_attributes); 415 old->disk_attributes);
419 416
417 /* Stop new requests to arrive */
418 del_gendisk(old->disk);
419
420
420 /* Stop the thread */ 421 /* Stop the thread */
421 kthread_stop(old->thread); 422 kthread_stop(old->thread);
422 423