Hello. Benjamin Herrenschmidt wrote:
At least 2 drivers (siimage and cs5535) have a bug where they use the construct:
ide_drive_t *pair = &hwif->drives[drive->dn ^ 1];
To access the other drive in a master/slave pair. This is bogus because drive->dn is not the unit number, but the global drive number, thus can be 2 & 3 for ide1, 4 & 5 for ide2 etc...
Huh? With drive->dn calculated as: for (unit = 0; unit < MAX_DRIVES; ++unit) { ide_drive_t *drive = &hwif->drives[unit]; drive->dn = (hwif->channel ? 2 : 0) + unit; (with MAX_DRIVES always being 2) how comes it may be 4 or 5?!
Please apply to 2.6.24 if no objection.
I object. :-) MBR, Sergei - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html