Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a28ca3f3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] bnx2i: Bug fixes related to MTU change issue when there are active iscsi sessions
  [SCSI] ibmvscsi: fix DMA API misuse
  [SCSI] wd7000: fix reset handler typo spin_unlock_irq() => spin_lock_irq()
  [SCSI] zfcp: Fix tracing of requests with error status
  [SCSI] zfcp: Update MAINTAINERS entry
  [SCSI] iscsi_tcp: fix relogin/shutdown hang
  [SCSI] qla2xxx: fix lock imbalance
  [SCSI] lpfc: fix lock imbalances
  [SCSI] be2iscsi: fix lock imbalance
  [SCSI] dpt_i2o: several use after free issues
parents 61fb06cc 490475a9
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -4791,12 +4791,11 @@ F: drivers/s390/crypto/


S390 ZFCP DRIVER
S390 ZFCP DRIVER
M:	Christof Schmitt <christof.schmitt@de.ibm.com>
M:	Christof Schmitt <christof.schmitt@de.ibm.com>
M:	Martin Peschke <mp3@de.ibm.com>
M:	Swen Schillig <swen@vnet.ibm.com>
M:	linux390@de.ibm.com
M:	linux390@de.ibm.com
L:	linux-s390@vger.kernel.org
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
S:	Supported
F:	Documentation/s390/zfcpdump.txt
F:	drivers/s390/scsi/zfcp_*
F:	drivers/s390/scsi/zfcp_*


S390 IUCV NETWORK LAYER
S390 IUCV NETWORK LAYER
+3 −3
Original line number Original line Diff line number Diff line
@@ -2105,7 +2105,8 @@ static void zfcp_fsf_req_trace(struct zfcp_fsf_req *req, struct scsi_cmnd *scsi)
	blktrc.inb_usage = req->qdio_req.qdio_inb_usage;
	blktrc.inb_usage = req->qdio_req.qdio_inb_usage;
	blktrc.outb_usage = req->qdio_req.qdio_outb_usage;
	blktrc.outb_usage = req->qdio_req.qdio_outb_usage;


	if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA) {
	if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA &&
	    !(req->status & ZFCP_STATUS_FSFREQ_ERROR)) {
		blktrc.flags |= ZFCP_BLK_LAT_VALID;
		blktrc.flags |= ZFCP_BLK_LAT_VALID;
		blktrc.channel_lat = lat_in->channel_lat * ticks;
		blktrc.channel_lat = lat_in->channel_lat * ticks;
		blktrc.fabric_lat = lat_in->fabric_lat * ticks;
		blktrc.fabric_lat = lat_in->fabric_lat * ticks;
@@ -2157,9 +2158,8 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
	fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp;
	fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp;
	zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt);
	zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt);


	zfcp_fsf_req_trace(req, scpnt);

skip_fsfstatus:
skip_fsfstatus:
	zfcp_fsf_req_trace(req, scpnt);
	zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req);
	zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req);


	scpnt->host_scribble = NULL;
	scpnt->host_scribble = NULL;
+1 −0
Original line number Original line Diff line number Diff line
@@ -169,6 +169,7 @@ unsigned char mgmt_invalidate_icds(struct beiscsi_hba *phba,
		SE_DEBUG(DBG_LVL_1,
		SE_DEBUG(DBG_LVL_1,
			 "Failed to allocate memory for"
			 "Failed to allocate memory for"
			 "mgmt_invalidate_icds \n");
			 "mgmt_invalidate_icds \n");
		spin_unlock(&ctrl->mbox_lock);
		return -1;
		return -1;
	}
	}
	nonemb_cmd.size = sizeof(struct invalidate_commands_params_in);
	nonemb_cmd.size = sizeof(struct invalidate_commands_params_in);
+2 −0
Original line number Original line Diff line number Diff line
@@ -362,6 +362,7 @@ struct bnx2i_hba {
	u32 num_ccell;
	u32 num_ccell;


	int ofld_conns_active;
	int ofld_conns_active;
	wait_queue_head_t eh_wait;


	int max_active_conns;
	int max_active_conns;
	struct iscsi_cid_queue cid_que;
	struct iscsi_cid_queue cid_que;
@@ -381,6 +382,7 @@ struct bnx2i_hba {
	spinlock_t lock;	/* protects hba structure access */
	spinlock_t lock;	/* protects hba structure access */
	struct mutex net_dev_lock;/* sync net device access */
	struct mutex net_dev_lock;/* sync net device access */


	int hba_shutdown_tmo;
	/*
	/*
	 * PCI related info.
	 * PCI related info.
	 */
	 */
+12 −1
Original line number Original line Diff line number Diff line
@@ -177,11 +177,22 @@ void bnx2i_stop(void *handle)
	struct bnx2i_hba *hba = handle;
	struct bnx2i_hba *hba = handle;


	/* check if cleanup happened in GOING_DOWN context */
	/* check if cleanup happened in GOING_DOWN context */
	clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
	if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN,
	if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN,
				&hba->adapter_state))
				&hba->adapter_state))
		iscsi_host_for_each_session(hba->shost,
		iscsi_host_for_each_session(hba->shost,
					    bnx2i_drop_session);
					    bnx2i_drop_session);

	/* Wait for all endpoints to be torn down, Chip will be reset once
	 *  control returns to network driver. So it is required to cleanup and
	 * release all connection resources before returning from this routine.
	 */
	wait_event_interruptible_timeout(hba->eh_wait,
					 (hba->ofld_conns_active == 0),
					 hba->hba_shutdown_tmo);
	/* This flag should be cleared last so that ep_disconnect() gracefully
	 * cleans up connection context
	 */
	clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
}
}


/**
/**
Loading