summaryrefslogtreecommitdiffstats
path: root/drivers/char/hw_random/xgene-rng.c
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2017-10-11 15:55:48 -0700
committerKees Cook <keescook@chromium.org>2017-11-02 15:50:48 -0700
commit200d24d63303cc2131c9da571f4ef72887e3aa82 (patch)
tree435ce04394b5fb620b2bcaceb0b030857c261d35 /drivers/char/hw_random/xgene-rng.c
parent607a6301074fecfb855f08ecdd65b18d089e4143 (diff)
downloadlinux-stable-200d24d63303cc2131c9da571f4ef72887e3aa82.tar.gz
linux-stable-200d24d63303cc2131c9da571f4ef72887e3aa82.tar.bz2
linux-stable-200d24d63303cc2131c9da571f4ef72887e3aa82.zip
hwrng/xgene-rng: 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: 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>
Diffstat (limited to 'drivers/char/hw_random/xgene-rng.c')
-rw-r--r--drivers/char/hw_random/xgene-rng.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/char/hw_random/xgene-rng.c b/drivers/char/hw_random/xgene-rng.c
index 3c77645405e5..71755790c32b 100644
--- a/drivers/char/hw_random/xgene-rng.c
+++ b/drivers/char/hw_random/xgene-rng.c
@@ -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);