[PATCH v2 0/4] wire up CPU features to udev based module loading

Ard Biesheuvel ard.biesheuvel at linaro.org
Thu Nov 21 10:42:28 EST 2013


X86 maintainer(s): if you have no objections to this approach, may I please have
your ack(s) on the x86 bits so I can work with Catalin to take the series
upstream through his tree?

This series implements automatic module loading based on optional CPU features,
and tries to do so in a generic way.

Typical usage would look like this:

static struct cpu_feature mod_cpu_feature[] = {
        { HWCAP_CRC32 },
        {}
};
MODULE_DEVICE_TABLE(cpu, mod_cpu_feature);

where (on the arm64 arch) the module in question would be loaded automatically
if the CPU has support for the optional CRC instructions. [Note that the example
is based on a pending patch by Steve Capper: 'arm64: Add hwcaps for crypto and
CRC32 extensions']

Changes wrt v1:
- use ELF_PLATFORM rather than hardcoded name for printing modalias on arm64

Changes wrt RFC version of this series:
- this time, instead of doing something entirely separate for non-x86 archs, the
  new generic modalias version allocates enough bits to cover all x86 features
  (320+), and the x86 version was tweaked to resemble the generic one more
  closely (i.e., both use 'cpu:type:...:feature:...' now)
- removed the weak and alias GCC attribute foo

Ard Biesheuvel (4):
  x86: move arch_cpu_uevent() to generic code
  cpu: advertise CPU features over udev in a generic way
  x86: align with generic cpu modalias
  arm64: advertise CPU features for modalias matching

 arch/arm64/Kconfig                |  3 +++
 arch/arm64/kernel/setup.c         | 20 ++++++++++++++++++++
 arch/x86/kernel/cpu/match.c       | 14 +-------------
 drivers/base/cpu.c                | 15 ++++++++++++++-
 include/linux/cpu.h               |  1 -
 include/linux/mod_devicetable.h   | 11 +++++++++++
 scripts/mod/devicetable-offsets.c |  3 +++
 scripts/mod/file2alias.c          | 20 +++++++++++++++-----
 8 files changed, 67 insertions(+), 20 deletions(-)

-- 
1.8.3.2




More information about the linux-arm-kernel mailing list