Deleted Added
full compact
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 ---