Actually update the fixed up compile failures.

Signed-Off-By: David Howells <dhowells@redhat.com>
This commit is contained in:
David Howells 2006-12-06 15:02:26 +00:00 committed by David Howells
parent 4796b71fbb
commit 06328b4f79
4 changed files with 18 additions and 12 deletions

View File

@ -414,9 +414,10 @@ void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id)
} }
/* hard reset a phy later */ /* hard reset a phy later */
static void do_phy_reset_later(void *data) static void do_phy_reset_later(struct work_struct *work)
{ {
struct sas_phy *sas_phy = data; struct sas_phy *sas_phy =
container_of(work, struct sas_phy, reset_work);
int error; int error;
ASD_DPRINTK("%s: About to hard reset phy %d\n", __FUNCTION__, ASD_DPRINTK("%s: About to hard reset phy %d\n", __FUNCTION__,
@ -430,7 +431,7 @@ static void do_phy_reset_later(void *data)
static void phy_reset_later(struct sas_phy *sas_phy, struct Scsi_Host *shost) static void phy_reset_later(struct sas_phy *sas_phy, struct Scsi_Host *shost)
{ {
INIT_WORK(&sas_phy->reset_work, do_phy_reset_later, sas_phy); INIT_WORK(&sas_phy->reset_work, do_phy_reset_later);
queue_work(shost->work_q, &sas_phy->reset_work); queue_work(shost->work_q, &sas_phy->reset_work);
} }
@ -442,7 +443,7 @@ static void task_kill_later(struct asd_ascb *ascb)
struct Scsi_Host *shost = sas_ha->core.shost; struct Scsi_Host *shost = sas_ha->core.shost;
struct sas_task *task = ascb->uldd_task; struct sas_task *task = ascb->uldd_task;
INIT_WORK(&task->abort_work, (void (*)(void *))sas_task_abort, task); INIT_WORK(&task->abort_work, sas_task_abort);
queue_work(shost->work_q, &task->abort_work); queue_work(shost->work_q, &task->abort_work);
} }

View File

@ -846,8 +846,10 @@ static int do_sas_task_abort(struct sas_task *task)
return -EAGAIN; return -EAGAIN;
} }
void sas_task_abort(struct sas_task *task) void sas_task_abort(struct work_struct *work)
{ {
struct sas_task *task =
container_of(work, struct sas_task, abort_work);
int i; int i;
for (i = 0; i < 5; i++) for (i = 0; i < 5; i++)

View File

@ -185,10 +185,11 @@ static void cmd_hashlist_del(struct scsi_cmnd *cmd)
spin_unlock_irqrestore(&qdata->cmd_hash_lock, flags); spin_unlock_irqrestore(&qdata->cmd_hash_lock, flags);
} }
static void scsi_tgt_cmd_destroy(void *data) static void scsi_tgt_cmd_destroy(struct work_struct *work)
{ {
struct scsi_cmnd *cmd = data; struct scsi_tgt_cmd *tcmd =
struct scsi_tgt_cmd *tcmd = cmd->request->end_io_data; container_of(work, struct scsi_tgt_cmd, work);
struct scsi_cmnd *cmd = tcmd->rq->special;
dprintk("cmd %p %d %lu\n", cmd, cmd->sc_data_direction, dprintk("cmd %p %d %lu\n", cmd, cmd->sc_data_direction,
rq_data_dir(cmd->request)); rq_data_dir(cmd->request));
@ -214,6 +215,7 @@ static void init_scsi_tgt_cmd(struct request *rq, struct scsi_tgt_cmd *tcmd,
struct list_head *head; struct list_head *head;
tcmd->tag = tag; tcmd->tag = tag;
INIT_WORK(&tcmd->work, scsi_tgt_cmd_destroy);
spin_lock_irqsave(&qdata->cmd_hash_lock, flags); spin_lock_irqsave(&qdata->cmd_hash_lock, flags);
head = &qdata->cmd_hash[cmd_hashfn(tag)]; head = &qdata->cmd_hash[cmd_hashfn(tag)];
list_add(&tcmd->hash_list, head); list_add(&tcmd->hash_list, head);
@ -303,7 +305,7 @@ void scsi_tgt_free_queue(struct Scsi_Host *shost)
cmd = tcmd->rq->special; cmd = tcmd->rq->special;
shost->hostt->eh_abort_handler(cmd); shost->hostt->eh_abort_handler(cmd);
scsi_tgt_cmd_destroy(cmd); scsi_tgt_cmd_destroy(&tcmd->work);
} }
} }
EXPORT_SYMBOL_GPL(scsi_tgt_free_queue); EXPORT_SYMBOL_GPL(scsi_tgt_free_queue);
@ -347,7 +349,6 @@ static void scsi_tgt_cmd_done(struct scsi_cmnd *cmd)
dprintk("cmd %p %lu\n", cmd, rq_data_dir(cmd->request)); dprintk("cmd %p %lu\n", cmd, rq_data_dir(cmd->request));
scsi_tgt_uspace_send_status(cmd, tcmd->tag); scsi_tgt_uspace_send_status(cmd, tcmd->tag);
INIT_WORK(&tcmd->work, scsi_tgt_cmd_destroy, cmd);
queue_work(scsi_tgtd, &tcmd->work); queue_work(scsi_tgtd, &tcmd->work);
} }
@ -549,13 +550,15 @@ static int scsi_tgt_copy_sense(struct scsi_cmnd *cmd, unsigned long uaddr,
static int scsi_tgt_abort_cmd(struct Scsi_Host *shost, struct scsi_cmnd *cmd) static int scsi_tgt_abort_cmd(struct Scsi_Host *shost, struct scsi_cmnd *cmd)
{ {
struct scsi_tgt_cmd *tcmd;
int err; int err;
err = shost->hostt->eh_abort_handler(cmd); err = shost->hostt->eh_abort_handler(cmd);
if (err) if (err)
eprintk("fail to abort %p\n", cmd); eprintk("fail to abort %p\n", cmd);
scsi_tgt_cmd_destroy(cmd); tcmd = cmd->request->end_io_data;
scsi_tgt_cmd_destroy(&tcmd->work);
return err; return err;
} }

View File

@ -646,6 +646,6 @@ void sas_unregister_dev(struct domain_device *);
void sas_init_dev(struct domain_device *); void sas_init_dev(struct domain_device *);
void sas_task_abort(struct sas_task *task); void sas_task_abort(struct work_struct *);
#endif /* _SASLIB_H_ */ #endif /* _SASLIB_H_ */