2008-12-08 01:47:50

by Paul Collins

[permalink] [raw]
Subject: [REGRESSION] commit "ide: respect current DMA setting during resume" breaks resume on PowerBook G4

Commit e9eb8388306364295308132265c00bea685f409f ("ide: respect current
DMA setting during resume") breaks resume on my PowerBook G4.

I get a stream of the following:

hda: task_out_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_out_intr: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown

and generally the machine hangs, although once it reported

ide0: reset: success

and resumed successfully.

--
Paul Collins
Wellington, New Zealand

Dag vijandelijk luchtschip de huismeester is dood


Subject: Re: [REGRESSION] commit "ide: respect current DMA setting during resume" breaks resume on PowerBook G4

On Monday 08 December 2008, Paul Collins wrote:
> Commit e9eb8388306364295308132265c00bea685f409f ("ide: respect current
> DMA setting during resume") breaks resume on my PowerBook G4.
>
> I get a stream of the following:
>
> hda: task_out_intr: status=0x51 { DriveReady SeekComplete Error }
> hda: task_out_intr: error=0x04 { DriveStatusError }
> ide: failed opcode was: unknown
>
> and generally the machine hangs, although once it reported
>
> ide0: reset: success
>
> and resumed successfully.

Sorry about this. I'll send the following patch to Linus in few minutes...

>From 1a659880ee755d96eeabe64bded059abed6d5ef5 Mon Sep 17 00:00:00 2001
From: Bartlomiej Zolnierkiewicz <[email protected]>
Date: Mon, 8 Dec 2008 17:42:35 +0100
Subject: [PATCH] Revert "ide: respect current DMA setting during resume"

This reverts commit e9eb8388306364295308132265c00bea685f409f since
it could break resume (thanks to Paul Collins for the report).

I'll look into sorting this out properly for 2.6.29
but for 2.6.28 it is the best to just revert my patch.

Reported-by: Paul Collins <[email protected]>
Cc: [email protected]
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
---
drivers/ide/ide-io.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 7d275b2..cc35d6d 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -208,8 +208,10 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
*/
if (drive->hwif->dma_ops == NULL)
break;
- if (drive->dev_flags & IDE_DFLAG_USING_DMA)
- ide_set_dma(drive);
+ /*
+ * TODO: respect IDE_DFLAG_USING_DMA
+ */
+ ide_set_dma(drive);
break;
}

--
1.6.0.4