diff options
Diffstat (limited to 'drivers/scsi/arm/acornscsi.c')
-rw-r--r-- | drivers/scsi/arm/acornscsi.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c index 2e797a367608..d89b9b4deb3c 100644 --- a/drivers/scsi/arm/acornscsi.c +++ b/drivers/scsi/arm/acornscsi.c | |||
@@ -760,7 +760,8 @@ intr_ret_t acornscsi_kick(AS_Host *host) | |||
760 | SCpnt->tag = SCpnt->device->current_tag; | 760 | SCpnt->tag = SCpnt->device->current_tag; |
761 | } else | 761 | } else |
762 | #endif | 762 | #endif |
763 | set_bit(SCpnt->device->id * 8 + SCpnt->device->lun, host->busyluns); | 763 | set_bit(SCpnt->device->id * 8 + |
764 | (u8)(SCpnt->device->lun & 0x07), host->busyluns); | ||
764 | 765 | ||
765 | host->stats.removes += 1; | 766 | host->stats.removes += 1; |
766 | 767 | ||
@@ -863,7 +864,8 @@ static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp, | |||
863 | if (!SCpnt->scsi_done) | 864 | if (!SCpnt->scsi_done) |
864 | panic("scsi%d.H: null scsi_done function in acornscsi_done", host->host->host_no); | 865 | panic("scsi%d.H: null scsi_done function in acornscsi_done", host->host->host_no); |
865 | 866 | ||
866 | clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, host->busyluns); | 867 | clear_bit(SCpnt->device->id * 8 + |
868 | (u8)(SCpnt->device->lun & 0x7), host->busyluns); | ||
867 | 869 | ||
868 | SCpnt->scsi_done(SCpnt); | 870 | SCpnt->scsi_done(SCpnt); |
869 | } else | 871 | } else |
@@ -1576,7 +1578,8 @@ void acornscsi_message(AS_Host *host) | |||
1576 | printk(KERN_NOTICE "scsi%d.%c: disabling tagged queueing\n", | 1578 | printk(KERN_NOTICE "scsi%d.%c: disabling tagged queueing\n", |
1577 | host->host->host_no, acornscsi_target(host)); | 1579 | host->host->host_no, acornscsi_target(host)); |
1578 | host->SCpnt->device->simple_tags = 0; | 1580 | host->SCpnt->device->simple_tags = 0; |
1579 | set_bit(host->SCpnt->device->id * 8 + host->SCpnt->device->lun, host->busyluns); | 1581 | set_bit(host->SCpnt->device->id * 8 + |
1582 | (u8)(host->SCpnt->device->lun & 0x7), host->busyluns); | ||
1580 | break; | 1583 | break; |
1581 | #endif | 1584 | #endif |
1582 | case EXTENDED_MESSAGE | (EXTENDED_SDTR << 8): | 1585 | case EXTENDED_MESSAGE | (EXTENDED_SDTR << 8): |
@@ -2671,7 +2674,8 @@ int acornscsi_abort(struct scsi_cmnd *SCpnt) | |||
2671 | //#if (DEBUG & DEBUG_ABORT) | 2674 | //#if (DEBUG & DEBUG_ABORT) |
2672 | printk("clear "); | 2675 | printk("clear "); |
2673 | //#endif | 2676 | //#endif |
2674 | clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, host->busyluns); | 2677 | clear_bit(SCpnt->device->id * 8 + |
2678 | (u8)(SCpnt->device->lun & 0x7), host->busyluns); | ||
2675 | 2679 | ||
2676 | /* | 2680 | /* |
2677 | * We found the command, and cleared it out. Either | 2681 | * We found the command, and cleared it out. Either |
@@ -2853,7 +2857,7 @@ static int acornscsi_show_info(struct seq_file *m, struct Scsi_Host *instance) | |||
2853 | 2857 | ||
2854 | shost_for_each_device(scd, instance) { | 2858 | shost_for_each_device(scd, instance) { |
2855 | seq_printf(m, "Device/Lun TaggedQ Sync\n"); | 2859 | seq_printf(m, "Device/Lun TaggedQ Sync\n"); |
2856 | seq_printf(m, " %d/%d ", scd->id, scd->lun); | 2860 | seq_printf(m, " %d/%llu ", scd->id, scd->lun); |
2857 | if (scd->tagged_supported) | 2861 | if (scd->tagged_supported) |
2858 | seq_printf(m, "%3sabled(%3d) ", | 2862 | seq_printf(m, "%3sabled(%3d) ", |
2859 | scd->simple_tags ? "en" : "dis", | 2863 | scd->simple_tags ? "en" : "dis", |