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

Commit b5482d47 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] qla2xxx: Update version number to 8.03.00-k3.
  [SCSI] qla2xxx: Mask out 'reserved' bits while processing FLT regions.
  [SCSI] qla2xxx: Correct slab-error overwrite during vport creation and deletion.
  [SCSI] qla2xxx: Properly acknowledge IDC notification messages.
  [SCSI] qla2xxx: Remove interrupt request bit check in the response processing path in multiq mode.
  [SCSI] lpfc: introduce missing kfree
  [SCSI] libiscsi: Fix scsi command timeout oops in iscsi_eh_timed_out
  [SCSI] qla2xxx: fix Kernel Panic with Qlogic 2472 Card.
  [SCSI] ibmvfc: Increase cancel timeout
  [SCSI] ibmvfc: Fix rport relogin
  [SCSI] ibmvfc: Fix command timeout errors
  [SCSI] sg: fix device number in blktrace data
  [SCSI] scsi_scan: add missing interim SDEV_DEL state if slave_alloc fails
  [SCSI] ibmvscsi: Correct DMA mapping leak
parents 264b2990 822c05b6
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -1573,9 +1573,6 @@ static int ibmvfc_queuecommand(struct scsi_cmnd *cmnd,
	vfc_cmd->resp_len = sizeof(vfc_cmd->rsp);
	vfc_cmd->cancel_key = (unsigned long)cmnd->device->hostdata;
	vfc_cmd->tgt_scsi_id = rport->port_id;
	if ((rport->supported_classes & FC_COS_CLASS3) &&
	    (fc_host_supported_classes(vhost->host) & FC_COS_CLASS3))
		vfc_cmd->flags = IBMVFC_CLASS_3_ERR;
	vfc_cmd->iu.xfer_len = scsi_bufflen(cmnd);
	int_to_scsilun(cmnd->device->lun, &vfc_cmd->iu.lun);
	memcpy(vfc_cmd->iu.cdb, cmnd->cmnd, cmnd->cmd_len);
@@ -3266,6 +3263,7 @@ static int ibmvfc_alloc_target(struct ibmvfc_host *vhost, u64 scsi_id)
		return -ENOMEM;
	}

	memset(tgt, 0, sizeof(*tgt));
	tgt->scsi_id = scsi_id;
	tgt->new_scsi_id = scsi_id;
	tgt->vhost = vhost;
@@ -3576,9 +3574,18 @@ static void ibmvfc_log_ae(struct ibmvfc_host *vhost, int events)
static void ibmvfc_tgt_add_rport(struct ibmvfc_target *tgt)
{
	struct ibmvfc_host *vhost = tgt->vhost;
	struct fc_rport *rport;
	struct fc_rport *rport = tgt->rport;
	unsigned long flags;

	if (rport) {
		tgt_dbg(tgt, "Setting rport roles\n");
		fc_remote_port_rolechg(rport, tgt->ids.roles);
		spin_lock_irqsave(vhost->host->host_lock, flags);
		ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
		spin_unlock_irqrestore(vhost->host->host_lock, flags);
		return;
	}

	tgt_dbg(tgt, "Adding rport\n");
	rport = fc_remote_port_add(vhost->host, 0, &tgt->ids);
	spin_lock_irqsave(vhost->host->host_lock, flags);
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@
#define IBMVFC_DRIVER_VERSION		"1.0.4"
#define IBMVFC_DRIVER_DATE		"(November 14, 2008)"

#define IBMVFC_DEFAULT_TIMEOUT	15
#define IBMVFC_DEFAULT_TIMEOUT	60
#define IBMVFC_INIT_TIMEOUT		120
#define IBMVFC_MAX_REQUESTS_DEFAULT	100

+1 −0
Original line number Diff line number Diff line
@@ -432,6 +432,7 @@ static int map_sg_data(struct scsi_cmnd *cmd,
				sdev_printk(KERN_ERR, cmd->device,
				            "Can't allocate memory "
				            "for indirect table\n");
			scsi_dma_unmap(cmd);
			return 0;
		}
	}
+2 −1
Original line number Diff line number Diff line
@@ -1998,6 +1998,8 @@ int iscsi_host_add(struct Scsi_Host *shost, struct device *pdev)
	if (!shost->can_queue)
		shost->can_queue = ISCSI_DEF_XMIT_CMDS_MAX;

	if (!shost->transportt->eh_timed_out)
		shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out;
	return scsi_add_host(shost, pdev);
}
EXPORT_SYMBOL_GPL(iscsi_host_add);
@@ -2020,7 +2022,6 @@ struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht,
	shost = scsi_host_alloc(sht, sizeof(struct iscsi_host) + dd_data_size);
	if (!shost)
		return NULL;
	shost->transportt->eh_timed_out = iscsi_eh_cmd_timed_out;

	if (qdepth > ISCSI_MAX_CMD_PER_LUN || qdepth < 1) {
		if (qdepth != 0)
+1 −0
Original line number Diff line number Diff line
@@ -5258,6 +5258,7 @@ lpfc_send_els_event(struct lpfc_vport *vport,
			sizeof(struct lpfc_name));
		break;
	default:
		kfree(els_data);
		return;
	}
	memcpy(els_data->wwpn, &ndlp->nlp_portname, sizeof(struct lpfc_name));
Loading