Messages in this thread | | | Date | Sun, 15 Jan 2006 03:13:05 -0500 (EST) | From | Matthew Schulkind <> | Subject | Possible IDE bug in 2.4 and 2.6 |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |