Message ID | 20210107122944.16363-13-allen.lkml@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | crypto: convert tasklets to use new tasklet_setup API() | expand |
Hi Allen, On Thu, 7 Jan 2021 at 13:32, Allen Pais <allen.lkml@gmail.com> wrote: > > From: Allen Pais <apais@linux.microsoft.com> > > In preparation for unconditionally passing the > struct tasklet_struct pointer to all tasklet > callbacks, switch to using the new tasklet_setup() > and from_tasklet() to pass the tasklet pointer explicitly. > > Signed-off-by: Romain Perier <romain.perier@gmail.com> > Signed-off-by: Allen Pais <apais@linux.microsoft.com> > --- > drivers/crypto/rockchip/rk3288_crypto.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c > index 35d73061d156..af6ad9f49009 100644 > --- a/drivers/crypto/rockchip/rk3288_crypto.c > +++ b/drivers/crypto/rockchip/rk3288_crypto.c > @@ -201,9 +201,9 @@ static int rk_crypto_enqueue(struct rk_crypto_info *dev, > return ret; > } > > -static void rk_crypto_queue_task_cb(unsigned long data) > +static void rk_crypto_queue_task_cb(struct tasklet_struct *T) > { > - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; > + struct rk_crypto_info *dev = from_tasklet(dev, t, queue_task); This doesn't look right. First it's called T and then t. I wonder how this even compiles.. > struct crypto_async_request *async_req, *backlog; > unsigned long flags; > int err = 0; > @@ -231,9 +231,9 @@ static void rk_crypto_queue_task_cb(unsigned long data) > dev->complete(dev->async_req, err); > } > > -static void rk_crypto_done_task_cb(unsigned long data) > +static void rk_crypto_done_task_cb(struct tasklet_struct *t) > { > - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; > + struct rk_crypto_info *dev = from_tasklet(dev, t, done_task); > > if (dev->err) { > dev->complete(dev->async_req, dev->err); > @@ -389,10 +389,8 @@ static int rk_crypto_probe(struct platform_device *pdev) > crypto_info->dev = &pdev->dev; > platform_set_drvdata(pdev, crypto_info); > > - tasklet_init(&crypto_info->queue_task, > - rk_crypto_queue_task_cb, (unsigned long)crypto_info); > - tasklet_init(&crypto_info->done_task, > - rk_crypto_done_task_cb, (unsigned long)crypto_info); > + tasklet_setup(&crypto_info->queue_task, rk_crypto_queue_task_cb); > + tasklet_setup(&crypto_info->done_task, rk_crypto_done_task_cb); > crypto_init_queue(&crypto_info->queue, 50); > > crypto_info->enable_clk = rk_crypto_enable_clk; > -- > 2.25.1 > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip
> > On Thu, 7 Jan 2021 at 13:32, Allen Pais <allen.lkml@gmail.com> wrote: >> >> From: Allen Pais <apais@linux.microsoft.com> >> >> In preparation for unconditionally passing the >> struct tasklet_struct pointer to all tasklet >> callbacks, switch to using the new tasklet_setup() >> and from_tasklet() to pass the tasklet pointer explicitly. >> >> Signed-off-by: Romain Perier <romain.perier@gmail.com> >> Signed-off-by: Allen Pais <apais@linux.microsoft.com> >> --- >> drivers/crypto/rockchip/rk3288_crypto.c | 14 ++++++-------- >> 1 file changed, 6 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c >> index 35d73061d156..af6ad9f49009 100644 >> --- a/drivers/crypto/rockchip/rk3288_crypto.c >> +++ b/drivers/crypto/rockchip/rk3288_crypto.c >> @@ -201,9 +201,9 @@ static int rk_crypto_enqueue(struct rk_crypto_info *dev, >> return ret; >> } >> >> -static void rk_crypto_queue_task_cb(unsigned long data) >> +static void rk_crypto_queue_task_cb(struct tasklet_struct *T) >> { >> - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; >> + struct rk_crypto_info *dev = from_tasklet(dev, t, queue_task); > > This doesn't look right. First it's called T and then t. I wonder how > this even compiles.. > Thanks for catching it. I am not sure how I missed it and it even compiled. I will fix it. Thanks. >> struct crypto_async_request *async_req, *backlog; >> unsigned long flags; >> int err = 0; >> @@ -231,9 +231,9 @@ static void rk_crypto_queue_task_cb(unsigned long data) >> dev->complete(dev->async_req, err); >> } >> >> -static void rk_crypto_done_task_cb(unsigned long data) >> +static void rk_crypto_done_task_cb(struct tasklet_struct *t) >> { >> - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; >> + struct rk_crypto_info *dev = from_tasklet(dev, t, done_task); >> >> if (dev->err) { >> dev->complete(dev->async_req, dev->err); >> @@ -389,10 +389,8 @@ static int rk_crypto_probe(struct platform_device *pdev) >> crypto_info->dev = &pdev->dev; >> platform_set_drvdata(pdev, crypto_info); >> >> - tasklet_init(&crypto_info->queue_task, >> - rk_crypto_queue_task_cb, (unsigned long)crypto_info); >> - tasklet_init(&crypto_info->done_task, >> - rk_crypto_done_task_cb, (unsigned long)crypto_info); >> + tasklet_setup(&crypto_info->queue_task, rk_crypto_queue_task_cb); >> + tasklet_setup(&crypto_info->done_task, rk_crypto_done_task_cb); >> crypto_init_queue(&crypto_info->queue, 50); >> >> crypto_info->enable_clk = rk_crypto_enable_clk; >> -- >> 2.25.1 >> >> >> _______________________________________________ >> Linux-rockchip mailing list >> Linux-rockchip@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-rockchip
diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c index 35d73061d156..af6ad9f49009 100644 --- a/drivers/crypto/rockchip/rk3288_crypto.c +++ b/drivers/crypto/rockchip/rk3288_crypto.c @@ -201,9 +201,9 @@ static int rk_crypto_enqueue(struct rk_crypto_info *dev, return ret; } -static void rk_crypto_queue_task_cb(unsigned long data) +static void rk_crypto_queue_task_cb(struct tasklet_struct *T) { - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; + struct rk_crypto_info *dev = from_tasklet(dev, t, queue_task); struct crypto_async_request *async_req, *backlog; unsigned long flags; int err = 0; @@ -231,9 +231,9 @@ static void rk_crypto_queue_task_cb(unsigned long data) dev->complete(dev->async_req, err); } -static void rk_crypto_done_task_cb(unsigned long data) +static void rk_crypto_done_task_cb(struct tasklet_struct *t) { - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; + struct rk_crypto_info *dev = from_tasklet(dev, t, done_task); if (dev->err) { dev->complete(dev->async_req, dev->err); @@ -389,10 +389,8 @@ static int rk_crypto_probe(struct platform_device *pdev) crypto_info->dev = &pdev->dev; platform_set_drvdata(pdev, crypto_info); - tasklet_init(&crypto_info->queue_task, - rk_crypto_queue_task_cb, (unsigned long)crypto_info); - tasklet_init(&crypto_info->done_task, - rk_crypto_done_task_cb, (unsigned long)crypto_info); + tasklet_setup(&crypto_info->queue_task, rk_crypto_queue_task_cb); + tasklet_setup(&crypto_info->done_task, rk_crypto_done_task_cb); crypto_init_queue(&crypto_info->queue, 50); crypto_info->enable_clk = rk_crypto_enable_clk;