|
@@ -297,8 +297,8 @@ fas216_do_log(FAS216_Info *info, char target, char *fmt, va_list ap)
|
|
printk("scsi%d.%c: %s", info->host->host_no, target, buf);
|
|
printk("scsi%d.%c: %s", info->host->host_no, target, buf);
|
|
}
|
|
}
|
|
|
|
|
|
-static void
|
|
|
|
-fas216_log_command(FAS216_Info *info, int level, Scsi_Cmnd *SCpnt, char *fmt, ...)
|
|
|
|
|
|
+static void fas216_log_command(FAS216_Info *info, int level,
|
|
|
|
+ struct scsi_cmnd *SCpnt, char *fmt, ...)
|
|
{
|
|
{
|
|
va_list args;
|
|
va_list args;
|
|
|
|
|
|
@@ -1662,7 +1662,7 @@ irqreturn_t fas216_intr(FAS216_Info *info)
|
|
return handled;
|
|
return handled;
|
|
}
|
|
}
|
|
|
|
|
|
-static void __fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static void __fas216_start_command(FAS216_Info *info, struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
int tot_msglen;
|
|
int tot_msglen;
|
|
|
|
|
|
@@ -1754,7 +1754,7 @@ static int parity_test(FAS216_Info *info, int target)
|
|
return info->device[target].parity_check;
|
|
return info->device[target].parity_check;
|
|
}
|
|
}
|
|
|
|
|
|
-static void fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static void fas216_start_command(FAS216_Info *info, struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
int disconnect_ok;
|
|
int disconnect_ok;
|
|
|
|
|
|
@@ -1808,7 +1808,7 @@ static void fas216_start_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
__fas216_start_command(info, SCpnt);
|
|
__fas216_start_command(info, SCpnt);
|
|
}
|
|
}
|
|
|
|
|
|
-static void fas216_allocate_tag(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static void fas216_allocate_tag(FAS216_Info *info, struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
#ifdef SCSI2_TAG
|
|
#ifdef SCSI2_TAG
|
|
/*
|
|
/*
|
|
@@ -1842,7 +1842,8 @@ static void fas216_allocate_tag(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static void fas216_do_bus_device_reset(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static void fas216_do_bus_device_reset(FAS216_Info *info,
|
|
|
|
+ struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
struct message *msg;
|
|
struct message *msg;
|
|
|
|
|
|
@@ -1890,7 +1891,7 @@ static void fas216_do_bus_device_reset(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
*/
|
|
*/
|
|
static void fas216_kick(FAS216_Info *info)
|
|
static void fas216_kick(FAS216_Info *info)
|
|
{
|
|
{
|
|
- Scsi_Cmnd *SCpnt = NULL;
|
|
|
|
|
|
+ struct scsi_cmnd *SCpnt = NULL;
|
|
#define TYPE_OTHER 0
|
|
#define TYPE_OTHER 0
|
|
#define TYPE_RESET 1
|
|
#define TYPE_RESET 1
|
|
#define TYPE_QUEUE 2
|
|
#define TYPE_QUEUE 2
|
|
@@ -1978,8 +1979,8 @@ static void fas216_kick(FAS216_Info *info)
|
|
/*
|
|
/*
|
|
* Clean up from issuing a BUS DEVICE RESET message to a device.
|
|
* Clean up from issuing a BUS DEVICE RESET message to a device.
|
|
*/
|
|
*/
|
|
-static void
|
|
|
|
-fas216_devicereset_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
|
|
|
|
|
|
+static void fas216_devicereset_done(FAS216_Info *info, struct scsi_cmnd *SCpnt,
|
|
|
|
+ unsigned int result)
|
|
{
|
|
{
|
|
fas216_log(info, LOG_ERROR, "fas216 device reset complete");
|
|
fas216_log(info, LOG_ERROR, "fas216 device reset complete");
|
|
|
|
|
|
@@ -1996,8 +1997,8 @@ fas216_devicereset_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result
|
|
*
|
|
*
|
|
* Finish processing automatic request sense command
|
|
* Finish processing automatic request sense command
|
|
*/
|
|
*/
|
|
-static void
|
|
|
|
-fas216_rq_sns_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
|
|
|
|
|
|
+static void fas216_rq_sns_done(FAS216_Info *info, struct scsi_cmnd *SCpnt,
|
|
|
|
+ unsigned int result)
|
|
{
|
|
{
|
|
fas216_log_target(info, LOG_CONNECT, SCpnt->device->id,
|
|
fas216_log_target(info, LOG_CONNECT, SCpnt->device->id,
|
|
"request sense complete, result=0x%04x%02x%02x",
|
|
"request sense complete, result=0x%04x%02x%02x",
|
|
@@ -2030,7 +2031,7 @@ fas216_rq_sns_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
|
|
* Finish processing of standard command
|
|
* Finish processing of standard command
|
|
*/
|
|
*/
|
|
static void
|
|
static void
|
|
-fas216_std_done(FAS216_Info *info, Scsi_Cmnd *SCpnt, unsigned int result)
|
|
|
|
|
|
+fas216_std_done(FAS216_Info *info, struct scsi_cmnd *SCpnt, unsigned int result)
|
|
{
|
|
{
|
|
info->stats.fins += 1;
|
|
info->stats.fins += 1;
|
|
|
|
|
|
@@ -2142,8 +2143,8 @@ request_sense:
|
|
*/
|
|
*/
|
|
static void fas216_done(FAS216_Info *info, unsigned int result)
|
|
static void fas216_done(FAS216_Info *info, unsigned int result)
|
|
{
|
|
{
|
|
- void (*fn)(FAS216_Info *, Scsi_Cmnd *, unsigned int);
|
|
|
|
- Scsi_Cmnd *SCpnt;
|
|
|
|
|
|
+ void (*fn)(FAS216_Info *, struct scsi_cmnd *, unsigned int);
|
|
|
|
+ struct scsi_cmnd *SCpnt;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
fas216_checkmagic(info);
|
|
fas216_checkmagic(info);
|
|
@@ -2182,7 +2183,7 @@ static void fas216_done(FAS216_Info *info, unsigned int result)
|
|
info->device[SCpnt->device->id].parity_check = 0;
|
|
info->device[SCpnt->device->id].parity_check = 0;
|
|
clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, info->busyluns);
|
|
clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, info->busyluns);
|
|
|
|
|
|
- fn = (void (*)(FAS216_Info *, Scsi_Cmnd *, unsigned int))SCpnt->host_scribble;
|
|
|
|
|
|
+ fn = (void (*)(FAS216_Info *, struct scsi_cmnd *, unsigned int))SCpnt->host_scribble;
|
|
fn(info, SCpnt, result);
|
|
fn(info, SCpnt, result);
|
|
|
|
|
|
if (info->scsi.irq != NO_IRQ) {
|
|
if (info->scsi.irq != NO_IRQ) {
|
|
@@ -2207,7 +2208,8 @@ no_command:
|
|
* Returns: 0 on success, else error.
|
|
* Returns: 0 on success, else error.
|
|
* Notes: io_request_lock is held, interrupts are disabled.
|
|
* Notes: io_request_lock is held, interrupts are disabled.
|
|
*/
|
|
*/
|
|
-int fas216_queue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
|
|
|
|
|
+int fas216_queue_command(struct scsi_cmnd *SCpnt,
|
|
|
|
+ void (*done)(struct scsi_cmnd *))
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
int result;
|
|
int result;
|
|
@@ -2254,7 +2256,7 @@ int fas216_queue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
|
*
|
|
*
|
|
* Trigger restart of a waiting thread in fas216_command
|
|
* Trigger restart of a waiting thread in fas216_command
|
|
*/
|
|
*/
|
|
-static void fas216_internal_done(Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static void fas216_internal_done(struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
|
|
|
|
@@ -2271,7 +2273,8 @@ static void fas216_internal_done(Scsi_Cmnd *SCpnt)
|
|
* Returns: scsi result code.
|
|
* Returns: scsi result code.
|
|
* Notes: io_request_lock is held, interrupts are disabled.
|
|
* Notes: io_request_lock is held, interrupts are disabled.
|
|
*/
|
|
*/
|
|
-int fas216_noqueue_command(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *))
|
|
|
|
|
|
+int fas216_noqueue_command(struct scsi_cmnd *SCpnt,
|
|
|
|
+ void (*done)(struct scsi_cmnd *))
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
|
|
|
|
@@ -2350,7 +2353,8 @@ enum res_find {
|
|
* Decide how to abort a command.
|
|
* Decide how to abort a command.
|
|
* Returns: abort status
|
|
* Returns: abort status
|
|
*/
|
|
*/
|
|
-static enum res_find fas216_find_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+static enum res_find fas216_find_command(FAS216_Info *info,
|
|
|
|
+ struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
enum res_find res = res_failed;
|
|
enum res_find res = res_failed;
|
|
|
|
|
|
@@ -2417,7 +2421,7 @@ static enum res_find fas216_find_command(FAS216_Info *info, Scsi_Cmnd *SCpnt)
|
|
* Returns: FAILED if unable to abort
|
|
* Returns: FAILED if unable to abort
|
|
* Notes: io_request_lock is taken, and irqs are disabled
|
|
* Notes: io_request_lock is taken, and irqs are disabled
|
|
*/
|
|
*/
|
|
-int fas216_eh_abort(Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+int fas216_eh_abort(struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
int result = FAILED;
|
|
int result = FAILED;
|
|
@@ -2474,7 +2478,7 @@ int fas216_eh_abort(Scsi_Cmnd *SCpnt)
|
|
* Notes: We won't be re-entered, so we'll only have one device
|
|
* Notes: We won't be re-entered, so we'll only have one device
|
|
* reset on the go at one time.
|
|
* reset on the go at one time.
|
|
*/
|
|
*/
|
|
-int fas216_eh_device_reset(Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+int fas216_eh_device_reset(struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
@@ -2555,7 +2559,7 @@ int fas216_eh_device_reset(Scsi_Cmnd *SCpnt)
|
|
* Returns: FAILED if unable to reset.
|
|
* Returns: FAILED if unable to reset.
|
|
* Notes: Further commands are blocked.
|
|
* Notes: Further commands are blocked.
|
|
*/
|
|
*/
|
|
-int fas216_eh_bus_reset(Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+int fas216_eh_bus_reset(struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
@@ -2655,7 +2659,7 @@ static void fas216_init_chip(FAS216_Info *info)
|
|
* Returns: FAILED if unable to reset.
|
|
* Returns: FAILED if unable to reset.
|
|
* Notes: io_request_lock is taken, and irqs are disabled
|
|
* Notes: io_request_lock is taken, and irqs are disabled
|
|
*/
|
|
*/
|
|
-int fas216_eh_host_reset(Scsi_Cmnd *SCpnt)
|
|
|
|
|
|
+int fas216_eh_host_reset(struct scsi_cmnd *SCpnt)
|
|
{
|
|
{
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata;
|
|
|
|
|