diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-14 13:49:33 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-14 13:49:33 -0500 |
commit | a829a8445f09036404060f4d6489cb13433f4304 (patch) | |
tree | 60067e1425239a9f372c10100ede39691c3d612b /drivers/message | |
parent | 84b6079134420f4635f23c2088a3892057b23bb0 (diff) | |
parent | f5b893c947151d424a4ab55ea3a8544b81974b31 (diff) |
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley:
"This update includes the usual round of major driver updates (ncr5380,
lpfc, hisi_sas, megaraid_sas, ufs, ibmvscsis, mpt3sas).
There's also an assortment of minor fixes, mostly in error legs or
other not very user visible stuff. The major change is the
pci_alloc_irq_vectors replacement for the old pci_msix_.. calls; this
effectively makes IRQ mapping generic for the drivers and allows
blk_mq to use the information"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (256 commits)
scsi: qla4xxx: switch to pci_alloc_irq_vectors
scsi: hisi_sas: support deferred probe for v2 hw
scsi: megaraid_sas: switch to pci_alloc_irq_vectors
scsi: scsi_devinfo: remove synchronous ALUA for NETAPP devices
scsi: be2iscsi: set errno on error path
scsi: be2iscsi: set errno on error path
scsi: hpsa: fallback to use legacy REPORT PHYS command
scsi: scsi_dh_alua: Fix RCU annotations
scsi: hpsa: use %phN for short hex dumps
scsi: hisi_sas: fix free'ing in probe and remove
scsi: isci: switch to pci_alloc_irq_vectors
scsi: ipr: Fix runaway IRQs when falling back from MSI to LSI
scsi: dpt_i2o: double free on error path
scsi: cxlflash: Migrate scsi command pointer to AFU command
scsi: cxlflash: Migrate IOARRIN specific routines to function pointers
scsi: cxlflash: Cleanup queuecommand()
scsi: cxlflash: Cleanup send_tmf()
scsi: cxlflash: Remove AFU command lock
scsi: cxlflash: Wait for active AFU commands to timeout upon tear down
scsi: cxlflash: Remove private command pool
...
Diffstat (limited to 'drivers/message')
-rw-r--r-- | drivers/message/fusion/mptbase.c | 28 | ||||
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 11 |
2 files changed, 14 insertions, 25 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 89c7ed16b4df..1e73064b0fb2 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
@@ -2585,10 +2585,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | |||
2585 | (void) GetLanConfigPages(ioc); | 2585 | (void) GetLanConfigPages(ioc); |
2586 | a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; | 2586 | a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; |
2587 | dprintk(ioc, printk(MYIOC_s_DEBUG_FMT | 2587 | dprintk(ioc, printk(MYIOC_s_DEBUG_FMT |
2588 | "LanAddr = %02X:%02X:%02X" | 2588 | "LanAddr = %pMR\n", ioc->name, a)); |
2589 | ":%02X:%02X:%02X\n", | ||
2590 | ioc->name, a[5], a[4], | ||
2591 | a[3], a[2], a[1], a[0])); | ||
2592 | } | 2589 | } |
2593 | break; | 2590 | break; |
2594 | 2591 | ||
@@ -2868,21 +2865,21 @@ MptDisplayIocCapabilities(MPT_ADAPTER *ioc) | |||
2868 | 2865 | ||
2869 | printk(KERN_INFO "%s: ", ioc->name); | 2866 | printk(KERN_INFO "%s: ", ioc->name); |
2870 | if (ioc->prod_name) | 2867 | if (ioc->prod_name) |
2871 | printk("%s: ", ioc->prod_name); | 2868 | pr_cont("%s: ", ioc->prod_name); |
2872 | printk("Capabilities={"); | 2869 | pr_cont("Capabilities={"); |
2873 | 2870 | ||
2874 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_INITIATOR) { | 2871 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_INITIATOR) { |
2875 | printk("Initiator"); | 2872 | pr_cont("Initiator"); |
2876 | i++; | 2873 | i++; |
2877 | } | 2874 | } |
2878 | 2875 | ||
2879 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) { | 2876 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) { |
2880 | printk("%sTarget", i ? "," : ""); | 2877 | pr_cont("%sTarget", i ? "," : ""); |
2881 | i++; | 2878 | i++; |
2882 | } | 2879 | } |
2883 | 2880 | ||
2884 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) { | 2881 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) { |
2885 | printk("%sLAN", i ? "," : ""); | 2882 | pr_cont("%sLAN", i ? "," : ""); |
2886 | i++; | 2883 | i++; |
2887 | } | 2884 | } |
2888 | 2885 | ||
@@ -2891,12 +2888,12 @@ MptDisplayIocCapabilities(MPT_ADAPTER *ioc) | |||
2891 | * This would probably evoke more questions than it's worth | 2888 | * This would probably evoke more questions than it's worth |
2892 | */ | 2889 | */ |
2893 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) { | 2890 | if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) { |
2894 | printk("%sLogBusAddr", i ? "," : ""); | 2891 | pr_cont("%sLogBusAddr", i ? "," : ""); |
2895 | i++; | 2892 | i++; |
2896 | } | 2893 | } |
2897 | #endif | 2894 | #endif |
2898 | 2895 | ||
2899 | printk("}\n"); | 2896 | pr_cont("}\n"); |
2900 | } | 2897 | } |
2901 | 2898 | ||
2902 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 2899 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
@@ -6783,8 +6780,7 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v) | |||
6783 | if (ioc->bus_type == FC) { | 6780 | if (ioc->bus_type == FC) { |
6784 | if (ioc->pfacts[p].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) { | 6781 | if (ioc->pfacts[p].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) { |
6785 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; | 6782 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; |
6786 | seq_printf(m, " LanAddr = %02X:%02X:%02X:%02X:%02X:%02X\n", | 6783 | seq_printf(m, " LanAddr = %pMR\n", a); |
6787 | a[5], a[4], a[3], a[2], a[1], a[0]); | ||
6788 | } | 6784 | } |
6789 | seq_printf(m, " WWN = %08X%08X:%08X%08X\n", | 6785 | seq_printf(m, " WWN = %08X%08X:%08X%08X\n", |
6790 | ioc->fc_port_page0[p].WWNN.High, | 6786 | ioc->fc_port_page0[p].WWNN.High, |
@@ -6861,8 +6857,7 @@ mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buffer, int *size, int len, int sh | |||
6861 | 6857 | ||
6862 | if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) { | 6858 | if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) { |
6863 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; | 6859 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; |
6864 | y += sprintf(buffer+len+y, ", LanAddr=%02X:%02X:%02X:%02X:%02X:%02X", | 6860 | y += sprintf(buffer+len+y, ", LanAddr=%pMR", a); |
6865 | a[5], a[4], a[3], a[2], a[1], a[0]); | ||
6866 | } | 6861 | } |
6867 | 6862 | ||
6868 | y += sprintf(buffer+len+y, ", IRQ=%d", ioc->pci_irq); | 6863 | y += sprintf(buffer+len+y, ", IRQ=%d", ioc->pci_irq); |
@@ -6896,8 +6891,7 @@ static void seq_mpt_print_ioc_summary(MPT_ADAPTER *ioc, struct seq_file *m, int | |||
6896 | 6891 | ||
6897 | if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) { | 6892 | if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) { |
6898 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; | 6893 | u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow; |
6899 | seq_printf(m, ", LanAddr=%02X:%02X:%02X:%02X:%02X:%02X", | 6894 | seq_printf(m, ", LanAddr=%pMR", a); |
6900 | a[5], a[4], a[3], a[2], a[1], a[0]); | ||
6901 | } | 6895 | } |
6902 | 6896 | ||
6903 | seq_printf(m, ", IRQ=%d", ioc->pci_irq); | 6897 | seq_printf(m, ", IRQ=%d", ioc->pci_irq); |
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 6c9fc11efb87..08a807d6a44f 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -1366,15 +1366,10 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt) | |||
1366 | /* Default to untagged. Once a target structure has been allocated, | 1366 | /* Default to untagged. Once a target structure has been allocated, |
1367 | * use the Inquiry data to determine if device supports tagged. | 1367 | * use the Inquiry data to determine if device supports tagged. |
1368 | */ | 1368 | */ |
1369 | if ((vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES) | 1369 | if ((vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES) && |
1370 | && (SCpnt->device->tagged_supported)) { | 1370 | SCpnt->device->tagged_supported) |
1371 | scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ; | 1371 | scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ; |
1372 | if (SCpnt->request && SCpnt->request->ioprio) { | 1372 | else |
1373 | if (((SCpnt->request->ioprio & 0x7) == 1) || | ||
1374 | !(SCpnt->request->ioprio & 0x7)) | ||
1375 | scsictl |= MPI_SCSIIO_CONTROL_HEADOFQ; | ||
1376 | } | ||
1377 | } else | ||
1378 | scsictl = scsidir | MPI_SCSIIO_CONTROL_UNTAGGED; | 1373 | scsictl = scsidir | MPI_SCSIIO_CONTROL_UNTAGGED; |
1379 | 1374 | ||
1380 | 1375 | ||