Support 64-bit LUNs
cover Support 64-bit LUNs
Hi all,
this patchset updates the SCSI stack to support full 64-bit LUNs. The first patch is a simple fix; the next two patches update the sequential scan logic to be compliant with SPC.
The last two patches update the SCSI stack and all drivers to use 64-bit LUNs where appropriate.
The patchset is marked as an RFC as I've had to do some modifications to existing drivers, and would like to have the individual maintainers a cross-check here.
In particular the qla2xxx driver (currently) uses a 32-bit LUN for TMFs; I've updated that to 64-bit but the change needs to be validated.
The zfcp driver uses a 32-bit LUN for debug records; the record format would need to be updated to cope with 64-bit LUNs.
The other changes have been pretty straightforward.
Hannes Reinecke (5):
scsi: Remove CONFIG_SCSI_MULTI_LUN
scsi_scan: Restrict sequential scan to 256 LUNs
qla2xxx: Restrict max_luns to 16-bit for older HBAs
scsi: use 64-bit LUNs
scsi: use 64-bit value for 'max_luns'
drivers/ata/libata-scsi.c | 2 +- drivers/ata/libata.h | 2 +- drivers/message/fusion/mptscsih.c | 2 +- drivers/message/i2o/i2o_scsi.c | 11 +++--- drivers/s390/scsi/zfcp_dbf.c | 3 +- drivers/s390/scsi/zfcp_unit.c | 4 +-- drivers/scsi/Kconfig | 14 -------- drivers/scsi/NCR5380.c | 2 +- drivers/scsi/aacraid/linit.c | 2 +- drivers/scsi/aha152x.c | 6 ++-- drivers/scsi/aic7xxx/aic79xx.h | 2 +- drivers/scsi/aic7xxx/aic79xx_osm.c | 6 ++-- drivers/scsi/aic7xxx/aic79xx_proc.c | 2 +- drivers/scsi/aic7xxx/aic7xxx_osm.c | 11 +++--- drivers/scsi/aic7xxx/aic7xxx_proc.c | 2 +- drivers/scsi/arcmsr/arcmsr_hba.c | 8 ++--- drivers/scsi/csiostor/csio_scsi.c | 24 ++++++------- drivers/scsi/cxgbi/libcxgbi.c | 2 +- drivers/scsi/cxgbi/libcxgbi.h | 2 +- drivers/scsi/dc395x.c | 51 ++++++++++++-------------- drivers/scsi/eata.c | 4 +-- drivers/scsi/fnic/fnic_scsi.c | 4 +-- drivers/scsi/hpsa.c | 2 +- drivers/scsi/ibmvscsi/ibmvfc.c | 4 +-- drivers/scsi/libiscsi.c | 8 ++--- drivers/scsi/libsas/sas_scsi_host.c | 11 +++--- drivers/scsi/lpfc/lpfc_attr.c | 10 +++++- drivers/scsi/lpfc/lpfc_scsi.c | 32 ++++++++--------- drivers/scsi/megaraid.c | 6 ++-- drivers/scsi/megaraid/mega_common.h | 2 +- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 +-- drivers/scsi/ncr53c8xx.h | 4 --- drivers/scsi/pmcraid.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 6 ++-- drivers/scsi/qla2xxx/qla_gbl.h | 18 +++++----- drivers/scsi/qla2xxx/qla_init.c | 4 +-- drivers/scsi/qla2xxx/qla_iocb.c | 14 ++++---- drivers/scsi/qla2xxx/qla_isr.c | 4 +-- drivers/scsi/qla2xxx/qla_mbx.c | 12 +++---- drivers/scsi/qla2xxx/qla_mr.c | 10 +++--- drivers/scsi/qla2xxx/qla_os.c | 46 ++++++++++++++---------- drivers/scsi/qla4xxx/ql4_glbl.h | 4 +-- drivers/scsi/qla4xxx/ql4_iocb.c | 2 +- drivers/scsi/qla4xxx/ql4_isr.c | 22 ++++++------ drivers/scsi/qla4xxx/ql4_mbx.c | 6 ++-- drivers/scsi/qla4xxx/ql4_os.c | 18 +++++----- drivers/scsi/scsi.c | 8 ++--- drivers/scsi/scsi_debug.c | 15 ++++---- drivers/scsi/scsi_priv.h | 2 +- drivers/scsi/scsi_proc.c | 2 +- drivers/scsi/scsi_scan.c | 70 +++++++++++++++--------------------- drivers/scsi/scsi_sysfs.c | 14 ++++---- drivers/scsi/scsi_transport_fc.c | 4 +-- drivers/scsi/scsi_transport_iscsi.c | 4 +-- drivers/scsi/scsi_transport_sas.c | 2 +- drivers/scsi/sg.c | 4 +-- drivers/scsi/sym53c8xx_2/sym_glue.c | 2 +- drivers/scsi/sym53c8xx_2/sym_hipd.h | 2 +- drivers/target/loopback/tcm_loop.c | 2 +- drivers/target/target_core_pscsi.c | 12 +++---- drivers/usb/storage/sddr09.c | 4 +-- drivers/usb/storage/usb.c | 10 +++--- include/linux/moduleparam.h | 5 +++ include/scsi/scsi.h | 2 +- include/scsi/scsi_device.h | 22 ++++++------ include/scsi/scsi_devinfo.h | 2 ++ include/scsi/scsi_host.h | 6 ++-- include/scsi/scsi_transport.h | 2 +- kernel/params.c | 1 + 69 files changed, 301 insertions(+), 313 deletions(-)
Signature · 1 line
1.7.12.4
PATCH 1/5 scsi: Remove CONFIG_SCSI_MULTI_LUN
Obsolete; either use 'max_lun' if the host supports only a limited number of LUNs or BLIST_NOLUN if the target has problems addressing more than one LUN.
--- drivers/scsi/Kconfig | 14 -------------- drivers/scsi/dc395x.c | 9 +-------- drivers/scsi/ncr53c8xx.h | 4 ---- drivers/scsi/scsi_scan.c | 4 ---- 4 files changed, 1 insertion(+), 30 deletions(-)
drivers/scsi/Kconfig +0 -14
@@ -197,20 +197,6 @@ config SCSI_ENCLOSURE it has an enclosure device. Selecting this option will just allow certain enclosure conditions to be reported and is not required. -config SCSI_MULTI_LUN - bool "Probe all LUNs on each SCSI device" - depends on SCSI - help - Some devices support more than one LUN (Logical Unit Number) in order - to allow access to several media, e.g. CD jukebox, USB card reader, - mobile phone in mass storage mode. This option forces the kernel to - probe for all LUNs by default. This setting can be overriden by - max_luns boot/module parameter. Note that this option does not affect - devices conforming to SCSI-3 or higher as they can explicitely report - their number of LUNs. It is safe to say Y here unless you have one of - those rare devices which reacts in an unexpected way when probed for - multiple LUNs. - config SCSI_CONSTANTS bool "Verbose SCSI error reporting (kernel size +=12K)" depends on SCSI
drivers/scsi/dc395x.c +1 -8
@@ -519,9 +519,7 @@ static struct ParameterData cfg_data[] = {CFG_PARAM_UNSET ,0 ,0x2f , -#ifdef CONFIG_SCSI_MULTI_LUN -NAC_SCANLUN | -#endif +NAC_SCANLUN |NAC_GT2DRIVES |NAC_GREATER_1G |NAC_POWERON_SCSI_RESET /*| NAC_ACTIVE_NEG*/ ,NAC_GT2DRIVES |NAC_GREATER_1G |NAC_POWERON_SCSI_RESET |0x08
@@ -4434,15 +4432,10 @@ static void adapter_init_scsi_host(struct Scsi_Host *host)if (host->max_id -1 == eeprom->scsi_id) host->max_id--; -#ifdef CONFIG_SCSI_MULTI_LUN if (eeprom->channel_cfg &NAC_SCANLUN ) host->max_lun =8 ;else host->max_lun =1 ; -#else - host->max_lun =1 ; -#endif - }
drivers/scsi/ncr53c8xx.h +0 -4
@@ -264,11 +264,7 @@#define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER)#define SCSI_NCR_TIMER_INTERVAL (HZ) -#if 1 /* defined CONFIG_SCSI_MULTI_LUN */ #define SCSI_NCR_MAX_LUN (16) -#else -#define SCSI_NCR_MAX_LUN (1) -#endif /* * IO functions definition for big/little endian CPU support.
drivers/scsi/scsi_scan.c +0 -4
@@ -81,11 +81,7 @@ static const char *scsi_null_device_strs = "nullnullnullnull";#define MAX_SCSI_LUNS 512 -#ifdef CONFIG_SCSI_MULTI_LUN static unsigned int max_scsi_luns =MAX_SCSI_LUNS ; -#else -static unsigned int max_scsi_luns =1 ; -#endif module_param_named (max_luns, max_scsi_luns, uint,S_IRUGO |S_IWUSR ); MODULE_PARM_DESC(max_luns,
Signature · 1 line
1.7.12.4
Re: [PATCH 1/5] scsi: Remove CONFIG_SCSI_MULTI_LUN
Quoted 3 lines · Hannes Reinecke
Obsolete; either use '
max_lun' if the host supports only a limited number of LUNs orBLIST_NOLUNif the target has problems addressing more than one LUN.
Looks good,
Btw, I noticed the SuSE tree has various blacklist updates, might be worth to throw them into the series as well?
PATCH 2/5 scsi_scan: Restrict sequential scan to 256 LUNs
In reply to Hannes ReineckeSequential scan for more than 256 LUNs is very fragile as LUNs might not be numbered sequentially after that point.
SAM revisions later than SCSI-3 impose a structure on LUNs larger than 256, making LUN numbers between 256 and 16384 illegal.
SCSI-3, however allows for plain 64-bit numbers with no internal structure.
So restrict sequential LUN scan to 256 LUNs and add a new blacklist flag 'BLIST_SCSI3LUN' to scan up to max_lun devices.
--- drivers/scsi/scsi_scan.c | 6 ++++++ include/scsi/scsi_devinfo.h | 2 ++ 2 files changed, 8 insertions(+)
drivers/scsi/scsi_scan.c +6 -0
@@ -1208,6 +1208,12 @@ static void scsi_sequential_lun_scan(struct scsi_target *starget, max_dev_lun =min (8U , max_dev_lun);/* +* Stop scanning at 255 unless BLIST_SCSI3LUN +*/ +if (!(bflags &BLIST_SCSI3LUN )) + max_dev_lun =min (256U , max_dev_lun); + +/* * We have already scanned LUN 0, so start at LUN 1. Keep scanning * until we reach the max, or no LUN is found and we are not * sparse_lun.
include/scsi/scsi_devinfo.h +2 -0
@@ -32,4 +32,6 @@#define BLIST_ATTACH_PQ3 0x1000000/* Scan: Attach to PQ3 devices */ #define BLIST_NO_DIF 0x2000000/* Disable T10 PI (DIF) */ #define BLIST_SKIP_VPD_PAGES 0x4000000/* Ignore SBC-3 VPD pages */ +#define BLIST_SCSI3LUN 0x8000000/* Scan more than 256 LUNs +for sequential scan */ #endif
Signature · 1 line
1.7.12.4
Re: [PATCH 2/5] scsi_scan: Restrict sequential scan to 256 LUNs
Quoted 9 lines · Hannes Reinecke
Sequential scan for more than 256 LUNs is very fragile as LUNs might not be numbered sequentially after that point.
SAM revisions later than SCSI-3 impose a structure on LUNs larger than 256, making LUN numbers between 256 and 16384 illegal.
SCSI-3, however allows for plain 64-bit numbers with no internal structure.
Quoted 3 lines
So restrict sequential LUN scan to 256 LUNs and add a new blacklist flag '
BLIST_SCSI3LUN' to scan up tomax_lundevices.
What do you need the blacklist flag for? There's no user of it, and supporting that many LUNs without REPORT LUNS support doesn't sound very practical anyway.
Re: [PATCH 2/5] scsi_scan: Restrict sequential scan to 256 LUNs
Quoted 10 lines · Christoph Hellwig
Quoted 9 lines · Hannes Reinecke
Sequential scan for more than 256 LUNs is very fragile as LUNs might not be numbered sequentially after that point.
SAM revisions later than SCSI-3 impose a structure on LUNs larger than 256, making LUN numbers between 256 and 16384 illegal.
SCSI-3, however allows for plain 64-bit numbers with no internal structure.
Quoted 8 lines
Quoted 3 lines
So restrict sequential LUN scan to 256 LUNs and add a new blacklist flag '
BLIST_SCSI3LUN' to scan up tomax_lundevices.What do you need the blacklist flag for? There's no user of it, and supporting that many LUNs without REPORT LUNS support doesn't sound very practical anyway.
Because there is no guarantee that pre-SCSI-3 devices (or devices announcing to be pre-SCSI-3) will not allow to scan more than 256 devices. Thinking of older Symmetrix here with their weird 'SPC-3 masking as SCSI-2' habit.
Also currently we're allowing to scan beyond 256 without any restrictions there might be installations out there which rely on this behaviour.
Hence this flag.
Cheers,
Hannes
Signature · 8 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/5] scsi_scan: Restrict sequential scan to 256 LUNs
Quoted 5 lines · Hannes Reinecke
Because there is no guarantee that pre-SCSI-3 devices (or devices announcing to be pre-SCSI-3) will not allow to scan more than 256 devices.
Thinking of older Symmetrix here with their weird 'SPC-3 masking as SCSI-2' habit.
Don't we have a blist entry for those to use REPORT LUNS anyway?
Quoted 6 lines
Also currently we're allowing to scan beyond 256 without any restrictions there might be installations out there which rely on this behaviour.
Hence this flag.
Which doesn't really have an effect as-is as it's never set.
Re: [PATCH 2/5] scsi_scan: Restrict sequential scan to 256 LUNs
Quoted 8 lines · Christoph Hellwig
Quoted 5 lines · Hannes Reinecke
Because there is no guarantee that pre-SCSI-3 devices (or devices announcing to be pre-SCSI-3) will not allow to scan more than 256 devices.
Thinking of older Symmetrix here with their weird 'SPC-3 masking as SCSI-2' habit.Don't we have a blist entry for those to use REPORT LUNS anyway?
Symmetrix was just an example of weirdness ...
Quoted 9 lines
Quoted 6 lines
Also currently we're allowing to scan beyond 256 without any restrictions there might be installations out there which rely on this behaviour.
Hence this flag.
Which doesn't really have an effect as-is as it's never set.
Because currently there are no target which would require them. Obviously. But that doesn't mean there won't be any.
Note, this is just a safety net for backwards compability. If you think we won't need it of course we can remove it.
Cheers,
Hannes
Signature · 8 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 3/5 qla2xxx: Restrict max_luns to 16-bit for older HBAs
In reply to Hannes ReineckeOlder HBAs are only capable of supporting 16-bit LUNs, so we need to make sure to adjust the 'ql2xmaxlun' parameter accordingly.
--- drivers/scsi/qla2xxx/qla_os.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/scsi/qla2xxx/qla_os.c +5 -0
@@ -2600,6 +2600,11 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)else host->max_cmd_len =MAX_CMDSZ ; host->max_channel =MAX_BUSES -1 ; +if (!IS_QLAFX00 (ha) && !IS_FWI2_CAPABLE (ha)) { +/* HW supports only 16-bit LUNs */ +if (ql2xmaxlun >0xffff ) + ql2xmaxlun =0xffff ; + } host->max_lun = ql2xmaxlun; host->transportt = qla2xxx_transport_template; sht->vendor_id = (SCSI_NL_VID_TYPE_PCI |PCI_VENDOR_ID_QLOGIC );
Signature · 1 line
1.7.12.4
Re: [PATCH 3/5] qla2xxx: Restrict max_luns to 16-bit for older HBAs
Quoted 17 lines · Hannes Reinecke
Older HBAs are only capable of supporting 16-bit LUNs, so we need to make sure to adjust the 'ql2xmaxlun' parameter accordingly.
Cc Chad Dupuis <[email protected]>Signed-off-by Hannes Reinecke <[email protected]>---
drivers/scsi/qla2xxx/qla_os.c| 5 +++++1 file changed, 5 insertions(+)drivers/scsi/qla2xxx/qla_os.c +0
-0@@ -2600,6 +2600,11 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)else
drivers/scsi/qla2xxx/qla_os.c qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) · line 2610
Quoted 10 lines
drivers/scsi/qla2xxx/qla_os.c +5
-0host->max_cmd_len =MAX_CMDSZ ; host->max_channel =MAX_BUSES -1 ; +if (!IS_QLAFX00 (ha) && !IS_FWI2_CAPABLE (ha)) { +/* HW supports only 16-bit LUNs */ +if (ql2xmaxlun >0xffff ) + ql2xmaxlun =0xffff ; + } host->max_lun = ql2xmaxlun; host->transportt = qla2xxx_transport_template; sht->vendor_id = (SCSI_NL_VID_TYPE_PCI |PCI_VENDOR_ID_QLOGIC );
Hannes, this looks good. Thanks.
Re: [PATCH 3/5] qla2xxx: Restrict max_luns to 16-bit for older HBAs
Quoted 6 lines · Chad Dupuis
Quoted 6 lines
drivers/scsi/qla2xxx/qla_os.c +5
-0+if (!IS_QLAFX00 (ha) && !IS_FWI2_CAPABLE (ha)) { +/* HW supports only 16-bit LUNs */ +if (ql2xmaxlun >0xffff ) + ql2xmaxlun =0xffff ; + }host->max_lun = ql2xmaxlun;
ql2xmaxlun is a global variable. This should be changed to work on host->max_lun instead.
Re: [PATCH 3/5] qla2xxx: Restrict max_luns to 16-bit for older HBAs
Quoted 11 lines · Christoph Hellwig
Quoted 6 lines · Chad Dupuis
Quoted 6 lines
drivers/scsi/qla2xxx/qla_os.c +5
-0+if (!IS_QLAFX00 (ha) && !IS_FWI2_CAPABLE (ha)) { +/* HW supports only 16-bit LUNs */ +if (ql2xmaxlun >0xffff ) + ql2xmaxlun =0xffff ; + }host->max_lun = ql2xmaxlun;ql2xmaxlun is a global variable. This should be changed to work on
host->max_luninstead.
Right. Will be fixing it up.
Cheers,
Hannes
Signature · 8 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 4/5 scsi: use 64-bit LUNs
In reply to Hannes ReineckeThe SCSI standard defines 64-bit values for LUNs, and large arrays employing large or hierarchical LUN numbers become more and more common.
So update the linux SCSI stack to use 64-bit LUN numbers.
--- drivers/ata/libata-scsi.c | 2 +- drivers/ata/libata.h | 2 +- drivers/message/fusion/mptscsih.c | 2 +- drivers/message/i2o/i2o_scsi.c | 11 ++++---- drivers/s390/scsi/zfcp_dbf.c | 3 ++- drivers/s390/scsi/zfcp_unit.c | 4 +-- drivers/scsi/NCR5380.c | 2 +- drivers/scsi/aacraid/linit.c | 2 +- drivers/scsi/aha152x.c | 6 ++--- drivers/scsi/aic7xxx/aic79xx.h | 2 +- drivers/scsi/aic7xxx/aic79xx_osm.c | 6 ++--- drivers/scsi/aic7xxx/aic79xx_proc.c | 2 +- drivers/scsi/aic7xxx/aic7xxx_osm.c | 11 ++++---- drivers/scsi/aic7xxx/aic7xxx_proc.c | 2 +- drivers/scsi/arcmsr/arcmsr_hba.c | 8 +++--- drivers/scsi/csiostor/csio_scsi.c | 24 ++++++++--------- drivers/scsi/dc395x.c | 40 +++++++++++++-------------- drivers/scsi/eata.c | 2 +- drivers/scsi/fnic/fnic_scsi.c | 4 +-- drivers/scsi/hpsa.c | 2 +- drivers/scsi/libiscsi.c | 8 +++--- drivers/scsi/libsas/sas_scsi_host.c | 11 ++++---- drivers/scsi/lpfc/lpfc_scsi.c | 32 +++++++++++----------- drivers/scsi/megaraid.c | 4 +-- drivers/scsi/megaraid/mega_common.h | 2 +- drivers/scsi/pmcraid.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 6 ++--- drivers/scsi/qla2xxx/qla_gbl.h | 16 +++++------ drivers/scsi/qla2xxx/qla_init.c | 4 +-- drivers/scsi/qla2xxx/qla_iocb.c | 14 +++++----- drivers/scsi/qla2xxx/qla_isr.c | 4 +-- drivers/scsi/qla2xxx/qla_mbx.c | 12 ++++----- drivers/scsi/qla2xxx/qla_mr.c | 10 +++---- drivers/scsi/qla2xxx/qla_os.c | 35 +++++++++++++----------- drivers/scsi/qla4xxx/ql4_glbl.h | 4 +-- drivers/scsi/qla4xxx/ql4_iocb.c | 2 +- drivers/scsi/qla4xxx/ql4_isr.c | 22 +++++++-------- drivers/scsi/qla4xxx/ql4_mbx.c | 6 ++--- drivers/scsi/qla4xxx/ql4_os.c | 18 ++++++------- drivers/scsi/scsi.c | 8 +++--- drivers/scsi/scsi_debug.c | 15 ++++++----- drivers/scsi/scsi_priv.h | 2 +- drivers/scsi/scsi_proc.c | 2 +- drivers/scsi/scsi_scan.c | 54 +++++++++++++------------------------ drivers/scsi/scsi_sysfs.c | 14 +++++----- drivers/scsi/scsi_transport_fc.c | 4 +-- drivers/scsi/scsi_transport_iscsi.c | 4 +-- drivers/scsi/scsi_transport_sas.c | 2 +- drivers/scsi/sg.c | 4 +-- drivers/scsi/sym53c8xx_2/sym_glue.c | 2 +- drivers/scsi/sym53c8xx_2/sym_hipd.h | 2 +- drivers/target/loopback/tcm_loop.c | 2 +- drivers/target/target_core_pscsi.c | 12 ++++----- drivers/usb/storage/sddr09.c | 4 +-- drivers/usb/storage/usb.c | 10 ++++--- include/scsi/scsi.h | 2 +- include/scsi/scsi_device.h | 22 +++++++-------- include/scsi/scsi_transport.h | 2 +- 58 files changed, 253 insertions(+), 263 deletions(-)
drivers/ata/libata-scsi.c +1 -1
@@ -3907,7 +3907,7 @@ void ata_scsi_hotplug(struct work_struct *work)* Zero. */ int ata_scsi_user_scan (struct Scsi_Host *shost,unsigned int channel, -unsigned int id,unsigned int lun) +unsigned int id,u64 lun) {struct ata_port *ap =ata_shost_to_port (shost);unsigned long flags;
drivers/ata/libata.h +1 -1
@@ -144,7 +144,7 @@ extern void ata_schedule_scsi_eh(struct Scsi_Host *shost);extern void ata_scsi_dev_rescan (struct work_struct *work);extern int ata_bus_probe (struct ata_port *ap);extern int ata_scsi_user_scan (struct Scsi_Host *shost,unsigned int channel, -unsigned int id,unsigned int lun); +unsigned int id,u64 lun);/* libata-eh.c */
drivers/message/fusion/mptscsih.c +1 -1
@@ -692,7 +692,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)*/ if (scsi_state &MPI_SCSI_STATE_RESPONSE_INFO_VALID && pScsiReply->ResponseInfo) { - printk(MYIOC_s_NOTE_FMT "[%d:%d:%d:%d] " + printk(MYIOC_s_NOTE_FMT "[%d:%d:%d:%llu] " "FCP_ResponseInfo=%08xh\n", ioc->name, sc->device->host->host_no, sc->device->channel, sc->device->id, sc->device->lun,
drivers/message/i2o/i2o_scsi.c +5 -6
@@ -78,7 +78,7 @@ static unsigned int i2o_scsi_max_lun = 255;struct i2o_scsi_host {struct Scsi_Host *scsi_host;/* pointer to the SCSI host */ struct i2o_controller *iop;/* pointer to the I2O controller */ -unsigned int lun;/* lun's used for block devices */ +u64 lun;/* lun's used for block devices */ struct i2o_device *channel[0 ];/* channel->i2o_dev mapping table */ };
@@ -287,9 +287,8 @@ static int i2o_scsi_probe(struct device *dev) }if (le64_to_cpu (lun) >= scsi_host->max_lun) { -osm_warn ("SCSI device lun (%lu) >= max_lun of I2O host (%d)" , - (long unsigned int )le64_to_cpu (lun), - scsi_host->max_lun); +osm_warn ("SCSI device lun (%llu) >= max_lun of I2O host (%d)" , +le64_to_cpu (lun), scsi_host->max_lun);return -EFAULT ; }
@@ -308,9 +307,9 @@ static int i2o_scsi_probe(struct device *dev)if (rc) goto err; -osm_info ("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n" , +osm_info ("device added (TID: %03x) channel: %d, id: %d, lun: %llu\n" , i2o_dev->lct_data.tid, channel,le32_to_cpu (id), - (long unsigned int )le64_to_cpu (lun)); +le64_to_cpu (lun));return 0 ;
drivers/s390/scsi/zfcp_dbf.c +2 -1
@@ -418,7 +418,8 @@ void zfcp_dbf_scsi(char *tag, struct scsi_cmnd *sc, struct zfcp_fsf_req *fsf) rec->scsi_retries = sc->retries; rec->scsi_allowed = sc->allowed; rec->scsi_id = sc->device->id; - rec->scsi_lun = sc->device->lun; +/* struct zfcp_dbf_scsi needs to be updated to handle 64bit LUNs */ + rec->scsi_lun = (u32 )sc->device->lun; rec->host_scribble = (unsigned long )sc->host_scribble; memcpy(rec->scsi_opcode, sc->cmnd,
drivers/s390/scsi/zfcp_unit.c +2 -2
@@ -21,7 +21,7 @@void zfcp_unit_scsi_scan (struct zfcp_unit *unit) {struct fc_rport *rport = unit->port->rport; -unsigned int lun; +u64 lun; lun =scsilun_to_int ((struct scsi_lun *) &unit->fcp_lun);
@@ -188,7 +188,7 @@ struct scsi_device *zfcp_unit_sdev(struct zfcp_unit *unit) {struct Scsi_Host *shost;struct zfcp_port *port; -unsigned int lun; +u64 lun; lun =scsilun_to_int ((struct scsi_lun *) &unit->fcp_lun); port = unit->port;
drivers/scsi/NCR5380.c +1 -1
@@ -771,7 +771,7 @@ static int __maybe_unused NCR5380_show_info(struct seq_file *m,static void lprint_Scsi_Cmnd (Scsi_Cmnd * cmd,struct seq_file *m) { -SPRINTF ("scsi%d : destination target %d, lun %d\n" , cmd->device->host->host_no, cmd->device->id, cmd->device->lun); +SPRINTF ("scsi%d : destination target %d, lun %d\n" , cmd->device->host->host_no, cmd->device->id, (u8 )cmd->device->lun);SPRINTF (" command = " );lprint_command (cmd->cmnd, m); }
drivers/scsi/aacraid/linit.c +1 -1
@@ -551,7 +551,7 @@ static int aac_eh_abort(struct scsi_cmnd* cmd)int count;int ret =FAILED ; -printk (KERN_ERR "%s: Host adapter abort request (%d,%d,%d,%d)\n" , +printk (KERN_ERR "%s: Host adapter abort request (%d,%d,%d,%llu)\n" ,AAC_DRIVERNAME , host->host_no,sdev_channel (dev),sdev_id (dev), dev->lun);switch (cmd->cmnd[0 ]) {
drivers/scsi/aha152x.c +3 -3
@@ -321,7 +321,7 @@ static LIST_HEAD(aha152x_host_list);#define CMDINFO (cmd) \ (cmd) ? ((cmd)->device->host->host_no) : -1, \ (cmd) ? ((cmd)->device->id & 0x0f) : -1, \ - (cmd) ? ((cmd)->device->lun & 0x07) : -1 + (cmd) ? ((u8)(cmd)->device->lun & 0x07) : -1static inline void CMD_INC_RESID (struct scsi_cmnd *cmd,int inc)
@@ -1602,7 +1602,7 @@ static void busfree_run(struct Scsi_Host *shpnt)#if defined(AHA152X_DEBUG )int hostno=DONE_SC ->device->host->host_no;int id=DONE_SC ->device->id &0xf ; -int lun=DONE_SC ->device->lun &0x7 ; +int lun=((u8 )DONE_SC ->device->lun) &0x7 ;#endif Scsi_Cmnd *ptr =DONE_SC ;DONE_SC =NULL ;
@@ -2984,7 +2984,7 @@ static void get_command(struct seq_file *m, Scsi_Cmnd * ptr)int i;SPRINTF ("%p: target=%d; lun=%d; cmnd=( " , - ptr, ptr->device->id, ptr->device->lun); + ptr, ptr->device->id, (u8 )ptr->device->lun);for (i =0 ; i <COMMAND_SIZE (ptr->cmnd[0 ]); i++)SPRINTF ("0x%02x " , ptr->cmnd[i]);
drivers/scsi/aic7xxx/aic79xx.h +1 -1
@@ -115,7 +115,7 @@ struct scb_platform_data;#endif #define AHD_BUILD_COL_IDX (target, lun) \ - (((lun) << 4) | target) + ((((u8)lun) << 4) | target)#define AHD_GET_SCB_COL_IDX (ahd, scb) \ ((SCB_GET_LUN(scb) << 4) | SCB_GET_TARGET(ahd, scb))
drivers/scsi/aic7xxx/aic79xx_osm.c +3 -3
@@ -2137,7 +2137,7 @@ ahd_linux_queue_cmd_complete(struct ahd_softc *ahd, struct scsi_cmnd *cmd)if (do_fallback) {printk ("%s: device overrun (status %x) on %d:%d:%d\n" ,ahd_name (ahd), status, cmd->device->channel, - cmd->device->id, cmd->device->lun); + cmd->device->id, (u8 )cmd->device->lun); }ahd_cmd_set_transaction_status (cmd, new_status);
@@ -2253,13 +2253,13 @@ ahd_linux_queue_abort_cmd(struct scsi_cmnd *cmd) disconnected = TRUE;if (ahd_search_qinfifo (ahd, cmd->device->id, cmd->device->channel +'A' , - cmd->device->lun, + cmd->device->lun, pending_scb->hscb->tag,ROLE_INITIATOR ,CAM_REQ_ABORTED ,SEARCH_COMPLETE ) >0 ) {printk ("%s:%d:%d:%d: Cmd aborted from QINFIFO\n" ,ahd_name (ahd), cmd->device->channel, - cmd->device->id, cmd->device->lun); + cmd->device->id, (u8 )cmd->device->lun); retval =SUCCESS ; goto done; }
drivers/scsi/aic7xxx/aic79xx_proc.c +1 -1
@@ -197,7 +197,7 @@ ahd_dump_device_state(struct seq_file *m, struct scsi_device *sdev)seq_printf (m,"\tChannel %c Target %d Lun %d Settings\n" , sdev->sdev_target->channel +'A' , - sdev->sdev_target->id, sdev->lun); + sdev->sdev_target->id, (u8 )sdev->lun);seq_printf (m,"\t\tCommands Queued %ld\n" , dev->commands_issued);seq_printf (m,"\t\tCommands Active %d\n" , dev->active);
drivers/scsi/aic7xxx/aic7xxx_osm.c +6 -5
@@ -2120,7 +2120,7 @@ ahc_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)*/ printk ("%s:%d:%d:%d: Is not an active device\n" ,ahc_name (ahc), cmd->device->channel, cmd->device->id, - cmd->device->lun); + (u8 )cmd->device->lun); retval =SUCCESS ; goto no_cmd; }
@@ -2128,11 +2128,11 @@ ahc_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)if ((dev->flags & (AHC_DEV_Q_BASIC |AHC_DEV_Q_TAGGED )) ==0 &&ahc_search_untagged_queues (ahc, cmd, cmd->device->id, cmd->device->channel +'A' , - cmd->device->lun, + (u8 )cmd->device->lun,CAM_REQ_ABORTED ,SEARCH_COMPLETE ) !=0 ) {printk ("%s:%d:%d:%d: Command found on untagged queue\n" ,ahc_name (ahc), cmd->device->channel, cmd->device->id, - cmd->device->lun); + (u8 )cmd->device->lun); retval =SUCCESS ; goto done; }
@@ -2198,13 +2198,14 @@ ahc_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag) SEARCH_COMPLETE) > 0) {printk ("%s:%d:%d:%d: Cmd aborted from QINFIFO\n" ,ahc_name (ahc), cmd->device->channel, - cmd->device->id, cmd->device->lun); + cmd->device->id, (u8 )cmd->device->lun); retval =SUCCESS ; goto done; } }else if (ahc_search_qinfifo (ahc, cmd->device->id, cmd->device->channel +'A' , - cmd->device->lun, pending_scb->hscb->tag, + cmd->device->lun, + pending_scb->hscb->tag,ROLE_INITIATOR ,/*status*/ 0 ,SEARCH_COUNT ) >0 ) { disconnected = FALSE;
drivers/scsi/aic7xxx/aic7xxx_proc.c +1 -1
@@ -175,7 +175,7 @@ ahc_dump_device_state(struct seq_file *m, struct scsi_device *sdev)seq_printf (m,"\tChannel %c Target %d Lun %d Settings\n" , sdev->sdev_target->channel +'A' , - sdev->sdev_target->id, sdev->lun); + sdev->sdev_target->id, (u8 )sdev->lun);seq_printf (m,"\t\tCommands Queued %ld\n" , dev->commands_issued);seq_printf (m,"\t\tCommands Active %d\n" , dev->active);
drivers/scsi/arcmsr/arcmsr_hba.c +4 -4
@@ -2334,7 +2334,7 @@ static int arcmsr_polling_hba_ccbdone(struct AdapterControlBlock *acb," poll command abort successfully \n" , acb->host->host_no , ccb->pcmd->device->id - , ccb->pcmd->device->lun + , (u32 )ccb->pcmd->device->lun , ccb); ccb->pcmd->result =DID_ABORT <<16 ;arcmsr_ccb_complete (ccb);
@@ -2398,7 +2398,7 @@ static int arcmsr_polling_hbb_ccbdone(struct AdapterControlBlock *acb," poll command abort successfully \n" ,acb->host->host_no ,ccb->pcmd->device->id - ,ccb->pcmd->device->lun + ,(u32 )ccb->pcmd->device->lun ,ccb); ccb->pcmd->result =DID_ABORT <<16 ;arcmsr_ccb_complete (ccb);
@@ -2455,7 +2455,7 @@ polling_hbc_ccb_retry:" poll command abort successfully \n" , acb->host->host_no , pCCB->pcmd->device->id - , pCCB->pcmd->device->lun + , (u32 )pCCB->pcmd->device->lun , pCCB); pCCB->pcmd->result =DID_ABORT <<16 ;arcmsr_ccb_complete (pCCB);
@@ -3058,7 +3058,7 @@ static int arcmsr_abort(struct scsi_cmnd *cmd)int rtn =FAILED ;printk (KERN_NOTICE "arcmsr%d: abort device command of scsi id = %d lun = %d \n" , - acb->host->host_no, cmd->device->id, cmd->device->lun); + acb->host->host_no, cmd->device->id, (u32 )cmd->device->lun); acb->acb_flags |=ACB_F_ABORT ; acb->num_aborts++;/*
drivers/scsi/csiostor/csio_scsi.c +12 -12
@@ -1657,7 +1657,7 @@ csio_scsi_err_handler(struct csio_hw *hw, struct csio_ioreq *req)case FW_SCSI_UNDER_FLOW_ERR :csio_warn (hw,"Under-flow error,cmnd:0x%x expected" -" len:0x%x resid:0x%x lun:0x%x ssn:0x%x\n" , +" len:0x%x resid:0x%x lun:0x%llx ssn:0x%x\n" , cmnd->cmnd[0 ],scsi_bufflen (cmnd),scsi_get_resid (cmnd), cmnd->device->lun, rn->flowid);
@@ -1957,7 +1957,7 @@ csio_eh_abort_handler(struct scsi_cmnd *cmnd)csio_dbg (hw,"Request to abort ioreq:%p cmd:%p cdb:%08llx" -" ssni:0x%x lun:%d iq:0x%x\n" , +" ssni:0x%x lun:%llu iq:0x%x\n" , ioreq, cmnd, *((uint64_t *)cmnd->cmnd), rn->flowid, cmnd->device->lun,csio_q_physiqid (hw, ioreq->iq_idx));
@@ -2015,13 +2015,13 @@ inval_scmnd:/* FW successfully aborted the request */ if (host_byte (cmnd->result) ==DID_REQUEUE ) {csio_info (hw, -"Aborted SCSI command to (%d:%d) serial#:0x%lx\n" , +"Aborted SCSI command to (%d:%llu) serial#:0x%lx\n" , cmnd->device->id, cmnd->device->lun, cmnd->serial_number);return SUCCESS ; }else {csio_info (hw, -"Failed to abort SCSI command, (%d:%d) serial#:0x%lx\n" , +"Failed to abort SCSI command, (%d:%llu) serial#:0x%lx\n" , cmnd->device->id, cmnd->device->lun, cmnd->serial_number);return FAILED ;
@@ -2100,13 +2100,13 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)if (!rn) goto fail; -csio_dbg (hw,"Request to reset LUN:%d (ssni:0x%x tgtid:%d)\n" , +csio_dbg (hw,"Request to reset LUN:%llu (ssni:0x%x tgtid:%d)\n" , cmnd->device->lun, rn->flowid, rn->scsi_id);if (!csio_is_lnode_ready (ln)) {csio_err (hw,"LUN reset cannot be issued on non-ready" -" local node vnpi:0x%x (LUN:%d)\n" , +" local node vnpi:0x%x (LUN:%llu)\n" , ln->vnp_flowid, cmnd->device->lun); goto fail; }
@@ -2126,7 +2126,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)if (fc_remote_port_chkready (rn->rport)) {csio_err (hw,"LUN reset cannot be issued on non-ready" -" remote node ssni:0x%x (LUN:%d)\n" , +" remote node ssni:0x%x (LUN:%llu)\n" , rn->flowid, cmnd->device->lun); goto fail; }
@@ -2168,7 +2168,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd) sld.level =CSIO_LEV_LUN ; sld.lnode = ioreq->lnode; sld.rnode = ioreq->rnode; - sld.oslun = (uint64_t )cmnd->device->lun; + sld.oslun = cmnd->device->lun;spin_lock_irqsave (&hw->lock, flags);/* Kick off TM SM on the ioreq */
@@ -2190,7 +2190,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)/* LUN reset timed-out */ if (((struct scsi_cmnd *)csio_scsi_cmnd (ioreq)) == cmnd) { -csio_err (hw,"LUN reset (%d:%d) timed out\n" , +csio_err (hw,"LUN reset (%d:%llu) timed out\n" , cmnd->device->id, cmnd->device->lun);spin_lock_irq (&hw->lock);
@@ -2203,7 +2203,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)/* LUN reset returned, check cached status */ if (cmnd->SCp.Status !=FW_SUCCESS ) { -csio_err (hw,"LUN reset failed (%d:%d), status: %d\n" , +csio_err (hw,"LUN reset failed (%d:%llu), status: %d\n" , cmnd->device->id, cmnd->device->lun, cmnd->SCp.Status); goto fail; }
@@ -2223,7 +2223,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)/* Aborts may have timed out */ if (retval !=0 ) {csio_err (hw, -"Attempt to abort I/Os during LUN reset of %d" +"Attempt to abort I/Os during LUN reset of %llu" " returned %d\n" , cmnd->device->lun, retval);/* Return I/Os back to active_q */ spin_lock_irq (&hw->lock);
@@ -2234,7 +2234,7 @@ csio_eh_lun_reset_handler(struct scsi_cmnd *cmnd)CSIO_INC_STATS (rn, n_lun_rst); -csio_info (hw,"LUN reset occurred (%d:%d)\n" , +csio_info (hw,"LUN reset occurred (%d:%llu)\n" , cmnd->device->id, cmnd->device->lun);return SUCCESS ;
drivers/scsi/dc395x.c +20 -20
@@ -1087,7 +1087,7 @@ static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct sstruct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)cmd->device->host->hostdata;dprintkdbg (DBG_0 ,"queue_command: (0x%p) <%02i-%i> cmnd=0x%02x\n" , - cmd, cmd->device->id, cmd->device->lun, cmd->cmnd[0 ]); + cmd, cmd->device->id, (u8 )cmd->device->lun, cmd->cmnd[0 ]);/* Assume BAD_TARGET; will be cleared later */ cmd->result =DID_BAD_TARGET <<16 ;
@@ -1102,7 +1102,7 @@ static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct s/* does the specified lun on the specified device exist */ if (!(acb->dcb_map[cmd->device->id] & (1 << cmd->device->lun))) {dprintkl (KERN_INFO ,"queue_command: Ignore target <%02i-%i>\n" , - cmd->device->id, cmd->device->lun); + cmd->device->id, (u8 )cmd->device->lun); goto complete; }
@@ -1111,7 +1111,7 @@ static int dc395x_queue_command_lck(struct scsi_cmnd *cmd, void (*done)(struct sif (!dcb) {/* should never happen */ dprintkl (KERN_ERR ,"queue_command: No such device <%02i-%i>" , - cmd->device->id, cmd->device->lun); + cmd->device->id, (u8 )cmd->device->lun); goto complete; }
@@ -1207,7 +1207,7 @@ static void dump_register_info(struct AdapterCtlBlk *acb,"cmnd=0x%02x <%02i-%i>\n" , srb, srb->cmd, srb->cmd->cmnd[0 ], srb->cmd->device->id, - srb->cmd->device->lun); + (u8)srb->cmd->device->lun);printk (" sglist=%p cnt=%i idx=%i len=%zu\n" , srb->segment_x, srb->sg_count, srb->sg_index, srb->total_xfer_length);
@@ -1302,7 +1302,7 @@ static int __dc395x_eh_bus_reset(struct scsi_cmnd *cmd) (struct AdapterCtlBlk *)cmd->device->host->hostdata;dprintkl (KERN_INFO ,"eh_bus_reset: (0%p) target=<%02i-%i> cmd=%p\n" , - cmd, cmd->device->id, cmd->device->lun, cmd); + cmd, cmd->device->id, (u8 )cmd->device->lun, cmd);if (timer_pending (&acb->waiting_timer))del_timer (&acb->waiting_timer);
@@ -1369,7 +1369,7 @@ static int dc395x_eh_abort(struct scsi_cmnd *cmd)struct DeviceCtlBlk *dcb;struct ScsiReqBlk *srb;dprintkl (KERN_INFO ,"eh_abort: (0x%p) target=<%02i-%i> cmd=%p\n" , - cmd, cmd->device->id, cmd->device->lun, cmd); + cmd, cmd->device->id, (u8 )cmd->device->lun, cmd); dcb =find_dcb (acb, cmd->device->id, cmd->device->lun);if (!dcb) {
@@ -1605,7 +1605,7 @@ static u8 start_scsi(struct AdapterCtlBlk* acb, struct DeviceCtlBlk* dcb,dprintkl (KERN_WARNING ,"start_scsi: (0x%p) " "Out of tags target=<%02i-%i>)\n" , srb->cmd, srb->cmd->device->id, - srb->cmd->device->lun); + (u8 )srb->cmd->device->lun); srb->state =SRB_READY ;DC395x_write16 (acb,TRM_S1040_SCSI_CONTROL ,DO_HWRESELECT );
@@ -1623,7 +1623,7 @@ static u8 start_scsi(struct AdapterCtlBlk* acb, struct DeviceCtlBlk* dcb,/*polling:*/ /* Send CDB ..command block ......... */ dprintkdbg (DBG_KG ,"start_scsi: (0x%p) <%02i-%i> cmnd=0x%02x tag=%i\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun, + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun, srb->cmd->cmnd[0 ], srb->tag_number);if (srb->flag &AUTO_REQSENSE ) {DC395x_write8 (acb,TRM_S1040_SCSI_FIFO ,REQUEST_SENSE );
@@ -2041,7 +2041,7 @@ static void data_out_phase0(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb,u16 scsi_status = *pscsi_status;u32 d_left_counter =0 ;dprintkdbg (DBG_0 ,"data_out_phase0: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun);/* * KG: We need to drain the buffers before we draw any conclusions!
@@ -2171,7 +2171,7 @@ static void data_out_phase1(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb, u16 *pscsi_status) {dprintkdbg (DBG_0 ,"data_out_phase1: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun);clear_fifo (acb,"data_out_phase1" );/* do prepare before transfer when data out phase */ data_io_transfer (acb, srb,XFERDATAOUT );
@@ -2183,7 +2183,7 @@ static void data_in_phase0(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb,u16 scsi_status = *pscsi_status;dprintkdbg (DBG_0 ,"data_in_phase0: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun);/* * KG: DataIn is much more tricky than DataOut. When the device is finished
@@ -2394,7 +2394,7 @@ static void data_in_phase1(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb, u16 *pscsi_status) {dprintkdbg (DBG_0 ,"data_in_phase1: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun);data_io_transfer (acb, srb,XFERDATAIN ); }
@@ -2406,7 +2406,7 @@ static void data_io_transfer(struct AdapterCtlBlk *acb,u8 bval;dprintkdbg (DBG_0 ,"data_io_transfer: (0x%p) <%02i-%i> %c len=%i, sg=(%i/%i)\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun, + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun, ((io_dir &DMACMD_DIR ) ?'r' :'w' ), srb->total_xfer_length, srb->sg_index, srb->sg_count);if (srb == acb->tmp_srb)
@@ -2579,7 +2579,7 @@ static void status_phase0(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb, u16 *pscsi_status) {dprintkdbg (DBG_0 ,"status_phase0: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun); srb->target_status =DC395x_read8 (acb,TRM_S1040_SCSI_FIFO ); srb->end_message =DC395x_read8 (acb,TRM_S1040_SCSI_FIFO );/* get message */ srb->state =SRB_COMPLETED ;
@@ -2593,7 +2593,7 @@ static void status_phase1(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb, u16 *pscsi_status) {dprintkdbg (DBG_0 ,"status_phase1: (0x%p) <%02i-%i>\n" , - srb->cmd, srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd, srb->cmd->device->id, (u8 )srb->cmd->device->lun); srb->state =SRB_STATUS ;DC395x_write16 (acb,TRM_S1040_SCSI_CONTROL ,DO_DATALATCH );/* it's important for atn stop */ DC395x_write8 (acb,TRM_S1040_SCSI_COMMAND ,SCMD_COMP );
@@ -3318,7 +3318,7 @@ static void srb_done(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,int ckc_only =1 ;dprintkdbg (DBG_1 ,"srb_done: (0x%p) <%02i-%i>\n" , srb->cmd, - srb->cmd->device->id, srb->cmd->device->lun); + srb->cmd->device->id, (u8 )srb->cmd->device->lun);dprintkdbg (DBG_SG ,"srb_done: srb=%p sg=%i(%i/%i) buf=%p\n" , srb,scsi_sg_count (cmd), srb->sg_index, srb->sg_count,scsi_sgtalbe (cmd));
@@ -3498,7 +3498,7 @@ static void srb_done(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,if (srb->total_xfer_length)dprintkdbg (DBG_KG ,"srb_done: (0x%p) <%02i-%i> " "cmnd=0x%02x Missed %i bytes\n" , - cmd, cmd->device->id, cmd->device->lun, + cmd, cmd->device->id, (u8 )cmd->device->lun, cmd->cmnd[0 ], srb->total_xfer_length); }
@@ -3538,7 +3538,7 @@ static void doing_srb_done(struct AdapterCtlBlk *acb, u8 did_flag, dir = p->sc_data_direction; result =MK_RES (0 , did_flag,0 ,0 );printk ("G:%p(%02i-%i) " , p, - p->device->id, p->device->lun); + p->device->id, (u8 )p->device->lun);srb_going_remove (dcb, srb);free_tag (dcb, srb);srb_free_insert (acb, srb);
@@ -3568,7 +3568,7 @@ static void doing_srb_done(struct AdapterCtlBlk *acb, u8 did_flag, result =MK_RES (0 , did_flag,0 ,0 );printk ("W:%p<%02i-%i>" , p, p->device->id, - p->device->lun); + (u8 )p->device->lun);srb_waiting_remove (dcb, srb);srb_free_insert (acb, srb); p->result = result;
@@ -3677,7 +3677,7 @@ static void request_sense(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb, {struct scsi_cmnd *cmd = srb->cmd;dprintkdbg (DBG_1 ,"request_sense: (0x%p) <%02i-%i>\n" , - cmd, cmd->device->id, cmd->device->lun); + cmd, cmd->device->id, (u8 )cmd->device->lun); srb->flag |=AUTO_REQSENSE ; srb->adapter_status =0 ;
drivers/scsi/eata.c +1 -1
@@ -2449,7 +2449,7 @@ static irqreturn_t ihdlr(struct Scsi_Host *shost)"target_status 0x%x, sense key 0x%x.\n" , ha->board_name, SCpnt->device->channel, SCpnt->device->id, - SCpnt->device->lun, + (u8 )SCpnt->device->lun, spp->target_status, SCpnt->sense_buffer[2]); ha->target_to[SCpnt->device->id][SCpnt->device->channel] =0 ;
drivers/scsi/fnic/fnic_scsi.c +2 -2
@@ -1751,7 +1751,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc) tag = sc->request->tag;FNIC_SCSI_DBG (KERN_DEBUG , fnic->lport->host, -"Abort Cmd called FCID 0x%x, LUN 0x%x TAG %x flags %x\n" , +"Abort Cmd called FCID 0x%x, LUN 0x%llx TAG %x flags %x\n" , rport->port_id, sc->device->lun, tag,CMD_FLAGS (sc));CMD_FLAGS (sc) =FNIC_NO_FLAGS ;
@@ -2206,7 +2206,7 @@ int fnic_device_reset(struct scsi_cmnd *sc) rport =starget_to_rport (scsi_target (sc->device));FNIC_SCSI_DBG (KERN_DEBUG , fnic->lport->host, -"Device reset called FCID 0x%x, LUN 0x%x sc 0x%p\n" , +"Device reset called FCID 0x%x, LUN 0x%llx sc 0x%p\n" , rport->port_id, sc->device->lun, sc);if (lp->state !=LPORT_ST_READY || !(lp->link_up))
drivers/scsi/hpsa.c +1 -1
@@ -2802,7 +2802,7 @@ static int hpsa_eh_abort_handler(struct scsi_cmnd *sc)return FAILED ;memset (msg,0 ,sizeof (msg)); - ml +=sprintf (msg+ml,"ABORT REQUEST on C%d:B%d:T%d:L%d " , + ml +=sprintf (msg+ml,"ABORT REQUEST on C%d:B%d:T%d:L%llu " , h->scsi_host->host_no, sc->device->channel, sc->device->id, sc->device->lun);
drivers/scsi/libiscsi.c +4 -4
@@ -268,7 +268,7 @@ static int iscsi_check_tmf_restrictions(struct iscsi_task *task, int opcode) {struct iscsi_conn *conn = task->conn;struct iscsi_tm *tmf = &conn->tmhdr; -unsigned int hdr_lun; +u64 hdr_lun;if (conn->tmf_state ==TMF_INITIAL )return 0 ;
@@ -1812,8 +1812,7 @@ static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn,* Fail commands. session lock held and recv side suspended and xmit * thread flushed */ -static void fail_scsi_tasks (struct iscsi_conn *conn,unsigned lun, -int error) +static void fail_scsi_tasks (struct iscsi_conn *conn,u64 lun,int error) {struct iscsi_task *task;int i;
@@ -2232,7 +2231,8 @@ int iscsi_eh_device_reset(struct scsi_cmnd *sc) cls_session =starget_to_session (scsi_target (sc->device)); session = cls_session->dd_data; -ISCSI_DBG_EH (session,"LU Reset [sc %p lun %u]\n" , sc, sc->device->lun); +ISCSI_DBG_EH (session,"LU Reset [sc %p lun %llu]\n" , sc, + sc->device->lun);mutex_lock (&session->eh_mutex);spin_lock_bh (&session->lock);
drivers/scsi/libsas/sas_scsi_host.c +6 -5
@@ -404,7 +404,7 @@ static int sas_recover_lu(struct domain_device *dev, struct scsi_cmnd *cmd)int_to_scsilun (cmd->device->lun, &lun); -SAS_DPRINTK ("eh: device %llx LUN %x has the task\n" , +SAS_DPRINTK ("eh: device %llx LUN %llx has the task\n" ,SAS_ADDR (dev->sas_addr), cmd->device->lun);
@@ -490,7 +490,8 @@ static void sas_wait_eh(struct domain_device *dev) }EXPORT_SYMBOL (sas_wait_eh); -static int sas_queue_reset (struct domain_device *dev,int reset_type,int lun,int wait) +static int sas_queue_reset (struct domain_device *dev,int reset_type, +u64 lun,int wait) {struct sas_ha_struct *ha = dev->port->ha;int scheduled =0 , tries =100 ;
@@ -689,7 +690,7 @@ static void sas_eh_handle_sas_errors(struct Scsi_Host *shost, struct list_head * reset: tmf_resp =sas_recover_lu (task->dev, cmd);if (tmf_resp ==TMF_RESP_FUNC_COMPLETE ) { -SAS_DPRINTK ("dev %016llx LU %x is " +SAS_DPRINTK ("dev %016llx LU %llx is " "recovered\n" ,SAS_ADDR (task->dev), cmd->device->lun);
@@ -742,7 +743,7 @@ static void sas_eh_handle_sas_errors(struct Scsi_Host *shost, struct list_head ** of effort could recover from errors. Quite * possibly the HA just disappeared. */ -SAS_DPRINTK ("error from device %llx, LUN %x " +SAS_DPRINTK ("error from device %llx, LUN %llx " "couldn't be recovered in any way\n" ,SAS_ADDR (task->dev->sas_addr), cmd->device->lun);
@@ -941,7 +942,7 @@ int sas_slave_configure(struct scsi_device *scsi_dev)scsi_set_tag_type (scsi_dev,MSG_SIMPLE_TAG );scsi_activate_tcq (scsi_dev,SAS_DEF_QD ); }else { -SAS_DPRINTK ("device %llx, LUN %x doesn't support " +SAS_DPRINTK ("device %llx, LUN %llx doesn't support " "TCQ\n" ,SAS_ADDR (dev->sas_addr), scsi_dev->lun); scsi_dev->tagged_supported =0 ;
drivers/scsi/lpfc/lpfc_scsi.c +16 -16
@@ -247,7 +247,7 @@ static void lpfc_send_sdev_queuedepth_change_event(struct lpfc_hba *phba, struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, - uint32_t lun, + uint64_t lun, uint32_t old_val, uint32_t new_val) {
@@ -3865,7 +3865,7 @@ lpfc_handle_fcp_err(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,if (rsplen !=0 && rsplen !=4 && rsplen !=8 ) {lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP ,"2719 Invalid response length: " -"tgt x%x lun x%x cmnd x%x rsplen x%x\n" , +"tgt x%x lun x%llx cmnd x%x rsplen x%x\n" , cmnd->device->id, cmnd->device->lun, cmnd->cmnd[0 ], rsplen);
@@ -3876,7 +3876,7 @@ lpfc_handle_fcp_err(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP ,"2757 Protocol failure detected during " "processing of FCP I/O op: " -"tgt x%x lun x%x cmnd x%x rspInfo3 x%x\n" , +"tgt x%x lun x%llx cmnd x%x rspInfo3 x%x\n" , cmnd->device->id, cmnd->device->lun, cmnd->cmnd[0 ], fcprsp->rspInfo3);
@@ -4088,7 +4088,7 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,else logit =LOG_FCP |LOG_FCP_UNDER ; lpfc_printf_vlog(vport, KERN_WARNING, logit, - "9030 FCP cmd x%x failed <%d/%d> " + "9030 FCP cmd x%x failed <%d/%lld> " "status: x%x result: x%x " "sid: x%x did: x%x oxid: x%x " "Data: x%x x%x\n",
@@ -4200,7 +4200,7 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,uint32_t *lp = (uint32_t *)cmd->sense_buffer; lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP, - "0710 Iodone <%d/%d> cmd %p, error " + "0710 Iodone <%d/%llu> cmd %p, error " "x%x SNS x%x x%x Data: x%x x%x\n", cmd->device->id, cmd->device->lun, cmd, cmd->result, *lp, *(lp + 3), cmd->retries,
@@ -4458,7 +4458,7 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,static int lpfc_scsi_prep_task_mgmt_cmd (struct lpfc_vport *vport,struct lpfc_scsi_buf *lpfc_cmd, -unsigned int lun, +uint64_t lun,uint8_t task_mgmt_cmd) {struct lpfc_iocbq *piocbq;
@@ -4852,7 +4852,7 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd)spin_unlock_irqrestore (&phba->hbalock, flags);lpfc_printf_vlog (vport,KERN_WARNING ,LOG_FCP ,"2873 SCSI Layer I/O Abort Request IO CMPL Status " -"x%x ID %d LUN %d\n" , +"x%x ID %d LUN %llu\n" ,SUCCESS , cmnd->device->id, cmnd->device->lun);return SUCCESS ; }
@@ -4945,7 +4945,7 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd)lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP ,"0748 abort handler timed out waiting " "for abortng I/O (xri:x%x) to complete: " -"ret %#x, ID %d, LUN %d\n" , +"ret %#x, ID %d, LUN %llu\n" , iocb->sli4_xritag, ret, cmnd->device->id, cmnd->device->lun); }
@@ -4956,7 +4956,7 @@ out_unlock: out:lpfc_printf_vlog (vport,KERN_WARNING ,LOG_FCP ,"0749 SCSI Layer I/O Abort Request Status x%x ID %d " -"LUN %d\n" , ret, cmnd->device->id, +"LUN %llu\n" , ret, cmnd->device->id, cmnd->device->lun);return ret; }
@@ -5068,7 +5068,7 @@ lpfc_check_fcp_rsp(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd)**/ static int lpfc_send_taskmgmt (struct lpfc_vport *vport,struct lpfc_rport_data *rdata, -unsigned tgt_id,unsigned int lun_id, +unsigned tgt_id,uint64_t lun_id,uint8_t task_mgmt_cmd) {struct lpfc_hba *phba = vport->phba;
@@ -5104,7 +5104,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct lpfc_rport_data *rdata, iocbq->iocb_cmpl = lpfc_tskmgmt_def_cmpl; lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP, - "0702 Issue %s to TGT %d LUN %d " + "0702 Issue %s to TGT %d LUN %llu " "rpi x%x nlp_flag x%x Data: x%x x%x\n", lpfc_taskmgmt_name(task_mgmt_cmd), tgt_id, lun_id, pnode->nlp_rpi, pnode->nlp_flag, iocbq->sli4_xritag,
@@ -5115,7 +5115,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct lpfc_rport_data *rdata,if ((status !=IOCB_SUCCESS ) || (iocbqrsp->iocb.ulpStatus !=IOSTAT_SUCCESS )) { lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP, - "0727 TMF %s to TGT %d LUN %d failed (%d, %d) " + "0727 TMF %s to TGT %d LUN %llu failed (%d, %d) " "iocb_flag x%x\n", lpfc_taskmgmt_name(task_mgmt_cmd), tgt_id, lun_id, iocbqrsp->iocb.ulpStatus,
@@ -5257,7 +5257,7 @@ lpfc_device_reset_handler(struct scsi_cmnd *cmnd)struct lpfc_rport_data *rdata = cmnd->device->hostdata;struct lpfc_nodelist *pnode;unsigned tgt_id = cmnd->device->id; -unsigned int lun_id = cmnd->device->lun; +uint64_t lun_id = cmnd->device->lun;struct lpfc_scsi_event_header scsi_event;int status;
@@ -5291,7 +5291,7 @@ lpfc_device_reset_handler(struct scsi_cmnd *cmnd) FCP_LUN_RESET);lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP , -"0713 SCSI layer issued Device Reset (%d, %d) " +"0713 SCSI layer issued Device Reset (%d, %llu) " "return x%x\n" , tgt_id, lun_id, status);/*
@@ -5326,7 +5326,7 @@ lpfc_target_reset_handler(struct scsi_cmnd *cmnd)struct lpfc_rport_data *rdata = cmnd->device->hostdata;struct lpfc_nodelist *pnode;unsigned tgt_id = cmnd->device->id; -unsigned int lun_id = cmnd->device->lun; +uint64_t lun_id = cmnd->device->lun;struct lpfc_scsi_event_header scsi_event;int status;
@@ -5360,7 +5360,7 @@ lpfc_target_reset_handler(struct scsi_cmnd *cmnd) FCP_TARGET_RESET);lpfc_printf_vlog (vport,KERN_ERR ,LOG_FCP , -"0723 SCSI layer issued Target Reset (%d, %d) " +"0723 SCSI layer issued Target Reset (%d, %llu) " "return x%x\n" , tgt_id, lun_id, status);/*
drivers/scsi/megaraid.c +2 -2
@@ -1963,8 +1963,8 @@ megaraid_abort_and_reset(adapter_t *adapter, Scsi_Cmnd *cmd, int aor)printk (KERN_WARNING "megaraid: %s cmd=%x <c=%d t=%d l=%d>\n" , (aor ==SCB_ABORT )?"ABORTING" :"RESET" , - cmd->cmnd[0 ], cmd->device->channel, - cmd->device->id, cmd->device->lun); + cmd->cmnd[0 ], cmd->device->channel, + cmd->device->id, (u32 )cmd->device->lun);if (list_empty (&adapter->pending_list))return FALSE;
drivers/scsi/megaraid/mega_common.h +1 -1
@@ -204,7 +204,7 @@ typedef struct {#define SCP2HOSTDATA (scp) SCP2HOST(scp)->hostdata // to soft state#define SCP2CHANNEL (scp) (scp)->device->channel // to channel#define SCP2TARGET (scp) (scp)->device->id // to target -#define SCP2LUN (scp) (scp)->device->lun // to LUN +#define SCP2LUN (scp) (u32)(scp)->device->lun // to LUN// generic macro to convert scsi command and host to controller's soft state #define SCSIHOST2ADAP (host) (((caddr_t *)(host->hostdata))[0])
drivers/scsi/pmcraid.c +1 -1
@@ -237,7 +237,7 @@ static int pmcraid_slave_configure(struct scsi_device *scsi_dev) scsi_dev->host->unique_id, scsi_dev->channel, scsi_dev->id, - scsi_dev->lun); + (u8)scsi_dev->lun);if (RES_IS_GSCSI (res->cfg_entry)) { scsi_dev->allow_restart =1 ;
drivers/scsi/qla2xxx/qla_def.h +3 -3
@@ -320,8 +320,8 @@ struct srb_iocb {* defined in tsk_mgmt_entry struct * for control_flags field in qla_fw.h. */ +uint64_t lun;uint32_t flags; -uint32_t lun;uint32_t data;struct completion comp;__le16 comp_status;
@@ -2532,8 +2532,8 @@ struct isp_operations {void (*disable_intrs) (struct qla_hw_data *);int (*abort_command) (srb_t *); -int (*target_reset) (struct fc_port *,unsigned int ,int ); -int (*lun_reset) (struct fc_port *,unsigned int ,int ); +int (*target_reset) (struct fc_port *,uint64_t ,int ); +int (*lun_reset) (struct fc_port *,uint64_t ,int );int (*fabric_login) (struct scsi_qla_host *,uint16_t ,uint8_t ,uint8_t ,uint8_t ,uint16_t *,uint8_t ); int (*fabric_logout) (struct scsi_qla_host *, uint16_t, uint8_t,
drivers/scsi/qla2xxx/qla_gbl.h +8 -8
@@ -212,7 +212,7 @@ extern void qla2x00_build_scsi_iocbs_64(srb_t *, cmd_entry_t *, uint16_t);extern int qla2x00_start_scsi (srb_t *sp);extern int qla24xx_start_scsi (srb_t *sp);int qla2x00_marker (struct scsi_qla_host *,struct req_que *,struct rsp_que *, -uint16_t ,uint16_t ,uint8_t ); +uint16_t ,uint64_t ,uint8_t );extern int qla2x00_start_sp (srb_t *);extern int qla24xx_dif_start_scsi (srb_t *);extern int qla2x00_start_bidir (srb_t *,struct scsi_qla_host *,uint32_t );
@@ -255,10 +255,10 @@ extern intqla2x00_abort_command (srb_t *);extern int -qla2x00_abort_target (struct fc_port *,unsigned int ,int ); +qla2x00_abort_target (struct fc_port *,uint64_t ,int );extern int -qla2x00_lun_reset (struct fc_port *,unsigned int ,int ); +qla2x00_lun_reset (struct fc_port *,uint64_t ,int ); extern int qla2x00_get_adapter_id(scsi_qla_host_t *, uint16_t *, uint8_t *, uint8_t *,
@@ -331,12 +331,12 @@ qla24xx_get_isp_stats(scsi_qla_host_t *, struct link_statistics *,extern int qla24xx_abort_command (srb_t *);extern int -qla24xx_abort_target (struct fc_port *,unsigned int ,int ); +qla24xx_abort_target (struct fc_port *,uint64_t ,int );extern int -qla24xx_lun_reset (struct fc_port *,unsigned int ,int ); +qla24xx_lun_reset (struct fc_port *,uint64_t ,int );extern int qla2x00_eh_wait_for_pending_commands (scsi_qla_host_t *,unsigned int , -unsigned int ,enum nexus_wait_type ); +uint64_t ,enum nexus_wait_type );extern int qla2x00_system_error (scsi_qla_host_t *);
@@ -595,8 +595,8 @@ extern irqreturn_t qlafx00_intr_handler(int, void *);extern void qlafx00_enable_intrs (struct qla_hw_data *);extern void qlafx00_disable_intrs (struct qla_hw_data *);extern int qlafx00_abort_command (srb_t *); -extern int qlafx00_abort_target (fc_port_t *,unsigned int ,int ); -extern int qlafx00_lun_reset (fc_port_t *,unsigned int ,int ); +extern int qlafx00_abort_target (fc_port_t *,uint64_t ,int ); +extern int qlafx00_lun_reset (fc_port_t *,uint64_t ,int );extern int qlafx00_start_scsi (srb_t *);extern int qlafx00_abort_isp (scsi_qla_host_t *);extern int qlafx00_iospace_config (struct qla_hw_data *);
drivers/scsi/qla2xxx/qla_init.c +2 -2
@@ -277,12 +277,12 @@ qla2x00_async_tm_cmd_done(void *data, void *ptr, int res)struct srb_iocb *iocb = &sp->u.iocb_cmd;struct scsi_qla_host *vha = (scsi_qla_host_t *)data;uint32_t flags; -uint16_t lun; +uint64_t lun;int rval;if (!test_bit (UNLOADING , &vha->dpc_flags)) { flags = iocb->u.tmf.flags; - lun = (uint16_t )iocb->u.tmf.lun; + lun = iocb->u.tmf.lun;/* Issue Marker IOCB */ rval = qla2x00_marker(vha, vha->hw->req_q_map[0],
drivers/scsi/qla2xxx/qla_iocb.c +6 -8
@@ -520,7 +520,7 @@ qla2x00_start_iocbs(struct scsi_qla_host *vha, struct req_que *req)static int __qla2x00_marker (struct scsi_qla_host *vha,struct req_que *req,struct rsp_que *rsp,uint16_t loop_id, -uint16_t lun,uint8_t type) +uint64_t lun,uint8_t type) {mrk_entry_t *mrk;struct mrk_entry_24xx *mrk24 =NULL ;
@@ -546,20 +546,18 @@ __qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req, mrkfx->handle =MAKE_HANDLE (req->id, mrkfx->handle); mrkfx->handle_hi =0 ; mrkfx->tgt_id =cpu_to_le16 (loop_id); - mrkfx->lun[1 ] =LSB (lun); - mrkfx->lun[2 ] =MSB (lun); +int_to_scsilun (lun, (struct scsi_lun *)&mrkfx->lun);host_to_fcp_swap (mrkfx->lun,sizeof (mrkfx->lun)); }else if (IS_FWI2_CAPABLE (ha)) { mrk24 = (struct mrk_entry_24xx *) mrk; mrk24->nport_handle =cpu_to_le16 (loop_id); - mrk24->lun[1 ] =LSB (lun); - mrk24->lun[2 ] =MSB (lun); +int_to_scsilun (lun, (struct scsi_lun *)&mrk24->lun);host_to_fcp_swap (mrk24->lun,sizeof (mrk24->lun)); mrk24->vp_index = vha->vp_idx; mrk24->handle =MAKE_HANDLE (req->id, mrk24->handle); }else {SET_TARGET_ID (ha, mrk->target, loop_id); - mrk->lun =cpu_to_le16 (lun); + mrk->lun =cpu_to_le16 ((uint16_t )lun); } }wmb ();
@@ -571,7 +569,7 @@ __qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,int qla2x00_marker (struct scsi_qla_host *vha,struct req_que *req, -struct rsp_que *rsp,uint16_t loop_id,uint16_t lun, +struct rsp_que *rsp,uint16_t loop_id,uint64_t lun,uint8_t type) {int ret;
@@ -1992,7 +1990,7 @@ static void qla24xx_tm_iocb(srb_t *sp, struct tsk_mgmt_entry *tsk) {uint32_t flags; -unsigned int lun; +uint64_t lun;struct fc_port *fcport = sp->fcport;scsi_qla_host_t *vha = fcport->vha;struct qla_hw_data *ha = vha->hw;
drivers/scsi/qla2xxx/qla_isr.c +2 -2
@@ -1662,7 +1662,7 @@ qla2x00_handle_sense(srb_t *sp, uint8_t *sense_data, uint32_t par_sense_len,if (sense_len) {ql_dbg (ql_dbg_io + ql_dbg_buffer, vha,0x301c , -"Check condition Sense data, nexus%ld:%d:%d cmd=%p.\n" , +"Check condition Sense data, nexus%ld:%d:%llu cmd=%p.\n" , sp->fcport->vha->host_no, cp->device->id, cp->device->lun, cp); ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x302b,
@@ -2276,7 +2276,7 @@ check_scsi_status: out:if (logit) ql_dbg(ql_dbg_io, fcport->vha, 0x3022, - "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%d " + "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%llu " "portid=%02x%02x%02x oxid=0x%x cdb=%10phN len=0x%x " "rsp_info=0x%x resid=0x%x fw_resid=0x%x.\n", comp_status, scsi_status, res, vha->host_no,
drivers/scsi/qla2xxx/qla_mbx.c +6 -6
@@ -940,7 +940,7 @@ qla2x00_abort_command(srb_t *sp) }int -qla2x00_abort_target (struct fc_port *fcport,unsigned int l,int tag) +qla2x00_abort_target (struct fc_port *fcport,uint64_t l,int tag) {int rval, rval2;mbx_cmd_t mc;
@@ -993,7 +993,7 @@ qla2x00_abort_target(struct fc_port *fcport, unsigned int l, int tag) }int -qla2x00_lun_reset (struct fc_port *fcport,unsigned int l,int tag) +qla2x00_lun_reset (struct fc_port *fcport,uint64_t l,int tag) {int rval, rval2;mbx_cmd_t mc;
@@ -1015,7 +1015,7 @@ qla2x00_lun_reset(struct fc_port *fcport, unsigned int l, int tag) mcp->mb[1 ] = fcport->loop_id; else mcp->mb[1] = fcport->loop_id << 8; - mcp->mb[2 ] = l; + mcp->mb[2 ] = (u32 )l; mcp->mb[3 ] =0 ; mcp->mb[9 ] = vha->vp_idx;
@@ -2654,7 +2654,7 @@ struct tsk_mgmt_cmd {static int __qla24xx_issue_tmf (char *name,uint32_t type,struct fc_port *fcport, -unsigned int l,int tag) +uint64_t l,int tag) {int rval, rval2;struct tsk_mgmt_cmd *tsk;
@@ -2748,7 +2748,7 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport, }int -qla24xx_abort_target (struct fc_port *fcport,unsigned int l,int tag) +qla24xx_abort_target (struct fc_port *fcport,uint64_t l,int tag) {struct qla_hw_data *ha = fcport->vha->hw;
@@ -2759,7 +2759,7 @@ qla24xx_abort_target(struct fc_port *fcport, unsigned int l, int tag) }int -qla24xx_lun_reset (struct fc_port *fcport,unsigned int l,int tag) +qla24xx_lun_reset (struct fc_port *fcport,uint64_t l,int tag) {struct qla_hw_data *ha = fcport->vha->hw;
drivers/scsi/qla2xxx/qla_mr.c +5 -5
@@ -720,7 +720,7 @@ qlafx00_tmf_sp_done(void *data, void *ptr, int res)static int qlafx00_async_tm_cmd (fc_port_t *fcport,uint32_t flags, -uint32_t lun,uint32_t tag) +uint64_t lun,uint32_t tag) {scsi_qla_host_t *vha = fcport->vha;struct srb_iocb *tm_iocb;
@@ -762,13 +762,13 @@ done: }int -qlafx00_abort_target (fc_port_t *fcport,unsigned int l,int tag) +qlafx00_abort_target (fc_port_t *fcport,uint64_t l,int tag) {return qlafx00_async_tm_cmd (fcport,TCF_TARGET_RESET , l, tag); }int -qlafx00_lun_reset (fc_port_t *fcport,unsigned int l,int tag) +qlafx00_lun_reset (fc_port_t *fcport,uint64_t l,int tag) {return qlafx00_async_tm_cmd (fcport,TCF_LUN_RESET , l, tag); }
@@ -2280,7 +2280,7 @@ qlafx00_handle_sense(srb_t *sp, uint8_t *sense_data, uint32_t par_sense_len,if (sense_len) {ql_dbg (ql_dbg_io + ql_dbg_buffer, vha,0x3039 , -"Check condition Sense data, nexus%ld:%d:%d cmd=%p.\n" , +"Check condition Sense data, nexus%ld:%d:%llu cmd=%p.\n" , sp->fcport->vha->host_no, cp->device->id, cp->device->lun, cp); ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x3049,
@@ -2646,7 +2646,7 @@ check_scsi_status:if (logit) ql_dbg(ql_dbg_io, fcport->vha, 0x3058, - "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%d " + "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%llu " "tgt_id: 0x%x lscsi_status: 0x%x cdb=%10phN len=0x%x " "rsp_info=0x%x resid=0x%x fw_resid=0x%x sense_len=0x%x, " "par_sense_len=0x%x, rsp_info_len=0x%x\n",
drivers/scsi/qla2xxx/qla_os.c +19 -16
@@ -941,7 +941,8 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)scsi_qla_host_t *vha =shost_priv (cmd->device->host);srb_t *sp;int ret; -unsigned int id, lun; +unsigned int id; +uint64_t lun;unsigned long flags;int wait =0 ;struct qla_hw_data *ha = vha->hw;
@@ -965,7 +966,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd) }ql_dbg (ql_dbg_taskm, vha,0x8002 , -"Aborting from RISC nexus=%ld:%d:%d sp=%p cmd=%p\n" , +"Aborting from RISC nexus=%ld:%d:%llu sp=%p cmd=%p\n" , vha->host_no, id, lun, sp, cmd);/* Get a reference to the sp and drop the lock.*/
@@ -1000,7 +1001,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd) }ql_log (ql_log_info, vha,0x801c , -"Abort command issued nexus=%ld:%d:%d -- %d %x.\n" , +"Abort command issued nexus=%ld:%d:%llu -- %d %x.\n" , vha->host_no, id, lun, wait, ret);return ret;
@@ -1008,7 +1009,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)int qla2x00_eh_wait_for_pending_commands (scsi_qla_host_t *vha,unsigned int t, -unsigned int l,enum nexus_wait_type type) +uint64_t l,enum nexus_wait_type type) {int cnt, match, status;unsigned long flags;
@@ -1065,7 +1066,7 @@ static char *reset_errors[] = {static int __qla2xxx_eh_generic_reset (char *name,enum nexus_wait_type type, -struct scsi_cmnd *cmd,int (*do_reset)(struct fc_port *,unsigned int ,int )) +struct scsi_cmnd *cmd,int (*do_reset)(struct fc_port *,uint64_t ,int )) {scsi_qla_host_t *vha =shost_priv (cmd->device->host);fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata;
@@ -1080,7 +1081,7 @@ __qla2xxx_eh_generic_reset(char *name, enum nexus_wait_type type,return err;ql_log (ql_log_info, vha,0x8009 , -"%s RESET ISSUED nexus=%ld:%d:%d cmd=%p.\n" , name, vha->host_no, +"%s RESET ISSUED nexus=%ld:%d:%llu cmd=%p.\n" , name, vha->host_no, cmd->device->id, cmd->device->lun, cmd); err =0 ;
@@ -1105,14 +1106,14 @@ __qla2xxx_eh_generic_reset(char *name, enum nexus_wait_type type, }ql_log (ql_log_info, vha,0x800e , -"%s RESET SUCCEEDED nexus:%ld:%d:%d cmd=%p.\n" , name, +"%s RESET SUCCEEDED nexus:%ld:%d:%llu cmd=%p.\n" , name, vha->host_no, cmd->device->id, cmd->device->lun, cmd);return SUCCESS ; eh_reset_failed:ql_log (ql_log_info, vha,0x800f , -"%s RESET FAILED: %s nexus=%ld:%d:%d cmd=%p.\n" , name, +"%s RESET FAILED: %s nexus=%ld:%d:%llu cmd=%p.\n" , name, reset_errors[err], vha->host_no, cmd->device->id, cmd->device->lun, cmd);return FAILED ;
@@ -1159,7 +1160,8 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd)scsi_qla_host_t *vha =shost_priv (cmd->device->host);fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata;int ret =FAILED ; -unsigned int id, lun; +unsigned int id; +uint64_t lun; id = cmd->device->id; lun = cmd->device->lun;
@@ -1174,7 +1176,7 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) ret =FAILED ;ql_log (ql_log_info, vha,0x8012 , -"BUS RESET ISSUED nexus=%ld:%d:%d.\n" , vha->host_no, id, lun); +"BUS RESET ISSUED nexus=%ld:%d:%llu.\n" , vha->host_no, id, lun);if (qla2x00_wait_for_hba_online (vha) !=QLA_SUCCESS ) { ql_log(ql_log_fatal, vha, 0x8013,
@@ -1198,7 +1200,7 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) eh_bus_reset_done:ql_log (ql_log_warn, vha,0x802b , -"BUS RESET %s nexus=%ld:%d:%d.\n" , +"BUS RESET %s nexus=%ld:%d:%llu.\n" , (ret ==FAILED ) ?"FAILED" :"SUCCEEDED" , vha->host_no, id, lun);return ret;
@@ -1225,14 +1227,15 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd)scsi_qla_host_t *vha =shost_priv (cmd->device->host);struct qla_hw_data *ha = vha->hw;int ret =FAILED ; -unsigned int id, lun; +unsigned int id; +uint64_t lun;scsi_qla_host_t *base_vha =pci_get_drvdata (ha->pdev); id = cmd->device->id; lun = cmd->device->lun;ql_log (ql_log_info, vha,0x8018 , -"ADAPTER RESET ISSUED nexus=%ld:%d:%d.\n" , vha->host_no, id, lun); +"ADAPTER RESET ISSUED nexus=%ld:%d:%llu.\n" , vha->host_no, id, lun);if (qla2x00_wait_for_reset_ready (vha) !=QLA_SUCCESS ) goto eh_host_reset_lock;
@@ -1274,7 +1277,7 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd) eh_host_reset_lock:ql_log (ql_log_info, vha,0x8017 , -"ADAPTER RESET %s nexus=%ld:%d:%d.\n" , +"ADAPTER RESET %s nexus=%ld:%d:%llu.\n" , (ret ==FAILED ) ?"FAILED" :"SUCCEEDED" , vha->host_no, id, lun);return ret;
@@ -1410,7 +1413,7 @@ static void qla2x00_handle_queue_full(struct scsi_device *sdev, int qdepth)return ;ql_dbg (ql_dbg_io, fcport->vha,0x3029 , -"Queue depth adjusted-down to %d for nexus=%ld:%d:%d.\n" , +"Queue depth adjusted-down to %d for nexus=%ld:%d:%llu.\n" , sdev->queue_depth, fcport->vha->host_no, sdev->id, sdev->lun); }
@@ -1433,7 +1436,7 @@ static void qla2x00_adjust_sdev_qdepth_up(struct scsi_device *sdev, int qdepth)scsi_adjust_queue_depth (sdev,MSG_SIMPLE_TAG , qdepth);ql_dbg (ql_dbg_io, vha,0x302a , -"Queue depth adjusted-up to %d for nexus=%ld:%d:%d.\n" , +"Queue depth adjusted-up to %d for nexus=%ld:%d:%llu.\n" , sdev->queue_depth, fcport->vha->host_no, sdev->id, sdev->lun); }
drivers/scsi/qla4xxx/ql4_glbl.h +2 -2
@@ -23,7 +23,7 @@ void qla4xxx_process_aen(struct scsi_qla_host *ha, uint8_t process_aen);int qla4xxx_get_dhcp_ip_address (struct scsi_qla_host *ha);int qla4xxx_abort_task (struct scsi_qla_host *ha,struct srb *srb);int qla4xxx_reset_lun (struct scsi_qla_host *ha,struct ddb_entry *ddb_entry, -int lun); +uint64_t lun);int qla4xxx_reset_target (struct scsi_qla_host *ha,struct ddb_entry *ddb_entry); int qla4xxx_get_flash(struct scsi_qla_host *ha, dma_addr_t dma_addr,
@@ -76,7 +76,7 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha, uint32_t fw_ddb_index, uint32_t state, uint32_t conn_error);void qla4xxx_dump_buffer (void *b,uint32_t size);int qla4xxx_send_marker_iocb (struct scsi_qla_host *ha, -struct ddb_entry *ddb_entry,int lun,uint16_t mrkr_mod); +struct ddb_entry *ddb_entry,uint64_t lun,uint16_t mrkr_mod);int qla4xxx_set_flash (struct scsi_qla_host *ha,dma_addr_t dma_addr,uint32_t offset,uint32_t length,uint32_t options); int qla4xxx_mailbox_command(struct scsi_qla_host *ha, uint8_t inCount,
drivers/scsi/qla4xxx/ql4_iocb.c +1 -1
@@ -83,7 +83,7 @@ static int qla4xxx_get_req_pkt(struct scsi_qla_host *ha,* This routine issues a marker IOCB. **/ int qla4xxx_send_marker_iocb (struct scsi_qla_host *ha, -struct ddb_entry *ddb_entry,int lun,uint16_t mrkr_mod) +struct ddb_entry *ddb_entry,uint64_t lun,uint16_t mrkr_mod) {struct qla4_marker_entry *marker_entry;unsigned long flags =0 ;
drivers/scsi/qla4xxx/ql4_isr.c +11 -11
@@ -26,7 +26,7 @@ static void qla4xxx_copy_sense(struct scsi_qla_host *ha,memset (cmd->sense_buffer,0 ,SCSI_SENSE_BUFFERSIZE ); sense_len =le16_to_cpu (sts_entry->senseDataByteCnt);if (sense_len ==0 ) { -DEBUG2 (ql4_printk (KERN_INFO , ha,"scsi%ld:%d:%d:%d: %s:" +DEBUG2 (ql4_printk (KERN_INFO , ha,"scsi%ld:%d:%d:%llu: %s:" " sense len 0\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, __func__));
@@ -43,7 +43,7 @@ static void qla4xxx_copy_sense(struct scsi_qla_host *ha, sense_len =min_t (uint16_t, sense_len,IOCB_MAX_SENSEDATA_LEN );memcpy (cmd->sense_buffer, sts_entry->senseData, sense_len); - DEBUG2(printk(KERN_INFO "scsi%ld:%d:%d:%d: %s: sense key = %x, " + DEBUG2(printk(KERN_INFO "scsi%ld:%d:%d:%llu: %s: sense key = %x, " "ASL= %02x, ASC/ASCQ = %02x/%02x\n", ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, __func__,
@@ -169,7 +169,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha, cmd->result =DID_ERROR <<16 ; - DEBUG2(printk("scsi%ld:%d:%d:%d: %s: " + DEBUG2(printk("scsi%ld:%d:%d:%llu: %s: " "Mid-layer Data underrun0, " "xferlen = 0x%x, " "residual = 0x%x\n", ha->host_no,
@@ -197,7 +197,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,break ;case SCS_RESET_OCCURRED : -DEBUG2 (printk ("scsi%ld:%d:%d:%d: %s: Device RESET occurred\n" , +DEBUG2 (printk ("scsi%ld:%d:%d:%llu: %s: Device RESET occurred\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, __func__));
@@ -205,7 +205,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,break ;case SCS_ABORTED : -DEBUG2 (printk ("scsi%ld:%d:%d:%d: %s: Abort occurred\n" , +DEBUG2 (printk ("scsi%ld:%d:%d:%llu: %s: Abort occurred\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, __func__));
@@ -213,7 +213,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,break ;case SCS_TIMEOUT : -DEBUG2 (printk (KERN_INFO "scsi%ld:%d:%d:%d: Timeout\n" , +DEBUG2 (printk (KERN_INFO "scsi%ld:%d:%d:%llu: Timeout\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun));
@@ -232,7 +232,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,case SCS_DATA_OVERRUN :if ((sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_OVER ) || (sts_entry->completionStatus ==SCS_DATA_OVERRUN )) { -DEBUG2 (printk ("scsi%ld:%d:%d:%d: %s: " "Data overrun\n" , +DEBUG2 (printk ("scsi%ld:%d:%d:%llu: %s: " "Data overrun\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, __func__));
@@ -259,7 +259,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,if (!scsi_status && (scsi_bufflen (cmd) - residual) < cmd->underflow) { DEBUG2(ql4_printk(KERN_INFO, ha, - "scsi%ld:%d:%d:%d: %s: Mid-layer Data underrun, xferlen = 0x%x,residual = 0x%x\n", + "scsi%ld:%d:%d:%llu: %s: Mid-layer Data underrun, xferlen = 0x%x,residual = 0x%x\n", ha->host_no, cmd->device->channel, cmd->device->id,
@@ -291,7 +291,7 @@ static void qla4xxx_status_entry(struct scsi_qla_host *ha,*/ DEBUG2(ql4_printk(KERN_INFO, ha, - "scsi%ld:%d:%d:%d: %s: Dropped frame(s) detected (0x%x of 0x%x bytes).\n", + "scsi%ld:%d:%d:%llu: %s: Dropped frame(s) detected (0x%x of 0x%x bytes).\n", ha->host_no, cmd->device->channel, cmd->device->id,
@@ -313,7 +313,7 @@ check_scsi_status:case SCS_DEVICE_LOGGED_OUT :case SCS_DEVICE_UNAVAILABLE : -DEBUG2 (printk (KERN_INFO "scsi%ld:%d:%d:%d: SCS_DEVICE " +DEBUG2 (printk (KERN_INFO "scsi%ld:%d:%d:%llu: SCS_DEVICE " "state: 0x%x\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun, sts_entry->completionStatus));
@@ -333,7 +333,7 @@ check_scsi_status:* SCSI Mid-Layer handles device queue full */ cmd->result =DID_OK <<16 | sts_entry->scsiStatus; - DEBUG2(printk("scsi%ld:%d:%d: %s: QUEUE FULL detected " + DEBUG2(printk("scsi%ld:%d:%llu: %s: QUEUE FULL detected " "compl=%02x, scsi=%02x, state=%02x, iFlags=%02x," " iResp=%02x\n", ha->host_no, cmd->device->id, cmd->device->lun, __func__,
drivers/scsi/qla4xxx/ql4_mbx.c +3 -3
@@ -1205,7 +1205,7 @@ int qla4xxx_abort_task(struct scsi_qla_host *ha, struct srb *srb)if (mbox_sts[0 ] !=MBOX_STS_COMMAND_COMPLETE ) { status =QLA_ERROR ; -DEBUG2 (printk (KERN_WARNING "scsi%ld:%d:%d: abort task FAILED: " +DEBUG2 (printk (KERN_WARNING "scsi%ld:%d:%llu: abort task FAILED: " "mbx0=%04X, mb1=%04X, mb2=%04X, mb3=%04X, mb4=%04X\n" , ha->host_no, cmd->device->id, cmd->device->lun, mbox_sts[0 ], mbox_sts[1 ], mbox_sts[2 ], mbox_sts[3 ], mbox_sts[4 ]));
@@ -1225,14 +1225,14 @@ int qla4xxx_abort_task(struct scsi_qla_host *ha, struct srb *srb)* are valid before calling this routine. **/ int qla4xxx_reset_lun (struct scsi_qla_host * ha,struct ddb_entry * ddb_entry, -int lun) +uint64_t lun) {uint32_t mbox_cmd[MBOX_REG_COUNT ];uint32_t mbox_sts[MBOX_REG_COUNT ];uint32_t scsi_lun[2 ];int status =QLA_SUCCESS ; -DEBUG2 (printk ("scsi%ld:%d:%d: lun reset issued\n" , ha->host_no, +DEBUG2 (printk ("scsi%ld:%d:%llu: lun reset issued\n" , ha->host_no, ddb_entry->fw_ddb_index, lun));/*
drivers/scsi/qla4xxx/ql4_os.c +9 -9
@@ -8909,14 +8909,14 @@ static int qla4xxx_eh_abort(struct scsi_cmnd *cmd) {struct scsi_qla_host *ha =to_qla_host (cmd->device->host);unsigned int id = cmd->device->id; -unsigned int lun = cmd->device->lun; +uint64_t lun = cmd->device->lun;unsigned long flags;struct srb *srb =NULL ;int ret =SUCCESS ;int wait =0 ;ql4_printk (KERN_INFO , ha, -"scsi%ld:%d:%d: Abort command issued cmd=%p\n" , +"scsi%ld:%d:%llu: Abort command issued cmd=%p\n" , ha->host_no, id, lun, cmd);spin_lock_irqsave (&ha->hardware_lock, flags);
@@ -8929,11 +8929,11 @@ static int qla4xxx_eh_abort(struct scsi_cmnd *cmd)spin_unlock_irqrestore (&ha->hardware_lock, flags);if (qla4xxx_abort_task (ha, srb) !=QLA_SUCCESS ) { -DEBUG3 (printk ("scsi%ld:%d:%d: Abort_task mbx failed.\n" , +DEBUG3 (printk ("scsi%ld:%d:%llu: Abort_task mbx failed.\n" , ha->host_no, id, lun)); ret =FAILED ; }else { -DEBUG3 (printk ("scsi%ld:%d:%d: Abort_task mbx success.\n" , +DEBUG3 (printk ("scsi%ld:%d:%llu: Abort_task mbx success.\n" , ha->host_no, id, lun)); wait =1 ; }
@@ -8943,14 +8943,14 @@ static int qla4xxx_eh_abort(struct scsi_cmnd *cmd)/* Wait for command to complete */ if (wait) {if (!qla4xxx_eh_wait_on_command (ha, cmd)) { -DEBUG2 (printk ("scsi%ld:%d:%d: Abort handler timed out\n" , +DEBUG2 (printk ("scsi%ld:%d:%llu: Abort handler timed out\n" , ha->host_no, id, lun)); ret =FAILED ; } }ql4_printk (KERN_INFO , ha, -"scsi%ld:%d:%d: Abort command - %s\n" , +"scsi%ld:%d:%llu: Abort command - %s\n" , ha->host_no, id, lun, (ret ==SUCCESS ) ?"succeeded" :"failed" );return ret;
@@ -8978,7 +8978,7 @@ static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd) ret =FAILED ;ql4_printk (KERN_INFO , ha, -"scsi%ld:%d:%d:%d: DEVICE RESET ISSUED.\n" , ha->host_no, +"scsi%ld:%d:%d:%llu: DEVICE RESET ISSUED.\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun); DEBUG2(printk(KERN_INFO
@@ -9008,7 +9008,7 @@ static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd) goto eh_dev_reset_done;ql4_printk (KERN_INFO , ha, -"scsi(%ld:%d:%d:%d): DEVICE RESET SUCCEEDED.\n" , +"scsi(%ld:%d:%d:%llu): DEVICE RESET SUCCEEDED.\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun);
@@ -9125,7 +9125,7 @@ static int qla4xxx_eh_host_reset(struct scsi_cmnd *cmd) }ql4_printk (KERN_INFO , ha, -"scsi(%ld:%d:%d:%d): HOST RESET ISSUED.\n" , ha->host_no, +"scsi(%ld:%d:%d:%llu): HOST RESET ISSUED.\n" , ha->host_no, cmd->device->channel, cmd->device->id, cmd->device->lun);if (qla4xxx_wait_for_hba_online (ha) !=QLA_SUCCESS ) {
drivers/scsi/scsi.c +4 -4
@@ -1219,7 +1219,7 @@ EXPORT_SYMBOL(__starget_for_each_device);* really want to use scsi_device_lookup_by_target instead. **/ struct scsi_device *__scsi_device_lookup_by_target (struct scsi_target *starget, -uint lun) +u64 lun) {struct scsi_device *sdev;
@@ -1244,7 +1244,7 @@ EXPORT_SYMBOL(__scsi_device_lookup_by_target);* needs to be released with scsi_device_put once you're done with it. **/ struct scsi_device *scsi_device_lookup_by_target (struct scsi_target *starget, -uint lun) +u64 lun) {struct scsi_device *sdev;struct Scsi_Host *shost =dev_to_shost (starget->dev.parent);
@@ -1277,7 +1277,7 @@ EXPORT_SYMBOL(scsi_device_lookup_by_target);* really want to use scsi_device_lookup instead. **/ struct scsi_device *__scsi_device_lookup (struct Scsi_Host *shost, -uint channel,uint id,uint lun) +uint channel,uint id,u64 lun) {struct scsi_device *sdev;
@@ -1303,7 +1303,7 @@ EXPORT_SYMBOL(__scsi_device_lookup);* needs to be released with scsi_device_put once you're done with it. **/ struct scsi_device *scsi_device_lookup (struct Scsi_Host *shost, -uint channel,uint id,uint lun) +uint channel,uint id,u64 lun) {struct scsi_device *sdev;unsigned long flags;
drivers/scsi/scsi_debug.c +8 -7
@@ -225,9 +225,9 @@ struct sdebug_dev_info {unsigned char sense_buff[SDEBUG_SENSE_LEN ];/* weak nexus */ unsigned int channel;unsigned int target; -unsigned int lun; +u64 lun;struct sdebug_host_info *sdbg_host; -unsigned int wlun; +u64 wlun;char reset;char stopped;char used;
@@ -2259,7 +2259,8 @@ static int resp_report_luns(struct scsi_cmnd * scp, struct sdebug_dev_info * devip) {unsigned int alloc_len; -int lun_cnt, i, upper, num, n, wlun, lun; +int lun_cnt, i, upper, num, n; +u64 wlun, lun;unsigned char *cmd = (unsigned char *)scp->cmnd;int select_report = (int )cmd[2 ];struct scsi_lun *one_lun;
@@ -2442,7 +2443,7 @@ static struct sdebug_dev_info * devInfoReg(struct scsi_device * sdev)static int scsi_debug_slave_alloc (struct scsi_device *sdp) {if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: slave_alloc <%u %u %u %u>\n" , +printk (KERN_INFO "scsi_debug: slave_alloc <%u %u %u %llu>\n" , sdp->host->host_no, sdp->channel, sdp->id, sdp->lun);queue_flag_set_unlocked (QUEUE_FLAG_BIDI , sdp->request_queue);return 0 ;
@@ -2453,7 +2454,7 @@ static int scsi_debug_slave_configure(struct scsi_device *sdp)struct sdebug_dev_info *devip;if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: slave_configure <%u %u %u %u>\n" , +printk (KERN_INFO "scsi_debug: slave_configure <%u %u %u %llu>\n" , sdp->host->host_no, sdp->channel, sdp->id, sdp->lun);if (sdp->host->max_cmd_len !=SCSI_DEBUG_MAX_CMD_LEN ) sdp->host->max_cmd_len =SCSI_DEBUG_MAX_CMD_LEN ;
@@ -2476,7 +2477,7 @@ static void scsi_debug_slave_destroy(struct scsi_device *sdp) (struct sdebug_dev_info *)sdp->hostdata;if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: slave_destroy <%u %u %u %u>\n" , +printk (KERN_INFO "scsi_debug: slave_destroy <%u %u %u %llu>\n" , sdp->host->host_no, sdp->channel, sdp->id, sdp->lun);if (devip) {/* make this slot available for re-use */
@@ -2688,7 +2689,7 @@ static int schedule_resp(struct scsi_cmnd * cmnd,if (scsi_result) {struct scsi_device * sdp = cmnd->device; -printk (KERN_INFO "scsi_debug: <%u %u %u %u> " +printk (KERN_INFO "scsi_debug: <%u %u %u %llu> " "non-zero result=0x%x\n" , sdp->host->host_no, sdp->channel, sdp->id, sdp->lun, scsi_result); }
drivers/scsi/scsi_priv.h +1 -1
@@ -114,7 +114,7 @@ extern void scsi_exit_procfs(void);/* scsi_scan.c */ extern int scsi_complete_async_scans (void );extern int scsi_scan_host_selected (struct Scsi_Host *,unsigned int , -unsigned int ,unsigned int ,int ); +unsigned int ,u64 ,int );extern void scsi_forget_host (struct Scsi_Host *);extern void scsi_rescan_device (struct device *);
drivers/scsi/scsi_proc.c +1 -1
@@ -185,7 +185,7 @@ static int proc_print_scsidevice(struct device *dev, void *data) sdev =to_scsi_device (dev);seq_printf (s, -"Host: scsi%d Channel: %02d Id: %02d Lun: %02d\n Vendor: " , +"Host: scsi%d Channel: %02d Id: %02d Lun: %02llu\n Vendor: " , sdev->host->host_no, sdev->channel, sdev->id, sdev->lun);for (i =0 ; i <8 ; i++) {if (sdev->vendor[i] >=0x20 )
drivers/scsi/scsi_scan.c +19 -35
142 lines not on this page · raw message
drivers/scsi/scsi_sysfs.c +7 -7
@@ -80,7 +80,7 @@ const char *scsi_host_state_name(enum scsi_host_state state)return name; } -static int check_set (unsigned int *val,char *src) +static int check_set (unsigned long long *val,char *src) {char *last;
@@ -90,7 +90,7 @@ static int check_set(unsigned int *val, char *src)/* * Doesn't check for int overflow */ - *val =simple_strtoul (src, &last,0 ); + *val =simple_strtoull (src, &last,0 );if (*last !='\0' )return 1 ; }
@@ -99,11 +99,11 @@ static int check_set(unsigned int *val, char *src)static int scsi_scan (struct Scsi_Host *shost,const char *str) { -char s1[15 ], s2[15 ], s3[15 ], junk; -unsigned int channel, id, lun; +char s1[15 ], s2[15 ], s3[17 ], junk; +unsigned long long channel, id, lun;int res; - res =sscanf (str,"%10s %10s %10s %c" , s1, s2, s3, &junk); + res =sscanf (str,"%10s %10s %16s %c" , s1, s2, s3, &junk);if (res !=3 )return -EINVAL ;if (check_set (&channel, s1))
@@ -1203,13 +1203,13 @@ void scsi_sysfs_device_initialize(struct scsi_device *sdev)device_initialize (&sdev->sdev_gendev); sdev->sdev_gendev.bus = &scsi_bus_type; sdev->sdev_gendev.type = &scsi_dev_type; -dev_set_name (&sdev->sdev_gendev,"%d:%d:%d:%d" , +dev_set_name (&sdev->sdev_gendev,"%d:%d:%d:%llu" , sdev->host->host_no, sdev->channel, sdev->id, sdev->lun);device_initialize (&sdev->sdev_dev); sdev->sdev_dev.parent =get_device (&sdev->sdev_gendev); sdev->sdev_dev.class = &sdev_class; -dev_set_name (&sdev->sdev_dev,"%d:%d:%d:%d" , +dev_set_name (&sdev->sdev_dev,"%d:%d:%d:%llu" , sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); sdev->scsi_level = starget->scsi_level;transport_setup_device (&sdev->sdev_gendev);
drivers/scsi/scsi_transport_fc.c +2 -2
@@ -2088,7 +2088,7 @@ fc_timed_out(struct scsi_cmnd *scmd)* on the rport. */ static void -fc_user_scan_tgt (struct Scsi_Host *shost,uint channel,uint id,uint lun) +fc_user_scan_tgt (struct Scsi_Host *shost,uint channel,uint id,u64 lun) {struct fc_rport *rport;unsigned long flags;
@@ -2120,7 +2120,7 @@ fc_user_scan_tgt(struct Scsi_Host *shost, uint channel, uint id, uint lun)* object as the parent. */ static int -fc_user_scan (struct Scsi_Host *shost,uint channel,uint id,uint lun) +fc_user_scan (struct Scsi_Host *shost,uint channel,uint id,u64 lun) {uint chlo, chhi;uint tgtlo, tgthi;
drivers/scsi/scsi_transport_iscsi.c +2 -2
@@ -1780,7 +1780,7 @@ EXPORT_SYMBOL_GPL(iscsi_scan_finished);struct iscsi_scan_data {unsigned int channel;unsigned int id; -unsigned int lun; +u64 lun; };static int iscsi_user_scan_session (struct device *dev,void *data)
@@ -1827,7 +1827,7 @@ user_scan_exit: }static int iscsi_user_scan (struct Scsi_Host *shost,uint channel, -uint id,uint lun) +uint id,u64 lun) {struct iscsi_scan_data scan_data;
drivers/scsi/scsi_transport_sas.c +1 -1
@@ -1706,7 +1706,7 @@ EXPORT_SYMBOL(scsi_is_sas_rphy);*/ static int sas_user_scan (struct Scsi_Host *shost,uint channel, -uint id,uint lun) +uint id,u64 lun) {struct sas_host_attrs *sas_host =to_sas_host_attrs (shost);struct sas_rphy *rphy;
drivers/scsi/sg.c +2 -2
@@ -2484,7 +2484,7 @@ static int sg_proc_seq_show_dev(struct seq_file *s, void *v)read_lock_irqsave (&sg_index_lock, iflags); sdp = it ?sg_lookup_dev (it->index) :NULL ;if (sdp && (scsidp = sdp->device) && (!sdp->detached)) - seq_printf(s, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", + seq_printf(s, "%d\t%d\t%d\t%llu\t%d\t%d\t%d\t%d\t%d\n", scsidp->host->host_no, scsidp->channel, scsidp->id, scsidp->lun, (int) scsidp->type, 1,
@@ -2613,7 +2613,7 @@ static int sg_proc_seq_show_debug(struct seq_file *s, void *v)seq_printf (s,"detached pending close " ); else seq_printf - (s, "scsi%d chan=%d id=%d lun=%d em=%d", + (s, "scsi%d chan=%d id=%d lun=%llu em=%d", scsidp->host->host_no, scsidp->channel, scsidp->id, scsidp->lun,
drivers/scsi/sym53c8xx_2/sym_glue.c +1 -1
@@ -851,7 +851,7 @@ static void sym53c8xx_slave_destroy(struct scsi_device *sdev)* so let's try to stop all on-going I/O. */ starget_printk (KERN_WARNING , tp->starget, -"Removing busy LCB (%d)\n" , sdev->lun); +"Removing busy LCB (%d)\n" , (u8 )sdev->lun);sym_reset_scsi_bus (np,1 ); }
drivers/scsi/sym53c8xx_2/sym_hipd.h +1 -1
@@ -581,7 +581,7 @@ struct sym_pmc {#define sym_lp (tp, lun) (!lun) ? (tp)->lun0p : NULL#else #define sym_lp (tp, lun) \ - (!lun) ? (tp)->lun0p : (tp)->lunmp ? (tp)->lunmp[(lun)] : NULL + (!lun) ? (tp)->lun0p : (tp)->lunmp ? (tp)->lunmp[((u8)lun)] : NULL#endif /*
drivers/target/loopback/tcm_loop.c +1 -1
@@ -237,7 +237,7 @@ static int tcm_loop_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc) {struct tcm_loop_cmd *tl_cmd; -pr_debug ("tcm_loop_queuecommand() %d:%d:%d:%d got CDB: 0x%02x" +pr_debug ("tcm_loop_queuecommand() %d:%d:%d:%llu got CDB: 0x%02x" " scsi_buf_len: %u\n" , sc->device->host->host_no, sc->device->id, sc->device->channel, sc->device->lun, sc->cmnd[0 ],scsi_bufflen (sc));
drivers/target/target_core_pscsi.c +6 -6
@@ -312,7 +312,7 @@ static int pscsi_add_device_to_list(struct se_device *dev,if (!sd->queue_depth) { sd->queue_depth =PSCSI_DEFAULT_QUEUEDEPTH ; -pr_err ("Set broken SCSI Device %d:%d:%d" +pr_err ("Set broken SCSI Device %d:%d:%llu" " queue_depth to %d\n" , sd->channel, sd->id, sd->lun, sd->queue_depth); }
@@ -375,7 +375,7 @@ static int pscsi_create_type_disk(struct se_device *dev, struct scsi_device *sd)int ret;if (scsi_device_get (sd)) { -pr_err ("scsi_device_get() failed for %d:%d:%d:%d\n" , +pr_err ("scsi_device_get() failed for %d:%d:%d:%llu\n" , sh->host_no, sd->channel, sd->id, sd->lun);spin_unlock_irq (sh->host_lock);return -EIO ;
@@ -401,7 +401,7 @@ static int pscsi_create_type_disk(struct se_device *dev, struct scsi_device *sd)return ret; } -pr_debug ("CORE_PSCSI[%d] - Added TYPE_DISK for %d:%d:%d:%d\n" , +pr_debug ("CORE_PSCSI[%d] - Added TYPE_DISK for %d:%d:%d:%llu\n" , phv->phv_host_id, sh->host_no, sd->channel, sd->id, sd->lun);return 0 ; }
@@ -417,7 +417,7 @@ static int pscsi_create_type_rom(struct se_device *dev, struct scsi_device *sd)int ret;if (scsi_device_get (sd)) { -pr_err ("scsi_device_get() failed for %d:%d:%d:%d\n" , +pr_err ("scsi_device_get() failed for %d:%d:%d:%llu\n" , sh->host_no, sd->channel, sd->id, sd->lun);spin_unlock_irq (sh->host_lock);return -EIO ;
@@ -429,7 +429,7 @@ static int pscsi_create_type_rom(struct se_device *dev, struct scsi_device *sd)scsi_device_put (sd);return ret; } -pr_debug ("CORE_PSCSI[%d] - Added Type: %s for %d:%d:%d:%d\n" , +pr_debug ("CORE_PSCSI[%d] - Added Type: %s for %d:%d:%d:%llu\n" , phv->phv_host_id,scsi_device_type (sd->type), sh->host_no, sd->channel, sd->id, sd->lun);
@@ -452,7 +452,7 @@ static int pscsi_create_type_other(struct se_device *dev,if (ret)return ret; -pr_debug ("CORE_PSCSI[%d] - Added Type: %s for %d:%d:%d:%d\n" , +pr_debug ("CORE_PSCSI[%d] - Added Type: %s for %d:%d:%d:%llu\n" , phv->phv_host_id,scsi_device_type (sd->type), sh->host_no, sd->channel, sd->id, sd->lun);return 0 ;
drivers/usb/storage/sddr09.c +2 -2
@@ -1498,7 +1498,7 @@ static int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us) {int ret; -usb_stor_dbg (us,"LUN=%d\n" , srb->device->lun); +usb_stor_dbg (us,"LUN=%d\n" , (u8 )srb->device->lun);switch (srb->device->lun) {case 0 :
@@ -1524,7 +1524,7 @@ static int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us)break ;default : -usb_stor_dbg (us,"Invalid LUN %d\n" , srb->device->lun); +usb_stor_dbg (us,"Invalid LUN %d\n" , (u8 )srb->device->lun); ret =USB_STOR_TRANSPORT_ERROR ;break ; }
drivers/usb/storage/usb.c +6 -4
@@ -344,14 +344,16 @@ static int usb_stor_control_thread(void * __us)*/ else if (us->srb->device->id && !(us->fflags & US_FL_SCM_MULT_TARG)) { -usb_stor_dbg (us,"Bad target number (%d:%d)\n" , - us->srb->device->id, us->srb->device->lun); +usb_stor_dbg (us,"Bad target number (%d:%llu)\n" , + us->srb->device->id, + us->srb->device->lun); us->srb->result =DID_BAD_TARGET <<16 ; } else if (us->srb->device->lun > us->max_lun) { -usb_stor_dbg (us,"Bad LUN (%d:%d)\n" , - us->srb->device->id, us->srb->device->lun); +usb_stor_dbg (us,"Bad LUN (%d:%llu)\n" , + us->srb->device->id, + us->srb->device->lun); us->srb->result =DID_BAD_TARGET <<16 ; }
include/scsi/scsi.h +1 -1
@@ -384,7 +384,7 @@ struct scsi_lun {#define SCSI_W_LUN_ACCESS_CONTROL (SCSI_W_LUN_BASE + 2)#define SCSI_W_LUN_TARGET_LOG_PAGE (SCSI_W_LUN_BASE + 3) -static inline int scsi_is_wlun (unsigned int lun) +static inline int scsi_is_wlun (u64 lun) {return (lun &0xff00 ) ==SCSI_W_LUN_BASE ; }
include/scsi/scsi_device.h +11 -11
@@ -98,8 +98,8 @@ struct scsi_device {unsigned long last_queue_ramp_up;/* last queue ramp up time */ -unsigned int id, lun, channel; - +unsigned int id, channel; +u64 lun;unsigned int manufacturer;/* Manufacturer of device, for using * vendor-specific cmd's */ unsigned sector_size;/* size in bytes */
@@ -303,9 +303,9 @@ static inline struct scsi_target *scsi_target(struct scsi_device *sdev) dev_printk(prefix, &(starget)->dev, fmt, ##a) extern struct scsi_device *__scsi_add_device(struct Scsi_Host *, - uint, uint, uint, void *hostdata); + uint, uint, u64, void *hostdata);extern int scsi_add_device (struct Scsi_Host *host,uint channel, -uint target,uint lun); +uint target,u64 lun);extern int scsi_register_device_handler (struct scsi_device_handler *scsi_dh);extern void scsi_remove_device (struct scsi_device *);extern int scsi_unregister_device_handler (struct scsi_device_handler *scsi_dh);
@@ -313,13 +313,13 @@ extern int scsi_unregister_device_handler(struct scsi_device_handler *scsi_dh);extern int scsi_device_get (struct scsi_device *);extern void scsi_device_put (struct scsi_device *);extern struct scsi_device *scsi_device_lookup (struct Scsi_Host *, -uint ,uint ,uint ); +uint ,uint ,u64 );extern struct scsi_device *__scsi_device_lookup (struct Scsi_Host *, -uint ,uint ,uint ); +uint ,uint ,u64 );extern struct scsi_device *scsi_device_lookup_by_target (struct scsi_target *, -uint ); +u64 );extern struct scsi_device *__scsi_device_lookup_by_target (struct scsi_target *, -uint ); +u64 );extern void starget_for_each_device (struct scsi_target *,void *,void (*fn)(struct scsi_device *,void *)); extern void __starget_for_each_device(struct scsi_target *, void *,
@@ -392,13 +392,13 @@ extern void scsi_device_resume(struct scsi_device *sdev);extern void scsi_target_quiesce (struct scsi_target *);extern void scsi_target_resume (struct scsi_target *);extern void scsi_scan_target (struct device *parent,unsigned int channel, -unsigned int id,unsigned int lun,int rescan); +unsigned int id,u64 lun,int rescan);extern void scsi_target_reap (struct scsi_target *);extern void scsi_target_block (struct device *);extern void scsi_target_unblock (struct device *,enum scsi_device_state );extern void scsi_remove_target (struct device *); -extern void int_to_scsilun (unsigned int ,struct scsi_lun *); -extern int scsilun_to_int (struct scsi_lun *); +extern void int_to_scsilun (u64 ,struct scsi_lun *); +extern u64 scsilun_to_int (struct scsi_lun *);extern const char *scsi_device_state_name (enum scsi_device_state );extern int scsi_is_sdev_device (const struct device *);extern int scsi_is_target_device (const struct device *);
include/scsi/scsi_transport.h +1 -1
@@ -35,7 +35,7 @@ struct scsi_transport_template {/* * If set, called from sysfs and legacy procfs rescanning code. */ -int (*user_scan)(struct Scsi_Host *,uint ,uint ,uint ); +int (*user_scan)(struct Scsi_Host *,uint ,uint ,u64 );/* The size of the specific transport attribute structure (a * space of this size will be left at the end of the
Signature · 1 line
1.7.12.4
Re: [PATCH 4/5] scsi: use 64-bit LUNs
Quoted 5 lines · Hannes Reinecke
The SCSI standard defines 64-bit values for LUNs, and large arrays employing large or hierarchical LUN numbers become more and more common.
So update the linux SCSI stack to use 64-bit LUN numbers.
Looks good,
PATCH 5/5 scsi: use 64-bit value for 'max_luns'
In reply to Hannes ReineckeNow that we're using 64-bit LUNs internally we need to increase the size of max_luns to 64 bits, too.
--- drivers/message/i2o/i2o_scsi.c | 2 +- drivers/scsi/cxgbi/libcxgbi.c | 2 +- drivers/scsi/cxgbi/libcxgbi.h | 2 +- drivers/scsi/dc395x.c | 2 +- drivers/scsi/eata.c | 2 +- drivers/scsi/ibmvscsi/ibmvfc.c | 4 ++-- drivers/scsi/lpfc/lpfc_attr.c | 10 +++++++++- drivers/scsi/megaraid.c | 2 +- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 ++-- drivers/scsi/qla2xxx/qla_gbl.h | 2 +- drivers/scsi/qla2xxx/qla_os.c | 6 +++--- drivers/scsi/scsi_scan.c | 6 +++--- include/linux/moduleparam.h | 5 +++++ include/scsi/scsi_host.h | 6 +++--- kernel/params.c | 1 + 15 files changed, 35 insertions(+), 21 deletions(-)
drivers/message/i2o/i2o_scsi.c +1 -1
@@ -287,7 +287,7 @@ static int i2o_scsi_probe(struct device *dev) }if (le64_to_cpu (lun) >= scsi_host->max_lun) { -osm_warn ("SCSI device lun (%llu) >= max_lun of I2O host (%d)" , +osm_warn ("SCSI device lun (%llu) >= max_lun of I2O host (%llu)" ,le64_to_cpu (lun), scsi_host->max_lun);return -EFAULT ; }
drivers/scsi/cxgbi/libcxgbi.c +1 -1
@@ -245,7 +245,7 @@ void cxgbi_hbas_remove(struct cxgbi_device *cdev) }EXPORT_SYMBOL_GPL (cxgbi_hbas_remove); -int cxgbi_hbas_add (struct cxgbi_device *cdev,unsigned int max_lun, +int cxgbi_hbas_add (struct cxgbi_device *cdev,u64 max_lun,unsigned int max_id,struct scsi_host_template *sht,struct scsi_transport_template *stt) {
drivers/scsi/cxgbi/libcxgbi.h +1 -1
@@ -692,7 +692,7 @@ struct cxgbi_device *cxgbi_device_register(unsigned int, unsigned int);void cxgbi_device_unregister (struct cxgbi_device *);void cxgbi_device_unregister_all (unsigned int flag);struct cxgbi_device *cxgbi_device_find_by_lldev (void *); -int cxgbi_hbas_add (struct cxgbi_device *,unsigned int ,unsigned int , +int cxgbi_hbas_add (struct cxgbi_device *,u64 ,unsigned int ,struct scsi_host_template *,struct scsi_transport_template *);void cxgbi_hbas_remove (struct cxgbi_device *);
drivers/scsi/dc395x.c +1 -1
@@ -4638,7 +4638,7 @@ static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host)SPRINTF ("irq_level 0x%04x, " , acb->irq_level);SPRINTF (" SelTimeout %ims\n" , (1638 * acb->sel_timeout) /1000 ); -SPRINTF ("MaxID %i, MaxLUN %i, " , host->max_id, host->max_lun); +SPRINTF ("MaxID %i, MaxLUN %llu, " , host->max_id, host->max_lun);SPRINTF ("AdapterID %i\n" , host->this_id);SPRINTF ("tag_max_num %i" , acb->tag_max_num);
drivers/scsi/eata.c +1 -1
@@ -1399,7 +1399,7 @@ static int port_detect(unsigned long port_base, unsigned int j,if (shost->max_id >8 || shost->max_lun >8 )printk - ("%s: wide SCSI support enabled, max_id %u, max_lun %u.\n" , + ("%s: wide SCSI support enabled, max_id %u, max_lun %llu.\n" , ha->board_name, shost->max_id, shost->max_lun);for (i =0 ; i <= shost->max_channel; i++)
drivers/scsi/ibmvscsi/ibmvfc.c +2 -2
@@ -46,7 +46,7 @@static unsigned int init_timeout =IBMVFC_INIT_TIMEOUT ;static unsigned int default_timeout =IBMVFC_DEFAULT_TIMEOUT ; -static unsigned int max_lun =IBMVFC_MAX_LUN ; +static u64 max_lun =IBMVFC_MAX_LUN ;static unsigned int max_targets =IBMVFC_MAX_TARGETS ;static unsigned int max_requests =IBMVFC_MAX_REQUESTS_DEFAULT ;static unsigned int disc_threads =IBMVFC_MAX_DISC_THREADS ;
@@ -71,7 +71,7 @@ MODULE_PARM_DESC(default_timeout,module_param_named (max_requests, max_requests, uint,S_IRUGO ); MODULE_PARM_DESC(max_requests, "Maximum requests for this adapter. " "[Default=" __stringify(IBMVFC_MAX_REQUESTS_DEFAULT) "]"); -module_param_named (max_lun, max_lun, uint,S_IRUGO ); +module_param_named (max_lun, max_lun, ullong,S_IRUGO ); MODULE_PARM_DESC(max_lun, "Maximum allowed LUN. " "[Default=" __stringify(IBMVFC_MAX_LUN) "]");module_param_named (max_targets, max_targets, uint,S_IRUGO );
drivers/scsi/lpfc/lpfc_attr.c +9 -1
@@ -1972,6 +1972,14 @@ lpfc_vport_param_show(name)\ lpfc_vport_param_init(name, defval, minval, maxval)\ static DEVICE_ATTR(lpfc_##name, S_IRUGO , lpfc_##name##_show, NULL) +#define LPFC_VPORT_ULL_ATTR_R (name, defval, minval, maxval, desc) \ +static uint64_t lpfc_##name = defval;\ +module_param(lpfc_##name, ullong, S_IRUGO);\ +MODULE_PARM_DESC(lpfc_##name, desc);\ +lpfc_vport_param_show(name)\ +lpfc_vport_param_init(name, defval, minval, maxval)\ +static DEVICE_ATTR(lpfc_##name, S_IRUGO , lpfc_##name##_show, NULL) +#define LPFC_VPORT_ATTR_RW (name, defval, minval, maxval, desc) \ static uint lpfc_##name = defval;\ module_param(lpfc_##name, uint, S_IRUGO);\
@@ -4105,7 +4113,7 @@ LPFC_VPORT_ATTR(discovery_threads, 32, 1, 64, "Maximum number of ELS commands "# Value range is [0,65535]. Default value is 255. # NOTE: The SCSI layer might probe all allowed LUN on some old targets. */ -LPFC_VPORT_ATTR_R (max_luns,255 ,0 ,65535 ,"Maximum allowed LUN ID" ); +LPFC_VPORT_ULL_ATTR_R (max_luns,255 ,0 ,65535 ,"Maximum allowed LUN ID" );/* # lpfc_poll_tmo: .Milliseconds driver will wait between polling FCP ring.
drivers/scsi/megaraid.c +1 -1
@@ -1882,7 +1882,7 @@ megaraid_info(struct Scsi_Host *host)"LSI Logic MegaRAID %s %d commands %d targs %d chans %d luns" , adapter->fw_version, adapter->product_info.max_commands, adapter->host->max_id, adapter->host->max_channel, - adapter->host->max_lun); + (u32)adapter->host->max_lun);return buffer; }
drivers/scsi/mpt3sas/mpt3sas_scsih.c +2 -2
@@ -112,8 +112,8 @@ MODULE_PARM_DESC(missing_delay, " device missing delay , io missing delay");/* scsi-mid layer global parmeter is max_report_luns, which is 511 */ #define MPT3SAS_MAX_LUN (16895) -static int max_lun =MPT3SAS_MAX_LUN ; -module_param (max_lun, int,0 ); +static u64 max_lun =MPT3SAS_MAX_LUN ; +module_param (max_lun, ullong,0 );MODULE_PARM_DESC (max_lun," max lun, default=16895 " );
drivers/scsi/qla2xxx/qla_gbl.h +1 -1
@@ -113,7 +113,7 @@ extern int ql2xenabledif;extern int ql2xenablehba_err_chk;extern int ql2xtargetreset;extern int ql2xdontresethba; -extern unsigned int ql2xmaxlun; +extern uint64_t ql2xmaxlun;extern int ql2xmdcapmask;extern int ql2xmdenable;
drivers/scsi/qla2xxx/qla_os.c +3 -3
@@ -200,8 +200,8 @@ MODULE_PARM_DESC(ql2xdontresethba," 0 (Default) -- Reset on failure.\n" " 1 -- Do not reset on failure.\n"); -uint ql2xmaxlun =MAX_LUNS ; -module_param (ql2xmaxlun, uint,S_IRUGO ); +uint64_t ql2xmaxlun =MAX_LUNS ; +module_param (ql2xmaxlun, ullong,S_IRUGO );MODULE_PARM_DESC (ql2xmaxlun,"Defines the maximum LU number to register with the SCSI " "midlayer. Default is 65535." );
@@ -2615,7 +2615,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)ql_dbg (ql_dbg_init, base_vha,0x0033 ,"max_id=%d this_id=%d " "cmd_per_len=%d unique_id=%d max_cmd_len=%d max_channel=%d " -"max_lun=%d transportt=%p, vendor_id=%llu.\n" , host->max_id, +"max_lun=%llu transportt=%p, vendor_id=%llu.\n" , host->max_id, host->this_id, host->cmd_per_lun, host->unique_id, host->max_cmd_len, host->max_channel, host->max_lun, host->transportt, sht->vendor_id);
drivers/scsi/scsi_scan.c +3 -3
@@ -81,11 +81,11 @@ static const char *scsi_null_device_strs = "nullnullnullnull";#define MAX_SCSI_LUNS 512 -static unsigned int max_scsi_luns =MAX_SCSI_LUNS ; +static u64 max_scsi_luns =MAX_SCSI_LUNS ; -module_param_named (max_luns, max_scsi_luns, uint,S_IRUGO |S_IWUSR ); +module_param_named (max_luns, max_scsi_luns, ullong,S_IRUGO |S_IWUSR );MODULE_PARM_DESC (max_luns, -"last scsi LUN (should be between 1 and 2^32-1)" ); +"last scsi LUN (should be between 1 and 2^64-1)" );#ifdef CONFIG_SCSI_SCAN_ASYNC #define SCSI_SCAN_TYPE_DEFAULT "async"
include/linux/moduleparam.h +5 -0
@@ -383,6 +383,11 @@ extern int param_set_ulong(const char *val, const struct kernel_param *kp);extern int param_get_ulong (char *buffer,const struct kernel_param *kp);#define param_check_ulong (name, p) __param_check(name, p, unsigned long) +extern struct kernel_param_ops param_ops_ullong; +extern int param_set_ullong (const char *val,const struct kernel_param *kp); +extern int param_get_ullong (char *buffer,const struct kernel_param *kp); +#define param_check_ullong (name, p) __param_check(name, p, unsigned long long) +extern struct kernel_param_ops param_ops_charp;extern int param_set_charp (const char *val,const struct kernel_param *kp);extern int param_get_charp (char *buffer,const struct kernel_param *kp);
include/scsi/scsi_host.h +3 -3
@@ -613,11 +613,11 @@ struct Scsi_Host {* These three parameters can be used to allow for wide scsi, * and for host adapters that support multiple busses * The first two should be set to 1 more than the actual max id -* or lun (i.e. 8 for normal systems). +* or lun (e.g. 8 for SCSI parallel systems). */ -unsigned int max_id; -unsigned int max_lun;unsigned int max_channel; +unsigned int max_id; +u64 max_lun;/* * This is a unique identifier that must be assigned so that we
kernel/params.c +1 -0
@@ -260,6 +260,7 @@ STANDARD_PARAM_DEF(int, int, "%i", long, kstrtol); STANDARD_PARAM_DEF(uint, unsigned int, "%u", unsigned long, kstrtoul);STANDARD_PARAM_DEF (long, long,"%li" , long, kstrtol); STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", unsigned long, kstrtoul); +STANDARD_PARAM_DEF(ullong, unsigned long long, "%llu", unsigned long long, kstrtoull);int param_set_charp (const char *val,const struct kernel_param *kp) {
Signature · 1 line
1.7.12.4
Re: [PATCH 5/5] scsi: use 64-bit value for 'max_luns'
Quoted 4 lines · Hannes Reinecke
Now that we're using 64-bit LUNs internally we need to increase the size of
max_lunsto 64 bits, too.Signed-off-by Hannes Reinecke <[email protected]>
Looks good,
Any chance you could resend this with review comments addressed and against a current tree?
Quoted 3 lines · Christoph Hellwig
Any chance you could resend this with review comments addressed and against a current tree?
Sure. But it'll have to wait until next week; currently I'm busy with getting the next Beta out of the door...
Cheers,
Hannes
Signature · 8 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html