Skip to contentSkip to conversation

IDE error 2.6.7-rc3-mm2 and 2.6.8-rc1-mm1

Repost Jens Axboe 2 participants 6 messages Jul 22, 2004 – Jul 29, 2004 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Jens Axboe

author
#1 lore raw
Quoted 24 lines · Tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jul 21 03:00:18 tabriel kernel: hda: drive_cmd: status=0x51 { DriveReady
SeekComplete Error }
Jul 21 03:00:18 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:18 tabriel kernel: ide: failed opcode was: 0xe7
Jul 21 03:00:23 tabriel kernel: hda: drive_cmd: status=0x51 { DriveReady
SeekComplete Error }
Jul 21 03:00:23 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:23 tabriel kernel: ide: failed opcode was: 0xe7
Jul 21 03:00:28 tabriel kernel: hda: drive_cmd: status=0x51 { DriveReady
SeekComplete Error }
Jul 21 03:00:28 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:28 tabriel kernel: ide: failed opcode was: 0xe7

This error did not occur in 2.6.6-rc3-mm2. Turning off ACPI made no
difference, not that I expected one.

It appears to be harmless but it's polluting my syslog.

Quoted 8 lines

Appears related to
http://marc.theaimsgroup.com/?l=linux-kernel&m=108946389700930

None of my harddrives are over 60GiB (and hda is an 8GiB), so there's
no reason i should be getting LBA48 Flush Cache.

What should I do, what do you need from me to get to the bottom of
this?

Does this work?

drivers/ide/ide-disk.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c +2 -1
@@ -1248,7 +1248,8 @@
 
 	memset(rq->cmd, 0, sizeof(rq->cmd));
 
-	if ((drive->id->cfs_enable_2 & 0x2400) == 0x2400)
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->cmd[0] = WIN_FLUSH_CACHE_EXT;
 	else
 		rq->cmd[0] = WIN_FLUSH_CACHE;
drivers/ide/ide-io.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-io.c +2 -1
@@ -67,7 +67,8 @@
 	rq->buffer = buf;
 	rq->buffer[0] = WIN_FLUSH_CACHE;
 
-	if (ide_id_has_flush_cache_ext(drive->id))
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->buffer[0] = WIN_FLUSH_CACHE_EXT;
 }
 
Signature · 1 line
Jens Axboe
#2 lore raw
Quoted 28 lines · Jens Axboe
Quoted 27 lines · Tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jul 21 03:00:18 tabriel kernel: hda: drive_cmd: status=0x51 {
DriveReady SeekComplete Error }
Jul 21 03:00:18 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:18 tabriel kernel: ide: failed opcode was: 0xe7
Jul 21 03:00:23 tabriel kernel: hda: drive_cmd: status=0x51 {
DriveReady SeekComplete Error }
Jul 21 03:00:23 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:23 tabriel kernel: ide: failed opcode was: 0xe7
Jul 21 03:00:28 tabriel kernel: hda: drive_cmd: status=0x51 {
DriveReady SeekComplete Error }
Jul 21 03:00:28 tabriel kernel: hda: drive_cmd: error=0x04 {
DriveStatusError }
Jul 21 03:00:28 tabriel kernel: ide: failed opcode was: 0xe7

This error did not occur in 2.6.6-rc3-mm2. Turning off ACPI made
no difference, not that I expected one.

It appears to be harmless but it's polluting my syslog.

Appears related to
http://marc.theaimsgroup.com/?l=linux-kernel&m=108946389700930

Quoted 7 lines
Quoted 5 lines

None of my harddrives are over 60GiB (and hda is an 8GiB), so
there's no reason i should be getting LBA48 Flush Cache.

What should I do, what do you need from me to get to the bottom of
this?

Does this work?

No, however it does seem to start it going in my syslog a bit earlier,
but that may be meaningless (normally I found it waited until after qmail would start).

Also, my i2c/sensors have stopped working (tho I doubt it has anything
to do with your patch, it _does_ lineup with my applying your patch and rebooting...)

--
tabris
-
Is it weird in here, or is it just me?
-- Steven Wright

#3 lore raw
In reply to Jens Axboe
Quoted 3 lines · Jens Axboe
Quoted 2 lines · Tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

<snip log>

Quoted 8 lines
Quoted 8 lines

This error did not occur in 2.6.6-rc3-mm2. Turning off ACPI made
no difference, not that I expected one.

It appears to be harmless but it's polluting my syslog.

Appears related to
http://marc.theaimsgroup.com/?l=linux-kernel&m=108946389700930

Quoted 7 lines
Quoted 5 lines

None of my harddrives are over 60GiB (and hda is an 8GiB), so
there's no reason i should be getting LBA48 Flush Cache.

What should I do, what do you need from me to get to the bottom of
this?

Does this work?

No, however it does seem to start it going in my syslog a bit earlier,
but that may be meaningless (normally I found it waited until after qmail would start).

Also, my i2c/sensors have stopped working (tho I doubt it has anything
to do with your patch, it _does_ lineup with my applying your patch and rebooting...)

--
tabris

author
#4 lore raw
Quoted 16 lines · tabris
Quoted 3 lines · Jens Axboe
Quoted 2 lines · Tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

