Hello. On 10-01-2011 2:51, Vasily Tarasov wrote:
From: Vasily Tarasov<sectorsize512@xxxxxxxxx>
No need to check for the rq pointer to be NULL before calling blk_fetch_request(). First we call it, then we test the pointer that it returns.
Signed-off-by: Vasily Tarasov<sectorsize512@xxxxxxxxx>
I'm not feeling sure about this patch...
--- linux-2.6.37/drivers/ide/ide-io.c.orig 2011-01-04 19:50:19.000000000 -0500 +++ linux-2.6.37/drivers/ide/ide-io.c 2011-01-09 18:15:44.000000000 -0500 @@ -438,7 +438,7 @@ void do_ide_request(struct request_queue ide_drive_t *drive = q->queuedata; ide_hwif_t *hwif = drive->hwif; struct ide_host *host = hwif->host; - struct request *rq = NULL; + struct request *rq; ide_startstop_t startstop; spin_unlock_irq(q->queue_lock); @@ -485,16 +485,13 @@ repeat: spin_unlock_irq(&hwif->lock); spin_lock_irq(q->queue_lock); + rq = blk_fetch_request(drive->queue); + spin_unlock_irq(q->queue_lock); + spin_lock_irq(&hwif->lock); /* * we know that the queue isn't empty, but this can happen * if the q->prep_rq_fn() decides to kill a request */ - if (!rq) - rq = blk_fetch_request(drive->queue);
Did you consider the scenario where the 'goto' is taken at the end of this *if* branch? 'rq' is non-NULL then...
- - spin_unlock_irq(q->queue_lock); - spin_lock_irq(&hwif->lock); - if (!rq) { ide_unlock_port(hwif); goto out;
WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html