projects/linux·commit cdc19470

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

cdc19470 · Linus Torvalds <[email protected]> · 2017-02-21 11:51:42 -08:00

Pull SCSI updates from James Bottomley:
 "This update includes the usual round of major driver updates (ncr5380,
  ufs, lpfc, be2iscsi, hisi_sas, storvsc, cxlflash, aacraid,
  megaraid_sas, ...).

  There's also an assortment of minor fixes and the major update of
  switching a bunch of drivers to pci_alloc_irq_vectors from Christoph"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (188 commits)
  scsi: megaraid_sas: handle dma_addr_t right on 32-bit
  scsi: megaraid_sas: array overflow in megasas_dump_frame()
  scsi: snic: switch to pci_irq_alloc_vectors
  scsi: megaraid_sas: driver version upgrade
  scsi: megaraid_sas: Change RAID_1_10_RMW_CMDS to RAID_1_PEER_CMDS and set value to 2
  scsi: megaraid_sas: Indentation and smatch warning fixes
  scsi: megaraid_sas: Cleanup VD_EXT_DEBUG and SPAN_DEBUG related debug prints
  scsi: megaraid_sas: Increase internal command pool
  scsi: megaraid_sas: Use synchronize_irq to wait for IRQs to complete
  scsi: megaraid_sas: Bail out the driver load if ld_list_query fails
  scsi: megaraid_sas: Change build_mpt_mfi_pass_thru to return void
  scsi: megaraid_sas: During OCR, if get_ctrl_info fails do not continue with OCR
  scsi: megaraid_sas: Do not set fp_possible if TM capable for non-RW syspdIO, change fp_possible to bool
  scsi: megaraid_sas: Remove unused pd_index from megasas_build_ld_nonrw_fusion
  scsi: megaraid_sas: megasas_return_cmd does not memset IO frame to zero
  scsi: megaraid_sas: max_fw_cmds are decremented twice, remove duplicate
  scsi: megaraid_sas: update can_queue only if the new value is less
  scsi: megaraid_sas: Change max_cmd from u32 to u16 in all functions
  scsi: megaraid_sas: set pd_after_lb from MR_BuildRaidContext and initialize pDevHandle to MR_DEVHANDLE_INVALID
  scsi: megaraid_sas: latest controller OCR capability from FW before sending shutdown DCMD
  ...
Commit
cdc194705d26fdd7fc5446b5d830f2bbe2b22c30
Parents
772c8f6f · d1da522f

Merge commit. Changes below are compared with the first parent: 772c8f6f.

Changes

129 files changed · +9294 −3928

