Linus Torvalds
0603006b45
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
...
Pull SCSI fixes from James Bottomley:
"This is seven basic fixes (plus one MAINTAINER update) which came in
close to the merge window"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
ipr: Fix error return code in ipr_probe_ioa()
fcoe: add missing destroy_workqueue() on error in fcoe_init()
lpfc: Fix possible NULL pointer dereference
fcoe: Use default VLAN for FIP VLAN discovery
ipr: Wait to do async scan until scsi host is initialized
MAINTAINERS: Update cxlflash maintainers
cxlflash: Verify problem state area is mapped before notifying shutdown
lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from lpfc_send_taskmgmt()
2016-08-05 23:47:27 -04:00
Linus Torvalds
c8d0267efd
Merge tag 'pci-v4.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
...
Pull PCI updates from Bjorn Helgaas:
"Highlights:
- ARM64 support for ACPI host bridges
- new drivers for Axis ARTPEC-6 and Marvell Aardvark
- new pci_alloc_irq_vectors() interface for MSI-X, MSI, legacy INTx
- pci_resource_to_user() cleanup (more to come)
Detailed summary:
Enumeration:
- Move ecam.h to linux/include/pci-ecam.h (Jayachandran C)
- Add parent device field to ECAM struct pci_config_window (Jayachandran C)
- Add generic MCFG table handling (Tomasz Nowicki)
- Refactor pci_bus_assign_domain_nr() for CONFIG_PCI_DOMAINS_GENERIC (Tomasz Nowicki)
- Factor DT-specific pci_bus_find_domain_nr() code out (Tomasz Nowicki)
Resource management:
- Add devm_request_pci_bus_resources() (Bjorn Helgaas)
- Unify pci_resource_to_user() declarations (Bjorn Helgaas)
- Implement pci_resource_to_user() with pcibios_resource_to_bus() (microblaze, powerpc, sparc) (Bjorn Helgaas)
- Request host bridge window resources (designware, iproc, rcar, xgene, xilinx, xilinx-nwl) (Bjorn Helgaas)
- Make PCI I/O space optional on ARM32 (Bjorn Helgaas)
- Ignore write combining when mapping I/O port space (Bjorn Helgaas)
- Claim bus resources on MIPS PCI_PROBE_ONLY set-ups (Bjorn Helgaas)
- Remove unicore32 pci=firmware command line parameter handling (Bjorn Helgaas)
- Support I/O resources when parsing host bridge resources (Jayachandran C)
- Add helpers to request/release memory and I/O regions (Johannes Thumshirn)
- Use pci_(request|release)_mem_regions (NVMe, lpfc, GenWQE, ethernet/intel, alx) (Johannes Thumshirn)
- Extend pci=resource_alignment to specify device/vendor IDs (Koehrer Mathias (ETAS/ESW5))
- Add generic pci_bus_claim_resources() (Lorenzo Pieralisi)
- Claim bus resources on ARM32 PCI_PROBE_ONLY set-ups (Lorenzo Pieralisi)
- Remove ARM32 and ARM64 arch-specific pcibios_enable_device() (Lorenzo Pieralisi)
- Add pci_unmap_iospace() to unmap I/O resources (Sinan Kaya)
- Remove powerpc __pci_mmap_set_pgprot() (Yinghai Lu)
PCI device hotplug:
- Allow additional bus numbers for hotplug bridges (Keith Busch)
- Ignore interrupts during D3cold (Lukas Wunner)
Power management:
- Enforce type casting for pci_power_t (Andy Shevchenko)
- Don't clear d3cold_allowed for PCIe ports (Mika Westerberg)
- Put PCIe ports into D3 during suspend (Mika Westerberg)
- Power on bridges before scanning new devices (Mika Westerberg)
- Runtime resume bridge before rescan (Mika Westerberg)
- Add runtime PM support for PCIe ports (Mika Westerberg)
- Remove redundant check of pcie_set_clkpm (Shawn Lin)
Virtualization:
- Add function 1 DMA alias quirk for Marvell 88SE9182 (Aaron Sierra)
- Add DMA alias quirk for Adaptec 3805 (Alex Williamson)
- Mark Atheros AR9485 and QCA9882 to avoid bus reset (Chris Blake)
- Add ACS quirk for Solarflare SFC9220 (Edward Cree)
MSI:
- Fix PCI_MSI dependencies (Arnd Bergmann)
- Add pci_msix_desc_addr() helper (Christoph Hellwig)
- Switch msix_program_entries() to use pci_msix_desc_addr() (Christoph Hellwig)
- Make the "entries" argument to pci_enable_msix() optional (Christoph Hellwig)
- Provide sensible IRQ vector alloc/free routines (Christoph Hellwig)
- Spread interrupt vectors in pci_alloc_irq_vectors() (Christoph Hellwig)
Error Handling:
- Bind DPC to Root Ports as well as Downstream Ports (Keith Busch)
- Remove DPC tristate module option (Keith Busch)
- Convert Downstream Port Containment driver to use devm_* functions (Mika Westerberg)
Generic host bridge driver:
- Select IRQ_DOMAIN (Arnd Bergmann)
- Claim bus resources on PCI_PROBE_ONLY set-ups (Lorenzo Pieralisi)
ACPI host bridge driver:
- Add ARM64 acpi_pci_bus_find_domain_nr() (Tomasz Nowicki)
- Add ARM64 ACPI support for legacy IRQs parsing and consolidation with DT code (Tomasz Nowicki)
- Implement ARM64 AML accessors for PCI_Config region (Tomasz Nowicki)
- Support ARM64 ACPI-based PCI host controller (Tomasz Nowicki)
Altera host bridge driver:
- Check link status before retrain link (Ley Foon Tan)
- Poll for link up status after retraining the link (Ley Foon Tan)
Axis ARTPEC-6 host bridge driver:
- Add PCI_MSI_IRQ_DOMAIN dependency (Arnd Bergmann)
- Add DT binding for Axis ARTPEC-6 PCIe controller (Niklas Cassel)
- Add Axis ARTPEC-6 PCIe controller driver (Niklas Cassel)
Intel VMD host bridge driver:
- Use lock save/restore in interrupt enable path (Jon Derrick)
- Select device dma ops to override (Keith Busch)
- Initialize list item in IRQ disable (Keith Busch)
- Use x86_vector_domain as parent domain (Keith Busch)
- Separate MSI and MSI-X vector sharing (Keith Busch)
Marvell Aardvark host bridge driver:
- Add DT binding for the Aardvark PCIe controller (Thomas Petazzoni)
- Add Aardvark PCI host controller driver (Thomas Petazzoni)
- Add Aardvark PCIe support for Armada 3700 (Thomas Petazzoni)
Microsoft Hyper-V host bridge driver:
- Fix interrupt cleanup path (Cathy Avery)
- Don't leak buffer in hv_pci_onchannelcallback() (Vitaly Kuznetsov)
- Handle all pending messages in hv_pci_onchannelcallback() (Vitaly Kuznetsov)
NVIDIA Tegra host bridge driver:
- Program PADS_REFCLK_CFG* always, not just on legacy SoCs (Stephen Warren)
- Program PADS_REFCLK_CFG* registers with per-SoC values (Stephen Warren)
- Use lower-case hex consistently for register definitions (Thierry Reding)
- Use generic pci_remap_iospace() rather than ARM32-specific one (Thierry Reding)
- Stop setting pcibios_min_mem (Thierry Reding)
Renesas R-Car host bridge driver:
- Drop gen2 dummy I/O port region (Bjorn Helgaas)
TI DRA7xx host bridge driver:
- Fix return value in case of error (Christophe JAILLET)
Xilinx AXI host bridge driver:
- Fix return value in case of error (Christophe JAILLET)
Miscellaneous:
- Make bus_attr_resource_alignment static (Ben Dooks)
- Include <asm/dma.h> for isa_dma_bridge_buggy (Ben Dooks)
- MAINTAINERS: Add file patterns for PCI device tree bindings (Geert Uytterhoeven)
- Make host bridge drivers explicitly non-modular (Paul Gortmaker)"
* tag 'pci-v4.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (125 commits)
PCI: xgene: Make explicitly non-modular
PCI: thunder-pem: Make explicitly non-modular
PCI: thunder-ecam: Make explicitly non-modular
PCI: tegra: Make explicitly non-modular
PCI: rcar-gen2: Make explicitly non-modular
PCI: rcar: Make explicitly non-modular
PCI: mvebu: Make explicitly non-modular
PCI: layerscape: Make explicitly non-modular
PCI: keystone: Make explicitly non-modular
PCI: hisi: Make explicitly non-modular
PCI: generic: Make explicitly non-modular
PCI: designware-plat: Make it explicitly non-modular
PCI: artpec6: Make explicitly non-modular
PCI: armada8k: Make explicitly non-modular
PCI: artpec: Add PCI_MSI_IRQ_DOMAIN dependency
PCI: Add ACS quirk for Solarflare SFC9220
arm64: dts: marvell: Add Aardvark PCIe support for Armada 3700
PCI: aardvark: Add Aardvark PCI host controller driver
dt-bindings: add DT binding for the Aardvark PCIe controller
PCI: tegra: Program PADS_REFCLK_CFG* registers with per-SoC values
...
2016-08-02 17:12:29 -04:00
Johannes Thumshirn
22466da5b4
lpfc: Fix possible NULL pointer dereference
...
Check for the existence of piocb->vport before accessing it.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de >
Acked-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-08-02 01:16:28 -04:00
Mauricio Faria de Oliveira
05a05872c8
lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from lpfc_send_taskmgmt()
...
The lpfc_sli4_scmd_to_wqidx_distr() function expects the scsi_cmnd
'lpfc_cmd->pCmd' not to be null, and point to the midlayer command.
That's not true in the .eh_(device|target|bus)_reset_handler path,
because lpfc_send_taskmgmt() sends commands not from the midlayer, so
does not set 'lpfc_cmd->pCmd'.
That is true in the .queuecommand path because lpfc_queuecommand()
stores the scsi_cmnd from midlayer in lpfc_cmd->pCmd; and lpfc_cmd is
stored by lpfc_scsi_prep_cmnd() in piocbq->context1 -- which is passed
to lpfc_sli4_scmd_to_wqidx_distr() as lpfc_cmd parameter.
This problem can be hit on SCSI EH, and immediately with sg_reset.
These 2 test-cases demonstrate the problem/fix with next-20160601.
Test-case 1) sg_reset
# strace sg_reset --device /dev/sdm
<...>
open("/dev/sdm", O_RDWR|O_NONBLOCK) = 3
ioctl(3, SG_SCSI_RESET, 0x3fffde6d0994 <unfinished ...>
+++ killed by SIGSEGV +++
Segmentation fault
# dmesg
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xd00000001c88442c
Oops: Kernel access of bad area, sig: 11 [#1 ]
<...>
CPU: 104 PID: 16333 Comm: sg_reset Tainted: G W 4.7.0-rc1-next-20160601-00004-g95b89dc #6
<...>
NIP [d00000001c88442c] lpfc_sli4_scmd_to_wqidx_distr+0xc/0xd0 [lpfc]
LR [d00000001c826fe8] lpfc_sli_calc_ring.part.27+0x98/0xd0 [lpfc]
Call Trace:
[c000003c9ec876f0] [c000003c9ec87770] 0xc000003c9ec87770 (unreliable)
[c000003c9ec87720] [d00000001c82e004] lpfc_sli_issue_iocb+0xd4/0x260 [lpfc]
[c000003c9ec87780] [d00000001c831a3c] lpfc_sli_issue_iocb_wait+0x15c/0x5b0 [lpfc]
[c000003c9ec87880] [d00000001c87f27c] lpfc_send_taskmgmt+0x24c/0x650 [lpfc]
[c000003c9ec87950] [d00000001c87fd7c] lpfc_device_reset_handler+0x10c/0x200 [lpfc]
[c000003c9ec87a10] [c000000000610694] scsi_try_bus_device_reset+0x44/0xc0
[c000003c9ec87a40] [c0000000006113e8] scsi_ioctl_reset+0x198/0x2c0
[c000003c9ec87bf0] [c00000000060fe5c] scsi_ioctl+0x13c/0x4b0
[c000003c9ec87c80] [c0000000006629b0] sd_ioctl+0xf0/0x120
[c000003c9ec87cd0] [c00000000046e4f8] blkdev_ioctl+0x248/0xb70
[c000003c9ec87d30] [c0000000002a1f60] block_ioctl+0x70/0x90
[c000003c9ec87d50] [c00000000026d334] do_vfs_ioctl+0xc4/0x890
[c000003c9ec87de0] [c00000000026db60] SyS_ioctl+0x60/0xc0
[c000003c9ec87e30] [c000000000009120] system_call+0x38/0x108
Instruction dump:
<...>
With fix:
# strace sg_reset --device /dev/sdm
<...>
open("/dev/sdm", O_RDWR|O_NONBLOCK) = 3
ioctl(3, SG_SCSI_RESET, 0x3fffe103c554) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
# dmesg
[ 424.658649] lpfc 0006:01:00.4: 4:(0):0713 SCSI layer issued Device Reset (1, 0) return x2002
Test-case 2) SCSI EH
Using this debug patch to wire an SCSI EH trigger, for lpfc_scsi_cmd_iocb_cmpl():
- cmd->scsi_done(cmd);
+ if ((phba->pport ? phba->pport->cfg_log_verbose : phba->cfg_log_verbose) == 0x32100000)
+ printk(KERN_ALERT "lpfc: skip scsi_done()\n");
+ else
+ cmd->scsi_done(cmd);
# echo 0x32100000 > /sys/class/scsi_host/host11/lpfc_log_verbose
# dd if=/dev/sdm of=/dev/null iflag=direct &
<...>
After a while:
# dmesg
lpfc 0006:01:00.4: 4:(0):3053 lpfc_log_verbose changed from 0 (x0) to 839909376 (x32100000)
lpfc: skip scsi_done()
<...>
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xd0000000199e448c
Oops: Kernel access of bad area, sig: 11 [#1 ]
<...>
CPU: 96 PID: 28556 Comm: scsi_eh_11 Tainted: G W 4.7.0-rc1-next-20160601-00004-g95b89dc #6
<...>
NIP [d0000000199e448c] lpfc_sli4_scmd_to_wqidx_distr+0xc/0xd0 [lpfc]
LR [d000000019986fe8] lpfc_sli_calc_ring.part.27+0x98/0xd0 [lpfc]
Call Trace:
[c000000ff0d0b890] [c000000ff0d0b900] 0xc000000ff0d0b900 (unreliable)
[c000000ff0d0b8c0] [d00000001998e004] lpfc_sli_issue_iocb+0xd4/0x260 [lpfc]
[c000000ff0d0b920] [d000000019991a3c] lpfc_sli_issue_iocb_wait+0x15c/0x5b0 [lpfc]
[c000000ff0d0ba20] [d0000000199df27c] lpfc_send_taskmgmt+0x24c/0x650 [lpfc]
[c000000ff0d0baf0] [d0000000199dfd7c] lpfc_device_reset_handler+0x10c/0x200 [lpfc]
[c000000ff0d0bbb0] [c000000000610694] scsi_try_bus_device_reset+0x44/0xc0
[c000000ff0d0bbe0] [c0000000006126cc] scsi_eh_ready_devs+0x49c/0x9c0
[c000000ff0d0bcb0] [c000000000614160] scsi_error_handler+0x580/0x680
[c000000ff0d0bd80] [c0000000000ae848] kthread+0x108/0x130
[c000000ff0d0be30] [c0000000000094a8] ret_from_kernel_thread+0x5c/0xb4
Instruction dump:
<...>
With fix:
# dmesg
lpfc 0006:01:00.4: 4:(0):3053 lpfc_log_verbose changed from 0 (x0) to 839909376 (x32100000)
lpfc: skip scsi_done()
<...>
lpfc 0006:01:00.4: 4:(0):0713 SCSI layer issued Device Reset (0, 0) return x2002
<...>
lpfc 0006:01:00.4: 4:(0):0723 SCSI layer issued Target Reset (1, 0) return x2002
<...>
lpfc 0006:01:00.4: 4:(0):0714 SCSI layer issued Bus Reset Data: x2002
<...>
lpfc 0006:01:00.4: 4:(0):3172 SCSI layer issued Host Reset Data:
<...>
Fixes: 8b0dff1416 ("lpfc: Add support for using block multi-queue")
Cc: <stable@vger.kernel.org > # v4.2+
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Acked-by: James Smart <james.smart@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-27 00:31:09 -04:00
Arnd Bergmann
de8c36bba3
scsi: lpfc: avoid harmless comparison warning
...
When building with -Wextra, we get a lot of warnings for the lpfc driver
concerning expressions that are always true, starting with:
drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_enable_npiv_init':
drivers/scsi/lpfc/lpfc_attr.c:2786:77: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_enable_rrq_init':
drivers/scsi/lpfc/lpfc_attr.c:2802:76: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_suppress_link_up_init':
drivers/scsi/lpfc/lpfc_attr.c:2812:2050: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_log_verbose_init':
drivers/scsi/lpfc/lpfc_attr.c:3064:1930: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
The code works as intended, but it would be nice to shut up the warning
so we don't clutter up build logs with this. Using a separate inline
function for it makes it clear to the compiler that the comparison is
necessary in the caller but still lets it do the constant-folding.
[mkp: fix typo]
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Acked-by: James Smart <james.smart@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-20 19:53:07 -04:00
Johannes Thumshirn
31979008fd
lpfc: call lpfc_sli_validate_fcp_iocb() with the hbalock held
...
Call lpfc_sli_validate_fcp_iocb() with the hbalock held, as the pointer
to iocbq is not guaranteed to still be valid after looking it up.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de >
Reviewed-by: Laurence Oberman <loberman@redhat.com >
Acked-by: James Smart <james.smart@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-20 19:45:35 -04:00
James Smart
648222d265
lpfc: Update lpfc version to 11.2.0.0
...
Update lpfc version to 11.2.0.0
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
51f4ca3c93
lpfc: Copyright updates
...
Copyright updates
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
a03a4219a4
lpfc: Disable FDMI probing if not connected to a fabric
...
Disable FDMI probing if not connected to a fabric
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
115a4124ba
lpfc: Correct issue with ioremap() call on 32bit kernel
...
Correct issue with ioremap() call on 32bit kernel
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
93dd1911cf
lpfc: Re-organize source for easier driver attribute management
...
Re-organize source for easier driver attribute management
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
12247e8101
lpfc: Remove global lpfc_sli_mode attribute in leiu of per-hba lpfc_sli_mode
...
Remove global lpfc_sli_mode attribute in leiu of per-hba lpfc_sli_mode
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
8eb8b960fd
lpfc: Remove global lpfc_delay_discovery attribute in leiu of per-hba lpfc_delay_discovery
...
Remove global lpfc_delay_discovery attribute in leiu of per-hba
lpfc_delay_discovery
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
458c083e83
lpfc: Remove global lpfc_enable_npiv attribute in leiu of per-hba lpfc_enable_npiv
...
Remove global lpfc_enable_npiv attribute in leiu of per-hba lpfc_enable_npiv
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
0e916ee71d
lpfc: Correct Port reset resulting in FC port going offline
...
Correct Port reset resulting in FC port going offline
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
c92c841cc7
lpfc: Add support for XLane LUN priority
...
Add support for XLane LUN priority
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
5b1993dedf
lpfc: Correct RDP response Revision location
...
Correct RDP response Revision location
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
12f4445733
lpfc: Re-organize source for easier device-id management
...
Re-organize source for easier device-id management
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
a1cadfeffa
lpfc: Correct FCOE discovery to avoid loss of storage devices after system reboot
...
Correct FCOE discovery to avoid loss of storage devices after system reboot
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
4597663fab
lpfc: Fix SLI mode 2 config failure
...
Fix SLI mode 2 config failure
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
7bdedb34a0
lpfc: Add MDS Diagnostics Support
...
Add MDS Diagnostics Support
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
08dcd4cf3b
lpfc: Add sysfs proc_name support
...
Add sysfs proc_name support
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
7d9333139e
lpfc: Reject RDP ELS if port has no login
...
Reject RDP ELS if port has no login
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
3aaaa31417
lpfc: Correct Buffer credit descriptor values in RDP response
...
Correct Buffer credit descriptor values in RDP response
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
65791f1f90
lpfc: Add recovery from adapter parity errors on some SLI4 adapters
...
Add recovery from adapter parity errors on some SLI4 adapters
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
6c92d1d0ce
lpfc: Correct RDP response sizing issue
...
Correct RDP response sizing issue
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
James Smart
310429ef11
lpfc: Fix Transgression Flag of Optical Element descriptor for RDP on Linux
...
Fix Transgression Flag of Optical Element descriptor for RDP on Linux
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: James Smart <james.smart@broadcom.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-07-15 15:25:06 -04:00
Johannes Thumshirn
e0c0483c22
lpfc: Use pci_(request|release)_mem_regions
...
Now that we do have pci_request_mem_regions() and pci_release_mem_regions()
at hand, use it in the lpfc driver.
Suggested-by: Christoph Hellwig <hch@infradead.org >
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com >
Acked-by: Dick Kennedy <dick.kennedy@broadcom.com >
CC: James Smart <james.smart@avagotech.com >
CC: James E.J. Bottomley <jejb@linux.vnet.ibm.com >
CC: Martin K. Petersen <martin.petersen@oracle.com >
2016-06-21 17:10:15 -05:00
James Bottomley
e7ca7f9fa2
Merge branch 'fixes' into misc
2016-05-17 21:12:50 -04:00
Martin K. Petersen
d65c8fff86
Revert "lpfc: Delete unnecessary checks before the function call mempool_destroy"
...
This reverts commit 9be321819c which
caused a regression on hardware using the SLI3 interface.
Reported-by: Dick Kennedy <dick.kennedy@broadcom.com >
Cc: <stable@vger.kernel.org > # 4.6+
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
Signed-off-by: James Bottomley <jejb@linux.vnet.ibm.com >
2016-05-11 13:02:43 -07:00
Sebastian Herbszt
718924180a
lpfc: remove incorrect lockdep assertion
...
Remove incorrect lockdep assertion from lpfc_sli_hbqbuf_find() which
acquires the hbalock itself. Fix the comment which resulted in this
mistake.
Fixes: 1c2ba475eb ("lpfc: Add lockdep assertions")
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-25 22:06:49 -04:00
James Smart
45cc807291
lpfc: Update driver version to 11.1.0.0
...
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
506115777a
lpfc: Update modified file copyrights
...
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
8663cbbe3b
lpfc: Fix interaction between fdmi_on and enable_SmartSAN
...
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
5620498476
lpfc: Add support for SmartSAN 2.0
...
Revise versions to reflect SmartSAN 2.0 support
RDP updated to support additional descriptors:
Credit descriptor
Optical Element Data descriptors for Temperature, Voltage,
Bias current, TX power and TX power.
Optical Product Data descriptor.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
342b59caa6
lpfc: Fix Device discovery failures during switch reboot test.
...
When the switch is rebooted, the lpfc driver fails to log
into the fabric, and Unexpected timeout message is seen.
Fix: Do not issue RegVFI if the FLOGI was internally aborted.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
b5c5395839
lpfc: Utilize embedded CDB logic to minimize IO latency
...
Pass cmd iu payloads inline to adapter job structure rather than as
separate dma buffers.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
a6517db900
lpfc: Fix crash when unregistering default rpi.
...
The default rpi completion handler does back to back puts to force the
removal of the ndlp. This ends up calling lpfc_unreg_rpi after the
reference count is at 0.
Fix: Check the reference count of the ndlp before getting the ref to
make sure we are not getting a reference on a removed object.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
ae09c76510
lpfc: Fix DMA faults observed upon plugging loopback connector
...
Driver didn't program the REG_VFI mailbox correctly, giving the adapter
bad addresses.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
James Smart
de96e9c5b8
lpfc: Correct LOGO handling during login
...
After a link bounce, when a remote port issues a LOGO while a REGLOGIN
is pending on that port, the driver does not clean up the ndlp
structure. May result in stack traces in the console log.
Fix: Clear the NLP_REG_LOGIN_SEND flag on the ndlp in the routine
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-04-11 16:57:09 -04:00
Arnd Bergmann
aeb6641f8e
lpfc: fix misleading indentation
...
gcc-6 complains about the indentation of the lpfc_destroy_vport_work_array()
call in lpfc_online(), which clearly doesn't look right:
drivers/scsi/lpfc/lpfc_init.c: In function 'lpfc_online':
drivers/scsi/lpfc/lpfc_init.c:2880:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
lpfc_destroy_vport_work_array(phba, vports);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/lpfc/lpfc_init.c:2863:2: note: ...this 'if' clause, but it is not
if (vports != NULL)
^~
Looking at the patch that introduced this code, it's clear that the
behavior is correct and the indentation is wrong.
This fixes the indentation and adds curly braces around the previous
if() block for clarity, as that is most likely what caused the code
to be misindented in the first place.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Fixes: 549e55cd2a ("[SCSI] lpfc 8.2.2 : Fix locking around HBA's port_list")
Reviewed-by: Sebastian Herbszt <herbszt@gmx.de >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-03-18 15:21:23 -04:00
Alan
0872774d8a
lpfc: fix missing zero termination in debugfs
...
If you feed 32 bytes in then the kstrtoull() doesn't receive a terminated
string so will run off the end.
Signed-off-by: Alan Cox <alan@linux.intel.com >
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-02-23 21:27:02 -05:00
Johannes Thumshirn
1c2ba475eb
lpfc: Add lockdep assertions
...
Several functions in lpfc have comments stating that the function must
be called with the hbalock (or hostlock, or ringlock) held. Add
lockdep_assert_held() annotations to these functions, so one can
actually verify the locks are held.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de >
Acked-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-02-23 21:27:02 -05:00
Johannes Thumshirn
19db230736
lpfc: Remove redundant code block in lpfc_scsi_cmd_iocb_cmpl
...
This removes a redundant code block that will either be executed if the
ENABLE_FCP_RING_POLLING flag is set in phba->cfg_poll or not. The code
is just duplicated in both cases, hence we unify it again.
This probably is a left over from some sort of refactoring.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de >
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com >
Reviewed-by: Tomas Henzl <thenzl@redhat.com >
Reviewed-by: Sebastian Herbszt <herbszt@gmx.de >
Acked-by: Dick Kennedy <dick.kennedy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2016-02-23 21:27:02 -05:00
James Smart
b034573c7e
lpfc: Update version to 11.0.0.10 for upstream patch set
...
Update version to 11.0.0.10 for upstream patch set
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:08:49 -05:00
Punit Vara
699acd6220
lpfc: Use kzalloc instead of kmalloc
...
This patch is to the lpfc_els.c which resolves following warning
reported by coccicheck:
WARNING: kzalloc should be used for rdp_context, instead of
kmalloc/memset
Signed-off-by: Punit Vara <punitvara@gmail.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com >
Reviewed-by: Sebastian Herbszt <herbszt@gmx.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:08:15 -05:00
Markus Elfring
9be321819c
lpfc: Delete unnecessary checks before the function call "mempool_destroy"
...
The mempool_destroy() function tests whether its argument is NULL
and then returns immediately. Thus the test around the calls is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Reviewed-by: Sebastian Herbszt <herbszt@gmx.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:06:36 -05:00
James Smart
448193b5b5
lpfc: Add logging for misconfigured optics.
...
Add logging for misconfigured optics acqe reported by fw.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:06:09 -05:00
James Smart
4360ca9c24
lpfc: Fix external loopback failure.
...
Fix external loopback failure.
Rx sequence reassembly was incorrect.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:05:04 -05:00
James Smart
01c73bbcd7
lpfc: Fix mbox reuse in PLOGI completion
...
Fix mbox reuse in PLOGI completion. Moved allocations so that buffer
properly init'd.
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com >
Signed-off-by: James Smart <james.smart@avagotech.com >
Reviewed-by: Hannes Reinicke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2015-12-21 22:04:33 -05:00