On Fri, Nov 19, 2010 at 03:47:11AM +0000, Ryan Stone wrote:
> Author: rstone
> Date: Fri Nov 19 03:47:10 2010
> New Revision: 215507
> URL: http://svn.freebsd.org/changeset/base/215507
> 
> Log:
>   When doing a camcontrol rescan all or a camcontrol reset all, use the 
> wildcard
>   path id for enumerating the available busses.  Previously camcontrol was
>   implicitly passing 0 as the first path id, which meant that if bus 0 was not
>   present camcontrol would fail with EINVAL instead of rescanning/resetting 
> any
>   busses that were present.
>   
>   Approved by:        emaste (mentor)
>   MFC after:  1 week
> 
> Modified:
>   head/sbin/camcontrol/camcontrol.c
> 
> Modified: head/sbin/camcontrol/camcontrol.c
> ==============================================================================
> --- head/sbin/camcontrol/camcontrol.c Fri Nov 19 01:58:11 2010        
> (r215506)
> +++ head/sbin/camcontrol/camcontrol.c Fri Nov 19 03:47:10 2010        
> (r215507)
> @@ -1526,6 +1526,7 @@ rescan_or_reset_bus(int bus, int rescan)
>       bzero(&(&matchccb.ccb_h)[1],
>             sizeof(struct ccb_dev_match) - sizeof(struct ccb_hdr));
>       matchccb.ccb_h.func_code = XPT_DEV_MATCH;
> +     matchccb.ccb_h.path_id = CAM_BUS_WILDCARD;
>       bufsize = sizeof(struct dev_match_result) * 20;
>       matchccb.cdm.match_buf_len = bufsize;
>       matchccb.cdm.matches=(struct dev_match_result *)malloc(bufsize);

Hrm, shouldn't that use CAM_XPT_PATH_ID instead of CAM_BUS_WILDCARD
as XPT_DEV_MATCH is marked XPT_FC_XPT_ONLY and supply a complete
Connect ID (i.e. the triple of Path ID, Target ID and LUN)? At least
that's what ken@ changed a similar patch of mine to in r126514:
http://svn.freebsd.org/viewvc/base/head/sbin/camcontrol/camcontrol.c?r1=126514&r2=126513&pathrev=126514&diff_format=u

In any case it's unfortunate that both CAM_BUS_WILDCARD and
CAM_XPT_PATH_ID are defined as ~0. According to the last CAM draft [1]
the XPT Path ID should be 0xff.

Marius

1: http://www.t10.org/ftp/t10/drafts/cam/cam-r12b.pdf

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to