aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx/aic79xx_osm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aic7xxx/aic79xx_osm.c')
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c39
1 files changed, 15 insertions, 24 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 95c285cc83e4..cfb46c241b38 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -52,6 +52,7 @@ static struct scsi_transport_template *ahd_linux_transport_template = NULL;
52#include <linux/mm.h> /* For fetching system memory size */ 52#include <linux/mm.h> /* For fetching system memory size */
53#include <linux/blkdev.h> /* For block_size() */ 53#include <linux/blkdev.h> /* For block_size() */
54#include <linux/delay.h> /* For ssleep/msleep */ 54#include <linux/delay.h> /* For ssleep/msleep */
55#include <linux/device.h>
55 56
56/* 57/*
57 * Bucket size for counting good commands in between bad ones. 58 * Bucket size for counting good commands in between bad ones.
@@ -397,7 +398,7 @@ ahd_linux_unmap_scb(struct ahd_softc *ahd, struct scb *scb)
397 398
398/******************************** Macros **************************************/ 399/******************************** Macros **************************************/
399#define BUILD_SCSIID(ahd, cmd) \ 400#define BUILD_SCSIID(ahd, cmd) \
400 ((((cmd)->device->id << TID_SHIFT) & TID) | (ahd)->our_id) 401 (((scmd_id(cmd) << TID_SHIFT) & TID) | (ahd)->our_id)
401 402
402/* 403/*
403 * Return a string describing the driver. 404 * Return a string describing the driver.
@@ -565,7 +566,7 @@ ahd_linux_slave_configure(struct scsi_device *sdev)
565 566
566 ahd = *((struct ahd_softc **)sdev->host->hostdata); 567 ahd = *((struct ahd_softc **)sdev->host->hostdata);
567 if (bootverbose) 568 if (bootverbose)
568 printf("%s: Slave Configure %d\n", ahd_name(ahd), sdev->id); 569 sdev_printk(KERN_INFO, sdev, "Slave Configure\n");
569 570
570 ahd_linux_device_queue_depth(sdev); 571 ahd_linux_device_queue_depth(sdev);
571 572
@@ -684,7 +685,7 @@ ahd_linux_bus_reset(struct scsi_cmnd *cmd)
684 ahd_name(ahd), cmd); 685 ahd_name(ahd), cmd);
685#endif 686#endif
686 ahd_lock(ahd, &s); 687 ahd_lock(ahd, &s);
687 found = ahd_reset_channel(ahd, cmd->device->channel + 'A', 688 found = ahd_reset_channel(ahd, scmd_channel(cmd) + 'A',
688 /*initiate reset*/TRUE); 689 /*initiate reset*/TRUE);
689 ahd_unlock(ahd, &s); 690 ahd_unlock(ahd, &s);
690 691
@@ -2067,9 +2068,8 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2067 wait = FALSE; 2068 wait = FALSE;
2068 ahd = *(struct ahd_softc **)cmd->device->host->hostdata; 2069 ahd = *(struct ahd_softc **)cmd->device->host->hostdata;
2069 2070
2070 printf("%s:%d:%d:%d: Attempting to queue a%s message:", 2071 scmd_printk(KERN_INFO, cmd,
2071 ahd_name(ahd), cmd->device->channel, 2072 "Attempting to queue a%s message:",
2072 cmd->device->id, cmd->device->lun,
2073 flag == SCB_ABORT ? "n ABORT" : " TARGET RESET"); 2073 flag == SCB_ABORT ? "n ABORT" : " TARGET RESET");
2074 2074
2075 printf("CDB:"); 2075 printf("CDB:");
@@ -2093,9 +2093,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2093 * No target device for this command exists, 2093 * No target device for this command exists,
2094 * so we must not still own the command. 2094 * so we must not still own the command.
2095 */ 2095 */
2096 printf("%s:%d:%d:%d: Is not an active device\n", 2096 scmd_printk(KERN_INFO, cmd, "Is not an active device\n");
2097 ahd_name(ahd), cmd->device->channel, cmd->device->id,
2098 cmd->device->lun);
2099 retval = SUCCESS; 2097 retval = SUCCESS;
2100 goto no_cmd; 2098 goto no_cmd;
2101 } 2099 }
@@ -2112,8 +2110,9 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2112 2110
2113 /* Any SCB for this device will do for a target reset */ 2111 /* Any SCB for this device will do for a target reset */
2114 LIST_FOREACH(pending_scb, &ahd->pending_scbs, pending_links) { 2112 LIST_FOREACH(pending_scb, &ahd->pending_scbs, pending_links) {
2115 if (ahd_match_scb(ahd, pending_scb, cmd->device->id, 2113 if (ahd_match_scb(ahd, pending_scb,
2116 cmd->device->channel + 'A', 2114 scmd_id(cmd),
2115 scmd_channel(cmd) + 'A',
2117 CAM_LUN_WILDCARD, 2116 CAM_LUN_WILDCARD,
2118 SCB_LIST_NULL, ROLE_INITIATOR) == 0) 2117 SCB_LIST_NULL, ROLE_INITIATOR) == 0)
2119 break; 2118 break;
@@ -2121,9 +2120,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2121 } 2120 }
2122 2121
2123 if (pending_scb == NULL) { 2122 if (pending_scb == NULL) {
2124 printf("%s:%d:%d:%d: Command not found\n", 2123 scmd_printk(KERN_INFO, cmd, "Command not found\n");
2125 ahd_name(ahd), cmd->device->channel, cmd->device->id,
2126 cmd->device->lun);
2127 goto no_cmd; 2124 goto no_cmd;
2128 } 2125 }
2129 2126
@@ -2146,9 +2143,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2146 paused = TRUE; 2143 paused = TRUE;
2147 2144
2148 if ((pending_scb->flags & SCB_ACTIVE) == 0) { 2145 if ((pending_scb->flags & SCB_ACTIVE) == 0) {
2149 printf("%s:%d:%d:%d: Command already completed\n", 2146 scmd_printk(KERN_INFO, cmd, "Command already completed\n");
2150 ahd_name(ahd), cmd->device->channel, cmd->device->id,
2151 cmd->device->lun);
2152 goto no_cmd; 2147 goto no_cmd;
2153 } 2148 }
2154 2149
@@ -2204,7 +2199,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2204 if (last_phase != P_BUSFREE 2199 if (last_phase != P_BUSFREE
2205 && (SCB_GET_TAG(pending_scb) == active_scbptr 2200 && (SCB_GET_TAG(pending_scb) == active_scbptr
2206 || (flag == SCB_DEVICE_RESET 2201 || (flag == SCB_DEVICE_RESET
2207 && SCSIID_TARGET(ahd, saved_scsiid) == cmd->device->id))) { 2202 && SCSIID_TARGET(ahd, saved_scsiid) == scmd_id(cmd)))) {
2208 2203
2209 /* 2204 /*
2210 * We're active on the bus, so assert ATN 2205 * We're active on the bus, so assert ATN
@@ -2214,9 +2209,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2214 pending_scb->flags |= SCB_RECOVERY_SCB|flag; 2209 pending_scb->flags |= SCB_RECOVERY_SCB|flag;
2215 ahd_outb(ahd, MSG_OUT, HOST_MSG); 2210 ahd_outb(ahd, MSG_OUT, HOST_MSG);
2216 ahd_outb(ahd, SCSISIGO, last_phase|ATNO); 2211 ahd_outb(ahd, SCSISIGO, last_phase|ATNO);
2217 printf("%s:%d:%d:%d: Device is active, asserting ATN\n", 2212 scmd_printk(KERN_INFO, cmd, "Device is active, asserting ATN\n");
2218 ahd_name(ahd), cmd->device->channel,
2219 cmd->device->id, cmd->device->lun);
2220 wait = TRUE; 2213 wait = TRUE;
2221 } else if (disconnected) { 2214 } else if (disconnected) {
2222 2215
@@ -2277,9 +2270,7 @@ ahd_linux_queue_recovery_cmd(struct scsi_cmnd *cmd, scb_flag flag)
2277 printf("Device is disconnected, re-queuing SCB\n"); 2270 printf("Device is disconnected, re-queuing SCB\n");
2278 wait = TRUE; 2271 wait = TRUE;
2279 } else { 2272 } else {
2280 printf("%s:%d:%d:%d: Unable to deliver message\n", 2273 scmd_printk(KERN_INFO, cmd, "Unable to deliver message\n");
2281 ahd_name(ahd), cmd->device->channel,
2282 cmd->device->id, cmd->device->lun);
2283 retval = FAILED; 2274 retval = FAILED;
2284 goto done; 2275 goto done;
2285 } 2276 }