mpt_cam.c (224761) | mpt_cam.c (225950) |
---|---|
1/*- 2 * FreeBSD/CAM specific routines for LSI '909 FC adapters. 3 * FreeBSD Version. 4 * 5 * Copyright (c) 2000, 2001 by Greg Ansley 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 80 unchanged lines hidden (view full) --- 89 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 90 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 91 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 92 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 93 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT 94 * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 95 */ 96#include <sys/cdefs.h> | 1/*- 2 * FreeBSD/CAM specific routines for LSI '909 FC adapters. 3 * FreeBSD Version. 4 * 5 * Copyright (c) 2000, 2001 by Greg Ansley 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 80 unchanged lines hidden (view full) --- 89 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 90 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 91 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 92 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 93 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT 94 * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 95 */ 96#include <sys/cdefs.h> |
97__FBSDID("$FreeBSD: head/sys/dev/mpt/mpt_cam.c 224761 2011-08-10 19:05:22Z marius $"); | 97__FBSDID("$FreeBSD: head/sys/dev/mpt/mpt_cam.c 225950 2011-10-03 20:32:55Z ken $"); |
98 99#include <dev/mpt/mpt.h> 100#include <dev/mpt/mpt_cam.h> 101#include <dev/mpt/mpt_raid.h> 102 103#include "dev/mpt/mpilib/mpi_ioc.h" /* XXX Fix Event Handling!!! */ 104#include "dev/mpt/mpilib/mpi_init.h" 105#include "dev/mpt/mpilib/mpi_targ.h" --- 3056 unchanged lines hidden (view full) --- 3162 sstate = scsi_io_reply->SCSIState; 3163 3164 ccb = req->ccb; 3165 ccb->csio.resid = 3166 ccb->csio.dxfer_len - le32toh(scsi_io_reply->TransferCount); 3167 3168 if ((sstate & MPI_SCSI_STATE_AUTOSENSE_VALID) != 0 3169 && (ccb->ccb_h.flags & (CAM_SENSE_PHYS | CAM_SENSE_PTR)) == 0) { | 98 99#include <dev/mpt/mpt.h> 100#include <dev/mpt/mpt_cam.h> 101#include <dev/mpt/mpt_raid.h> 102 103#include "dev/mpt/mpilib/mpi_ioc.h" /* XXX Fix Event Handling!!! */ 104#include "dev/mpt/mpilib/mpi_init.h" 105#include "dev/mpt/mpilib/mpi_targ.h" --- 3056 unchanged lines hidden (view full) --- 3162 sstate = scsi_io_reply->SCSIState; 3163 3164 ccb = req->ccb; 3165 ccb->csio.resid = 3166 ccb->csio.dxfer_len - le32toh(scsi_io_reply->TransferCount); 3167 3168 if ((sstate & MPI_SCSI_STATE_AUTOSENSE_VALID) != 0 3169 && (ccb->ccb_h.flags & (CAM_SENSE_PHYS | CAM_SENSE_PTR)) == 0) { |
3170 uint32_t sense_returned; 3171 |
|
3170 ccb->ccb_h.status |= CAM_AUTOSNS_VALID; | 3172 ccb->ccb_h.status |= CAM_AUTOSNS_VALID; |
3171 ccb->csio.sense_resid = 3172 ccb->csio.sense_len - le32toh(scsi_io_reply->SenseCount); | 3173 3174 sense_returned = le32toh(scsi_io_reply->SenseCount); 3175 if (sense_returned < ccb->csio.sense_len) 3176 ccb->csio.sense_resid = ccb->csio.sense_len - 3177 sense_returned; 3178 else 3179 ccb->csio.sense_resid = 0; 3180 |
3173 bcopy(req->sense_vbuf, &ccb->csio.sense_data, | 3181 bcopy(req->sense_vbuf, &ccb->csio.sense_data, |
3174 min(ccb->csio.sense_len, 3175 le32toh(scsi_io_reply->SenseCount))); | 3182 min(ccb->csio.sense_len, sense_returned)); |
3176 } 3177 3178 if ((sstate & MPI_SCSI_STATE_QUEUE_TAG_REJECTED) != 0) { 3179 /* 3180 * Tag messages rejected, but non-tagged retry 3181 * was successful. 3182XXXX 3183 mpt_set_tags(mpt, devinfo, MPT_QUEUE_NONE); --- 2444 unchanged lines hidden --- | 3183 } 3184 3185 if ((sstate & MPI_SCSI_STATE_QUEUE_TAG_REJECTED) != 0) { 3186 /* 3187 * Tag messages rejected, but non-tagged retry 3188 * was successful. 3189XXXX 3190 mpt_set_tags(mpt, devinfo, MPT_QUEUE_NONE); --- 2444 unchanged lines hidden --- |