From: Tzung-Bi Shih <tzungbi@google.com>
To: Prashant Malani <pmalani@chromium.org>
Cc: bleung@chromium.org, groeck@chromium.org,
chrome-platform@lists.linux.dev
Subject: Re: [RESEND PATCH v2] platform/chrome: cros_ec_debugfs: detach log reader wq from devm
Date: Thu, 10 Feb 2022 11:11:39 +0800 [thread overview]
Message-ID: <YgSCaxROG+8kpznR@google.com> (raw)
In-Reply-To: <CACeCKadXU+pX=3m5d6SMnx4pxpRpgsCWN15HhOUpxocTadKFtQ@mail.gmail.com>
On Wed, Feb 09, 2022 at 01:30:14PM -0800, Prashant Malani wrote:
> On Tue, Feb 8, 2022 at 9:11 PM Tzung-Bi Shih <tzungbi@google.com> wrote:
> > +/* waitqueue for log readers */
> > +static DECLARE_WAIT_QUEUE_HEAD(cros_ec_debugfs_log_wq);
>
> Hmm, I'm always wary of introducing statics to address races like this.
>
> Doesn't re-ordering cros_ec_debugfs_remove() avoid the race? :
> diff --git a/drivers/platform/chrome/cros_ec_debugfs.c
> b/drivers/platform/chrome/cros_ec_debugfs.c
> index 272c89837d74..80bd898c3271 100644
> --- a/drivers/platform/chrome/cros_ec_debugfs.c
> +++ b/drivers/platform/chrome/cros_ec_debugfs.c
> @@ -485,8 +485,8 @@ static int cros_ec_debugfs_remove(struct
> platform_device *pd)
> {
> struct cros_ec_dev *ec = dev_get_drvdata(pd->dev.parent);
>
> - debugfs_remove_recursive(ec->debug_info->dir);
> cros_ec_cleanup_console_log(ec->debug_info);
> + debugfs_remove_recursive(ec->debug_info->dir);
>
> return 0;
> }
I have tested the patch and it doesn't help. The issue is: cros_ec_debugfs
provides a wait queue to fs at [1]; fs remembers the address at [2]. The wait
queue is in devm memory. After the memory has freed (i.e. the device has
removed), fs still gets chance to access the memory (e.g. [3] in the case).
[1]: https://elixir.bootlin.com/linux/v5.17-rc3/source/drivers/platform/chrome/cros_ec_debugfs.c#L176
[2]: https://elixir.bootlin.com/linux/v5.17-rc3/source/fs/eventpoll.c#L1256
[3]: https://elixir.bootlin.com/linux/v5.17-rc3/source/fs/eventpoll.c#L550
next prev parent reply other threads:[~2022-02-10 3:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-09 5:11 [RESEND PATCH v2] platform/chrome: cros_ec_debugfs: detach log reader wq from devm Tzung-Bi Shih
2022-02-09 16:38 ` Guenter Roeck
2022-02-09 21:30 ` Prashant Malani
2022-02-10 3:11 ` Tzung-Bi Shih [this message]
2022-02-18 19:28 ` Benson Leung
2022-02-18 19:30 ` patchwork-bot+chrome-platform
2022-03-31 16:50 ` patchwork-bot+chrome-platform
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=YgSCaxROG+8kpznR@google.com \
--to=tzungbi@google.com \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=groeck@chromium.org \
--cc=pmalani@chromium.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.