On Thursday 18 October 2007, 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...> > This causes the driver to access beyond the drive array into lalaland> for any other interface than ide0 and in some case, actually crash :-)> > These 3 patches fix those by introducing a ide_get_paired_drive()> helper that does the right thing and then using it.> > Please apply to 2.6.24 if no objection.