FileStatusAddDelContent
drivers/ata/libata-eh.cmodified+1−0View file
drivers/ata/libata-transport.cmodified+0−1View file
drivers/ata/libata.hmodified+0−1View file
drivers/block/cciss.hmodified+15−15View file
drivers/infiniband/ulp/iser/iscsi_iser.cmodified+1−0View file
drivers/infiniband/ulp/srp/ib_srp.cmodified+1−0View file
drivers/message/fusion/mptfc.cmodified+1−0View file
drivers/message/fusion/mptlan.hmodified+0−1View file
drivers/message/fusion/mptsas.cmodified+1−1View file
drivers/s390/scsi/zfcp_scsi.cmodified+1−0View file
drivers/scsi/NCR5380.cmodified+22−42View file
drivers/scsi/NCR5380.hmodified+1−16View file
drivers/scsi/aacraid/aachba.cmodified+962−326View file
drivers/scsi/aacraid/aacraid.hmodified+568−76View file
drivers/scsi/aacraid/commctrl.cmodified+271−71View file
drivers/scsi/aacraid/comminit.cmodified+190−140View file
drivers/scsi/aacraid/commsup.cmodified+705−259View file
drivers/scsi/aacraid/dpcsup.cmodified+103−56View file
drivers/scsi/aacraid/linit.cmodified+387−175View file
drivers/scsi/aacraid/nark.cmodified+2−1View file
drivers/scsi/aacraid/rkt.cmodified+3−2View file
drivers/scsi/aacraid/rx.cmodified+10−7View file
drivers/scsi/aacraid/sa.cmodified+5−4View file
drivers/scsi/aacraid/src.cmodified+246−90View file
drivers/scsi/atari_scsi.cmodified+3−33View file
drivers/scsi/be2iscsi/be.hmodified+0−3View file
drivers/scsi/be2iscsi/be_cmds.cmodified+22−19View file
drivers/scsi/be2iscsi/be_cmds.hmodified+9−8View file
drivers/scsi/be2iscsi/be_iscsi.cmodified+83−82View file
drivers/scsi/be2iscsi/be_main.cmodified+157−188View file
drivers/scsi/be2iscsi/be_main.hmodified+10−34View file
drivers/scsi/be2iscsi/be_mgmt.cmodified+66−51View file
drivers/scsi/be2iscsi/be_mgmt.hmodified+17−81View file
drivers/scsi/bfa/bfa_fcs.cmodified+46−135View file
drivers/scsi/bfa/bfa_fcs.hmodified+0−4View file
drivers/scsi/bfa/bfad_im.cmodified+2−0View file
drivers/scsi/bnx2fc/bnx2fc_fcoe.cmodified+1−0View file
drivers/scsi/bnx2i/bnx2i_iscsi.cmodified+1−0View file
drivers/scsi/csiostor/csio_scsi.cmodified+2−0View file
drivers/scsi/cxgbi/cxgb3i/cxgb3i.cmodified+1−0View file
drivers/scsi/cxgbi/cxgb4i/cxgb4i.cmodified+1−0View file
drivers/scsi/cxlflash/common.hmodified+28−4View file
drivers/scsi/cxlflash/lunmgt.cmodified+18−13View file
drivers/scsi/cxlflash/main.cmodified+264−201View file
drivers/scsi/cxlflash/sislite.hmodified+18−1View file
drivers/scsi/cxlflash/superpipe.cmodified+99−84View file
drivers/scsi/cxlflash/vlun.cmodified+90−79View file
drivers/scsi/dpt_i2o.cmodified+2−6View file
drivers/scsi/esas2r/esas2r_init.cmodified+1−1View file
drivers/scsi/esas2r/esas2r_ioctl.cmodified+1−1View file
drivers/scsi/esas2r/esas2r_log.hmodified+2−2View file
drivers/scsi/esas2r/esas2r_main.cmodified+2−2View file
drivers/scsi/fcoe/fcoe.cmodified+1−0View file
drivers/scsi/fnic/fnic_main.cmodified+1−0View file
drivers/scsi/g_NCR5380.cmodified+43−2View file
drivers/scsi/g_NCR5380.hdeleted+0−56View before deletion
drivers/scsi/hisi_sas/hisi_sas.hmodified+1−0View file
drivers/scsi/hisi_sas/hisi_sas_main.cmodified+13−10View file
drivers/scsi/hisi_sas/hisi_sas_v1_hw.cmodified+2−0View file
drivers/scsi/hisi_sas/hisi_sas_v2_hw.cmodified+116−19View file
drivers/scsi/hpsa.cmodified+2−6View file
drivers/scsi/hpsa.hmodified+20−20View file
drivers/scsi/ibmvscsi/ibmvfc.cmodified+1−0View file
drivers/scsi/ibmvscsi/ibmvscsi.cmodified+1−0View file
drivers/scsi/iscsi_tcp.cmodified+1−0View file
drivers/scsi/libiscsi.cmodified+2−3View file
drivers/scsi/libsas/sas_init.cmodified+0−1View file
drivers/scsi/libsas/sas_internal.hmodified+0−2View file
drivers/scsi/libsas/sas_scsi_host.cmodified+0−7View file
drivers/scsi/lpfc/lpfc.hmodified+0−1View file
drivers/scsi/lpfc/lpfc_attr.cmodified+41−20View file
drivers/scsi/lpfc/lpfc_crtn.hmodified+4−3View file
drivers/scsi/lpfc/lpfc_els.cmodified+7−2View file
drivers/scsi/lpfc/lpfc_hw.hmodified+6−0View file
drivers/scsi/lpfc/lpfc_scsi.cmodified+14−6View file
drivers/scsi/lpfc/lpfc_sli.cmodified+9−4View file
drivers/scsi/lpfc/lpfc_version.hmodified+1−1View file
drivers/scsi/lpfc/lpfc_vport.cmodified+8−0View file
drivers/scsi/mac_scsi.cmodified+4−4View file
drivers/scsi/megaraid/megaraid_sas.hmodified+153−46View file
drivers/scsi/megaraid/megaraid_sas_base.cmodified+488−160View file
drivers/scsi/megaraid/megaraid_sas_fp.cmodified+231−237View file
drivers/scsi/megaraid/megaraid_sas_fusion.cmodified+1080−254View file
drivers/scsi/megaraid/megaraid_sas_fusion.hmodified+376−36View file
drivers/scsi/mpt3sas/mpi/mpi2_ioc.hmodified+2−0View file
drivers/scsi/mpt3sas/mpt3sas_base.cmodified+20−0View file
drivers/scsi/mpt3sas/mpt3sas_base.hmodified+4−3View file
drivers/scsi/mpt3sas/mpt3sas_ctl.cmodified+3−1View file
drivers/scsi/mpt3sas/mpt3sas_scsih.cmodified+45−11View file
drivers/scsi/mvumi.cmodified+1−5View file
drivers/scsi/pm8001/pm8001_init.cmodified+14−21View file
drivers/scsi/pm8001/pm8001_sas.hmodified+0−2View file
drivers/scsi/pmcraid.cmodified+41−51View file
drivers/scsi/pmcraid.hmodified+0−1View file
drivers/scsi/qedi/qedi_dbg.cmodified+6−3View file
drivers/scsi/qedi/qedi_iscsi.cmodified+1−4View file
drivers/scsi/qla2xxx/qla_def.hmodified+2−2View file
drivers/scsi/qla2xxx/qla_gs.cmodified+3−3View file
drivers/scsi/qla2xxx/qla_isr.cmodified+5−5View file
drivers/scsi/qla2xxx/qla_os.cmodified+1−0View file
drivers/scsi/qla4xxx/ql4_def.hmodified+0−3View file
drivers/scsi/qla4xxx/ql4_os.cmodified+3−3View file
drivers/scsi/scsi_debug.cmodified+9−1View file
drivers/scsi/scsi_error.cmodified+1−3View file
drivers/scsi/scsi_transport_fc.cmodified+4−22View file
drivers/scsi/scsi_transport_srp.cmodified+2−19View file
drivers/scsi/sd.cmodified+2−2View file
drivers/scsi/snic/snic.hmodified+0−1View file
drivers/scsi/snic/snic_isr.cmodified+19−29View file
drivers/scsi/storvsc_drv.cmodified+140−20View file
drivers/scsi/sun3_scsi.cmodified+79−4View file
drivers/scsi/sun3_scsi.hdeleted+0−102View before deletion
drivers/scsi/ufs/ufs-qcom.cmodified+43−6View file
drivers/scsi/ufs/ufs-qcom.hmodified+1−0View file
drivers/scsi/ufs/ufs.hmodified+12−0View file
drivers/scsi/ufs/ufs_quirks.hmodified+6−22View file
drivers/scsi/ufs/ufshcd.cmodified+1337−241View file
drivers/scsi/ufs/ufshcd.hmodified+110−11View file
drivers/scsi/ufs/ufshci.hmodified+3−0View file
drivers/scsi/vmw_pvscsi.cmodified+38−66View file
drivers/scsi/vmw_pvscsi.hmodified+0−5View file
include/linux/libata.hmodified+2−0View file
include/scsi/libiscsi.hmodified+1−0View file
include/scsi/scsi.hmodified+0−10View file
include/scsi/scsi_transport.hmodified+0−23View file
include/scsi/scsi_transport_fc.hmodified+1−0View file
include/scsi/scsi_transport_srp.hmodified+1−7View file
include/trace/events/ufs.hadded+263−0View file
include/uapi/scsi/cxlflash_ioctl.hmodified+1−0View file

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

