Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 May 2010 13:09:36 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r207774 - stable/8/sys/cam
Message-ID:  <201005081309.o48D9a2n023188@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Sat May  8 13:09:36 2010
New Revision: 207774
URL: http://svn.freebsd.org/changeset/base/207774

Log:
  MFC r207433:
  Revert r198705.
  As scottl@ noticed, max_target/max_lun was intended to be only a hint for
  existing bus scanner. Some FC/SAS SIMs report fake values there, that are
  smaller then maximum supported IDs. In that case this check makes impossible
  manual scan outside hinted range.
  
  For ATA/SATA SIMs respective check was instead implemented at SIM level.
  Newer SCSI SIMs expected to have these checks at driver or firmware level.
  Some older SCSI SIMs have no this check and the issues will get back there.

Modified:
  stable/8/sys/cam/cam_xpt.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/geom/sched/   (props changed)

Modified: stable/8/sys/cam/cam_xpt.c
==============================================================================
--- stable/8/sys/cam/cam_xpt.c	Sat May  8 13:07:50 2010	(r207773)
+++ stable/8/sys/cam/cam_xpt.c	Sat May  8 13:09:36 2010	(r207774)
@@ -462,34 +462,7 @@ xptioctl(struct cdev *dev, u_long cmd, c
 			ccb = xpt_alloc_ccb();
 
 			CAM_SIM_LOCK(bus->sim);
-			/* Ensure passed in target/lun supported on this bus. */
-			if ((inccb->ccb_h.target_id != CAM_TARGET_WILDCARD) ||
-			    (inccb->ccb_h.target_lun != CAM_LUN_WILDCARD)) {
-				if (xpt_create_path(&ccb->ccb_h.path,
-					    xpt_periph,
-					    inccb->ccb_h.path_id,
-					    CAM_TARGET_WILDCARD,
-					    CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
-					error = EINVAL;
-					CAM_SIM_UNLOCK(bus->sim);
-					xpt_free_ccb(ccb);
-					break;
-				}
-				xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path,
-				    inccb->ccb_h.pinfo.priority);
-				ccb->ccb_h.func_code = XPT_PATH_INQ;
-				xpt_action(ccb);
-				xpt_free_path(ccb->ccb_h.path);
-				if ((inccb->ccb_h.target_id != CAM_TARGET_WILDCARD &&
-				    inccb->ccb_h.target_id > ccb->cpi.max_target) ||
-				    (inccb->ccb_h.target_lun != CAM_LUN_WILDCARD &&
-				    inccb->ccb_h.target_lun > ccb->cpi.max_lun)) {
-					error = EINVAL;
-					CAM_SIM_UNLOCK(bus->sim);
-					xpt_free_ccb(ccb);
-					break;
-				}
-			}
+
 			/*
 			 * Create a path using the bus, target, and lun the
 			 * user passed in.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005081309.o48D9a2n023188>