diff options
-rw-r--r-- | drivers/scsi/dc395x.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c index 5ee7f44cf869..60ef8df42b95 100644 --- a/drivers/scsi/dc395x.c +++ b/drivers/scsi/dc395x.c | |||
@@ -395,7 +395,7 @@ static void request_sense(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb, | |||
395 | struct ScsiReqBlk *srb); | 395 | struct ScsiReqBlk *srb); |
396 | static void set_xfer_rate(struct AdapterCtlBlk *acb, | 396 | static void set_xfer_rate(struct AdapterCtlBlk *acb, |
397 | struct DeviceCtlBlk *dcb); | 397 | struct DeviceCtlBlk *dcb); |
398 | static void waiting_timeout(unsigned long ptr); | 398 | static void waiting_timeout(struct timer_list *t); |
399 | 399 | ||
400 | 400 | ||
401 | /*--------------------------------------------------------------------------- | 401 | /*--------------------------------------------------------------------------- |
@@ -857,9 +857,6 @@ static void waiting_set_timer(struct AdapterCtlBlk *acb, unsigned long to) | |||
857 | { | 857 | { |
858 | if (timer_pending(&acb->waiting_timer)) | 858 | if (timer_pending(&acb->waiting_timer)) |
859 | return; | 859 | return; |
860 | init_timer(&acb->waiting_timer); | ||
861 | acb->waiting_timer.function = waiting_timeout; | ||
862 | acb->waiting_timer.data = (unsigned long) acb; | ||
863 | if (time_before(jiffies + to, acb->last_reset - HZ / 2)) | 860 | if (time_before(jiffies + to, acb->last_reset - HZ / 2)) |
864 | acb->waiting_timer.expires = | 861 | acb->waiting_timer.expires = |
865 | acb->last_reset - HZ / 2 + 1; | 862 | acb->last_reset - HZ / 2 + 1; |
@@ -936,10 +933,10 @@ static void waiting_process_next(struct AdapterCtlBlk *acb) | |||
936 | 933 | ||
937 | 934 | ||
938 | /* Wake up waiting queue */ | 935 | /* Wake up waiting queue */ |
939 | static void waiting_timeout(unsigned long ptr) | 936 | static void waiting_timeout(struct timer_list *t) |
940 | { | 937 | { |
941 | unsigned long flags; | 938 | unsigned long flags; |
942 | struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)ptr; | 939 | struct AdapterCtlBlk *acb = from_timer(acb, t, waiting_timer); |
943 | dprintkdbg(DBG_1, | 940 | dprintkdbg(DBG_1, |
944 | "waiting_timeout: Queue woken up by timer. acb=%p\n", acb); | 941 | "waiting_timeout: Queue woken up by timer. acb=%p\n", acb); |
945 | DC395x_LOCK_IO(acb->scsi_host, flags); | 942 | DC395x_LOCK_IO(acb->scsi_host, flags); |
@@ -4366,8 +4363,8 @@ static void adapter_init_params(struct AdapterCtlBlk *acb) | |||
4366 | INIT_LIST_HEAD(&acb->srb_free_list); | 4363 | INIT_LIST_HEAD(&acb->srb_free_list); |
4367 | /* temp SRB for Q tag used or abort command used */ | 4364 | /* temp SRB for Q tag used or abort command used */ |
4368 | acb->tmp_srb = &acb->srb; | 4365 | acb->tmp_srb = &acb->srb; |
4369 | init_timer(&acb->waiting_timer); | 4366 | timer_setup(&acb->waiting_timer, waiting_timeout, 0); |
4370 | init_timer(&acb->selto_timer); | 4367 | timer_setup(&acb->selto_timer, NULL, 0); |
4371 | 4368 | ||
4372 | acb->srb_count = DC395x_MAX_SRB_CNT; | 4369 | acb->srb_count = DC395x_MAX_SRB_CNT; |
4373 | 4370 | ||