From: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
To: Kweh Hock Leong
<hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Matt Fleming
<matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Ming Lei <ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>,
Sam Protsenko
<semen.protsenko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Ong Boon Leong
<boon.leong.ong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v2 1/3] firmware loader: Introduce new API - request_firmware_abort()
Date: Sat, 8 Nov 2014 11:06:55 -0800 [thread overview]
Message-ID: <20141108190655.GA2638@kroah.com> (raw)
In-Reply-To: <1414984030-13859-2-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
On Mon, Nov 03, 2014 at 11:07:08AM +0800, Kweh Hock Leong wrote:
> From: "Kweh, Hock Leong" <hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>
> Besides aborting through user helper interface, a new API
> request_firmware_abort() allows kernel driver module to abort the
> request_firmware() / request_firmware_nowait() when they are no
> longer needed. It is useful for cancelling an outstanding firmware
> load if initiated from inside a module where that module is in the
> process of being unloaded, since the unload function may not have
> a handle to the struct firmware_buf.
>
> Note for people who use request_firmware_nowait():
> You are required to do your own synchronization after you call
> request_firmware_abort() in order to continue unloading the
> module. The example synchronization code shows below:
>
> while (THIS_MODULE && module_refcount(THIS_MODULE))
> msleep(20);
As others have pointed out, this isn't ok, and is totally racy and
should never end up in a driver. Never mess with THIS_MODULE from
within the same module, otherwise it's racy and broken code.
So can you please rework this to not require this?
thanks,
greg k-h
WARNING: multiple messages have this Message-ID (diff)
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Kweh Hock Leong <hock.leong.kweh@intel.com>
Cc: Matt Fleming <matt.fleming@intel.com>,
Ming Lei <ming.lei@canonical.com>,
Sam Protsenko <semen.protsenko@linaro.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-efi@vger.kernel.org,
Ong Boon Leong <boon.leong.ong@intel.com>
Subject: Re: [PATCH v2 1/3] firmware loader: Introduce new API - request_firmware_abort()
Date: Sat, 8 Nov 2014 11:06:55 -0800 [thread overview]
Message-ID: <20141108190655.GA2638@kroah.com> (raw)
In-Reply-To: <1414984030-13859-2-git-send-email-hock.leong.kweh@intel.com>
On Mon, Nov 03, 2014 at 11:07:08AM +0800, Kweh Hock Leong wrote:
> From: "Kweh, Hock Leong" <hock.leong.kweh@intel.com>
>
> Besides aborting through user helper interface, a new API
> request_firmware_abort() allows kernel driver module to abort the
> request_firmware() / request_firmware_nowait() when they are no
> longer needed. It is useful for cancelling an outstanding firmware
> load if initiated from inside a module where that module is in the
> process of being unloaded, since the unload function may not have
> a handle to the struct firmware_buf.
>
> Note for people who use request_firmware_nowait():
> You are required to do your own synchronization after you call
> request_firmware_abort() in order to continue unloading the
> module. The example synchronization code shows below:
>
> while (THIS_MODULE && module_refcount(THIS_MODULE))
> msleep(20);
As others have pointed out, this isn't ok, and is totally racy and
should never end up in a driver. Never mess with THIS_MODULE from
within the same module, otherwise it's racy and broken code.
So can you please rework this to not require this?
thanks,
greg k-h
next prev parent reply other threads:[~2014-11-08 19:06 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-03 3:07 [PATCH v2 0/3] Enable user helper interface for efi capsule update Kweh Hock Leong
2014-11-03 3:07 ` Kweh Hock Leong
2014-11-03 3:07 ` [PATCH v2 1/3] firmware loader: Introduce new API - request_firmware_abort() Kweh Hock Leong
[not found] ` <1414984030-13859-2-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-03 10:15 ` Henrique de Moraes Holschuh
2014-11-03 10:15 ` Henrique de Moraes Holschuh
[not found] ` <20141103101558.GA11739-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2014-11-03 12:07 ` Matt Fleming
2014-11-03 12:07 ` Matt Fleming
2014-11-08 19:06 ` Greg Kroah-Hartman [this message]
2014-11-08 19:06 ` Greg Kroah-Hartman
[not found] ` <20141108190655.GA2638-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-13 2:51 ` Kweh, Hock Leong
2014-11-13 2:51 ` Kweh, Hock Leong
2014-11-17 15:12 ` Matt Fleming
[not found] ` <20141117151211.GB6810-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-11-18 6:31 ` Kweh, Hock Leong
2014-11-18 6:31 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2B85DA57-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-19 2:05 ` Greg Kroah-Hartman
2014-11-19 2:05 ` Greg Kroah-Hartman
2014-11-03 3:07 ` [PATCH v2 2/3] firmware loader: fix hung task warning dump Kweh Hock Leong
[not found] ` <1414984030-13859-3-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-08 19:07 ` Greg Kroah-Hartman
2014-11-08 19:07 ` Greg Kroah-Hartman
[not found] ` <1414984030-13859-1-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-03 3:07 ` [PATCH v2 3/3] efi: Capsule update with user helper interface Kweh Hock Leong
2014-11-03 3:07 ` Kweh Hock Leong
[not found] ` <1414984030-13859-4-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-04 4:32 ` Greg Kroah-Hartman
2014-11-04 4:32 ` Greg Kroah-Hartman
[not found] ` <20141104043247.GA23418-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-04 5:20 ` Andy Lutomirski
2014-11-04 5:20 ` Andy Lutomirski
[not found] ` <CALCETrXjJju+cMWJfB6W5kSD=Ox5y+Hj_AfmbbbOTOh8CV8eaQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-04 6:04 ` Kweh, Hock Leong
2014-11-04 6:04 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2B80EAE4-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-04 6:32 ` Andy Lutomirski
2014-11-04 6:32 ` Andy Lutomirski
[not found] ` <CALCETrU2wk_FdcD6E+oMcp-tF97zN7f+w7q5rfPWBaNKrrmxVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-04 8:03 ` Kweh, Hock Leong
2014-11-04 8:03 ` Kweh, Hock Leong
2014-11-04 14:18 ` Matt Fleming
2014-11-04 14:18 ` Matt Fleming
[not found] ` <1415110688.26277.36.camel-ZqTwcBeJ+wsBof6jY8KHXm7IUlhRatedral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-04 14:57 ` Andy Lutomirski
2014-11-04 14:57 ` Andy Lutomirski
[not found] ` <CALCETrW1UaOCcb-32SOUhi_Zh5vLzV+VwyffThVvso23z04SHA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-04 15:40 ` Greg KH
2014-11-04 15:40 ` Greg KH
[not found] ` <20141104154017.GA28113-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-04 16:35 ` Andy Lutomirski
2014-11-04 16:35 ` Andy Lutomirski
2014-11-06 12:53 ` Kweh, Hock Leong
2014-11-06 12:53 ` Kweh, Hock Leong
2014-11-06 16:52 ` Andy Lutomirski
[not found] ` <CALCETrUi0ssZbOpHyVmh6jx68Oj=0h4BwfM0uLio8Qbaeu9gJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-10 8:31 ` Kweh, Hock Leong
2014-11-10 8:31 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2B851058-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-10 19:31 ` Andy Lutomirski
2014-11-10 19:31 ` Andy Lutomirski
2014-11-08 13:05 ` Matt Fleming
[not found] ` <20141108130556.GM3592-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-11-08 15:54 ` Andy Lutomirski
2014-11-08 15:54 ` Andy Lutomirski
2015-02-27 5:06 ` Roy Franz
2015-02-27 5:06 ` Roy Franz
[not found] ` <CAFECyb-JhpFm4WcWL8NU8zbK=xphGtG=B7q0PLhffmYDV-a_PQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-27 11:35 ` Kweh, Hock Leong
2015-02-27 11:35 ` Kweh, Hock Leong
2014-11-03 19:33 ` [PATCH v2 0/3] Enable user helper interface for efi capsule update Andy Lutomirski
[not found] ` <5457D883.4050201-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>
2014-11-03 21:27 ` Greg Kroah-Hartman
2014-11-03 21:27 ` Greg Kroah-Hartman
[not found] ` <20141103212706.GE7379-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-03 21:32 ` Andy Lutomirski
2014-11-03 21:32 ` Andy Lutomirski
[not found] ` <CALCETrUNCuFvwkzbU4dWB0GH4mJKKV1e6jCNrSLVJe+n_et3kQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-03 23:02 ` Greg Kroah-Hartman
2014-11-03 23:02 ` Greg Kroah-Hartman
[not found] ` <20141103230234.GA9427-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-03 23:08 ` Andy Lutomirski
2014-11-03 23:08 ` Andy Lutomirski
[not found] ` <CALCETrUtxqLaziC_f6iTEgKNhmTgJR6bOLJ=e=O22X_RsBc9sw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-04 0:38 ` Greg Kroah-Hartman
2014-11-04 0:38 ` Greg Kroah-Hartman
[not found] ` <20141104003849.GA15147-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-04 1:14 ` Andy Lutomirski
2014-11-04 1:14 ` Andy Lutomirski
2014-11-04 14:07 ` Matt Fleming
2014-11-04 14:07 ` Matt Fleming
[not found] ` <1415110071.26277.28.camel-ZqTwcBeJ+wsBof6jY8KHXm7IUlhRatedral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-11-05 9:52 ` Kweh, Hock Leong
2014-11-05 9:52 ` Kweh, Hock Leong
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=20141108190655.GA2638@kroah.com \
--to=gregkh-hqyy1w1ycw8ekmwlsbkhg0b+6bgklq7r@public.gmane.org \
--cc=boon.leong.ong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
--cc=semen.protsenko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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.