aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/arm/acornscsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/arm/acornscsi.c')
-rw-r--r--drivers/scsi/arm/acornscsi.c14
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",