• Ard Biesheuvel's avatar
    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
cpufeature.h 1.8 KB