diff -Naur linux-2.6.1/drivers/scsi/scsi_sysfs.c linux-2.6.1-hidden/drivers/scsi/scsi_sysfs.c --- linux-2.6.1/drivers/scsi/scsi_sysfs.c Fri Jan 9 00:59:10 2004 +++ linux-2.6.1-hidden/drivers/scsi/scsi_sysfs.c Thu Jan 22 08:54:39 2004 @@ -149,7 +149,13 @@ /* all probing is done in the individual ->probe routines */ static int scsi_bus_match(struct device *dev, struct device_driver *gendrv) { - return 1; + struct scsi_device *sdev; + sdev = to_scsi_device(dev); + + if (sdev->hidden) + return 0; + else + return 1; } struct bus_type scsi_bus_type = { diff -Naur linux-2.6.1/include/scsi/scsi_device.h linux-2.6.1-hidden/include/scsi/scsi_device.h --- linux-2.6.1/include/scsi/scsi_device.h Fri Jan 9 00:59:06 2004 +++ linux-2.6.1-hidden/include/scsi/scsi_device.h Thu Jan 22 08:50:33 2004 @@ -94,6 +94,7 @@ unsigned skip_ms_page_8:1; /* do not use MODE SENSE page 0x08 */ unsigned skip_ms_page_3f:1; /* do not use MODE SENSE page 0x3f */ unsigned no_start_on_add:1; /* do not issue start on add */ + unsigned hidden:1; /* do not bind to upper level driver */ unsigned int device_blocked; /* Device returned QUEUE_FULL. */