projects/linux·commit 28bc6fb9

Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

28bc6fb9 · Linus Torvalds <[email protected]> · 2018-01-31 11:23:28 -08:00

Pull SCSI updates from James Bottomley:
 "This is mostly updates of the usual driver suspects: arcmsr,
  scsi_debug, mpt3sas, lpfc, cxlflash, qla2xxx, aacraid, megaraid_sas,
  hisi_sas.

  We also have a rework of the libsas hotplug handling to make it more
  robust, a slew of 32 bit time conversions and fixes, and a host of the
  usual minor updates and style changes. The biggest potential for
  regressions is the libsas hotplug changes, but so far they seem stable
  under testing"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (313 commits)
  scsi: qla2xxx: Fix logo flag for qlt_free_session_done()
  scsi: arcmsr: avoid do_gettimeofday
  scsi: core: Add VENDOR_SPECIFIC sense code definitions
  scsi: qedi: Drop cqe response during connection recovery
  scsi: fas216: fix sense buffer initialization
  scsi: ibmvfc: Remove unneeded semicolons
  scsi: hisi_sas: fix a bug in hisi_sas_dev_gone()
  scsi: hisi_sas: directly attached disk LED feature for v2 hw
  scsi: hisi_sas: devicetree: bindings: add LED feature for v2 hw
  scsi: megaraid_sas: NVMe passthrough command support
  scsi: megaraid: use ktime_get_real for firmware time
  scsi: fnic: use 64-bit timestamps
  scsi: qedf: Fix error return code in __qedf_probe()
  scsi: devinfo: fix format of the device list
  scsi: qla2xxx: Update driver version to 10.00.00.05-k
  scsi: qla2xxx: Add XCB counters to debugfs
  scsi: qla2xxx: Fix queue ID for async abort with Multiqueue
  scsi: qla2xxx: Fix warning for code intentation in __qla24xx_handle_gpdb_event()
  scsi: qla2xxx: Fix warning during port_name debug print
  scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout()
  ...
Commit
28bc6fb9596fe1e577d09fc17ee6e1bb051c6ba3
Parents
0be600a5 · a2390348

Merge commit. Changes below are compared with the first parent: 0be600a5.

Changes

161 files changed · +8932 −4525

