Commit bcdc4bd3 authored by Kees Cook's avatar Kees Cook Committed by Vinod Koul

dmaengine: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 2bd6bf03
...@@ -364,9 +364,9 @@ static void imxdma_disable_hw(struct imxdma_channel *imxdmac) ...@@ -364,9 +364,9 @@ static void imxdma_disable_hw(struct imxdma_channel *imxdmac)
local_irq_restore(flags); local_irq_restore(flags);
} }
static void imxdma_watchdog(unsigned long data) static void imxdma_watchdog(struct timer_list *t)
{ {
struct imxdma_channel *imxdmac = (struct imxdma_channel *)data; struct imxdma_channel *imxdmac = from_timer(imxdmac, t, watchdog);
struct imxdma_engine *imxdma = imxdmac->imxdma; struct imxdma_engine *imxdma = imxdmac->imxdma;
int channel = imxdmac->channel; int channel = imxdmac->channel;
...@@ -1153,9 +1153,7 @@ static int __init imxdma_probe(struct platform_device *pdev) ...@@ -1153,9 +1153,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
} }
imxdmac->irq = irq + i; imxdmac->irq = irq + i;
init_timer(&imxdmac->watchdog); timer_setup(&imxdmac->watchdog, imxdma_watchdog, 0);
imxdmac->watchdog.function = &imxdma_watchdog;
imxdmac->watchdog.data = (unsigned long)imxdmac;
} }
imxdmac->imxdma = imxdma; imxdmac->imxdma = imxdma;
......
...@@ -474,7 +474,7 @@ int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs) ...@@ -474,7 +474,7 @@ int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs)
if (time_is_before_jiffies(ioat_chan->timer.expires) if (time_is_before_jiffies(ioat_chan->timer.expires)
&& timer_pending(&ioat_chan->timer)) { && timer_pending(&ioat_chan->timer)) {
mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT); mod_timer(&ioat_chan->timer, jiffies + COMPLETION_TIMEOUT);
ioat_timer_event((unsigned long)ioat_chan); ioat_timer_event(&ioat_chan->timer);
} }
return -ENOMEM; return -ENOMEM;
...@@ -862,9 +862,9 @@ static void check_active(struct ioatdma_chan *ioat_chan) ...@@ -862,9 +862,9 @@ static void check_active(struct ioatdma_chan *ioat_chan)
mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
} }
void ioat_timer_event(unsigned long data) void ioat_timer_event(struct timer_list *t)
{ {
struct ioatdma_chan *ioat_chan = to_ioat_chan((void *)data); struct ioatdma_chan *ioat_chan = from_timer(ioat_chan, t, timer);
dma_addr_t phys_complete; dma_addr_t phys_complete;
u64 status; u64 status;
......
...@@ -406,10 +406,9 @@ enum dma_status ...@@ -406,10 +406,9 @@ enum dma_status
ioat_tx_status(struct dma_chan *c, dma_cookie_t cookie, ioat_tx_status(struct dma_chan *c, dma_cookie_t cookie,
struct dma_tx_state *txstate); struct dma_tx_state *txstate);
void ioat_cleanup_event(unsigned long data); void ioat_cleanup_event(unsigned long data);
void ioat_timer_event(unsigned long data); void ioat_timer_event(struct timer_list *t);
int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs); int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs);
void ioat_issue_pending(struct dma_chan *chan); void ioat_issue_pending(struct dma_chan *chan);
void ioat_timer_event(unsigned long data);
/* IOAT Init functions */ /* IOAT Init functions */
bool is_bwd_ioat(struct pci_dev *pdev); bool is_bwd_ioat(struct pci_dev *pdev);
......
...@@ -760,7 +760,7 @@ ioat_init_channel(struct ioatdma_device *ioat_dma, ...@@ -760,7 +760,7 @@ ioat_init_channel(struct ioatdma_device *ioat_dma,
dma_cookie_init(&ioat_chan->dma_chan); dma_cookie_init(&ioat_chan->dma_chan);
list_add_tail(&ioat_chan->dma_chan.device_node, &dma->channels); list_add_tail(&ioat_chan->dma_chan.device_node, &dma->channels);
ioat_dma->idx[idx] = ioat_chan; ioat_dma->idx[idx] = ioat_chan;
setup_timer(&ioat_chan->timer, ioat_timer_event, data); timer_setup(&ioat_chan->timer, ioat_timer_event, 0);
tasklet_init(&ioat_chan->cleanup_task, ioat_cleanup_event, data); tasklet_init(&ioat_chan->cleanup_task, ioat_cleanup_event, data);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment