lkml.org 
[lkml]   [2016]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 2/5] firmware: annotate thou shalt not request fw on init or probe
    On Tue, Aug 23, 2016 at 05:45:04PM -0700, mcgrof@kernel.org wrote:

    [snip]
    > ---
    > Documentation/firmware_class/README | 20 ++++
    > drivers/base/Kconfig | 2 +-
    > .../request_firmware-avoid-init-probe-init.cocci | 130 +++++++++++++++++++++
    > 3 files changed, 151 insertions(+), 1 deletion(-)
    > create mode 100644 scripts/coccinelle/api/request_firmware-avoid-init-probe-init.cocci
    >
    > diff --git a/Documentation/firmware_class/README b/Documentation/firmware_class/README
    > index cafdca8b3b15..056d1cb9d365 100644
    > --- a/Documentation/firmware_class/README
    > +++ b/Documentation/firmware_class/README
    > @@ -93,6 +93,26 @@
    > user contexts to request firmware asynchronously, but can't be called
    > in atomic contexts.
    >
    > +Requirements:
    > +=============
    > +
    > +You should avoid at all costs requesting firmware on both init and probe paths
    > +of your device driver. Reason for this is the complexity needed to ensure a
    > +firmware will be available for a driver early in boot through different
    > +build configurations. Consider built-in drivers needing firmware early, or
    > +consider a driver assuming it will only get firmware after pivot_root().
    > +
    > +Drivers that really need firmware early should use stuff the firmware in

    Minor grammatical nit: s/use//

    > +initramfs or consider using CONFIG_EXTRA_FIRMWARE. Using initramfs is much
    > +more portable to more distributions as not all distributions wish to enable
    > +CONFIG_EXTRA_FIRMWARE. Should a driver require the firmware being built-in
    > +it should depend on CONFIG_EXTRA_FIRMWARE. There is no current annotation for
    > +requiring a firmware on initramfs.
    > +
    > +If you're a maintainer you can help police this with:
    > +
    > +$ export COCCI=scripts/coccinelle/api/request_firmware-avoid-init-probe-init.cocci
    > +$ make coccicheck MODE=report
    >
    > about in-kernel persistence:
    > ---------------------------

    \
     
     \ /
      Last update: 2016-09-17 09:57    [W:4.401 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site