Subject: [PATCH] ide-taskfile.c fixups/cleanups part #2 [4/9]


[PATCH] ide: remove BUSY check from task_in_intr() (CONFIG_IDE_TASKFILE_IO=n)

We shouldn't ever get there if drive is busy and we can't start transfer
in this case. ide-disk.c:read_intr() also doesn't check for BUSY_STAT bit.

Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>

linux-2.6.7-bk11-bzolnier/drivers/ide/ide-taskfile.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)

diff -puN drivers/ide/ide-taskfile.c~ide_task_in_intr drivers/ide/ide-taskfile.c
--- linux-2.6.7-bk11/drivers/ide/ide-taskfile.c~ide_task_in_intr 2004-06-28 21:24:49.097867728 +0200
+++ linux-2.6.7-bk11-bzolnier/drivers/ide/ide-taskfile.c 2004-06-28 21:24:49.100867272 +0200
@@ -321,10 +321,8 @@ ide_startstop_t task_in_intr (ide_drive_
if (stat & (ERR_STAT|DRQ_STAT)) {
return DRIVER(drive)->error(drive, "task_in_intr", stat);
}
- if (!(stat & BUSY_STAT)) {
- ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
- return ide_started;
- }
+ ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
+ return ide_started;
}

task_buffer_sectors(drive, rq, 1, IDE_PIO_IN);

_


2004-06-30 16:22:44

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH] ide-taskfile.c fixups/cleanups part #2 [4/9]

On Wed, 2004-06-30 at 10:25, Bartlomiej Zolnierkiewicz wrote:
> [PATCH] ide: remove BUSY check from task_in_intr() (CONFIG_IDE_TASKFILE_IO=n)
>
> We shouldn't ever get there if drive is busy and we can't start transfer
> in this case. ide-disk.c:read_intr() also doesn't check for BUSY_STAT bit.

What if we have a shared interrupt with another device ?

Ben.


Subject: Re: [PATCH] ide-taskfile.c fixups/cleanups part #2 [4/9]

On Wednesday 30 of June 2004 18:10, Benjamin Herrenschmidt wrote:
> On Wed, 2004-06-30 at 10:25, Bartlomiej Zolnierkiewicz wrote:
> > [PATCH] ide: remove BUSY check from task_in_intr()
> > (CONFIG_IDE_TASKFILE_IO=n)
> >
> > We shouldn't ever get there if drive is busy and we can't start transfer
> > in this case. ide-disk.c:read_intr() also doesn't check for BUSY_STAT
> > bit.
>
> What if we have a shared interrupt with another device ?

drive_is_ready() in ide-io.c:ide_intr() handles that.

2004-06-30 17:20:56

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH] ide-taskfile.c fixups/cleanups part #2 [4/9]


> > What if we have a shared interrupt with another device ?
>
> drive_is_ready() in ide-io.c:ide_intr() handles that.

Right, I figured that out about 5 minutes after sending the mail ;)

Ben.