From owner-svn-src-all@FreeBSD.ORG Tue Jan 1 07:04:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1A61AD6A; Tue, 1 Jan 2013 07:04:26 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id DA50E8FC0A; Tue, 1 Jan 2013 07:04:25 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0174P3p006270; Tue, 1 Jan 2013 07:04:25 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0174PIh006269; Tue, 1 Jan 2013 07:04:25 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201301010704.r0174PIh006269@svn.freebsd.org> From: Xin LI Date: Tue, 1 Jan 2013 07:04:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r244922 - stable/8/sys/dev/arcmsr X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jan 2013 07:04:26 -0000 Author: delphij Date: Tue Jan 1 07:04:25 2013 New Revision: 244922 URL: http://svnweb.freebsd.org/changeset/base/244922 Log: MFC r244369 (jimharris): Use CAM_DEV_NOT_THERE instead of CAM_SEL_TIMEOUT to report nonexistent LUNs for the virtual processor device. This removes lots of CAM warnings, and follows similar recent changes to tws(4) and twa(4) drivers. Also fix case where CAM_REQ_CMP was getting OR'd with CAM_DEV_NOT_THERE in the nonexistent LUN case, resulting in different CAM status (CAM_UA_TERMIO) getting reported to CAM. This issue existing previously, but was more subtle because it changed CAM_SEL_TIMEOUT to CAM_CMD_TIMEOUT. Sponsored by: Intel Reported and tested by: Willem Jan Withagen Modified: stable/8/sys/dev/arcmsr/arcmsr.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/dev/ (props changed) stable/8/sys/dev/arcmsr/ (props changed) Modified: stable/8/sys/dev/arcmsr/arcmsr.c ============================================================================== --- stable/8/sys/dev/arcmsr/arcmsr.c Tue Jan 1 07:02:33 2013 (r244921) +++ stable/8/sys/dev/arcmsr/arcmsr.c Tue Jan 1 07:04:25 2013 (r244922) @@ -2432,14 +2432,13 @@ static void arcmsr_bus_reset(struct Adap static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb, union ccb * pccb) { - pccb->ccb_h.status |= CAM_REQ_CMP; switch (pccb->csio.cdb_io.cdb_bytes[0]) { case INQUIRY: { unsigned char inqdata[36]; char *buffer=pccb->csio.data_ptr; if (pccb->ccb_h.target_lun) { - pccb->ccb_h.status |= CAM_SEL_TIMEOUT; + pccb->ccb_h.status |= CAM_DEV_NOT_THERE; xpt_done(pccb); return; } @@ -2455,6 +2454,7 @@ static void arcmsr_handle_virtual_comman strncpy(&inqdata[16], "RAID controller ", 16); /* Product Identification */ strncpy(&inqdata[32], "R001", 4); /* Product Revision */ memcpy(buffer, inqdata, sizeof(inqdata)); + pccb->ccb_h.status |= CAM_REQ_CMP; xpt_done(pccb); } break; @@ -2464,10 +2464,12 @@ static void arcmsr_handle_virtual_comman pccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; pccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; } + pccb->ccb_h.status |= CAM_REQ_CMP; xpt_done(pccb); } break; default: + pccb->ccb_h.status |= CAM_REQ_CMP; xpt_done(pccb); } }