2020-12-09 06:48:50

by Gilad Ben-Yossef

[permalink] [raw]
Subject: Re: [RESEND 07/19] crypto: ccree: convert tasklets to use new tasklet_setup() API

Hi Allen,

Thank you for the patch.

Please make sure to CC maintainers on changes to drivers they
maintain, otherwise it's hard to keep track. Thanks!

On Mon, Dec 7, 2020 at 11:02 AM Allen Pais <[email protected]> wrote:
>
> From: Allen Pais <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Allen Pais <[email protected]>
> ---
> drivers/crypto/ccree/cc_fips.c | 6 +++---
> drivers/crypto/ccree/cc_request_mgr.c | 12 ++++++------
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/crypto/ccree/cc_fips.c b/drivers/crypto/ccree/cc_fips.c
> index 702aefc21447..bad228a36776 100644
> --- a/drivers/crypto/ccree/cc_fips.c
> +++ b/drivers/crypto/ccree/cc_fips.c
> @@ -109,9 +109,9 @@ void cc_tee_handle_fips_error(struct cc_drvdata *p_drvdata)
> }
>
> /* Deferred service handler, run as interrupt-fired tasklet */
> -static void fips_dsr(unsigned long devarg)
> +static void fips_dsr(struct tasklet_struct *t)

Sorry for the nitpick, but I would really prefer to have a more
meaningful name for this parameter than just 't'.

tasklet, task, tsk... any descriptive name is fine.

> {
> - struct cc_drvdata *drvdata = (struct cc_drvdata *)devarg;
> + struct cc_drvdata *drvdata = from_tasklet(drvdata, t, tasklet);
> u32 irq, val;
>
> irq = (drvdata->irq & (CC_GPR0_IRQ_MASK));
> @@ -143,7 +143,7 @@ int cc_fips_init(struct cc_drvdata *p_drvdata)
> p_drvdata->fips_handle = fips_h;
>
> dev_dbg(dev, "Initializing fips tasklet\n");
> - tasklet_init(&fips_h->tasklet, fips_dsr, (unsigned long)p_drvdata);
> + tasklet_setup(&fips_h->tasklet, fips_dsr);
> fips_h->drvdata = p_drvdata;
> fips_h->nb.notifier_call = cc_ree_fips_failure;
> atomic_notifier_chain_register(&fips_fail_notif_chain, &fips_h->nb);
> diff --git a/drivers/crypto/ccree/cc_request_mgr.c b/drivers/crypto/ccree/cc_request_mgr.c
> index 33fb27745d52..ec0f3bf00d33 100644
> --- a/drivers/crypto/ccree/cc_request_mgr.c
> +++ b/drivers/crypto/ccree/cc_request_mgr.c
> @@ -70,7 +70,7 @@ static const u32 cc_cpp_int_masks[CC_CPP_NUM_ALGS][CC_CPP_NUM_SLOTS] = {
> BIT(CC_HOST_IRR_REE_OP_ABORTED_SM_7_INT_BIT_SHIFT) }
> };
>
> -static void comp_handler(unsigned long devarg);
> +static void comp_handler(struct tasklet_struct *t);
> #ifdef COMP_IN_WQ
> static void comp_work_handler(struct work_struct *work);
> #endif
> @@ -140,8 +140,7 @@ int cc_req_mgr_init(struct cc_drvdata *drvdata)
> INIT_DELAYED_WORK(&req_mgr_h->compwork, comp_work_handler);
> #else
> dev_dbg(dev, "Initializing completion tasklet\n");
> - tasklet_init(&req_mgr_h->comptask, comp_handler,
> - (unsigned long)drvdata);
> + tasklet_setup(&req_mgr_h->comptask, comp_handler);
> #endif
> req_mgr_h->hw_queue_size = cc_ioread(drvdata,
> CC_REG(DSCRPTR_QUEUE_SRAM_SIZE));
> @@ -611,11 +610,12 @@ static inline u32 cc_axi_comp_count(struct cc_drvdata *drvdata)
> }
>
> /* Deferred service handler, run as interrupt-fired tasklet */
> -static void comp_handler(unsigned long devarg)
> +static void comp_handler(struct tasklet_struct *t)
> {
> - struct cc_drvdata *drvdata = (struct cc_drvdata *)devarg;
> struct cc_req_mgr_handle *request_mgr_handle =
> - drvdata->request_mgr_handle;
> + from_tasklet(request_mgr_handle, t, comptask);
> + struct cc_drvdata *drvdata = container_of((void *)request_mgr_handle,
> + typeof(*drvdata), request_mgr_handle);
> struct device *dev = drvdata_to_dev(drvdata);
> u32 irq;
>
> --
> 2.25.1
>

Other than that it looks good to me.

Thanks,
Gilad

--
Gilad Ben-Yossef
Chief Coffee Drinker

values of β will give rise to dom!