2002-07-06 23:41:47

by Thunder from the hill

[permalink] [raw]
Subject:

Hi,

Just a small question about IDE 96: in __ata_end_request(), we do

spin_lock_irqsave(ch->lock, flags);

BUG_ON(!(rq->flags & REQ_STARTED));

Shouldn't we rather flip these two, or much rather move
spin_lock_irqsave() even more down, below

if (!nr_secs)
nr_secs = rq->hard_cur_sectors;

since it hasn't got any use to hold a spin lock until the udma_enable &
co.? However, I'd at least move it below the BUG_ON().

Regards,
Thunder
--
(Use http://www.ebb.org/ungeek if you can't decode)
------BEGIN GEEK CODE BLOCK------
Version: 3.12
GCS/E/G/S/AT d- s++:-- a? C++$ ULAVHI++++$ P++$ L++++(+++++)$ E W-$
N--- o? K? w-- O- M V$ PS+ PE- Y- PGP+ t+ 5+ X+ R- !tv b++ DI? !D G
e++++ h* r--- y-
------END GEEK CODE BLOCK------


Subject: Re: IDE 96 and __ata_end_request()


On Sat, 6 Jul 2002, Thunder from the hill wrote:

> Hi,
>
> Just a small question about IDE 96: in __ata_end_request(), we do
>
> spin_lock_irqsave(ch->lock, flags);
>
> BUG_ON(!(rq->flags & REQ_STARTED));
>
> Shouldn't we rather flip these two, or much rather move
> spin_lock_irqsave() even more down, below
>
> if (!nr_secs)
> nr_secs = rq->hard_cur_sectors;
>
> since it hasn't got any use to hold a spin lock until the udma_enable &
> co.? However, I'd at least move it below the BUG_ON().
>
> Regards,
> Thunder

We can move spin_lock_irqsave() down, below if (!nr_secs), thanks.

Regards
--
Bartlomiej