Re: Patch "module: Add support for default value for module async_probe" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 22, 2024 at 12:27 PM Sasha Levin <sashal@xxxxxxxxxx> wrote:
>
> This is a note to let you know that I've just added the patch titled
>
>     module: Add support for default value for module async_probe
>
> to the 5.15-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
> The filename of the patch is:
>      module-add-support-for-default-value-for-module-asyn.patch
> and it can be found in the queue-5.15 subdirectory.

Is there a reason this is getting pulled into 5.15 after such a long
time? Just curious.

-Saravana


>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.
>
>
>
> commit 5e71cd2829f5ca192a3a7a0f010406489823bf45
> Author: Saravana Kannan <saravanak@xxxxxxxxxx>
> Date:   Fri Jun 3 18:01:00 2022 -0700
>
>     module: Add support for default value for module async_probe
>
>     [ Upstream commit ae39e9ed964f8e450d0de410b5a757e19581dfc5 ]
>
>     Add a module.async_probe kernel command line option that allows enabling
>     async probing for all modules. When this command line option is used,
>     there might still be some modules for which we want to explicitly force
>     synchronous probing, so extend <modulename>.async_probe to take an
>     optional bool input so that async probing can be disabled for a specific
>     module.
>
>     Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx>
>     Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
>     Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
>     Stable-dep-of: 8f8cd6c0a43e ("modules: wait do_free_init correctly")
>     Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 34b093e7f8910..c4c7273419bda 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -1084,8 +1084,12 @@
>         nopku           [X86] Disable Memory Protection Keys CPU feature found
>                         in some Intel CPUs.
>
> -       <module>.async_probe [KNL]
> -                       Enable asynchronous probe on this module.
> +       <module>.async_probe[=<bool>] [KNL]
> +                       If no <bool> value is specified or if the value
> +                       specified is not a valid <bool>, enable asynchronous
> +                       probe on this module.  Otherwise, enable/disable
> +                       asynchronous probe on this module as indicated by the
> +                       <bool> value. See also: module.async_probe
>
>         early_ioremap_debug [KNL]
>                         Enable debug messages in early_ioremap support. This
> @@ -3137,6 +3141,15 @@
>                         For details see:
>                         Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
>
> +       module.async_probe=<bool>
> +                       [KNL] When set to true, modules will use async probing
> +                       by default. To enable/disable async probing for a
> +                       specific module, use the module specific control that
> +                       is documented under <module>.async_probe. When both
> +                       module.async_probe and <module>.async_probe are
> +                       specified, <module>.async_probe takes precedence for
> +                       the specific module.
> +
>         module.sig_enforce
>                         [KNL] When CONFIG_MODULE_SIG is set, this means that
>                         modules without (valid) signatures will fail to load.
> diff --git a/kernel/module.c b/kernel/module.c
> index ba9f2bb57889c..d8d677f01adb5 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -3713,6 +3713,12 @@ static void do_free_init(struct work_struct *w)
>         }
>  }
>
> +#undef MODULE_PARAM_PREFIX
> +#define MODULE_PARAM_PREFIX "module."
> +/* Default value for module->async_probe_requested */
> +static bool async_probe;
> +module_param(async_probe, bool, 0644);
> +
>  /*
>   * This is where the real work happens.
>   *
> @@ -3943,7 +3949,8 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname,
>         int ret;
>
>         if (strcmp(param, "async_probe") == 0) {
> -               mod->async_probe_requested = true;
> +               if (strtobool(val, &mod->async_probe_requested))
> +                       mod->async_probe_requested = true;
>                 return 0;
>         }
>
> @@ -4110,6 +4117,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
>         if (err)
>                 goto bug_cleanup;
>
> +       mod->async_probe_requested = async_probe;
> +
>         /* Module is ready to execute: parsing args may do that. */
>         after_dashes = parse_args(mod->name, mod->args, mod->kp, mod->num_kp,
>                                   -32768, 32767, mod,





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux