Skip to contentSkip to conversation

suspect code in cyasblkdev_block conversion to bdops->check_events()

PATCH New Milton Miller 2 participants 2 messages Mar 25, 2011 Staging

lore
Share & tools
lore
#0 lore raw
Quoted 17 lines

commit cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24
Author: Tejun Heo <[email protected]>
Commit: Tejun Heo <[email protected]>

staging: Convert to bdops->check_events()

Convert two staging drivers - blkvsc_drv and cyasblkdev_block - from ->media_changed() to ->check_events(). The former always indicated media changed while the latter always indicated media not changed. Not sure what the drivers are trying to achieve but keep the original behavior.

..

Quoted 2 lines
drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +0 -0
index e1851f0..842cd92 100644

..

Quoted 9 lines
drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +1 -0
@@ -1090,6 +1090,7 @@ static int cyasblkdev_add_disks(int bus_num,
 		bd->user_disk_0->first_minor = devidx << CYASBLKDEV_SHIFT;
 		bd->user_disk_0->minors = 8;
 		bd->user_disk_0->fops = &cyasblkdev_bdops;
+		bd->user_disk_0->events = DISK_EVENT_MEDIA_CHANGE;
 		bd->user_disk_0->private_data = bd;
 		bd->user_disk_0->queue = bd->queue.queue;
 		bd->dbgprn_flags = DBGPRN_RD_RQ;

drivers/staging/westbridge/astoria/block/cyasblkdev_block.c static int cyasblkdev_add_disks(int bus_num, · line 1195

Quoted 5 lines
drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +1 -0
@@ -1190,6 +1191,7 @@ static int cyasblkdev_add_disks(int bus_num,
 		bd->user_disk_1->first_minor = (devidx + 1) << CYASBLKDEV_SHIFT;
 		bd->user_disk_1->minors = 8;
 		bd->user_disk_1->fops = &cyasblkdev_bdops;
+		bd->user_disk_0->events = DISK_EVENT_MEDIA_CHANGE;
 		bd->user_disk_1->private_data = bd;

Date: Fri, 25 Mar 2011 04:48:01 -0600
X-Originating-IP: 71.22.127.106

The 0 on the above line triggered my suspect code pattern detector.

drivers/staging/westbridge/astoria/block/cyasblkdev_block.c static int cyasblkdev_add_disks(int bus_num, · line 1286

Quoted 10 lines
drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +1 -0
 		bd->user_disk_1->queue = bd->queue.queue;
 		bd->dbgprn_flags = DBGPRN_RD_RQ;
@@ -1278,6 +1280,7 @@ static int cyasblkdev_add_disks(int bus_num,
 				(devidx + 2) << CYASBLKDEV_SHIFT;
 			bd->system_disk->minors = 8;
 			bd->system_disk->fops = &cyasblkdev_bdops;
+			bd->system_disk->events = DISK_EVENT_MEDIA_CHANGE;
 			bd->system_disk->private_data = bd;
 			bd->system_disk->queue = bd->queue.queue;
 			/* don't search for vfat

milton

#1 lore raw

PATCH 1/1 staging: Fix bdops->check_events() misconversion in cyasblkdev_block.c

Commit cafb0bfca1 (staging: Convert to bdops->check_events()) incorrectly set bd->user_disk_0->events while initializing bd->user_disk_1. Fix it.

The problem was spotted by Milton's suspect code pattern detector.

---
Nice spotting Milton. Thank you.

 drivers/staging/westbridge/astoria/block/cyasblkdev_block.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +1 -1
index 842cd92..289729d 100644
@@ -1191,7 +1191,7 @@ static int cyasblkdev_add_disks(int bus_num,
 		bd->user_disk_1->first_minor = (devidx + 1) << CYASBLKDEV_SHIFT;
 		bd->user_disk_1->minors = 8;
 		bd->user_disk_1->fops = &cyasblkdev_bdops;
-		bd->user_disk_0->events = DISK_EVENT_MEDIA_CHANGE;
+		bd->user_disk_1->events = DISK_EVENT_MEDIA_CHANGE;
 		bd->user_disk_1->private_data = bd;
 		bd->user_disk_1->queue = bd->queue.queue;
 		bd->dbgprn_flags = DBGPRN_RD_RQ;