Commit b5775a6b authored by Kees Cook's avatar Kees Cook Committed by Jens Axboe

block: swim3: 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.

Cc: Jens Axboe <axboe@kernel.dk>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 0e0cc9df
...@@ -239,10 +239,10 @@ static unsigned short write_postamble[] = { ...@@ -239,10 +239,10 @@ static unsigned short write_postamble[] = {
static void seek_track(struct floppy_state *fs, int n); static void seek_track(struct floppy_state *fs, int n);
static void init_dma(struct dbdma_cmd *cp, int cmd, void *buf, int count); static void init_dma(struct dbdma_cmd *cp, int cmd, void *buf, int count);
static void act(struct floppy_state *fs); static void act(struct floppy_state *fs);
static void scan_timeout(unsigned long data); static void scan_timeout(struct timer_list *t);
static void seek_timeout(unsigned long data); static void seek_timeout(struct timer_list *t);
static void settle_timeout(unsigned long data); static void settle_timeout(struct timer_list *t);
static void xfer_timeout(unsigned long data); static void xfer_timeout(struct timer_list *t);
static irqreturn_t swim3_interrupt(int irq, void *dev_id); static irqreturn_t swim3_interrupt(int irq, void *dev_id);
/*static void fd_dma_interrupt(int irq, void *dev_id);*/ /*static void fd_dma_interrupt(int irq, void *dev_id);*/
static int grab_drive(struct floppy_state *fs, enum swim_state state, static int grab_drive(struct floppy_state *fs, enum swim_state state,
...@@ -392,13 +392,12 @@ static void do_fd_request(struct request_queue * q) ...@@ -392,13 +392,12 @@ static void do_fd_request(struct request_queue * q)
} }
static void set_timeout(struct floppy_state *fs, int nticks, static void set_timeout(struct floppy_state *fs, int nticks,
void (*proc)(unsigned long)) void (*proc)(struct timer_list *t))
{ {
if (fs->timeout_pending) if (fs->timeout_pending)
del_timer(&fs->timeout); del_timer(&fs->timeout);
fs->timeout.expires = jiffies + nticks; fs->timeout.expires = jiffies + nticks;
fs->timeout.function = proc; fs->timeout.function = (TIMER_FUNC_TYPE)proc;
fs->timeout.data = (unsigned long) fs;
add_timer(&fs->timeout); add_timer(&fs->timeout);
fs->timeout_pending = 1; fs->timeout_pending = 1;
} }
...@@ -569,9 +568,9 @@ static void act(struct floppy_state *fs) ...@@ -569,9 +568,9 @@ static void act(struct floppy_state *fs)
} }
} }
static void scan_timeout(unsigned long data) static void scan_timeout(struct timer_list *t)
{ {
struct floppy_state *fs = (struct floppy_state *) data; struct floppy_state *fs = from_timer(fs, t, timeout);
struct swim3 __iomem *sw = fs->swim3; struct swim3 __iomem *sw = fs->swim3;
unsigned long flags; unsigned long flags;
...@@ -594,9 +593,9 @@ static void scan_timeout(unsigned long data) ...@@ -594,9 +593,9 @@ static void scan_timeout(unsigned long data)
spin_unlock_irqrestore(&swim3_lock, flags); spin_unlock_irqrestore(&swim3_lock, flags);
} }
static void seek_timeout(unsigned long data) static void seek_timeout(struct timer_list *t)
{ {
struct floppy_state *fs = (struct floppy_state *) data; struct floppy_state *fs = from_timer(fs, t, timeout);
struct swim3 __iomem *sw = fs->swim3; struct swim3 __iomem *sw = fs->swim3;
unsigned long flags; unsigned long flags;
...@@ -614,9 +613,9 @@ static void seek_timeout(unsigned long data) ...@@ -614,9 +613,9 @@ static void seek_timeout(unsigned long data)
spin_unlock_irqrestore(&swim3_lock, flags); spin_unlock_irqrestore(&swim3_lock, flags);
} }
static void settle_timeout(unsigned long data) static void settle_timeout(struct timer_list *t)
{ {
struct floppy_state *fs = (struct floppy_state *) data; struct floppy_state *fs = from_timer(fs, t, timeout);
struct swim3 __iomem *sw = fs->swim3; struct swim3 __iomem *sw = fs->swim3;
unsigned long flags; unsigned long flags;
...@@ -644,9 +643,9 @@ static void settle_timeout(unsigned long data) ...@@ -644,9 +643,9 @@ static void settle_timeout(unsigned long data)
spin_unlock_irqrestore(&swim3_lock, flags); spin_unlock_irqrestore(&swim3_lock, flags);
} }
static void xfer_timeout(unsigned long data) static void xfer_timeout(struct timer_list *t)
{ {
struct floppy_state *fs = (struct floppy_state *) data; struct floppy_state *fs = from_timer(fs, t, timeout);
struct swim3 __iomem *sw = fs->swim3; struct swim3 __iomem *sw = fs->swim3;
struct dbdma_regs __iomem *dr = fs->dma; struct dbdma_regs __iomem *dr = fs->dma;
unsigned long flags; unsigned long flags;
...@@ -1182,7 +1181,7 @@ static int swim3_add_device(struct macio_dev *mdev, int index) ...@@ -1182,7 +1181,7 @@ static int swim3_add_device(struct macio_dev *mdev, int index)
return -EBUSY; return -EBUSY;
} }
init_timer(&fs->timeout); timer_setup(&fs->timeout, NULL, 0);
swim3_info("SWIM3 floppy controller %s\n", swim3_info("SWIM3 floppy controller %s\n",
mdev->media_bay ? "in media bay" : ""); mdev->media_bay ? "in media bay" : "");
......
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