From: Saubhik Mukherjee <saubhik.mukherjee@gmail.com> To: peterhuewe@gmx.de, jarkko@kernel.org, jgg@ziepe.ca Cc: Saubhik Mukherjee <saubhik.mukherjee@gmail.com>, linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org, andrianov@ispras.ru Subject: [PATCH] char: tpm: vtpm_proxy: Fix race in init Date: Wed, 23 Jun 2021 18:52:26 +0530 [thread overview] Message-ID: <20210623132226.140341-1-saubhik.mukherjee@gmail.com> (raw) vtpm_module_init calls vtpmx_init which calls misc_register. The file operations callbacks are registered. So, vtpmx_fops_ioctl can execute in parallel with rest of vtpm_module_init. vtpmx_fops_ioctl calls vtpmx_ioc_new_dev, which calls vtpm_proxy_create_device, which calls vtpm_proxy_work_start, which could read uninitialized workqueue. To avoid this, create workqueue before vtpmx init. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Saubhik Mukherjee <saubhik.mukherjee@gmail.com> --- drivers/char/tpm/tpm_vtpm_proxy.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c index 91c772e38bb5..225dfa026a8f 100644 --- a/drivers/char/tpm/tpm_vtpm_proxy.c +++ b/drivers/char/tpm/tpm_vtpm_proxy.c @@ -697,23 +697,22 @@ static int __init vtpm_module_init(void) { int rc; - rc = vtpmx_init(); - if (rc) { - pr_err("couldn't create vtpmx device\n"); - return rc; - } - workqueue = create_workqueue("tpm-vtpm"); if (!workqueue) { pr_err("couldn't create workqueue\n"); - rc = -ENOMEM; - goto err_vtpmx_cleanup; + return -ENOMEM; + } + + rc = vtpmx_init(); + if (rc) { + pr_err("couldn't create vtpmx device\n"); + goto err_destroy_workqueue; } return 0; -err_vtpmx_cleanup: - vtpmx_cleanup(); +err_destroy_workqueue: + destroy_workqueue(workqueue); return rc; } -- 2.30.2
next reply other threads:[~2021-06-23 13:22 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-23 13:22 Saubhik Mukherjee [this message] 2021-06-29 17:27 ` Jarkko Sakkinen 2021-06-29 21:05 ` Jarkko Sakkinen 2021-06-30 7:14 ` Saubhik Mukherjee 2021-07-02 6:37 ` Jarkko Sakkinen 2021-06-30 7:24 ` Saubhik Mukherjee 2021-07-02 6:38 ` Jarkko Sakkinen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210623132226.140341-1-saubhik.mukherjee@gmail.com \ --to=saubhik.mukherjee@gmail.com \ --cc=andrianov@ispras.ru \ --cc=jarkko@kernel.org \ --cc=jgg@ziepe.ca \ --cc=ldv-project@linuxtesting.org \ --cc=linux-integrity@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=peterhuewe@gmx.de \ --subject='Re: [PATCH] char: tpm: vtpm_proxy: Fix race in init' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).