drivers/ata/libata-eh.c

View file
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 0e1ec37..50ee10d 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -549,6 +549,7 @@ enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd)
DPRINTK("EXIT, ret=%d\n", ret);
return ret;
}
+EXPORT_SYMBOL(ata_scsi_timed_out);
static void ata_eh_unload(struct ata_port *ap)
{

drivers/ata/libata-transport.c

View file
diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c
index 7ef16c0..4669823 100644
--- a/drivers/ata/libata-transport.c
+++ b/drivers/ata/libata-transport.c
@@ -716,7 +716,6 @@ struct scsi_transport_template *ata_attach_transport(void)
return NULL;
i->t.eh_strategy_handler = ata_scsi_error;
- i->t.eh_timed_out = ata_scsi_timed_out;
i->t.user_scan = ata_scsi_user_scan;
i->t.host_attrs.ac.attrs = &i->port_attrs[0];

drivers/ata/libata.h

View file
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index 8f3a559..06d479d 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -159,7 +159,6 @@ extern unsigned long ata_internal_cmd_timeout(struct ata_device *dev, u8 cmd);
extern void ata_internal_cmd_timed_out(struct ata_device *dev, u8 cmd);
extern void ata_eh_acquire(struct ata_port *ap);
extern void ata_eh_release(struct ata_port *ap);
-extern enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd);
extern void ata_scsi_error(struct Scsi_Host *host);
extern void ata_eh_fastdrain_timerfn(unsigned long arg);
extern void ata_qc_schedule_eh(struct ata_queued_cmd *qc);

drivers/block/cciss.h

