camcontrol rescan all fails if there is no bus 0
Ed Maste
emaste at FreeBSD.org
Sun Oct 31 14:10:32 UTC 2010
On Tue, Oct 26, 2010 at 10:41:11AM -0600, Scott Long wrote:
> Ok, I guess I need to see if CAM_XPT_PATH_ID can get returned from the
> devmatch.
Is that not handled by this code that parses the returned XPT_DEV_MATCH
results in in reset_or_rescan_bus:
for (i = 0; i < matchccb.cdm.num_matches; i++) {
struct bus_match_result *bus_result;
...
bus_result = &matchccb.cdm.matches[i].result.bus_result;
/*
* We don't want to rescan or reset the xpt bus.
* See above.
*/
if ((int)bus_result->path_id == -1)
continue;
That is, we do the actual rescan only on legitimate busses after the
XPT_DEV_MATCH ioctl returns.
> What happens with this patch if you run it with no real buses
> registered (i.e. cam module present, but no SIMs present)?
From the user's perspective, with the stock camcontrol and no
registered busses I get:
[root at edlaptop ~]# camcontrol rescan all
camcontrol: CAMIOCOMMAND ioctl failed: Invalid argument
With the patch:
[root at edlaptop ~]# ./camcontrol rescan all
[root at edlaptop ~]#
And then with a umass device attached:
[root at edlaptop ~]# ./camcontrol rescan all
Re-scan of bus 0 was successful
-Ed
More information about the freebsd-scsi
mailing list