hwrng/xgene-rng: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Wed, 11 Oct 2017 22:55:48 +0000 (15:55 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 2 Nov 2017 22:50:48 +0000 (15:50 -0700)
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: Matt Mackall <mpm@selenic.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/char/hw_random/xgene-rng.c

index 3c77645405e52019f01304ee2ee5c985f9a90865..71755790c32b2e7bfc8e65c614208099ce9627a1 100644 (file)
@@ -100,9 +100,9 @@ struct xgene_rng_dev {
        struct clk *clk;
 };
 
-static void xgene_rng_expired_timer(unsigned long arg)
+static void xgene_rng_expired_timer(struct timer_list *t)
 {
-       struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) arg;
+       struct xgene_rng_dev *ctx = from_timer(ctx, t, failure_timer);
 
        /* Clear failure counter as timer expired */
        disable_irq(ctx->irq);
@@ -113,8 +113,6 @@ static void xgene_rng_expired_timer(unsigned long arg)
 
 static void xgene_rng_start_timer(struct xgene_rng_dev *ctx)
 {
-       ctx->failure_timer.data = (unsigned long) ctx;
-       ctx->failure_timer.function = xgene_rng_expired_timer;
        ctx->failure_timer.expires = jiffies + 120 * HZ;
        add_timer(&ctx->failure_timer);
 }
@@ -292,7 +290,7 @@ static int xgene_rng_init(struct hwrng *rng)
        struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) rng->priv;
 
        ctx->failure_cnt = 0;
-       init_timer(&ctx->failure_timer);
+       timer_setup(&ctx->failure_timer, xgene_rng_expired_timer, 0);
 
        ctx->revision = readl(ctx->csr_base + RNG_EIP_REV);