Re: [PATCH] ieee1394: sbp2: fix rescan-scsi-bus

From: Stefan Richter
Date: Sun Feb 17 2008 - 12:59:15 EST


James Bottomley wrote:
> On Sun, 2008-02-17 at 14:57 +0100, Stefan Richter wrote:
>> rescan-scsi-bus used to add SBP-2 targets which weren't there.
...
>> +++ linux/drivers/ieee1394/sbp2.c
>> @@ -1974,6 +1974,9 @@ static int sbp2scsi_slave_alloc(struct s
>> {
>> struct sbp2_lu *lu = (struct sbp2_lu *)sdev->host->hostdata[0];
>>
>> + if (sdev->lun != 0 || sdev->id != lu->ud->id || sdev->channel != 0)
>> + return -ENODEV;
>> +
>
> It's hard to know what to say about this. The infrastructure for
> scanning did move to separate scanned (old parallel and a few other)
> busses from hotplug ones (which is what sbp2 is). You really need to
> look at the scan_finished and user_scan callbacks. Unfortunately the
> latter is a transport class function and how all the modern busses (FC,
> SAS and the like do this).

We add SBP-2 devices when they are detected on the FireWire bus.

The status with sbp2 (after the patch) is:
- sbp2 calls scsi_add_device and scsi_remove_device when an SBP-2
logical unit comes and goes away.
- In between those, the user may call scsi_remove_device and
optionally scsi_add_device via SCSI core's userspace interfaces
and will get the device removed and re-added, respectively.
However, the latter is an utter useless pastime. And so would be
scsi_transport_template.user_scan().

Implementing scsi_host_template.scan_finished() is logged to be done as
a possible feature addition. It has ultra-low priority on my to-do list
though because the drivers have only little more knowledge than
userspace has about when all existing devices at a point in time might
have been discovered.
--
Stefan Richter
-=====-==--- --=- =---=
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/