Comment 31 for bug 26119

Revision history for this message
Jorge Juan (jjchico) wrote :

Looking into the code I think I understand the problem. Code up to 2.6.22 used "ALL" to refer to any firmware version and the checking function ide_in_drive_list() used strstr to check for the firmware version or for "ALL". From 2.6.23 on, any firmware version is noted as a NULL, and newer code in ide_in_drive_list() checks for the NULL before calling strstr. Calling strstr with NULL is unprdictable, thus the oops. The original patch was taken from 2.6.23 and applied to 2.6.22, where the convention was still "ALL" not NULL.

Thus, the patch above that replaces NULL's for "ALL"'s should work (and indeed it works in my case). Newer kernel versions (2.6.23 and above) works correctly.

Please consider applying the patch for a future 2.6.22 revision since it makes the related drives to hang the machine on boot, making the original problem even worst.

Thanks.