Date: Sat, 19 Feb 2005 03:53:00 GMT From: Scott Long <scottl@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 71284 for review Message-ID: <200502190353.j1J3r0TG075198@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=71284 Change 71284 by scottl@scottl-junior on 2005/02/19 03:52:53 IFC: partial merge of cam_xpt.c rev 1.147 Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#10 integrate Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#10 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.146 2005/01/05 22:34:34 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.147 2005/01/22 22:46:45 mjacob Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -76,6 +76,16 @@ /* number of high powered commands that can go through right now */ static int num_highpower = CAM_MAX_HIGHPOWER; +/* + * If we're not quirked to search <= the first 8 luns + * and we are either quirked to search above lun 8, + * or we're > SCSI-2, we can look for luns above lun 8. + */ +#define CAN_SRCH_HI(dv) \ + (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ + && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ + || SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2)) + typedef enum { XPT_FLAG_OPEN = 0x01 } xpt_flags; @@ -5135,7 +5145,7 @@ s = splcam(); device = TAILQ_FIRST(&target->ed_entries); if (device != NULL) { - phl = device->quirk->quirks & CAM_QUIRK_HILUNS; + phl = CAN_SRCH_HI(device); if (device->lun_id == 0) device = TAILQ_NEXT(device, links); } @@ -5151,8 +5161,8 @@ if ((device->quirk->quirks & CAM_QUIRK_NOLUNS) == 0) { /* Try the next lun */ - if (lun_id < (CAM_SCSI2_MAXLUN-1) || - (device->quirk->quirks & CAM_QUIRK_HILUNS)) + if (lun_id < (CAM_SCSI2_MAXLUN-1) + || CAN_SRCH_HI(device)) lun_id++; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200502190353.j1J3r0TG075198>