<snip log>

Quoted 11 lines
Quoted 11 lines

This error did not occur in 2.6.6-rc3-mm2. Turning off ACPI made
no difference, not that I expected one.

It appears to be harmless but it's polluting my syslog.

Appears related to
http://marc.theaimsgroup.com/?l=linux-kernel&m=108946389700930

None of my harddrives are over 60GiB (and hda is an 8GiB), so
there's no reason i should be getting LBA48 Flush Cache.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

What should I do, what do you need from me to get to the bottom of
this?

Does this work?

No, however it does seem to start it going in my syslog a bit earlier,
but that may be meaningless (normally I found it waited until after qmail would start).

Try this.

drivers/ide/ide-disk.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c +3 -3
@@ -1248,7 +1248,8 @@
 
 	memset(rq->cmd, 0, sizeof(rq->cmd));
 
-	if ((drive->id->cfs_enable_2 & 0x2400) == 0x2400)
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->cmd[0] = WIN_FLUSH_CACHE_EXT;
 	else
 		rq->cmd[0] = WIN_FLUSH_CACHE;
@@ -1616,9 +1617,8 @@
 	 * properly. We can safely support FLUSH_CACHE on lba48, if capacity
 	 * doesn't exceed lba28
 	 */
-	barrier = 1;
+	barrier = ide_id_has_flush_cache(id);
 	if (drive->addressing == 1) {
-		barrier = ide_id_has_flush_cache(id);
 		if (capacity > (1ULL << 28) && !ide_id_has_flush_cache_ext(id))
 			barrier = 0;
 	}
drivers/ide/ide-io.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-io.c +2 -1
@@ -67,7 +67,8 @@
 	rq->buffer = buf;
 	rq->buffer[0] = WIN_FLUSH_CACHE;
 
-	if (ide_id_has_flush_cache_ext(drive->id))
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->buffer[0] = WIN_FLUSH_CACHE_EXT;
 }
 
Signature · 1 line
Jens Axboe
#5 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 8 lines · Jens Axboe
Quoted 5 lines · tabris
Quoted 3 lines · Jens Axboe
Quoted 2 lines · Tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Try this.

Works. I don't see the error in my syslog anymore. Thank you. Hopefully
this fix will make it into -mm and/or mainline soon.

Quoted 29 lines

--- /opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c 2004-07-22
13:37:09.000000000 -0200 +++
linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c 2004-07-27
03:39:11.016545806 -0200 @@ -1248,7 +1248,8 @@

drivers/ide/ide-disk.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c +2 -1
 	memset(rq->cmd, 0, sizeof(rq->cmd));
 
-	if ((drive->id->cfs_enable_2 & 0x2400) == 0x2400)
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->cmd[0] = WIN_FLUSH_CACHE_EXT;
 	else
 		rq->cmd[0] = WIN_FLUSH_CACHE;
@@ -1616,9 +1617,8 @@
 	 * properly. We can safely support FLUSH_CACHE on lba48, if

capacity * doesn't exceed lba28

drivers/ide/ide-disk.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-disk.c +1 -3
 	 */
-	barrier = 1;
+	barrier = ide_id_has_flush_cache(id);
 	if (drive->addressing == 1) {
-		barrier = ide_id_has_flush_cache(id);
 		if (capacity > (1ULL << 28) && !ide_id_has_flush_cache_ext(id))
 			barrier = 0;
 	}
--- /opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-io.c	2004-07-22

13:37:09.000000000 -0200 +++
linux-2.6.8-rc1-mm1/drivers/ide/ide-io.c 2004-07-22
13:38:23.000000000 -0200 @@ -67,7 +67,8 @@

drivers/ide/ide-io.c line 73

Quoted 8 lines
drivers/ide/ide-io.c renamed from opt/kernel/linux-2.6.8-rc1-mm1/drivers/ide/ide-io.c +2 -1
 	rq->buffer = buf;
 	rq->buffer[0] = WIN_FLUSH_CACHE;
 
-	if (ide_id_has_flush_cache_ext(drive->id))
+	if (ide_id_has_flush_cache_ext(drive->id) &&
+	    (drive->capacity64 >= (1UL << 28)))
 		rq->buffer[0] = WIN_FLUSH_CACHE_EXT;
 }

- --
Actually, what I'd like is a little toy spaceship!! -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBCMKu1U5ZaPMbKQcRApIoAJ4tqGgBsO5nekX8zGzYchr08puxaQCePWiv xMyfv0AGbauPXXsxw1zSVA4=
=aftH
-----END PGP SIGNATURE-----

author
#6 lore raw
Quoted 6 lines · tabris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 2 lines · Jens Axboe
Quoted 1 line · tabris

On Thursday 22 July 2004 11:39 am, Jens Axboe wrote:

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Quoted 3 lines · Tabris
Quoted 2 lines

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Try this.

Works. I don't see the error in my syslog anymore. Thank you. Hopefully this fix will make it into -mm and/or mainline soon.

It's already in the released 2.6.8-rc2-mm1 from yesterday. Thanks for testing and verifying it works, I'm sure Andrew appreciates that as well :-)

Signature · 1 line
Jens Axboe