View file
diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
index 4affa94..24b5fd7 100644
--- a/drivers/block/cciss.h
+++ b/drivers/block/cciss.h
@@ -400,27 +400,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
}
static struct access_method SA5_access = {
- SA5_submit_command,
- SA5_intr_mask,
- SA5_fifo_full,
- SA5_intr_pending,
- SA5_completed,
+ .submit_command = SA5_submit_command,
+ .set_intr_mask = SA5_intr_mask,
+ .fifo_full = SA5_fifo_full,
+ .intr_pending = SA5_intr_pending,
+ .command_completed = SA5_completed,
};
static struct access_method SA5B_access = {
- SA5_submit_command,
- SA5B_intr_mask,
- SA5_fifo_full,
- SA5B_intr_pending,
- SA5_completed,
+ .submit_command = SA5_submit_command,
+ .set_intr_mask = SA5B_intr_mask,
+ .fifo_full = SA5_fifo_full,
+ .intr_pending = SA5B_intr_pending,
+ .command_completed = SA5_completed,
};
static struct access_method SA5_performant_access = {
- SA5_submit_command,
- SA5_performant_intr_mask,
- SA5_fifo_full,
- SA5_performant_intr_pending,
- SA5_performant_completed,
+ .submit_command = SA5_submit_command,
+ .set_intr_mask = SA5_performant_intr_mask,
+ .fifo_full = SA5_fifo_full,
+ .intr_pending = SA5_performant_intr_pending,
+ .command_completed = SA5_performant_completed,
};
struct board_type {

drivers/infiniband/ulp/iser/iscsi_iser.c

View file
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index e71af71..30a6985 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -994,6 +994,7 @@ static struct scsi_host_template iscsi_iser_sht = {
.change_queue_depth = scsi_change_queue_depth,
.sg_tablesize = ISCSI_ISER_DEF_SG_TABLESIZE,
.cmd_per_lun = ISER_DEF_CMD_PER_LUN,
+ .eh_timed_out = iscsi_eh_cmd_timed_out,
.eh_abort_handler = iscsi_eh_abort,
.eh_device_reset_handler= iscsi_eh_device_reset,
.eh_target_reset_handler = iscsi_eh_recover_target,

drivers/infiniband/ulp/srp/ib_srp.c

View file
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 79bf484..36529e3 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2869,6 +2869,7 @@ static struct scsi_host_template srp_template = {
.info = srp_target_info,
.queuecommand = srp_queuecommand,
.change_queue_depth = srp_change_queue_depth,
+ .eh_timed_out = srp_timed_out,
.eh_abort_handler = srp_abort,
.eh_device_reset_handler = srp_reset_device,
.eh_host_reset_handler = srp_reset_host,

drivers/message/fusion/mptfc.c

View file
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c
index add6a3a..98eafae 100644
--- a/drivers/message/fusion/mptfc.c
+++ b/drivers/message/fusion/mptfc.c
@@ -119,6 +119,7 @@ static struct scsi_host_template mptfc_driver_template = {
.target_destroy = mptfc_target_destroy,
.slave_destroy = mptscsih_slave_destroy,
.change_queue_depth = mptscsih_change_queue_depth,
+ .eh_timed_out = fc_eh_timed_out,
.eh_abort_handler = mptfc_abort,
.eh_device_reset_handler = mptfc_dev_reset,
.eh_bus_reset_handler = mptfc_bus_reset,

drivers/message/fusion/mptlan.h

View file
diff --git a/drivers/message/fusion/mptlan.h b/drivers/message/fusion/mptlan.h
index 8946e19..8a24494 100644
--- a/drivers/message/fusion/mptlan.h
+++ b/drivers/message/fusion/mptlan.h
@@ -65,7 +65,6 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/slab.h>
-#include <linux/miscdevice.h>
#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/delay.h>

drivers/message/fusion/mptsas.c

View file
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index b8c4b2b..f6308ad 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1983,6 +1983,7 @@ static struct scsi_host_template mptsas_driver_template = {
.target_destroy = mptsas_target_destroy,
.slave_destroy = mptscsih_slave_destroy,
.change_queue_depth = mptscsih_change_queue_depth,
+ .eh_timed_out = mptsas_eh_timed_out,
.eh_abort_handler = mptscsih_abort,
.eh_device_reset_handler = mptscsih_dev_reset,
.eh_host_reset_handler = mptscsih_host_reset,
@@ -5398,7 +5399,6 @@ mptsas_init(void)
sas_attach_transport(&mptsas_transport_functions);
if (!mptsas_transport_template)
return -ENODEV;
- mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out;
mptsasDoneCtx = mpt_register(mptscsih_io_done, MPTSAS_DRIVER,
"mptscsih_io_done");

drivers/s390/scsi/zfcp_scsi.c

View file
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 07ffdbb..0678cf7 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -330,6 +330,7 @@ static struct scsi_host_template zfcp_scsi_host_template = {
.module = THIS_MODULE,
.name = "zfcp",
.queuecommand = zfcp_scsi_queuecommand,
+ .eh_timed_out = fc_eh_timed_out,
.eh_abort_handler = zfcp_scsi_eh_abort_handler,
.eh_device_reset_handler = zfcp_scsi_eh_device_reset_handler,
.eh_target_reset_handler = zfcp_scsi_eh_target_reset_handler,

drivers/scsi/NCR5380.c

View file
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 4f5ca79..acc3344 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -96,17 +96,6 @@
* of chips. To use it, you write an architecture specific functions
* and macros and include this file in your driver.
*
- * These macros control options :
- * AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
- * for commands that return with a CHECK CONDITION status.
- *
- * DIFFERENTIAL - if defined, NCR53c81 chips will use external differential
- * transceivers.
- *
- * PSEUDO_DMA - if defined, PSEUDO DMA is used during the data transfer phases.
- *
- * REAL_DMA - if defined, REAL DMA is used during the data transfer phases.
- *
* These macros MUST be defined :
*
* NCR5380_read(register) - read from the specified register
@@ -347,7 +336,7 @@ static void NCR5380_print_phase(struct Scsi_Host *instance)
#endif
/**
- * NCR58380_info - report driver and host information
+ * NCR5380_info - report driver and host information
* @instance: relevant scsi host instance
*
* For use as the host template info() handler.
@@ -360,33 +349,6 @@ static const char *NCR5380_info(struct Scsi_Host *instance)
return hostdata->info;
}
-static void prepare_info(struct Scsi_Host *instance)
-{
- struct NCR5380_hostdata *hostdata = shost_priv(instance);
-
- snprintf(hostdata->info, sizeof(hostdata->info),
- "%s, irq %d, "
- "io_port 0x%lx, base 0x%lx, "
- "can_queue %d, cmd_per_lun %d, "
- "sg_tablesize %d, this_id %d, "
- "flags { %s%s%s}, "
- "options { %s} ",
- instance->hostt->name, instance->irq,
- hostdata->io_port, hostdata->base,
- instance->can_queue, instance->cmd_per_lun,
- instance->sg_tablesize, instance->this_id,
- hostdata->flags & FLAG_DMA_FIXUP ? "DMA_FIXUP " : "",
- hostdata->flags & FLAG_NO_PSEUDO_DMA ? "NO_PSEUDO_DMA " : "",
- hostdata->flags & FLAG_TOSHIBA_DELAY ? "TOSHIBA_DELAY " : "",
-#ifdef DIFFERENTIAL
- "DIFFERENTIAL "
-#endif
-#ifdef PARITY
- "PARITY "
-#endif
- "");
-}
-
/**
* NCR5380_init - initialise an NCR5380
* @instance: adapter to configure
@@ -436,7 +398,14 @@ static int NCR5380_init(struct Scsi_Host *instance, int flags)
if (!hostdata->work_q)
return -ENOMEM;
- prepare_info(instance);
+ snprintf(hostdata->info, sizeof(hostdata->info),
+ "%s, irq %d, io_port 0x%lx, base 0x%lx, can_queue %d, cmd_per_lun %d, sg_tablesize %d, this_id %d, flags { %s%s%s}",
+ instance->hostt->name, instance->irq, hostdata->io_port,
+ hostdata->base, instance->can_queue, instance->cmd_per_lun,
+ instance->sg_tablesize, instance->this_id,
+ hostdata->flags & FLAG_DMA_FIXUP ? "DMA_FIXUP " : "",
+ hostdata->flags & FLAG_NO_PSEUDO_DMA ? "NO_PSEUDO_DMA " : "",
+ hostdata->flags & FLAG_TOSHIBA_DELAY ? "TOSHIBA_DELAY " : "");
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
NCR5380_write(MODE_REG, MR_BASE);
@@ -622,8 +591,9 @@ static inline void maybe_release_dma_irq(struct Scsi_Host *instance)
list_empty(&hostdata->unissued) &&
list_empty(&hostdata->autosense) &&
!hostdata->connected &&
- !hostdata->selecting)
+ !hostdata->selecting) {
NCR5380_release_dma_irq(instance);
+ }
}
/**
@@ -962,6 +932,7 @@ static irqreturn_t __maybe_unused NCR5380_intr(int irq, void *dev_id)
static struct scsi_cmnd *NCR5380_select(struct Scsi_Host *instance,
struct scsi_cmnd *cmd)
+ __releases(&hostdata->lock) __acquires(&hostdata->lock)
{
struct NCR5380_hostdata *hostdata = shost_priv(instance);
unsigned char tmp[3], phase;
@@ -1194,8 +1165,16 @@ static struct scsi_cmnd *NCR5380_select(struct Scsi_Host *instance,
data = tmp;
phase = PHASE_MSGOUT;
NCR5380_transfer_pio(instance, &phase, &len, &data);
+ if (len) {
+ NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
+ cmd->result = DID_ERROR << 16;
+ complete_cmd(instance, cmd);
+ dsprintk(NDEBUG_SELECTION, instance, "IDENTIFY message transfer failed\n");
+ cmd = NULL;
+ goto out;
+ }
+
dsprintk(NDEBUG_SELECTION, instance, "nexus established.\n");
- /* XXX need to handle errors here */
hostdata->connected = cmd;
hostdata->busy[cmd->device->id] |= 1 << cmd->device->lun;
@@ -1654,6 +1633,7 @@ static int NCR5380_transfer_dma(struct Scsi_Host *instance,
*/
static void NCR5380_information_transfer(struct Scsi_Host *instance)
+ __releases(&hostdata->lock) __acquires(&hostdata->lock)
{
struct NCR5380_hostdata *hostdata = shost_priv(instance);
unsigned char msgout = NOP;

drivers/scsi/NCR5380.h

View file
diff --git a/drivers/scsi/NCR5380.h b/drivers/scsi/NCR5380.h
index 51a3567..d78f095 100644
--- a/drivers/scsi/NCR5380.h
+++ b/drivers/scsi/NCR5380.h
@@ -81,11 +81,7 @@
#define ICR_ASSERT_ATN 0x02 /* rw Set to assert ATN */
#define ICR_ASSERT_DATA 0x01 /* rw SCSI_DATA_REG is asserted */
-#ifdef DIFFERENTIAL
-#define ICR_BASE ICR_DIFF_ENABLE
-#else
#define ICR_BASE 0
-#endif
#define MODE_REG 2
/*
@@ -102,11 +98,7 @@
#define MR_DMA_MODE 0x02 /* rw DMA / pseudo DMA mode */
#define MR_ARBITRATE 0x01 /* rw start arbitration */
-#ifdef PARITY
-#define MR_BASE MR_ENABLE_PAR_CHECK
-#else
#define MR_BASE 0
-#endif
#define TARGET_COMMAND_REG 3
#define TCR_LAST_BYTE_SENT 0x80 /* ro DMA done */
@@ -174,11 +166,7 @@
#define CSR_SCSI_BUF_RDY 0x02 /* ro SCSI buffer read */
#define CSR_GATED_53C80_IRQ 0x01 /* ro Last block xferred */
-#if 0
-#define CSR_BASE CSR_SCSI_BUFF_INTR | CSR_53C80_INTR
-#else
#define CSR_BASE CSR_53C80_INTR
-#endif
/* Note : PHASE_* macros are based on the values of the STATUS register */
#define PHASE_MASK (SR_MSG | SR_CD | SR_IO)
@@ -234,11 +222,9 @@ struct NCR5380_hostdata {
unsigned char id_higher_mask; /* All bits above id_mask */
unsigned char last_message; /* Last Message Out */
unsigned long region_size; /* Size of address/port range */
- char info[256];
+ char info[168]; /* Host banner message */
};
-#ifdef __KERNEL__
-
struct NCR5380_cmd {
struct list_head list;
};
@@ -331,5 +317,4 @@ static inline int NCR5380_dma_residual_none(struct NCR5380_hostdata *hostdata)
return 0;
}
-#endif /* __KERNEL__ */
#endif /* NCR5380_H */

drivers/scsi/aacraid/aachba.c

View file
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 1ee7c65..907f1e8 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -6,7 +6,8 @@
* Adaptec aacraid device driver for Linux.
*
* Copyright (c) 2000-2010 Adaptec, Inc.
- * 2010 PMC-Sierra, Inc. ([email protected])
+ * 2010-2015 PMC-Sierra, Inc. ([email protected])
+ * 2016-2017 Microsemi Corp. ([email protected])
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,6 +23,11 @@
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
+ * Module Name:
+ * aachba.c
+ *
+ * Abstract: Contains Interfaces to manage IOs.
+ *
*/
#include <linux/kernel.h>
@@ -62,6 +68,7 @@
#define SENCODE_END_OF_DATA 0x00
#define SENCODE_BECOMING_READY 0x04
#define SENCODE_INIT_CMD_REQUIRED 0x04
+#define SENCODE_UNRECOVERED_READ_ERROR 0x11
#define SENCODE_PARAM_LIST_LENGTH_ERROR 0x1A
#define SENCODE_INVALID_COMMAND 0x20
#define SENCODE_LBA_OUT_OF_RANGE 0x21
@@ -106,6 +113,8 @@
#define ASENCODE_LUN_FAILED_SELF_CONFIG 0x00
#define ASENCODE_OVERLAPPED_COMMAND 0x00
+#define AAC_STAT_GOOD (DID_OK << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_GOOD)
+
#define BYTE0(x) (unsigned char)(x)
#define BYTE1(x) (unsigned char)((x) >> 8)
#define BYTE2(x) (unsigned char)((x) >> 16)
@@ -164,46 +173,56 @@ struct inquiry_data {
};
/* Added for VPD 0x83 */
-typedef struct {
- u8 CodeSet:4; /* VPD_CODE_SET */
- u8 Reserved:4;
- u8 IdentifierType:4; /* VPD_IDENTIFIER_TYPE */
- u8 Reserved2:4;
- u8 Reserved3;
- u8 IdentifierLength;
- u8 VendId[8];
- u8 ProductId[16];
- u8 SerialNumber[8]; /* SN in ASCII */
-
-} TVPD_ID_Descriptor_Type_1;
+struct tvpd_id_descriptor_type_1 {
+ u8 codeset:4; /* VPD_CODE_SET */
+ u8 reserved:4;
+ u8 identifiertype:4; /* VPD_IDENTIFIER_TYPE */
+ u8 reserved2:4;
+ u8 reserved3;
+ u8 identifierlength;
+ u8 venid[8];
+ u8 productid[16];
+ u8 serialnumber[8]; /* SN in ASCII */
-typedef struct {
- u8 CodeSet:4; /* VPD_CODE_SET */
- u8 Reserved:4;
- u8 IdentifierType:4; /* VPD_IDENTIFIER_TYPE */
- u8 Reserved2:4;
- u8 Reserved3;
- u8 IdentifierLength;
- struct TEU64Id {
+};
+
+struct tvpd_id_descriptor_type_2 {
+ u8 codeset:4; /* VPD_CODE_SET */
+ u8 reserved:4;
+ u8 identifiertype:4; /* VPD_IDENTIFIER_TYPE */
+ u8 reserved2:4;
+ u8 reserved3;
+ u8 identifierlength;
+ struct teu64id {
u32 Serial;
/* The serial number supposed to be 40 bits,
* bit we only support 32, so make the last byte zero. */
- u8 Reserved;
- u8 VendId[3];
- } EU64Id;
+ u8 reserved;
+ u8 venid[3];
+ } eu64id;
-} TVPD_ID_Descriptor_Type_2;
+};
-typedef struct {
+struct tvpd_id_descriptor_type_3 {
+ u8 codeset : 4; /* VPD_CODE_SET */
+ u8 reserved : 4;
+ u8 identifiertype : 4; /* VPD_IDENTIFIER_TYPE */
+ u8 reserved2 : 4;
+ u8 reserved3;
+ u8 identifierlength;
+ u8 Identifier[16];
+};
+
+struct tvpd_page83 {
u8 DeviceType:5;
u8 DeviceTypeQualifier:3;
u8 PageCode;
- u8 Reserved;
+ u8 reserved;
u8 PageLength;
- TVPD_ID_Descriptor_Type_1 IdDescriptorType1;
- TVPD_ID_Descriptor_Type_2 IdDescriptorType2;
-
-} TVPD_Page83;
+ struct tvpd_id_descriptor_type_1 type1;
+ struct tvpd_id_descriptor_type_2 type2;
+ struct tvpd_id_descriptor_type_3 type3;
+};
/*
* M O D U L E G L O B A L S
@@ -214,9 +233,13 @@ static long aac_build_sg64(struct scsi_cmnd *scsicmd, struct sgmap64 *psg);
static long aac_build_sgraw(struct scsi_cmnd *scsicmd, struct sgmapraw *psg);
static long aac_build_sgraw2(struct scsi_cmnd *scsicmd,
struct aac_raw_io2 *rio2, int sg_max);
+static long aac_build_sghba(struct scsi_cmnd *scsicmd,
+ struct aac_hba_cmd_req *hbacmd,
+ int sg_max, u64 sg_address);
static int aac_convert_sgraw2(struct aac_raw_io2 *rio2,
int pages, int nseg, int nseg_new);
static int aac_send_srb_fib(struct scsi_cmnd* scsicmd);
+static int aac_send_hba_fib(struct scsi_cmnd *scsicmd);
#ifdef AAC_DETAILED_STATUS_INFO
static char *aac_get_status_string(u32 status);
#endif
@@ -327,7 +350,7 @@ static inline int aac_valid_context(struct scsi_cmnd *scsicmd,
}
scsicmd->SCp.phase = AAC_OWNER_MIDLEVEL;
device = scsicmd->device;
- if (unlikely(!device || !scsi_device_online(device))) {
+ if (unlikely(!device)) {
dprintk((KERN_WARNING "aac_valid_context: scsi device corrupt\n"));
aac_fib_complete(fibptr);
return 0;
@@ -473,16 +496,26 @@ int aac_get_containers(struct aac_dev *dev)
if (maximum_num_containers < MAXIMUM_NUM_CONTAINERS)
maximum_num_containers = MAXIMUM_NUM_CONTAINERS;
- fsa_dev_ptr = kzalloc(sizeof(*fsa_dev_ptr) * maximum_num_containers,
- GFP_KERNEL);
- if (!fsa_dev_ptr)
- return -ENOMEM;
+ if (dev->fsa_dev == NULL ||
+ dev->maximum_num_containers != maximum_num_containers) {
+
+ fsa_dev_ptr = dev->fsa_dev;
+
+ dev->fsa_dev = kcalloc(maximum_num_containers,
+ sizeof(*fsa_dev_ptr), GFP_KERNEL);
+
+ kfree(fsa_dev_ptr);
+ fsa_dev_ptr = NULL;
- dev->fsa_dev = fsa_dev_ptr;
- dev->maximum_num_containers = maximum_num_containers;
- for (index = 0; index < dev->maximum_num_containers; ) {
- fsa_dev_ptr[index].devname[0] = '\0';
+ if (!dev->fsa_dev)
+ return -ENOMEM;
+
+ dev->maximum_num_containers = maximum_num_containers;
+ }
+ for (index = 0; index < dev->maximum_num_containers; index++) {
+ dev->fsa_dev[index].devname[0] = '\0';
+ dev->fsa_dev[index].valid = 0;
status = aac_probe_container(dev, index);
@@ -490,12 +523,6 @@ int aac_get_containers(struct aac_dev *dev)
printk(KERN_WARNING "aac_get_containers: SendFIB failed.\n");
break;
}
-
- /*
- * If there are no more containers, then stop asking.
- */
- if (++index >= status)
- break;
}
return status;
}
@@ -602,6 +629,7 @@ static void _aac_probe_container2(void * context, struct fib * fibptr)
struct fsa_dev_info *fsa_dev_ptr;
int (*callback)(struct scsi_cmnd *);
struct scsi_cmnd * scsicmd = (struct scsi_cmnd *)context;
+ int i;
if (!aac_valid_context(scsicmd, fibptr))
@@ -624,6 +652,10 @@ static void _aac_probe_container2(void * context, struct fib * fibptr)
fsa_dev_ptr->block_size =
le32_to_cpu(dresp->mnt[0].fileinfo.bdevinfo.block_size);
}
+ for (i = 0; i < 16; i++)
+ fsa_dev_ptr->identifier[i] =
+ dresp->mnt[0].fileinfo.bdevinfo
+ .identifier[i];
fsa_dev_ptr->valid = 1;
/* sense_key holds the current state of the spin-up */
if (dresp->mnt[0].state & cpu_to_le32(FSCS_NOT_READY))
@@ -918,6 +950,28 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
inqstrcpy ("V1.0", str->prl);
}
+static void build_vpd83_type3(struct tvpd_page83 *vpdpage83data,
+ struct aac_dev *dev, struct scsi_cmnd *scsicmd)
+{
+ int container;
+
+ vpdpage83data->type3.codeset = 1;
+ vpdpage83data->type3.identifiertype = 3;
+ vpdpage83data->type3.identifierlength = sizeof(vpdpage83data->type3)
+ - 4;
+
+ for (container = 0; container < dev->maximum_num_containers;
+ container++) {
+
+ if (scmd_id(scsicmd) == container) {
+ memcpy(vpdpage83data->type3.Identifier,
+ dev->fsa_dev[container].identifier,
+ 16);
+ break;
+ }
+ }
+}
+
static void get_container_serial_callback(void *context, struct fib * fibptr)
{
struct aac_get_serial_resp * get_serial_reply;
@@ -935,39 +989,47 @@ static void get_container_serial_callback(void *context, struct fib * fibptr)
/*Check to see if it's for VPD 0x83 or 0x80 */
if (scsicmd->cmnd[2] == 0x83) {

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/dpcsup.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/nark.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/rkt.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/rx.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/aacraid/src.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/atari_scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_cmds.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_cmds.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_iscsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_main.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_mgmt.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/be2iscsi/be_mgmt.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.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/bfa/bfad_im.c

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/bnx2i/bnx2i_iscsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/csiostor/csio_scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxgbi/cxgb3i/cxgb3i.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cxgbi/cxgb4i/cxgb4i.c

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/lunmgt.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/sislite.h

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/vlun.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/dpt_i2o.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/esas2r/esas2r_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/esas2r/esas2r_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/esas2r/esas2r_log.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/esas2r/esas2r_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fcoe/fcoe.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fnic/fnic_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/g_NCR5380.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/g_NCR5380.h

View before deletion

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/hpsa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hpsa.h

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/ibmvscsi.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/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_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_els.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_hw.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_scsi.c

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_version.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_vport.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/mac_scsi.c

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/mpi/mpi2_ioc.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/mvumi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/pm8001/pm8001_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/pm8001/pm8001_sas.h

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/pmcraid.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qedi/qedi_dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qedi/qedi_iscsi.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_gs.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_os.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla4xxx/ql4_def.h

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_debug.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_transport_fc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_srp.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/snic/snic.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/snic/snic_isr.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/sun3_scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sun3_scsi.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufs-qcom.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufs-qcom.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufs.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufs_quirks.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufshcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ufs/ufshcd.h

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/vmw_pvscsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/vmw_pvscsi.h

View file

This diff is incomplete. Download the complete patch.

include/linux/libata.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/libiscsi.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport.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_srp.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/ufs.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/scsi/cxlflash_ioctl.h

View file

This diff is incomplete. Download the complete patch.