Received: by 2002:a25:d783:0:0:0:0:0 with SMTP id o125csp623143ybg; Thu, 19 Mar 2020 06:00:57 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvr4yxbbtTuZn0M/CTErcRIJ95/rwxRYRelCculQQ3T3bsjXfaSFqoz81DTCg+L3ua1vxZC X-Received: by 2002:a54:4e0e:: with SMTP id a14mr2238101oiy.88.1584622857553; Thu, 19 Mar 2020 06:00:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584622857; cv=none; d=google.com; s=arc-20160816; b=RUWEHn6yjH8t1Sl9plGl95yu9s7Vwh5B+02mXLXKGB7O5A8C065YAbFvoUpQwFoZgK EgOhOR0ayUwHWYTcJ7wb0sYWwai/eboGtDfK46/0cVENAIEco/E30shCNghZoL4T/rno lOr4YQwBRYG/epwMEaMUE++zxVCPZDV6822jQvbUwhXtIpeQvfXJ7rmGnEzmdM/t737U O9MRYgJmrYP7cCn6/DDQHNoZIzEHGZ7CyxkKidztc//lDCKBG9T+I3XLtw76VvCKL9br ity4IL33aQ/vt3Oqt54xKsPz6if+WmvHRUu9CVMikWoTPI9tqZrHNeV+LGxjegozjZp5 5sng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=89ymcr/0CQ8G/h/07WdAPH8+H6QLZMiQMSSP5qcJ8x8=; b=CECmJEZfmXsu/xbSBlya4jNM6uCWb2m50LCrXUclU+JtXME2tmJMf9BtVf4YWzOV2d xrjlQPwP6v4PSr5ipltiikRf+EJZcFgbcve71vlAzZ9Empe3NibEBE7VrSV+kcehGGP3 QNiAU1rzT6o3+lSrtL+ioxyNzD4N5X208b/mq0+gx6W3eIp3iZbzGP5J8TXoBkgnb3Ns TfVbZzMX+56Ty3mX7GKuxgf76UN1hLxG/3TOEHt153U9YEqQYfjNRgF9RGirR4HhvLFK Ake3gFnN6mDz/rMkjQ7eKaszmejIqXOPaT4lA5sd3Wi/aOVD5e6zIov8Gra2ifEDrqhT BFAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="QdY2l/TV"; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h145si1017022oib.210.2020.03.19.06.00.32; Thu, 19 Mar 2020 06:00:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="QdY2l/TV"; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726663AbgCSNA0 (ORCPT + 99 others); Thu, 19 Mar 2020 09:00:26 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:40045 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725787AbgCSNA0 (ORCPT ); Thu, 19 Mar 2020 09:00:26 -0400 Received: by mail-wm1-f65.google.com with SMTP id z12so2149166wmf.5; Thu, 19 Mar 2020 06:00:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=89ymcr/0CQ8G/h/07WdAPH8+H6QLZMiQMSSP5qcJ8x8=; b=QdY2l/TVmUpe3UueK+In/PS5VMXf9wcunGIIMHs+MdR1r4wVlT4Wp6fv+ZwFnPYO6x VomZXtrw08LH38j/JnK8Rt6XpkC+39OBlGnFxwlBK2NlmEvh/903jAi6KBCnCuZ8cZDt p4glf+a+iy4YzZLInjxELMN8U6u68h9GLnzRm0IIyTOOUCSv+9u6HKACeQQCLsk7aiWL EV5PbpIltBHM57/iMu9pbYbHYAjqARY5gn9jyqiJqGErpZJOUgtSVAx/5TPR0idPadnf 5WtCqvknyR+B9p07jcqcnq346iV8eeeE8Xi2pCJpxT25NXfXka+SuC9vgd7mdCiFquFl u03Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=89ymcr/0CQ8G/h/07WdAPH8+H6QLZMiQMSSP5qcJ8x8=; b=JETF1qi2H8mW1IPL8kQxoa5clr7/97nwhcKfuuP+D78Ejf/Kmf0xDKxT8wN9+WlR56 Sr3eExlA+NCvbbxgU+rjbPmZ9WDW9MpKO78G9tk1EAz8JymXzL7o4EFKunIleKn144w/ sSv+SCCOMGdCMeT5azVByY9yotXedU9qVHnDfbE5eYLmDbe7eojXwCYQfVrFWMPYDLsX f3Y6JHwSFAvN27KTlHsZfZl0PVO0wLRJwD4uXqsO+/EAFrf3JolXxau3J/zi/CPmKvr/ oNCYiS5v1YU5BECpNPxs49VDWwW9CI+TsmSNPUsyEiX8BaTNDvGbrmPqdPpVsbKEzKmm 6F1A== X-Gm-Message-State: ANhLgQ0WjlWZUqdOUA7f9IVqgZEdwbfflq2w3Pb0NhFDPZCqTdBJ4MmO EYrQHpEYk7eVP8Wr1E5TLYmA6bFNHQmB8EB/f76ekQ== X-Received: by 2002:a7b:c456:: with SMTP id l22mr3445690wmi.184.1584622823530; Thu, 19 Mar 2020 06:00:23 -0700 (PDT) MIME-Version: 1.0 References: <20200316150047.30828-1-andrew.smirnov@gmail.com> <20200316150047.30828-4-andrew.smirnov@gmail.com> <49971beb-0681-de92-95f5-b18e1be05ce3@nxp.com> In-Reply-To: <49971beb-0681-de92-95f5-b18e1be05ce3@nxp.com> From: Andrey Smirnov Date: Thu, 19 Mar 2020 06:00:10 -0700 Message-ID: Subject: Re: [PATCH v8 3/8] crypto: caam - drop global context pointer and init_done To: =?UTF-8?Q?Horia_Geant=C4=83?= Cc: "linux-crypto@vger.kernel.org" , Chris Healy , Lucas Stach , Herbert Xu , Iuliana Prodan , "linux-kernel@vger.kernel.org" , dl-linux-imx Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Tue, Mar 17, 2020 at 9:45 AM Horia Geant=C4=83 wr= ote: > > On 3/16/2020 5:01 PM, Andrey Smirnov wrote: > > diff --git a/drivers/crypto/caam/caamrng.c b/drivers/crypto/caam/caamrn= g.c > > index 69a02ac5de54..753625f2b2c0 100644 > > --- a/drivers/crypto/caam/caamrng.c > > +++ b/drivers/crypto/caam/caamrng.c > > @@ -70,6 +70,7 @@ struct buf_data { > > > > /* rng per-device context */ > > struct caam_rng_ctx { > > + struct hwrng rng; > > struct device *jrdev; > > dma_addr_t sh_desc_dma; > > u32 sh_desc[DESC_RNG_LEN]; > > @@ -78,13 +79,10 @@ struct caam_rng_ctx { > > struct buf_data bufs[2]; > > }; > [...] > > +static struct caam_rng_ctx *to_caam_rng_ctx(struct hwrng *r) > > +{ > > + return (struct caam_rng_ctx *)r->priv; > > +} > [...] > > -static struct hwrng caam_rng =3D { > > - .name =3D "rng-caam", > > - .init =3D caam_init, > > - .cleanup =3D caam_cleanup, > > - .read =3D caam_read, > > -}; > I would keep this statically allocated, see below. > > > @@ -342,18 +332,27 @@ int caam_rng_init(struct device *ctrldev) > > if (!rng_inst) > > return 0; > > > > - rng_ctx =3D kmalloc(sizeof(*rng_ctx), GFP_DMA | GFP_KERNEL); > > - if (!rng_ctx) > > + if (!devres_open_group(ctrldev, caam_rng_init, GFP_KERNEL)) > > + return -ENOMEM; > > + > > + ctx =3D devm_kzalloc(ctrldev, sizeof(*ctx), GFP_DMA | GFP_KERNEL)= ; > > + if (!ctx) > > return -ENOMEM; > > > > + ctx->rng.name =3D "rng-caam"; > > + ctx->rng.init =3D caam_init; > > + ctx->rng.cleanup =3D caam_cleanup; > > + ctx->rng.read =3D caam_read; > > + ctx->rng.priv =3D (unsigned long)ctx; > > + > > dev_info(ctrldev, "registering rng-caam\n"); > > > > - err =3D hwrng_register(&caam_rng); > > - if (!err) { > > - init_done =3D true; > > - return err; > > + ret =3D devm_hwrng_register(ctrldev, &ctx->rng); > Now that hwrng.priv is used to keep driver's private data / caam_rng_ctx, > and thus container_of() is no longer needed to get from hwrng struct > to caam_rng_ctx, it's no longer needed to embed struct hwrng > into caam_rng_ctx. > Why do we want this change though? It doesn't allow us to constify "struct hwrng", don't seem to give any other benefits (maybe I am missing something?) at the same time creating a new implicit global variable. I'd rather not do this. Thanks, Andrey Smirnov