FileStatusAddDelContent
Documentation/devicetree/bindings/scsi/hisilicon-sas.txtmodified+4−1View file
Documentation/driver-api/scsi.rstmodified+9−1View file
drivers/message/fusion/mptbase.cmodified+30−29View file
drivers/message/fusion/mptctl.cmodified+7−18View file
drivers/message/fusion/mptsas.cmodified+0−1View file
drivers/scsi/3w-9xxx.cmodified+11−15View file
drivers/scsi/3w-9xxx.hmodified+1−1View file
drivers/scsi/3w-sas.cmodified+6−9View file
drivers/scsi/aacraid/aachba.cmodified+317−156View file
drivers/scsi/aacraid/aacraid.hmodified+47−7View file
drivers/scsi/aacraid/commctrl.cmodified+5−1View file
drivers/scsi/aacraid/comminit.cmodified+44−5View file
drivers/scsi/aacraid/commsup.cmodified+120−100View file
drivers/scsi/aacraid/linit.cmodified+15−11View file
drivers/scsi/aacraid/sa.cmodified+16−16View file
drivers/scsi/arcmsr/arcmsr.hmodified+346−221View file
drivers/scsi/arcmsr/arcmsr_hba.cmodified+813−505View file
drivers/scsi/arm/fas216.cmodified+1−1View file
drivers/scsi/bfa/bfa_core.cmodified+1−1View file
drivers/scsi/bfa/bfa_cs.hmodified+3−3View file
drivers/scsi/bfa/bfa_defs_svc.hmodified+2−1View file
drivers/scsi/bfa/bfa_fcbuild.cmodified+4−4View file
drivers/scsi/bfa/bfa_fcpim.cmodified+2−1View file
drivers/scsi/bfa/bfa_fcpim.hmodified+2−2View file
drivers/scsi/bfa/bfa_fcs.cmodified+39−39View file
drivers/scsi/bfa/bfa_fcs_lport.cmodified+24−38View file
drivers/scsi/bfa/bfa_ioc.cmodified+6−4View file
drivers/scsi/bfa/bfa_port.cmodified+3−12View file
drivers/scsi/bfa/bfa_port.hmodified+1−1View file
drivers/scsi/bfa/bfa_svc.cmodified+16−35View file
drivers/scsi/bfa/bfa_svc.hmodified+1−1View file
drivers/scsi/bfa/bfad.cmodified+11−12View file
drivers/scsi/bfa/bfad_attr.cmodified+1−4View file
drivers/scsi/bfa/bfad_bsg.cmodified+4−6View file
drivers/scsi/bfa/bfad_debugfs.cmodified+2−6View file
drivers/scsi/bfa/bfad_im.hmodified+22−10View file
drivers/scsi/bnx2fc/bnx2fc_fcoe.cmodified+2−2View file
drivers/scsi/bnx2fc/bnx2fc_hwi.cmodified+25−35View file
drivers/scsi/bnx2fc/bnx2fc_tgt.cmodified+22−29View file
drivers/scsi/bnx2i/bnx2i_hwi.cmodified+7−12View file
drivers/scsi/csiostor/csio_init.cmodified+1−1View file
drivers/scsi/csiostor/csio_init.hmodified+0−1View file
drivers/scsi/csiostor/csio_mb.cmodified+3−3View file
drivers/scsi/cxgbi/libcxgbi.cmodified+1−1View file
drivers/scsi/cxlflash/Makefilemodified+1−1View file
drivers/scsi/cxlflash/backend.hadded+41−0View file
drivers/scsi/cxlflash/common.hmodified+5−3View file
drivers/scsi/cxlflash/cxl_hw.cadded+168−0View file
drivers/scsi/cxlflash/main.cmodified+40−60View file
drivers/scsi/cxlflash/superpipe.cmodified+31−33View file
drivers/scsi/cxlflash/superpipe.hmodified+2−2View file
drivers/scsi/device_handler/scsi_dh_alua.cmodified+28−9View file
drivers/scsi/fnic/fnic_debugfs.cmodified+2−20View file
drivers/scsi/fnic/fnic_fcs.cmodified+1−3View file
drivers/scsi/fnic/fnic_scsi.cmodified+1−1View file
drivers/scsi/fnic/fnic_stats.hmodified+2−2View file
drivers/scsi/fnic/fnic_trace.cmodified+29−29View file
drivers/scsi/hisi_sas/hisi_sas.hmodified+43−3View file
drivers/scsi/hisi_sas/hisi_sas_main.cmodified+216−51View file
drivers/scsi/hisi_sas/hisi_sas_v1_hw.cmodified+3−3View file
drivers/scsi/hisi_sas/hisi_sas_v2_hw.cmodified+150−44View file
drivers/scsi/hisi_sas/hisi_sas_v3_hw.cmodified+287−45View file
drivers/scsi/hosts.cmodified+6−0View file
drivers/scsi/hpsa.cmodified+4−14View file
drivers/scsi/ibmvscsi/ibmvfc.cmodified+17−17View file
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.cmodified+170−150View file
drivers/scsi/ipr.cmodified+2−2View file
drivers/scsi/iscsi_tcp.cmodified+2−0View file
drivers/scsi/libiscsi.cmodified+26−2View file
drivers/scsi/libiscsi_tcp.cmodified+5−4View file
drivers/scsi/libsas/sas_ata.cmodified+0−1View file
drivers/scsi/libsas/sas_discover.cmodified+19−15View file
drivers/scsi/libsas/sas_event.cmodified+66−20View file
drivers/scsi/libsas/sas_expander.cmodified+6−6View file
drivers/scsi/libsas/sas_init.cmodified+104−3View file
drivers/scsi/libsas/sas_internal.hmodified+7−0View file
drivers/scsi/libsas/sas_phy.cmodified+34−35View file
drivers/scsi/libsas/sas_port.cmodified+15−10View file
drivers/scsi/libsas/sas_scsi_host.cmodified+4−16View file
drivers/scsi/lpfc/lpfc.hmodified+4−2View file
drivers/scsi/lpfc/lpfc_attr.cmodified+50−9View file
drivers/scsi/lpfc/lpfc_crtn.hmodified+2−0View file
drivers/scsi/lpfc/lpfc_ct.cmodified+20−0View file
drivers/scsi/lpfc/lpfc_debugfs.cmodified+54−11View file
drivers/scsi/lpfc/lpfc_disc.hmodified+2−0View file
drivers/scsi/lpfc/lpfc_els.cmodified+61−55View file
drivers/scsi/lpfc/lpfc_hbadisc.cmodified+17−12View file
drivers/scsi/lpfc/lpfc_hw4.hmodified+5−1View file
drivers/scsi/lpfc/lpfc_init.cmodified+198−96View file
drivers/scsi/lpfc/lpfc_nportdisc.cmodified+62−26View file
drivers/scsi/lpfc/lpfc_nvme.cmodified+288−68View file
drivers/scsi/lpfc/lpfc_nvme.hmodified+15−2View file
drivers/scsi/lpfc/lpfc_nvmet.cmodified+63−8View file
drivers/scsi/lpfc/lpfc_nvmet.hmodified+10−0View file
drivers/scsi/lpfc/lpfc_sli.cmodified+104−89View file
drivers/scsi/lpfc/lpfc_sli4.hmodified+8−6View file
drivers/scsi/lpfc/lpfc_version.hmodified+1−1View file
drivers/scsi/megaraid/megaraid_sas.hmodified+29−8View file
drivers/scsi/megaraid/megaraid_sas_base.cmodified+83−88View file
drivers/scsi/megaraid/megaraid_sas_fp.cmodified+18−10View file
drivers/scsi/megaraid/megaraid_sas_fusion.cmodified+65−34View file
drivers/scsi/megaraid/megaraid_sas_fusion.hmodified+6−0View file
drivers/scsi/mpt3sas/mpt3sas_base.cmodified+103−104View file
drivers/scsi/mpt3sas/mpt3sas_base.hmodified+11−18View file
drivers/scsi/mpt3sas/mpt3sas_ctl.cmodified+12−19View file
drivers/scsi/mpt3sas/mpt3sas_scsih.cmodified+86−246View file
drivers/scsi/mpt3sas/mpt3sas_warpdrive.cmodified+3−30View file
drivers/scsi/pmcraid.cmodified+1−1View file
drivers/scsi/ppa.cmodified+4−0View file
drivers/scsi/qedf/qedf_main.cmodified+3−0View file
drivers/scsi/qedi/qedi_fw.cmodified+1−1View file
drivers/scsi/qedi/qedi_main.cmodified+18−28View file
drivers/scsi/qla2xxx/qla_attr.cmodified+4−3View file
drivers/scsi/qla2xxx/qla_bsg.cmodified+3−6View file
drivers/scsi/qla2xxx/qla_def.hmodified+142−31View file
drivers/scsi/qla2xxx/qla_dfs.cmodified+25−14View file
drivers/scsi/qla2xxx/qla_fw.hmodified+1−1View file
drivers/scsi/qla2xxx/qla_gbl.hmodified+27−5View file
drivers/scsi/qla2xxx/qla_gs.cmodified+1301−196View file
drivers/scsi/qla2xxx/qla_init.cmodified+691−365View file
drivers/scsi/qla2xxx/qla_inline.hmodified+1−0View file
drivers/scsi/qla2xxx/qla_iocb.cmodified+48−17View file
drivers/scsi/qla2xxx/qla_isr.cmodified+43−13View file
drivers/scsi/qla2xxx/qla_mbx.cmodified+71−80View file
drivers/scsi/qla2xxx/qla_mid.cmodified+115−25View file
drivers/scsi/qla2xxx/qla_nx2.cmodified+0−2View file
drivers/scsi/qla2xxx/qla_os.cmodified+362−166View file
drivers/scsi/qla2xxx/qla_sup.cmodified+1−0View file
drivers/scsi/qla2xxx/qla_target.cmodified+429−332View file
drivers/scsi/qla2xxx/qla_target.hmodified+2−2View file
drivers/scsi/qla2xxx/qla_tmpl.cmodified+37−3View file
drivers/scsi/qla2xxx/qla_version.hmodified+1−1View file
drivers/scsi/qla2xxx/tcm_qla2xxx.cmodified+1−4View file
drivers/scsi/qla4xxx/ql4_init.cmodified+2−3View file
drivers/scsi/qla4xxx/ql4_mbx.cmodified+9−12View file
drivers/scsi/qla4xxx/ql4_nx.cmodified+2−3View file
drivers/scsi/qla4xxx/ql4_os.cmodified+5−7View file
drivers/scsi/scsi_common.cmodified+7−7View file
drivers/scsi/scsi_debug.cmodified+513−211View file
drivers/scsi/scsi_devinfo.cmodified+17−22View file
drivers/scsi/scsi_dh.cmodified+4−1View file
drivers/scsi/scsi_error.cmodified+18−3View file
drivers/scsi/scsi_lib.cmodified+33−17View file
drivers/scsi/scsi_priv.hmodified+8−7View file
drivers/scsi/scsi_sysfs.cmodified+0−3View file
drivers/scsi/scsi_transport_fc.cmodified+2−2View file
drivers/scsi/sd.cmodified+3−3View file
drivers/scsi/ses.cmodified+7−4View file
drivers/scsi/smartpqi/Makefilemodified+1−1View file
drivers/scsi/st.cmodified+1−1View file
drivers/scsi/storvsc_drv.cmodified+3−1View file
drivers/scsi/ufs/ufshci.hmodified+16−0View file
drivers/scsi/wd719x.cmodified+3−1View file
include/linux/ata.hmodified+2−0View file
include/scsi/libsas.hmodified+22−8View file
include/scsi/scsi_cmnd.hmodified+0−1View file
include/scsi/scsi_host.hmodified+2−0View file
include/scsi/scsi_proto.hmodified+1−0View file
include/scsi/scsi_transport_fc.hmodified+2−2View file
include/scsi/scsi_transport_sas.hmodified+1−0View file
kernel/rcu/update.cmodified+2−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/devicetree/bindings/scsi/hisilicon-sas.txt

