|
@@ -758,9 +758,9 @@ enum action {
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
-static void qla1280_mailbox_timeout(unsigned long __data)
|
|
|
|
|
|
+static void qla1280_mailbox_timeout(struct timer_list *t)
|
|
{
|
|
{
|
|
- struct scsi_qla_host *ha = (struct scsi_qla_host *)__data;
|
|
|
|
|
|
+ struct scsi_qla_host *ha = from_timer(ha, t, mailbox_timer);
|
|
struct device_reg __iomem *reg;
|
|
struct device_reg __iomem *reg;
|
|
reg = ha->iobase;
|
|
reg = ha->iobase;
|
|
|
|
|
|
@@ -2465,7 +2465,6 @@ qla1280_mailbox_command(struct scsi_qla_host *ha, uint8_t mr, uint16_t *mb)
|
|
uint16_t __iomem *mptr;
|
|
uint16_t __iomem *mptr;
|
|
uint16_t data;
|
|
uint16_t data;
|
|
DECLARE_COMPLETION_ONSTACK(wait);
|
|
DECLARE_COMPLETION_ONSTACK(wait);
|
|
- struct timer_list timer;
|
|
|
|
|
|
|
|
ENTER("qla1280_mailbox_command");
|
|
ENTER("qla1280_mailbox_command");
|
|
|
|
|
|
@@ -2494,18 +2493,15 @@ qla1280_mailbox_command(struct scsi_qla_host *ha, uint8_t mr, uint16_t *mb)
|
|
/* Issue set host interrupt command. */
|
|
/* Issue set host interrupt command. */
|
|
|
|
|
|
/* set up a timer just in case we're really jammed */
|
|
/* set up a timer just in case we're really jammed */
|
|
- init_timer_on_stack(&timer);
|
|
|
|
- timer.expires = jiffies + 20*HZ;
|
|
|
|
- timer.data = (unsigned long)ha;
|
|
|
|
- timer.function = qla1280_mailbox_timeout;
|
|
|
|
- add_timer(&timer);
|
|
|
|
|
|
+ timer_setup(&ha->mailbox_timer, qla1280_mailbox_timeout, 0);
|
|
|
|
+ mod_timer(&ha->mailbox_timer, jiffies + 20 * HZ);
|
|
|
|
|
|
spin_unlock_irq(ha->host->host_lock);
|
|
spin_unlock_irq(ha->host->host_lock);
|
|
WRT_REG_WORD(®->host_cmd, HC_SET_HOST_INT);
|
|
WRT_REG_WORD(®->host_cmd, HC_SET_HOST_INT);
|
|
data = qla1280_debounce_register(®->istatus);
|
|
data = qla1280_debounce_register(®->istatus);
|
|
|
|
|
|
wait_for_completion(&wait);
|
|
wait_for_completion(&wait);
|
|
- del_timer_sync(&timer);
|
|
|
|
|
|
+ del_timer_sync(&ha->mailbox_timer);
|
|
|
|
|
|
spin_lock_irq(ha->host->host_lock);
|
|
spin_lock_irq(ha->host->host_lock);
|
|
|
|
|