mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
scsi: use 64-bit LUNs
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. Signed-off-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Christoph Hellwig <hch@infradead.org> Reviewed-by: Ewan Milne <emilne@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
committed by
Christoph Hellwig
parent
755f516bbb
commit
9cb78c16f5
@@ -3945,7 +3945,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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -405,7 +405,7 @@ typedef struct _VirtTarget {
|
||||
typedef struct _VirtDevice {
|
||||
VirtTarget *vtarget;
|
||||
u8 configured_lun;
|
||||
int lun;
|
||||
u64 lun;
|
||||
} VirtDevice;
|
||||
|
||||
/*
|
||||
|
||||
@@ -204,7 +204,7 @@ mptfc_block_error_handler(struct scsi_cmnd *SCpnt,
|
||||
|| (loops > 0 && ioc->active == 0)) {
|
||||
spin_unlock_irqrestore(shost->host_lock, flags);
|
||||
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"mptfc_block_error_handler.%d: %d:%d, port status is "
|
||||
"mptfc_block_error_handler.%d: %d:%llu, port status is "
|
||||
"%x, active flag %d, deferring %s recovery.\n",
|
||||
ioc->name, ioc->sh->host_no,
|
||||
SCpnt->device->id, SCpnt->device->lun,
|
||||
@@ -218,7 +218,7 @@ mptfc_block_error_handler(struct scsi_cmnd *SCpnt,
|
||||
if (ready == DID_NO_CONNECT || !SCpnt->device->hostdata
|
||||
|| ioc->active == 0) {
|
||||
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"%s.%d: %d:%d, failing recovery, "
|
||||
"%s.%d: %d:%llu, failing recovery, "
|
||||
"port state %x, active %d, vdevice %p.\n", caller,
|
||||
ioc->name, ioc->sh->host_no,
|
||||
SCpnt->device->id, SCpnt->device->lun, ready,
|
||||
@@ -226,7 +226,7 @@ mptfc_block_error_handler(struct scsi_cmnd *SCpnt,
|
||||
return FAILED;
|
||||
}
|
||||
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"%s.%d: %d:%d, executing recovery.\n", caller,
|
||||
"%s.%d: %d:%llu, executing recovery.\n", caller,
|
||||
ioc->name, ioc->sh->host_no,
|
||||
SCpnt->device->id, SCpnt->device->lun));
|
||||
return (*func)(SCpnt);
|
||||
|
||||
@@ -95,7 +95,7 @@ static void mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx);
|
||||
static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply);
|
||||
|
||||
int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id,
|
||||
int lun, int ctx2abort, ulong timeout);
|
||||
u64 lun, int ctx2abort, ulong timeout);
|
||||
|
||||
int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
|
||||
int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
|
||||
@@ -536,7 +536,7 @@ mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pSc
|
||||
}
|
||||
|
||||
scsi_print_command(sc);
|
||||
printk(MYIOC_s_DEBUG_FMT "\tfw_channel = %d, fw_id = %d, lun = %d\n",
|
||||
printk(MYIOC_s_DEBUG_FMT "\tfw_channel = %d, fw_id = %d, lun = %llu\n",
|
||||
ioc->name, pScsiReply->Bus, pScsiReply->TargetID, sc->device->lun);
|
||||
printk(MYIOC_s_DEBUG_FMT "\trequest_len = %d, underflow = %d, "
|
||||
"resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow,
|
||||
@@ -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,
|
||||
@@ -1155,7 +1155,7 @@ mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSI
|
||||
return;
|
||||
ioc = hd->ioc;
|
||||
if (time - hd->last_queue_full > 10 * HZ) {
|
||||
dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%d) reported QUEUE_FULL!\n",
|
||||
dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%llu) reported QUEUE_FULL!\n",
|
||||
ioc->name, 0, sc->device->id, sc->device->lun));
|
||||
hd->last_queue_full = time;
|
||||
}
|
||||
@@ -1518,7 +1518,7 @@ mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx)
|
||||
*
|
||||
**/
|
||||
int
|
||||
mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun,
|
||||
mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, u64 lun,
|
||||
int ctx2abort, ulong timeout)
|
||||
{
|
||||
MPT_FRAME_HDR *mf;
|
||||
@@ -2380,7 +2380,7 @@ mptscsih_slave_configure(struct scsi_device *sdev)
|
||||
vdevice = sdev->hostdata;
|
||||
|
||||
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"device @ %p, channel=%d, id=%d, lun=%d\n",
|
||||
"device @ %p, channel=%d, id=%d, lun=%llu\n",
|
||||
ioc->name, sdev, sdev->channel, sdev->id, sdev->lun));
|
||||
if (ioc->bus_type == SPI)
|
||||
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
@@ -2971,7 +2971,7 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io)
|
||||
+ (my_idx * MPT_SENSE_BUFFER_ALLOC));
|
||||
|
||||
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"%s: Sending Command 0x%02x for fw_channel=%d fw_id=%d lun=%d\n",
|
||||
"%s: Sending Command 0x%02x for fw_channel=%d fw_id=%d lun=%llu\n",
|
||||
ioc->name, __func__, cmd, io->channel, io->id, io->lun));
|
||||
|
||||
if (dir == MPI_SCSIIO_CONTROL_READ)
|
||||
|
||||
@@ -98,7 +98,7 @@ typedef struct _internal_cmd {
|
||||
u8 cmd; /* SCSI Op Code */
|
||||
u8 channel; /* bus number */
|
||||
u8 id; /* SCSI ID (virtual) */
|
||||
int lun;
|
||||
u64 lun;
|
||||
u8 flags; /* Bit Field - See above */
|
||||
u8 physDiskNum; /* Phys disk number, -1 else */
|
||||
u8 rsvd2;
|
||||
@@ -115,7 +115,7 @@ extern int mptscsih_show_info(struct seq_file *, struct Scsi_Host *);
|
||||
extern const char * mptscsih_info(struct Scsi_Host *SChost);
|
||||
extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt);
|
||||
extern int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel,
|
||||
u8 id, int lun, int ctx2abort, ulong timeout);
|
||||
u8 id, u64 lun, int ctx2abort, ulong timeout);
|
||||
extern void mptscsih_slave_destroy(struct scsi_device *device);
|
||||
extern int mptscsih_slave_configure(struct scsi_device *device);
|
||||
extern int mptscsih_abort(struct scsi_cmnd * SCpnt);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1005,7 +1005,7 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
cmnd[0] = REQUEST_SENSE;
|
||||
cmnd[1] = (SCp->device->lun & 0x7) << 5;
|
||||
cmnd[1] = (lun & 0x7) << 5;
|
||||
cmnd[2] = 0;
|
||||
cmnd[3] = 0;
|
||||
cmnd[4] = SCSI_SENSE_BUFFERSIZE;
|
||||
@@ -1396,7 +1396,8 @@ NCR_700_start_command(struct scsi_cmnd *SCp)
|
||||
struct NCR_700_Host_Parameters *hostdata =
|
||||
(struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0];
|
||||
__u16 count = 1; /* for IDENTIFY message */
|
||||
|
||||
u8 lun = SCp->device->lun;
|
||||
|
||||
if(hostdata->state != NCR_700_HOST_FREE) {
|
||||
/* keep this inside the lock to close the race window where
|
||||
* the running command finishes on another CPU while we don't
|
||||
@@ -1415,7 +1416,7 @@ NCR_700_start_command(struct scsi_cmnd *SCp)
|
||||
|
||||
hostdata->msgout[0] = NCR_700_identify((SCp->cmnd[0] != REQUEST_SENSE &&
|
||||
slot->flags != NCR_700_FLAG_AUTOSENSE),
|
||||
SCp->device->lun);
|
||||
lun);
|
||||
/* for INQUIRY or REQUEST_SENSE commands, we cannot be sure
|
||||
* if the negotiated transfer parameters still hold, so
|
||||
* always renegotiate them */
|
||||
|
||||
@@ -762,7 +762,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 %llu\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
|
||||
SPRINTF(" command = ");
|
||||
lprint_command(cmd->cmnd, m);
|
||||
}
|
||||
@@ -1039,9 +1039,10 @@ static void NCR5380_main(struct work_struct *work)
|
||||
for (tmp = (Scsi_Cmnd *) hostdata->issue_queue, prev = NULL; tmp; prev = tmp, tmp = (Scsi_Cmnd *) tmp->host_scribble)
|
||||
{
|
||||
if (prev != tmp)
|
||||
dprintk(NDEBUG_LISTS, "MAIN tmp=%p target=%d busy=%d lun=%d\n", tmp, tmp->device->id, hostdata->busy[tmp->device->id], tmp->device->lun);
|
||||
dprintk(NDEBUG_LISTS, "MAIN tmp=%p target=%d busy=%d lun=%llu\n", tmp, tmp->device->id, hostdata->busy[tmp->device->id], tmp->device->lun);
|
||||
/* When we find one, remove it from the issue queue. */
|
||||
if (!(hostdata->busy[tmp->device->id] & (1 << tmp->device->lun))) {
|
||||
if (!(hostdata->busy[tmp->device->id] &
|
||||
(1 << (u8)(tmp->device->lun & 0xff)))) {
|
||||
if (prev) {
|
||||
REMOVE(prev, prev->host_scribble, tmp, tmp->host_scribble);
|
||||
prev->host_scribble = tmp->host_scribble;
|
||||
@@ -1057,7 +1058,7 @@ static void NCR5380_main(struct work_struct *work)
|
||||
* On failure, we must add the command back to the
|
||||
* issue queue so we can keep trying.
|
||||
*/
|
||||
dprintk(NDEBUG_MAIN|NDEBUG_QUEUES, "scsi%d : main() : command for target %d lun %d removed from issue_queue\n", instance->host_no, tmp->device->id, tmp->device->lun);
|
||||
dprintk(NDEBUG_MAIN|NDEBUG_QUEUES, "scsi%d : main() : command for target %d lun %llu removed from issue_queue\n", instance->host_no, tmp->device->id, tmp->device->lun);
|
||||
|
||||
/*
|
||||
* A successful selection is defined as one that
|
||||
@@ -1524,7 +1525,7 @@ part2:
|
||||
dprintk(NDEBUG_SELECTION, "scsi%d : nexus established.\n", instance->host_no);
|
||||
/* XXX need to handle errors here */
|
||||
hostdata->connected = cmd;
|
||||
hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun);
|
||||
hostdata->busy[cmd->device->id] |= (1 << (cmd->device->lun & 0xFF));
|
||||
|
||||
initialize_SCp(cmd);
|
||||
|
||||
@@ -2210,14 +2211,14 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
case LINKED_FLG_CMD_COMPLETE:
|
||||
/* Accept message by clearing ACK */
|
||||
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
||||
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %d linked command complete.\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked command complete.\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
/*
|
||||
* Sanity check : A linked command should only terminate with
|
||||
* one of these messages if there are more linked commands
|
||||
* available.
|
||||
*/
|
||||
if (!cmd->next_link) {
|
||||
printk("scsi%d : target %d lun %d linked command complete, no next_link\n" instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
printk("scsi%d : target %d lun %llu linked command complete, no next_link\n" instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
sink = 1;
|
||||
do_abort(instance);
|
||||
return;
|
||||
@@ -2226,7 +2227,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
/* The next command is still part of this process */
|
||||
cmd->next_link->tag = cmd->tag;
|
||||
cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8);
|
||||
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %d linked request done, calling scsi_done().\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked request done, calling scsi_done().\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
collect_stats(hostdata, cmd);
|
||||
cmd->scsi_done(cmd);
|
||||
cmd = hostdata->connected;
|
||||
@@ -2238,8 +2239,8 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
sink = 1;
|
||||
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
||||
hostdata->connected = NULL;
|
||||
dprintk(NDEBUG_QUEUES, "scsi%d : command for target %d, lun %d completed\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun);
|
||||
dprintk(NDEBUG_QUEUES, "scsi%d : command for target %d, lun %llu completed\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF));
|
||||
|
||||
/*
|
||||
* I'm not sure what the correct thing to do here is :
|
||||
@@ -2304,7 +2305,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
case ORDERED_QUEUE_TAG:
|
||||
case SIMPLE_QUEUE_TAG:
|
||||
cmd->device->simple_tags = 0;
|
||||
hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun);
|
||||
hostdata->busy[cmd->device->id] |= (1 << (cmd->device->lun & 0xFF));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -2318,7 +2319,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
hostdata->disconnected_queue;
|
||||
hostdata->connected = NULL;
|
||||
hostdata->disconnected_queue = cmd;
|
||||
dprintk(NDEBUG_QUEUES, "scsi%d : command for target %d lun %d was moved from connected to" " the disconnected_queue\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
dprintk(NDEBUG_QUEUES, "scsi%d : command for target %d lun %llu was moved from connected to" " the disconnected_queue\n", instance->host_no, cmd->device->id, cmd->device->lun);
|
||||
/*
|
||||
* Restore phase bits to 0 so an interrupted selection,
|
||||
* arbitration can resume.
|
||||
@@ -2426,7 +2427,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
|
||||
hostdata->last_message = msgout;
|
||||
NCR5380_transfer_pio(instance, &phase, &len, &data);
|
||||
if (msgout == ABORT) {
|
||||
hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun);
|
||||
hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF));
|
||||
hostdata->connected = NULL;
|
||||
cmd->result = DID_ERROR << 16;
|
||||
collect_stats(hostdata, cmd);
|
||||
@@ -2562,7 +2563,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance) {
|
||||
|
||||
|
||||
for (tmp = (Scsi_Cmnd *) hostdata->disconnected_queue, prev = NULL; tmp; prev = tmp, tmp = (Scsi_Cmnd *) tmp->host_scribble)
|
||||
if ((target_mask == (1 << tmp->device->id)) && (lun == tmp->device->lun)
|
||||
if ((target_mask == (1 << tmp->device->id)) && (lun == (u8)tmp->device->lun)
|
||||
) {
|
||||
if (prev) {
|
||||
REMOVE(prev, prev->host_scribble, tmp, tmp->host_scribble);
|
||||
@@ -2588,7 +2589,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance) {
|
||||
do_abort(instance);
|
||||
} else {
|
||||
hostdata->connected = tmp;
|
||||
dprintk(NDEBUG_RESELECTION, "scsi%d : nexus established, target = %d, lun = %d, tag = %d\n", instance->host_no, tmp->device->id, tmp->device->lun, tmp->tag);
|
||||
dprintk(NDEBUG_RESELECTION, "scsi%d : nexus established, target = %d, lun = %llu, tag = %d\n", instance->host_no, tmp->device->id, tmp->device->lun, tmp->tag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -698,7 +698,7 @@ static int NCR53c406a_queue_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
|
||||
int i;
|
||||
|
||||
VDEB(printk("NCR53c406a_queue called\n"));
|
||||
DEB(printk("cmd=%02x, cmd_len=%02x, target=%02x, lun=%02x, bufflen=%d\n", SCpnt->cmnd[0], SCpnt->cmd_len, SCpnt->target, SCpnt->lun, scsi_bufflen(SCpnt)));
|
||||
DEB(printk("cmd=%02x, cmd_len=%02x, target=%02x, lun=%02x, bufflen=%d\n", SCpnt->cmnd[0], SCpnt->cmd_len, SCpnt->device->target, (u8)SCpnt->device->lun, scsi_bufflen(SCpnt)));
|
||||
|
||||
#if 0
|
||||
VDEB(for (i = 0; i < SCpnt->cmd_len; i++)
|
||||
|
||||
@@ -891,7 +891,7 @@ static int inia100_build_scb(struct orc_host * host, struct orc_scb * scb, struc
|
||||
printk("max cdb length= %x\b", cmd->cmd_len);
|
||||
scb->cdb_len = IMAX_CDB;
|
||||
}
|
||||
scb->ident = cmd->device->lun | DISC_ALLOW;
|
||||
scb->ident = (u8)(cmd->device->lun & 0xff) | DISC_ALLOW;
|
||||
if (cmd->device->tagged_supported) { /* Tag Support */
|
||||
scb->tag_msg = SIMPLE_QUEUE_TAG; /* Do simple tag only */
|
||||
} else {
|
||||
|
||||
@@ -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]) {
|
||||
|
||||
@@ -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) : -1
|
||||
|
||||
static 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]);
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -2110,7 +2110,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;
|
||||
}
|
||||
@@ -2118,11 +2118,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;
|
||||
}
|
||||
@@ -2188,13 +2188,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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user