View file
diff --git a/Documentation/devicetree/bindings/scsi/hisilicon-sas.txt b/Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
index b6a869f..df3bef7 100644
--- a/Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
+++ b/Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
@@ -8,7 +8,10 @@ Main node required properties:
(b) "hisilicon,hip06-sas-v2" for v2 hw in hip06 chipset
(c) "hisilicon,hip07-sas-v2" for v2 hw in hip07 chipset
- sas-addr : array of 8 bytes for host SAS address
- - reg : Address and length of the SAS register
+ - reg : Contains two regions. The first is the address and length of the SAS
+ register. The second is the address and length of CPLD register for
+ SGPIO control. The second is optional, and should be set only when
+ we use a CPLD for directly attached disk LED control.
- hisilicon,sas-syscon: phandle of syscon used for sas control
- ctrl-reset-reg : offset to controller reset register in ctrl reg
- ctrl-reset-sts-reg : offset to controller reset status register in ctrl reg

Documentation/driver-api/scsi.rst

View file
diff --git a/Documentation/driver-api/scsi.rst b/Documentation/driver-api/scsi.rst
index 9ae0317..3ae3379 100644
--- a/Documentation/driver-api/scsi.rst
+++ b/Documentation/driver-api/scsi.rst
@@ -224,6 +224,14 @@ mid to lowlevel SCSI driver interface
.. kernel-doc:: drivers/scsi/hosts.c
:export:
+drivers/scsi/scsi_common.c
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+general support functions
+
+.. kernel-doc:: drivers/scsi/scsi_common.c
+ :export:
+
Transport classes
-----------------
@@ -332,5 +340,5 @@ todo
~~~~
Parallel (fast/wide/ultra) SCSI, USB, SATA, SAS, Fibre Channel,
-FireWire, ATAPI devices, Infiniband, I20, iSCSI, Parallel ports,
+FireWire, ATAPI devices, Infiniband, I2O, iSCSI, Parallel ports,
netlink...

