Skip to content
Snippets Groups Projects
  • Ard Biesheuvel's avatar
    67bad2fd
    cpu: add generic support for CPU feature based module autoloading · 67bad2fd
    Ard Biesheuvel authored
    
    This patch adds support for advertising optional CPU features over udev
    using the modalias, and for declaring compatibility with/dependency upon
    such a feature in a module.
    
    The mapping between feature numbers and actual features should be provided
    by the architecture in a file called <asm/cpufeature.h> which exports the
    following functions/macros:
    - cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a
      numeric index;
    - bool cpu_have_feature(n), returning whether this CPU has support for
      feature #n;
    - MAX_CPU_FEATURES, an upper bound for 'n' in the previous function.
    
    The feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE
    for the architecture.
    
    For instance, a module that registers its module init function using
    
      module_cpu_feature_match(FEAT_X, module_init_function)
    
    will be probed automatically when the CPU's support for the 'FEAT_X'
    feature is advertised over udev, and will only allow the module to be
    loaded by hand if the 'FEAT_X' feature is supported.
    
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    67bad2fd
    History
    cpu: add generic support for CPU feature based module autoloading
    Ard Biesheuvel authored
    
    This patch adds support for advertising optional CPU features over udev
    using the modalias, and for declaring compatibility with/dependency upon
    such a feature in a module.
    
    The mapping between feature numbers and actual features should be provided
    by the architecture in a file called <asm/cpufeature.h> which exports the
    following functions/macros:
    - cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a
      numeric index;
    - bool cpu_have_feature(n), returning whether this CPU has support for
      feature #n;
    - MAX_CPU_FEATURES, an upper bound for 'n' in the previous function.
    
    The feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE
    for the architecture.
    
    For instance, a module that registers its module init function using
    
      module_cpu_feature_match(FEAT_X, module_init_function)
    
    will be probed automatically when the CPU's support for the 'FEAT_X'
    feature is advertised over udev, and will only allow the module to be
    loaded by hand if the 'FEAT_X' feature is supported.
    
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
devicetable-offsets.c 5.26 KiB