From owner-freebsd-scsi@FreeBSD.ORG Sun Oct 31 14:10:32 2010 Return-Path: Delivered-To: freebsd-scsi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 831C1106564A for ; Sun, 31 Oct 2010 14:10:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mail1.sandvine.com (Mail1.sandvine.com [64.7.137.134]) by mx1.freebsd.org (Postfix) with ESMTP id 05A2D8FC18 for ; Sun, 31 Oct 2010 14:10:31 +0000 (UTC) Received: from labgw2.phaedrus.sandvine.com (192.168.222.22) by WTL-EXCH-1.sandvine.com (192.168.196.31) with Microsoft SMTP Server id 14.0.694.0; Sun, 31 Oct 2010 10:10:31 -0400 Received: by labgw2.phaedrus.sandvine.com (Postfix, from userid 10332) id 1EB0E33C00; Sun, 31 Oct 2010 10:10:31 -0400 (EDT) Date: Sun, 31 Oct 2010 10:10:31 -0400 From: Ed Maste To: Scott Long Message-ID: <20101031141031.GA14661@sandvine.com> References: <20101026160457.GA61133@sandvine.com> <9EC3B874-B089-4ED4-9A12-FA7A0E170A7B@samsco.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <9EC3B874-B089-4ED4-9A12-FA7A0E170A7B@samsco.org> User-Agent: Mutt/1.4.2.1i Cc: freebsd-scsi@FreeBSD.org Subject: Re: camcontrol rescan all fails if there is no bus 0 X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Oct 2010 14:10:32 -0000 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