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

Commit 0375ec58 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull misc SCSI driver updates from James Bottomley:
 "This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,
  ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and
  ibmvfc error handling) and the first round of esas2r checker fixes and
  finally the much anticipated big endian additions for megaraid_sas"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)
  [SCSI] fnic: fnic Driver Tuneables Exposed through CLI
  [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg
  [SCSI] fnic: Hitting BUG_ON(io_req->abts_done) in fnic_rport_exch_reset
  [SCSI] fnic: Remove QUEUE_FULL handling code
  [SCSI] fnic: On system with >1.1TB RAM, VIC fails multipath after boot up
  [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated
  [SCSI] sd: Fix potential out-of-bounds access
  [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42
  [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout
  [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.
  [SCSI] lpfc 8.3.42: Fix driver's abort loop functionality to skip IOs already getting aborted
  [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices
  [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads
  [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection
  [SCSI] lpfc 8.3.42: Fixed driver iocbq structure's iocb_flag field running out of space
  [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic
  [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret
  [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.
  [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling
  [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode
  ...
parents bff157b3 fc85799e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
Release Date    : Sat. Aug 31, 2013 17:00:00 PST 2013 -
			(emaild-id:megaraidlinux@lsi.com)
			Adam Radford
			Kashyap Desai
			Sumit Saxena
Current Version : 06.700.06.00-rc1
Old Version     : 06.600.18.00-rc1
    1. Add High Availability clustering support using shared Logical Disks.
    2. Version and Changelog update.
-------------------------------------------------------------------------------
Release Date    : Wed. May 15, 2013 17:00:00 PST 2013 -
			(emaild-id:megaraidlinux@lsi.com)
			Adam Radford
+1 −1
Original line number Diff line number Diff line
@@ -692,7 +692,7 @@ ahc_find_pci_device(ahc_dev_softc_t pci)
	 * ID as valid.
	 */
	if (ahc_get_pci_function(pci) > 0
	 && ahc_9005_subdevinfo_valid(vendor, device, subvendor, subdevice)
	 && ahc_9005_subdevinfo_valid(device, vendor, subdevice, subvendor)
	 && SUBID_9005_MFUNCENB(subdevice) == 0)
		return (NULL);

+8 −3
Original line number Diff line number Diff line
@@ -860,8 +860,13 @@ bool esas2r_process_fs_ioctl(struct esas2r_adapter *a,
		return false;
	}

	if (fsc->command >= cmdcnt) {
		fs->status = ATTO_STS_INV_FUNC;
		return false;
	}

	func = cmd_to_fls_func[fsc->command];
	if (fsc->command >= cmdcnt || func == 0xFF) {
	if (func == 0xFF) {
		fs->status = ATTO_STS_INV_FUNC;
		return false;
	}
@@ -1355,7 +1360,7 @@ void esas2r_nvram_set_defaults(struct esas2r_adapter *a)
	u32 time = jiffies_to_msecs(jiffies);

	esas2r_lock_clear_flags(&a->flags, AF_NVR_VALID);
	memcpy(n, &default_sas_nvram, sizeof(struct esas2r_sas_nvram));
	*n = default_sas_nvram;
	n->sas_addr[3] |= 0x0F;
	n->sas_addr[4] = HIBYTE(LOWORD(time));
	n->sas_addr[5] = LOBYTE(LOWORD(time));
@@ -1373,7 +1378,7 @@ void esas2r_nvram_get_defaults(struct esas2r_adapter *a,
	 * address out first.
	 */
	memcpy(&sas_addr[0], a->nvram->sas_addr, 8);
	memcpy(nvram, &default_sas_nvram, sizeof(struct esas2r_sas_nvram));
	*nvram = default_sas_nvram;
	memcpy(&nvram->sas_addr[0], &sas_addr[0], 8);
}

+4 −4
Original line number Diff line number Diff line
@@ -665,7 +665,7 @@ void esas2r_kill_adapter(int i)

int esas2r_cleanup(struct Scsi_Host *host)
{
	struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata;
	struct esas2r_adapter *a;
	int index;

	if (host == NULL) {
@@ -678,6 +678,7 @@ int esas2r_cleanup(struct Scsi_Host *host)
	}

	esas2r_debug("esas2r_cleanup called for host %p", host);
	a = (struct esas2r_adapter *)host->hostdata;
	index = a->index;
	esas2r_kill_adapter(index);
	return index;
@@ -808,7 +809,7 @@ static void esas2r_init_pci_cfg_space(struct esas2r_adapter *a)
	int pcie_cap_reg;

	pcie_cap_reg = pci_find_capability(a->pcid, PCI_CAP_ID_EXP);
	if (0xffff && pcie_cap_reg) {
	if (0xffff & pcie_cap_reg) {
		u16 devcontrol;

		pci_read_config_word(a->pcid, pcie_cap_reg + PCI_EXP_DEVCTL,
@@ -1550,8 +1551,7 @@ void esas2r_reset_chip(struct esas2r_adapter *a)
	 * to not overwrite a previous crash that was saved.
	 */
	if ((a->flags2 & AF2_COREDUMP_AVAIL)
	    && !(a->flags2 & AF2_COREDUMP_SAVED)
	    && a->fw_coredump_buff) {
	    && !(a->flags2 & AF2_COREDUMP_SAVED)) {
		esas2r_read_mem_block(a,
				      a->fw_coredump_buff,
				      MW_DATA_ADDR_SRAM + 0x80000,
+1 −1
Original line number Diff line number Diff line
@@ -415,7 +415,7 @@ static int csmi_ioctl_callback(struct esas2r_adapter *a,
		lun = tm->lun;
	}

	if (path > 0 || tid > ESAS2R_MAX_ID) {
	if (path > 0) {
		rq->func_rsp.ioctl_rsp.csmi.csmi_status = cpu_to_le32(
			CSMI_STS_INV_PARAM);
		return false;
Loading