The attached patch is making the SCSI "mid-layer" vomit bag usable again. I have fixed some very ugly offenders as well in due course: 1. Moved the "informative" scsi_device_types[MAX_SCSI_DEVICE_CODE]; 2. Unneccessary/inappriopriate locking in ppa.c 3. "Write only" field in Scsi_CD struct: unsigned readcd_cdda:1; /* reading audio data using READ_CD */ It get's only set but is never used and never needed. After having a look at this SCSI code I really got the opinnion that it was written buy someone who didn't know what functions and local variables are good for. Everything there seems to be done in a maximally terse style... Anyway.