..
I once sent a patch to -mm:
-#define OK_STAT(stat,good,bad) (((stat)&((good)|(bad)))==(good))Assuming hdb is a CDROM/optical drive, then this change makes sense for
+#define OK_STAT(stat,good,bad) (((stat)&((good)|(bad)))==((stat)&(good)))
#define BAD_R_STAT (BUSY_STAT | ERR_STAT)
#define BAD_W_STAT (BAD_R_STAT | WRERR_STAT)
#define BAD_STAT (BAD_R_STAT | DRQ_STAT)
that. But I don't think it is a valid (good) change for regular ATA disks.
A more complex patch is required, one which correctly handles each drive
type.