drivers/message/fusion/mptbase.c

View file
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 7a93400..51eb1b0 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -958,7 +958,7 @@ mpt_put_msg_frame(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
{
u32 mf_dma_addr;
int req_offset;
- u16 req_idx; /* Request index */
+ u16 req_idx; /* Request index */
/* ensure values are reset properly! */
mf->u.frame.hwhdr.msgctxu.fld.cb_idx = cb_idx; /* byte */
@@ -994,7 +994,7 @@ mpt_put_msg_frame_hi_pri(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
{
u32 mf_dma_addr;
int req_offset;
- u16 req_idx; /* Request index */
+ u16 req_idx; /* Request index */
/* ensure values are reset properly! */
mf->u.frame.hwhdr.msgctxu.fld.cb_idx = cb_idx;
@@ -1128,11 +1128,12 @@ mpt_add_sge_64bit_1078(void *pAddr, u32 flagslength, dma_addr_t dma_addr)
static void
mpt_add_chain(void *pAddr, u8 next, u16 length, dma_addr_t dma_addr)
{
- SGEChain32_t *pChain = (SGEChain32_t *) pAddr;
- pChain->Length = cpu_to_le16(length);
- pChain->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT;
- pChain->NextChainOffset = next;
- pChain->Address = cpu_to_le32(dma_addr);
+ SGEChain32_t *pChain = (SGEChain32_t *) pAddr;
+
+ pChain->Length = cpu_to_le16(length);
+ pChain->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT;
+ pChain->NextChainOffset = next;
+ pChain->Address = cpu_to_le32(dma_addr);
}
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
@@ -1147,18 +1148,18 @@ mpt_add_chain(void *pAddr, u8 next, u16 length, dma_addr_t dma_addr)
static void
mpt_add_chain_64bit(void *pAddr, u8 next, u16 length, dma_addr_t dma_addr)
{
- SGEChain64_t *pChain = (SGEChain64_t *) pAddr;
- u32 tmp = dma_addr & 0xFFFFFFFF;
+ SGEChain64_t *pChain = (SGEChain64_t *) pAddr;
+ u32 tmp = dma_addr & 0xFFFFFFFF;
- pChain->Length = cpu_to_le16(length);
- pChain->Flags = (MPI_SGE_FLAGS_CHAIN_ELEMENT |
- MPI_SGE_FLAGS_64_BIT_ADDRESSING);
+ pChain->Length = cpu_to_le16(length);
+ pChain->Flags = (MPI_SGE_FLAGS_CHAIN_ELEMENT |
+ MPI_SGE_FLAGS_64_BIT_ADDRESSING);
- pChain->NextChainOffset = next;
+ pChain->NextChainOffset = next;
- pChain->Address.Low = cpu_to_le32(tmp);
- tmp = (u32)(upper_32_bits(dma_addr));
- pChain->Address.High = cpu_to_le32(tmp);
+ pChain->Address.Low = cpu_to_le32(tmp);
+ tmp = (u32)(upper_32_bits(dma_addr));
+ pChain->Address.High = cpu_to_le32(tmp);
}
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
@@ -1360,7 +1361,7 @@ mpt_host_page_alloc(MPT_ADAPTER *ioc, pIOCInit_t ioc_init)
ioc->add_sge(psge, flags_length, ioc->HostPageBuffer_dma);
ioc->facts.HostPageBufferSGE = ioc_init->HostPageBufferSGE;
-return 0;
+ return 0;
}
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
@@ -2152,7 +2153,7 @@ mpt_suspend(struct pci_dev *pdev, pm_message_t state)
device_state);
/* put ioc into READY_STATE */
- if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) {
+ if (SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) {
printk(MYIOC_s_ERR_FMT
"pci-suspend: IOC msg unit reset failed!\n", ioc->name);
}
@@ -6348,7 +6349,7 @@ mpt_config(MPT_ADAPTER *ioc, CONFIGPARMS *pCfg)
u8 page_type = 0, extend_page;
unsigned long timeleft;
unsigned long flags;
- int in_isr;
+ int in_isr;
u8 issue_hard_reset = 0;
u8 retry_count = 0;
@@ -7697,7 +7698,7 @@ mpt_display_event_info(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply)
break;
}
if (ds)
- strncpy(evStr, ds, EVENT_DESCR_STR_SZ);
+ strlcpy(evStr, ds, EVENT_DESCR_STR_SZ);
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
@@ -8092,15 +8093,15 @@ mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info)
static void
mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info, u8 cb_idx)
{
-union loginfo_type {
- u32 loginfo;
- struct {
- u32 subcode:16;
- u32 code:8;
- u32 originator:4;
- u32 bus_type:4;
- }dw;
-};
+ union loginfo_type {
+ u32 loginfo;
+ struct {
+ u32 subcode:16;
+ u32 code:8;
+ u32 originator:4;
+ u32 bus_type:4;
+ } dw;
+ };
union loginfo_type sas_loginfo;
char *originator_desc = NULL;
char *code_desc = NULL;

drivers/message/fusion/mptctl.c

View file
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c
index 7b3b413..8d12017 100644
--- a/drivers/message/fusion/mptctl.c
+++ b/drivers/message/fusion/mptctl.c
@@ -2481,24 +2481,13 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
else
karg.host_no = -1;
- /* Reformat the fw_version into a string
- */
- karg.fw_version[0] = ioc->facts.FWVersion.Struct.Major >= 10 ?
- ((ioc->facts.FWVersion.Struct.Major / 10) + '0') : '0';
- karg.fw_version[1] = (ioc->facts.FWVersion.Struct.Major % 10 ) + '0';
- karg.fw_version[2] = '.';
- karg.fw_version[3] = ioc->facts.FWVersion.Struct.Minor >= 10 ?
- ((ioc->facts.FWVersion.Struct.Minor / 10) + '0') : '0';
- karg.fw_version[4] = (ioc->facts.FWVersion.Struct.Minor % 10 ) + '0';
- karg.fw_version[5] = '.';
- karg.fw_version[6] = ioc->facts.FWVersion.Struct.Unit >= 10 ?
- ((ioc->facts.FWVersion.Struct.Unit / 10) + '0') : '0';
- karg.fw_version[7] = (ioc->facts.FWVersion.Struct.Unit % 10 ) + '0';
- karg.fw_version[8] = '.';
- karg.fw_version[9] = ioc->facts.FWVersion.Struct.Dev >= 10 ?
- ((ioc->facts.FWVersion.Struct.Dev / 10) + '0') : '0';
- karg.fw_version[10] = (ioc->facts.FWVersion.Struct.Dev % 10 ) + '0';
- karg.fw_version[11] = '\0';
+ /* Reformat the fw_version into a string */
+ snprintf(karg.fw_version, sizeof(karg.fw_version),
+ "%.2hhu.%.2hhu.%.2hhu.%.2hhu",
+ ioc->facts.FWVersion.Struct.Major,
+ ioc->facts.FWVersion.Struct.Minor,
+ ioc->facts.FWVersion.Struct.Unit,
+ ioc->facts.FWVersion.Struct.Dev);
/* Issue a config request to get the device serial number
*/

drivers/message/fusion/mptsas.c

View file
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 345f603..439ee9c 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1165,7 +1165,6 @@ mptsas_schedule_target_reset(void *iocp)
* issue target reset to next device in the queue
*/
- head = &hd->target_reset_list;
if (list_empty(head))
return;

drivers/scsi/3w-9xxx.c

View file
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index 00e7968..b42c9c4 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -369,7 +369,6 @@ out:
static void twa_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_Header *header)
{
u32 local_time;
- struct timeval time;
TW_Event *event;
unsigned short aen;
char host[16];
@@ -392,8 +391,8 @@ static void twa_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_H
memset(event, 0, sizeof(TW_Event));
event->severity = TW_SEV_OUT(header->status_block.severity__reserved);
- do_gettimeofday(&time);
- local_time = (u32)(time.tv_sec - (sys_tz.tz_minuteswest * 60));
+ /* event->time_stamp_sec overflows in y2106 */
+ local_time = (u32)(ktime_get_real_seconds() - (sys_tz.tz_minuteswest * 60));
event->time_stamp_sec = local_time;
event->aen_code = aen;
event->retrieved = TW_AEN_NOT_RETRIEVED;
@@ -473,11 +472,10 @@ out:
static void twa_aen_sync_time(TW_Device_Extension *tw_dev, int request_id)
{
u32 schedulertime;
- struct timeval utc;
TW_Command_Full *full_command_packet;
TW_Command *command_packet;
TW_Param_Apache *param;
- u32 local_time;
+ time64_t local_time;
/* Fill out the command packet */
full_command_packet = tw_dev->command_packet_virt[request_id];
@@ -499,9 +497,8 @@ static void twa_aen_sync_time(TW_Device_Extension *tw_dev, int request_id)
/* Convert system time in UTC to local time seconds since last
Sunday 12:00AM */
- do_gettimeofday(&utc);
- local_time = (u32)(utc.tv_sec - (sys_tz.tz_minuteswest * 60));
- schedulertime = local_time - (3 * 86400);
+ local_time = (ktime_get_real_seconds() - (sys_tz.tz_minuteswest * 60));
+ div_u64_rem(local_time - (3 * 86400), 604800, &schedulertime);
schedulertime = cpu_to_le32(schedulertime % 604800);
memcpy(param->data, &schedulertime, sizeof(u32));
@@ -648,8 +645,7 @@ static long twa_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long
TW_Command_Full *full_command_packet;
TW_Compatibility_Info *tw_compat_info;
TW_Event *event;
- struct timeval current_time;
- u32 current_time_ms;
+ ktime_t current_time;
TW_Device_Extension *tw_dev = twa_device_extension_list[iminor(inode)];
int retval = TW_IOCTL_ERROR_OS_EFAULT;
void __user *argp = (void __user *)arg;
@@ -840,17 +836,17 @@ static long twa_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long
break;
case TW_IOCTL_GET_LOCK:
tw_lock = (TW_Lock *)tw_ioctl->data_buffer;
- do_gettimeofday(&current_time);
- current_time_ms = (current_time.tv_sec * 1000) + (current_time.tv_usec / 1000);
+ current_time = ktime_get();
- if ((tw_lock->force_flag == 1) || (tw_dev->ioctl_sem_lock == 0) || (current_time_ms >= tw_dev->ioctl_msec)) {
+ if ((tw_lock->force_flag == 1) || (tw_dev->ioctl_sem_lock == 0) ||
+ ktime_after(current_time, tw_dev->ioctl_time)) {
tw_dev->ioctl_sem_lock = 1;
- tw_dev->ioctl_msec = current_time_ms + tw_lock->timeout_msec;
+ tw_dev->ioctl_time = ktime_add_ms(current_time, tw_lock->timeout_msec);
tw_ioctl->driver_command.status = 0;
tw_lock->time_remaining_msec = tw_lock->timeout_msec;
} else {
tw_ioctl->driver_command.status = TW_IOCTL_ERROR_STATUS_LOCKED;
- tw_lock->time_remaining_msec = tw_dev->ioctl_msec - current_time_ms;
+ tw_lock->time_remaining_msec = ktime_ms_delta(tw_dev->ioctl_time, current_time);
}
break;
case TW_IOCTL_RELEASE_LOCK:

drivers/scsi/3w-9xxx.h

View file
diff --git a/drivers/scsi/3w-9xxx.h b/drivers/scsi/3w-9xxx.h
index b6c208c..d88cd34 100644
--- a/drivers/scsi/3w-9xxx.h
+++ b/drivers/scsi/3w-9xxx.h
@@ -666,7 +666,7 @@ typedef struct TAG_TW_Device_Extension {
unsigned char event_queue_wrapped;
unsigned int error_sequence_id;
int ioctl_sem_lock;
- u32 ioctl_msec;
+ ktime_t ioctl_time;
int chrdev_request_id;
wait_queue_head_t ioctl_wqueue;
struct mutex ioctl_lock;

drivers/scsi/3w-sas.c

View file
diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c
index b150e13..cf9f2a0 100644
--- a/drivers/scsi/3w-sas.c
+++ b/drivers/scsi/3w-sas.c
@@ -221,7 +221,6 @@ out:
static void twl_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_Header *header)
{
u32 local_time;
- struct timeval time;
TW_Event *event;
unsigned short aen;
char host[16];
@@ -240,8 +239,8 @@ static void twl_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_H
memset(event, 0, sizeof(TW_Event));
event->severity = TW_SEV_OUT(header->status_block.severity__reserved);
- do_gettimeofday(&time);
- local_time = (u32)(time.tv_sec - (sys_tz.tz_minuteswest * 60));
+ /* event->time_stamp_sec overflows in y2106 */
+ local_time = (u32)(ktime_get_real_seconds() - (sys_tz.tz_minuteswest * 60));
event->time_stamp_sec = local_time;
event->aen_code = aen;
event->retrieved = TW_AEN_NOT_RETRIEVED;
@@ -408,11 +407,10 @@ out:
static void twl_aen_sync_time(TW_Device_Extension *tw_dev, int request_id)
{
u32 schedulertime;
- struct timeval utc;
TW_Command_Full *full_command_packet;
TW_Command *command_packet;
TW_Param_Apache *param;
- u32 local_time;
+ time64_t local_time;
/* Fill out the command packet */
full_command_packet = tw_dev->command_packet_virt[request_id];
@@ -434,10 +432,9 @@ static void twl_aen_sync_time(TW_Device_Extension *tw_dev, int request_id)
/* Convert system time in UTC to local time seconds since last
Sunday 12:00AM */
- do_gettimeofday(&utc);
- local_time = (u32)(utc.tv_sec - (sys_tz.tz_minuteswest * 60));
- schedulertime = local_time - (3 * 86400);
- schedulertime = cpu_to_le32(schedulertime % 604800);
+ local_time = (ktime_get_real_seconds() - (sys_tz.tz_minuteswest * 60));
+ div_u64_rem(local_time - (3 * 86400), 604800, &schedulertime);
+ schedulertime = cpu_to_le32(schedulertime);
memcpy(param->data, &schedulertime, sizeof(u32));

drivers/scsi/aacraid/aachba.c

View file
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index af3e4d3..e7961cb 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -42,6 +42,8 @@
#include <linux/highmem.h> /* For flush_kernel_dcache_page */
#include <linux/module.h>
+#include <asm/unaligned.h>
+
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
@@ -913,8 +915,15 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
memset(str, ' ', sizeof(*str));
if (sup_adap_info->adapter_type_text[0]) {
- char *cp = sup_adap_info->adapter_type_text;
int c;
+ char *cp;
+ char *cname = kmemdup(sup_adap_info->adapter_type_text,
+ sizeof(sup_adap_info->adapter_type_text),
+ GFP_ATOMIC);
+ if (!cname)
+ return;
+
+ cp = cname;
if ((cp[0] == 'A') && (cp[1] == 'O') && (cp[2] == 'C'))
inqstrcpy("SMC", str->vid);
else {
@@ -923,7 +932,7 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
++cp;
c = *cp;
*cp = '\0';
- inqstrcpy(sup_adap_info->adapter_type_text, str->vid);
+ inqstrcpy(cname, str->vid);
*cp = c;
while (*cp && *cp != ' ')
++cp;
@@ -931,14 +940,11 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
while (*cp == ' ')
++cp;
/* last six chars reserved for vol type */
- c = 0;
- if (strlen(cp) > sizeof(str->pid)) {
- c = cp[sizeof(str->pid)];
+ if (strlen(cp) > sizeof(str->pid))
cp[sizeof(str->pid)] = '\0';
- }
inqstrcpy (cp, str->pid);
- if (c)
- cp[sizeof(str->pid)] = c;
+
+ kfree(cname);
} else {
struct aac_driver_ident *mp = aac_get_driver_ident(dev->cardtype);
@@ -1660,87 +1666,309 @@ static int aac_adapter_hba(struct fib *fib, struct scsi_cmnd *cmd)
(void *) cmd);
}
-int aac_issue_bmic_identify(struct aac_dev *dev, u32 bus, u32 target)
+static int aac_send_safw_bmic_cmd(struct aac_dev *dev,
+ struct aac_srb_unit *srbu, void *xfer_buf, int xfer_len)
{
- struct fib *fibptr;
- struct aac_srb *srbcmd;
- struct sgmap64 *sg64;
- struct aac_ciss_identify_pd *identify_resp;
- dma_addr_t addr;
- u32 vbus, vid;
- u16 fibsize, datasize;
- int rcode = -ENOMEM;
-
+ struct fib *fibptr;
+ dma_addr_t addr;
+ int rcode;
+ int fibsize;
+ struct aac_srb *srb;
+ struct aac_srb_reply *srb_reply;
+ struct sgmap64 *sg64;
+ u32 vbus;
+ u32 vid;
+
+ if (!dev->sa_firmware)
+ return 0;
+ /* allocate FIB */
fibptr = aac_fib_alloc(dev);
if (!fibptr)
- goto out;
+ return -ENOMEM;
- fibsize = sizeof(struct aac_srb) -
- sizeof(struct sgentry) + sizeof(struct sgentry64);
- datasize = sizeof(struct aac_ciss_identify_pd);
+ aac_fib_init(fibptr);
+ fibptr->hw_fib_va->header.XferState &=
+ ~cpu_to_le32(FastResponseCapable);
- identify_resp = dma_alloc_coherent(&dev->pdev->dev, datasize, &addr,
- GFP_KERNEL);
- if (!identify_resp)
- goto fib_free_ptr;
+ fibsize = sizeof(struct aac_srb) - sizeof(struct sgentry) +
+ sizeof(struct sgentry64);
- vbus = (u32)le16_to_cpu(dev->supplement_adapter_info.virt_device_bus);
- vid = (u32)le16_to_cpu(dev->supplement_adapter_info.virt_device_target);
+ /* allocate DMA buffer for response */
+ addr = dma_map_single(&dev->pdev->dev, xfer_buf, xfer_len,
+ DMA_BIDIRECTIONAL);
+ if (dma_mapping_error(&dev->pdev->dev, addr)) {
+ rcode = -ENOMEM;
+ goto fib_error;
+ }
- aac_fib_init(fibptr);
+ srb = fib_data(fibptr);
+ memcpy(srb, &srbu->srb, sizeof(struct aac_srb));
- srbcmd = (struct aac_srb *) fib_data(fibptr);
- srbcmd->function = cpu_to_le32(SRBF_ExecuteScsi);
- srbcmd->channel = cpu_to_le32(vbus);
- srbcmd->id = cpu_to_le32(vid);
- srbcmd->lun = 0;
- srbcmd->flags = cpu_to_le32(SRB_DataIn);
- srbcmd->timeout = cpu_to_le32(10);
- srbcmd->retry_limit = 0;
- srbcmd->cdb_size = cpu_to_le32(12);
- srbcmd->count = cpu_to_le32(datasize);
+ vbus = (u32)le16_to_cpu(
+ dev->supplement_adapter_info.virt_device_bus);
+ vid = (u32)le16_to_cpu(
+ dev->supplement_adapter_info.virt_device_target);
- memset(srbcmd->cdb, 0, sizeof(srbcmd->cdb));
- srbcmd->cdb[0] = 0x26;
- srbcmd->cdb[2] = (u8)((AAC_MAX_LUN + target) & 0x00FF);
- srbcmd->cdb[6] = CISS_IDENTIFY_PHYSICAL_DEVICE;
+ /* set the common request fields */
+ srb->channel = cpu_to_le32(vbus);
+ srb->id = cpu_to_le32(vid);
+ srb->lun = 0;
+ srb->function = cpu_to_le32(SRBF_ExecuteScsi);
+ srb->timeout = 0;
+ srb->retry_limit = 0;
+ srb->cdb_size = cpu_to_le32(16);
+ srb->count = cpu_to_le32(xfer_len);
+
+ sg64 = (struct sgmap64 *)&srb->sg;
+ sg64->count = cpu_to_le32(1);
+ sg64->sg[0].addr[1] = cpu_to_le32(upper_32_bits(addr));
+ sg64->sg[0].addr[0] = cpu_to_le32(lower_32_bits(addr));
+ sg64->sg[0].count = cpu_to_le32(xfer_len);
- sg64 = (struct sgmap64 *)&srbcmd->sg;
- sg64->count = cpu_to_le32(1);
- sg64->sg[0].addr[1] = cpu_to_le32((u32)(((addr) >> 16) >> 16));
- sg64->sg[0].addr[0] = cpu_to_le32((u32)(addr & 0xffffffff));
- sg64->sg[0].count = cpu_to_le32(datasize);
+ /*
+ * Copy the updated data for other dumping or other usage if needed
+ */
+ memcpy(&srbu->srb, srb, sizeof(struct aac_srb));
+
+ /* issue request to the controller */
+ rcode = aac_fib_send(ScsiPortCommand64, fibptr, fibsize, FsaNormal,
+ 1, 1, NULL, NULL);
+
+ if (rcode == -ERESTARTSYS)
+ rcode = -ERESTART;
+
+ if (unlikely(rcode < 0))
+ goto bmic_error;
+
+ srb_reply = (struct aac_srb_reply *)fib_data(fibptr);
+ memcpy(&srbu->srb_reply, srb_reply, sizeof(struct aac_srb_reply));
+
+bmic_error:
+ dma_unmap_single(&dev->pdev->dev, addr, xfer_len, DMA_BIDIRECTIONAL);
+fib_error:
+ aac_fib_complete(fibptr);
+ aac_fib_free(fibptr);
+ return rcode;
+}
+
+static void aac_set_safw_target_qd(struct aac_dev *dev, int bus, int target)
+{
+
+ struct aac_ciss_identify_pd *identify_resp;
- rcode = aac_fib_send(ScsiPortCommand64,
- fibptr, fibsize, FsaNormal, 1, 1, NULL, NULL);
+ if (dev->hba_map[bus][target].devtype != AAC_DEVTYPE_NATIVE_RAW)
+ return;
+
+ identify_resp = dev->hba_map[bus][target].safw_identify_resp;
+ if (identify_resp == NULL) {
+ dev->hba_map[bus][target].qd_limit = 32;
+ return;
+ }
if (identify_resp->current_queue_depth_limit <= 0 ||
- identify_resp->current_queue_depth_limit > 32)
+ identify_resp->current_queue_depth_limit > 255)
dev->hba_map[bus][target].qd_limit = 32;
else
dev->hba_map[bus][target].qd_limit =
identify_resp->current_queue_depth_limit;
+}
- dma_free_coherent(&dev->pdev->dev, datasize, identify_resp, addr);
+static int aac_issue_safw_bmic_identify(struct aac_dev *dev,
+ struct aac_ciss_identify_pd **identify_resp, u32 bus, u32 target)
+{
+ int rcode = -ENOMEM;
+ int datasize;
+ struct aac_srb_unit srbu;
+ struct aac_srb *srbcmd;
+ struct aac_ciss_identify_pd *identify_reply;
- aac_fib_complete(fibptr);
+ datasize = sizeof(struct aac_ciss_identify_pd);
+ identify_reply = kmalloc(datasize, GFP_KERNEL);
+ if (!identify_reply)
+ goto out;
+
+ memset(&srbu, 0, sizeof(struct aac_srb_unit));
+
+ srbcmd = &srbu.srb;
+ srbcmd->flags = cpu_to_le32(SRB_DataIn);
+ srbcmd->cdb[0] = 0x26;
+ srbcmd->cdb[2] = (u8)((AAC_MAX_LUN + target) & 0x00FF);
+ srbcmd->cdb[6] = CISS_IDENTIFY_PHYSICAL_DEVICE;
+
+ rcode = aac_send_safw_bmic_cmd(dev, &srbu, identify_reply, datasize);

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/aacraid.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/commctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/comminit.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/commsup.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/linit.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/sa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/arcmsr/arcmsr.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/arcmsr/arcmsr_hba.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/arm/fas216.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_cs.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_defs_svc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_fcbuild.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_fcpim.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_fcpim.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_fcs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_fcs_lport.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_ioc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_port.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_port.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_svc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfa_svc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad_attr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad_bsg.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad_debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad_im.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bnx2fc/bnx2fc_fcoe.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bnx2fc/bnx2fc_hwi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bnx2fc/bnx2fc_tgt.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bnx2i/bnx2i_hwi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/csiostor/csio_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/csiostor/csio_init.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/csiostor/csio_mb.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxgbi/libcxgbi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/backend.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/common.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/cxl_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/superpipe.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxlflash/superpipe.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/device_handler/scsi_dh_alua.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_fcs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_stats.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_trace.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hisi_sas/hisi_sas.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hisi_sas/hisi_sas_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hisi_sas/hisi_sas_v1_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hisi_sas/hisi_sas_v2_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hosts.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hpsa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ibmvscsi/ibmvfc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ipr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/iscsi_tcp.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libiscsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libiscsi_tcp.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_ata.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_discover.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_event.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_expander.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_internal.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_phy.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_port.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/libsas/sas_scsi_host.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_attr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_crtn.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_ct.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_disc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_els.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_hbadisc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_hw4.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nportdisc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nvme.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nvme.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nvmet.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nvmet.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_sli.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_sli4.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_version.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas_base.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas_fp.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas_fusion.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas_fusion.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mpt3sas/mpt3sas_base.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mpt3sas/mpt3sas_base.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mpt3sas/mpt3sas_ctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mpt3sas/mpt3sas_scsih.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mpt3sas/mpt3sas_warpdrive.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/pmcraid.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ppa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qedf/qedf_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qedi/qedi_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qedi/qedi_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_attr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_bsg.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_def.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_dfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_fw.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_gbl.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_gs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_inline.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_iocb.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_isr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_mbx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_mid.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_nx2.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_os.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_sup.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_target.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_target.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_tmpl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_version.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/tcm_qla2xxx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla4xxx/ql4_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla4xxx/ql4_mbx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla4xxx/ql4_nx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla4xxx/ql4_os.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_debug.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_devinfo.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_dh.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_error.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_lib.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_priv.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_fc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sd.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ses.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/smartpqi/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/st.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/storvsc_drv.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufshci.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/wd719x.c

View file

This diff is incomplete. Download the complete patch.

include/linux/ata.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/libsas.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_cmnd.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_host.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_proto.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport_fc.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport_sas.h

View file

This diff is incomplete. Download the complete patch.

kernel/rcu/update.c

View file

This diff is incomplete. Download the complete patch.