Possible IDE bug in 2.4 and 2.6
From: Matthew Schulkind
Date: Sun Jan 15 2006 - 03:12:08 EST
Hi,
First off, I'm not on the list, so please CC me on any replies.
I believe I have found a bug in the IDE code of both the 2.4 and 2.6
kernels. Here is a snippet from 2.4.32 starting from line 277 of
drivers/ide/ide-io.c:
if (drive->select.b.lba &&
(hwif->INB(IDE_COMMAND_REG) == WIN_SPECIFY))
/* some newer drives don't
* support WIN_SPECIFY
*/
return ide_stopped;
This code is attempting to ignore IDE errors if they were a result of the
WIN_SPECIFY command, but the IDE_COMMAND_REG is a write only register, if
it is read, IDE_STATUS_REG is read instead. Could someone confirm that
this is in fact a bug and not something I'm missing? Almost identical code
is also found in 2.6 kernels.
I think the best way to fix this would be to ignore the error in
set_geometry_intr() in ide-taskfile.c instead of in ide_error() as seen
above.
-Matt Schulkind
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/