Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3525183ybl; Mon, 27 Jan 2020 05:44:59 -0800 (PST) X-Google-Smtp-Source: APXvYqzUR6JiRF4j336lBJEgjCipdewpP4/EkDHBDFAGOs+EudBhkRzd4Btuig5EY3TRk1bLi29+ X-Received: by 2002:a54:4713:: with SMTP id k19mr7401373oik.113.1580132699520; Mon, 27 Jan 2020 05:44:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580132699; cv=none; d=google.com; s=arc-20160816; b=l6wxQVWNR7h7GD6dVXQ+cKjhqvWS8BuyH/KagGax36e6mve+TaZeIH3F7h1aCeOGtW jeaIJTuGcOsjSwZytPb2m3Ti2vJdHJrzE8I19274AhOo0xR1bQ4V3oCJfsG8hAHLG64m zmp9C0ass0J9RZpPSTy1G8gzDSURwbvBUpyFsRTnbBtA6auityp+Iapyzwk/xwqx6pBG wZiuisaXPkM5J8XhNJ+xIw8n/PDhjP6mT0DNtDMJr5AlPfVbtuTZHjKdsqWmOwWs8T9x mn7Zq4Cm8Fl8Rivp8jFaCbJHtz7O3sncd+3wO2LlDMM2Pt6n+LQ4qnzZORK266xLtrpY KI/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=wJSM4ovv9urnItT3LFQeBCPJ1eUfCvXrI8Ak3RPAcP0=; b=iorLA2fqNXe4Qpy6izPYGiv0qZm5AhY1vUuRAiaPlOnxSprwtTFnhIyIXVKvj4eeet mioGJWtj1nnPrBjlQVPaxAJCvr+3lRvLdcVfDTYVNHt0F6XLt3Q44n+wMMZPEYzCWFSs sOUoOtrpu1Y9BN+YG6qOdLwhpV/ZdB4IJp6oFGmZk8uEeJWoVVFz1eqmR1ssVHtvsymS 1G26u8RcPqAU23L3on+HP9O45ifPq87vPtuwh6BPOi0RlfvH2/gSK1FSZwAIr6DHMEXY Xz7r+R8zIM3VLms3bbU/iV3XnokWyHWzs7EM32BcrQbDYTKKhilzqKK7YvjZbRuJto0D pdag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="FeYTk/q3"; 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 x3si3794556oie.146.2020.01.27.05.44.48; Mon, 27 Jan 2020 05:44:59 -0800 (PST) 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="FeYTk/q3"; 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 S1726101AbgA0Noq (ORCPT + 99 others); Mon, 27 Jan 2020 08:44:46 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:35384 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725828AbgA0Noq (ORCPT ); Mon, 27 Jan 2020 08:44:46 -0500 Received: by mail-wr1-f67.google.com with SMTP id g17so11354556wro.2; Mon, 27 Jan 2020 05:44:44 -0800 (PST) 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; bh=wJSM4ovv9urnItT3LFQeBCPJ1eUfCvXrI8Ak3RPAcP0=; b=FeYTk/q3iZiBUCABCEpMEd1HkkmgIvE5pd8LUwS4kaiUJQRaevvB1H2gJiOIcCTH5R nC7oWr8w2PUdWvEfbEcpaWMndGq6UB9df0/gUzaj9yzEHjLlRMFTLjkkid9WbXN6p36C 0qKrsVRtT2Xo8oyImwkafwMI54Y/3/uXKTyrI6VT7tbWO1aOxMj1YGib6VNfZR/R44/X XwWHdW6kjTJrTgtssS38yOnWGjaHcnEg60BwZnL9WACleTBI5qBzI0aW7KwXJd5Doj6z M6nupCmMBlNdG8YSaeZMBZj1dNqCEEN/wfAuAqhS7FfGT5o8j0VePqSbkGKRLx4bxzz0 eQ0A== 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; bh=wJSM4ovv9urnItT3LFQeBCPJ1eUfCvXrI8Ak3RPAcP0=; b=f2lPhz49x+JE/pN6nXlZdjPWGJWfKc2bMhygIGGxW6Nuv2X6XSz6g5DXXSIuyeR7B3 wNLCq7y9h0BmmnHHNE7chGbXfSrCHsgiWXgOI1R4So3YBVJR4P5xgKu6Y95dDMY6J+pk FEGIBdeyt4pq4cpoE59vzfYWGiAf14pdpRvuXVz7jWwx9pLfMfjlVvPMrOkSEFZY0pTb Q29Ntc5S+qJxITy1RKgAufpcT9JHdWXYd4crC+Q4Xvv27+uRbiWqbxD8082qLfqkayHR Xa/qz/Cn6iND2sB/ggUbbOUj5hKUIb7BcPO7lt4hxCwAlwQmkgZZsj+fGmsFDKqMxpRG gMRQ== X-Gm-Message-State: APjAAAXPcEXYCCJadPyi4VLU1iBjCoLwHoA3BtxyowdsGCIZ+RbCXxKB tvsXsXtnpvRDDTJy10yGztUbP8k5WmxkexdBegU= X-Received: by 2002:a5d:6390:: with SMTP id p16mr22908043wru.170.1580132684214; Mon, 27 Jan 2020 05:44:44 -0800 (PST) MIME-Version: 1.0 References: <20200108154047.12526-1-andrew.smirnov@gmail.com> <20200108154047.12526-3-andrew.smirnov@gmail.com> In-Reply-To: From: Andrey Smirnov Date: Mon, 27 Jan 2020 05:44:32 -0800 Message-ID: Subject: Re: [PATCH v6 2/7] crypto: caam - drop global context pointer and init_done To: Horia Geanta 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" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Mon, Jan 13, 2020 at 1:41 AM Horia Geanta wrote: > > On 1/8/2020 5:42 PM, Andrey Smirnov wrote: > > @@ -342,18 +324,16 @@ int caam_rng_init(struct device *ctrldev) > > if (!rng_inst) > > return 0; > > > > - rng_ctx = kmalloc(sizeof(*rng_ctx), GFP_DMA | GFP_KERNEL); > > - if (!rng_ctx) > > + ctx = devm_kzalloc(ctrldev, sizeof(*ctx), GFP_DMA | GFP_KERNEL); > > + if (!ctx) > > return -ENOMEM; > > > > - dev_info(ctrldev, "registering rng-caam\n"); > > + ctx->rng.name = "rng-caam"; > > + ctx->rng.init = caam_init; > > + ctx->rng.cleanup = caam_cleanup; > > + ctx->rng.read = caam_read; > > > > - err = hwrng_register(&caam_rng); > > - if (!err) { > > - init_done = true; > > - return err; > > - } > > + dev_info(ctrldev, "registering rng-caam\n"); > > > > - kfree(rng_ctx); > > - return err; > > + return devm_hwrng_register(ctrldev, &ctx->rng); > This means hwrng_unregister() is called only when ctrldev is removed. > > OTOH caam_rng_init() could be called multiple times, e.g. if there's only one > jrdev left in the system and it's removed then added back. > This will lead to caam_rng_init() -> hwrng_register() called twice > with the same "rng-caam" name, without a hwrng_unregister() called in-between. > True, but the logic you describe is broken in reality due to circular reference from HWRNG, which we never fixed. I'll fix both in v7. Thanks, Andrey Smirnov