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

Commit 3b4df68d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "This is a set of six fixes.  Two are instant crash/null deref types
  (storvsc and isci).  The two qla2xxx are initialisation problems that
  cause MSI-X failures and card misdetection, the isci erroneous macro
  is actually illegal C that's causing a miscompile with certain gcc
  versions and the be2iscsi bad if expression is a static checker fix"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  [SCSI] storvsc: NULL pointer dereference fix
  [SCSI] qla2xxx: Poll during initialization for ISP25xx and ISP83xx
  [SCSI] isci: correct erroneous for_each_isci_host macro
  [SCSI] isci: fix reset timeout handling
  [SCSI] be2iscsi: fix bad if expression
  [SCSI] qla2xxx: Fix multiqueue MSI-X registration.
parents a4ecdf82 b12bb60d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -325,7 +325,7 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
		if (!abrt_task->sc || abrt_task->state == ISCSI_TASK_FREE)
		if (!abrt_task->sc || abrt_task->state == ISCSI_TASK_FREE)
			continue;
			continue;


		if (abrt_task->sc->device->lun != abrt_task->sc->device->lun)
		if (sc->device->lun != abrt_task->sc->device->lun)
			continue;
			continue;


		/* Invalidate WRB Posted for this Task */
		/* Invalidate WRB Posted for this Task */
+2 −3
Original line number Original line Diff line number Diff line
@@ -311,9 +311,8 @@ static inline struct Scsi_Host *to_shost(struct isci_host *ihost)
}
}


#define for_each_isci_host(id, ihost, pdev) \
#define for_each_isci_host(id, ihost, pdev) \
	for (id = 0, ihost = to_pci_info(pdev)->hosts[id]; \
	for (id = 0; id < SCI_MAX_CONTROLLERS && \
	     id < ARRAY_SIZE(to_pci_info(pdev)->hosts) && ihost; \
	     (ihost = to_pci_info(pdev)->hosts[id]); id++)
	     ihost = to_pci_info(pdev)->hosts[++id])


static inline void wait_for_start(struct isci_host *ihost)
static inline void wait_for_start(struct isci_host *ihost)
{
{
+0 −7
Original line number Original line Diff line number Diff line
@@ -615,13 +615,6 @@ static void sci_apc_agent_link_up(struct isci_host *ihost,
					  SCIC_SDS_APC_WAIT_LINK_UP_NOTIFICATION);
					  SCIC_SDS_APC_WAIT_LINK_UP_NOTIFICATION);
	} else {
	} else {
		/* the phy is already the part of the port */
		/* the phy is already the part of the port */
		u32 port_state = iport->sm.current_state_id;

		/* if the PORT'S state is resetting then the link up is from
		 * port hard reset in this case, we need to tell the port
		 * that link up is recieved
		 */
		BUG_ON(port_state != SCI_PORT_RESETTING);
		port_agent->phy_ready_mask |= 1 << phy_index;
		port_agent->phy_ready_mask |= 1 << phy_index;
		sci_port_link_up(iport, iphy);
		sci_port_link_up(iport, iphy);
	}
	}
+1 −1
Original line number Original line Diff line number Diff line
@@ -801,7 +801,7 @@ int isci_task_I_T_nexus_reset(struct domain_device *dev)
		/* XXX: need to cleanup any ireqs targeting this
		/* XXX: need to cleanup any ireqs targeting this
		 * domain_device
		 * domain_device
		 */
		 */
		ret = TMF_RESP_FUNC_COMPLETE;
		ret = -ENODEV;
		goto out;
		goto out;
	}
	}


+1 −2
Original line number Original line Diff line number Diff line
@@ -2996,8 +2996,7 @@ struct qla_hw_data {
				IS_QLA82XX(ha) || IS_QLA83XX(ha) || \
				IS_QLA82XX(ha) || IS_QLA83XX(ha) || \
				IS_QLA8044(ha))
				IS_QLA8044(ha))
#define IS_MSIX_NACK_CAPABLE(ha) (IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_MSIX_NACK_CAPABLE(ha) (IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_NOPOLLING_TYPE(ha)	((IS_QLA25XX(ha) || IS_QLA81XX(ha) || \
#define IS_NOPOLLING_TYPE(ha)	(IS_QLA81XX(ha) && (ha)->flags.msix_enabled)
			IS_QLA83XX(ha)) && (ha)->flags.msix_enabled)
#define IS_FAC_REQUIRED(ha)	(IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_FAC_REQUIRED(ha)	(IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_NOCACHE_VPD_TYPE(ha)	(IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_NOCACHE_VPD_TYPE(ha)	(IS_QLA81XX(ha) || IS_QLA83XX(ha))
#define IS_ALOGIO_CAPABLE(ha)	(IS_QLA23XX(ha) || IS_FWI2_CAPABLE(ha))
#define IS_ALOGIO_CAPABLE(ha)	(IS_QLA23XX(ha) || IS_FWI2_CAPABLE(ha))
Loading