Date: Sun, 31 Oct 2010 10:10:31 -0400 From: Ed Maste <emaste@FreeBSD.org> To: Scott Long <scottl@samsco.org> Cc: freebsd-scsi@FreeBSD.org Subject: Re: camcontrol rescan all fails if there is no bus 0 Message-ID: <20101031141031.GA14661@sandvine.com> In-Reply-To: <9EC3B874-B089-4ED4-9A12-FA7A0E170A7B@samsco.org> References: <AANLkTiksEn2DP7Y=x=u99qcf28bBEspOWRnsWUfhaOPg@mail.gmail.com> <E4EB1292-C4F8-4385-8ACD-58BE792988F1@samsco.org> <20101026160457.GA61133@sandvine.com> <9EC3B874-B089-4ED4-9A12-FA7A0E170A7B@samsco.org>
index | next in thread | previous in thread | raw e-mail
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@edlaptop ~]# camcontrol rescan all
camcontrol: CAMIOCOMMAND ioctl failed: Invalid argument
With the patch:
[root@edlaptop ~]# ./camcontrol rescan all
[root@edlaptop ~]#
And then with a umass device attached:
[root@edlaptop ~]# ./camcontrol rescan all
Re-scan of bus 0 was successful
-Ed
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101031141031.GA14661>
