linux-uconsole/drivers
Ard Biesheuvel 197028d295 cpu: add generic support for CPU feature based module autoloading
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.

Change-Id: Icae8e3ff347235fc72a5b41279f0afdb34fb161a
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-28 10:22:26 -07:00
..
accessibility
acpi ACPI / dock / PCI: Synchronous handling of dock events for PCI devices 2013-06-24 11:22:53 +02:00
amba
ata libata-acpi: add back ACPI based hotplug functionality 2013-06-25 00:51:33 +02:00
atm
auxdisplay
base cpu: add generic support for CPU feature based module autoloading 2014-08-28 10:22:26 -07:00
bcma bcma: add more core IDs 2013-05-17 14:31:05 -04:00
block Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-06-29 10:31:15 -07:00
bluetooth Bluetooth: btmrvl: fix thread stopping race 2013-06-13 13:05:40 -04:00
bus
cdrom
char [ARM] armv6 dcc tty driver 2013-07-01 13:38:50 -07:00
clk ARM: tegra30: clocks: Fix pciex clock registration 2013-06-16 11:25:45 -07:00
clocksource
connector
cpufreq cpufreq: fix sleeping in atomic context when realloc freq_table for all_time_in_state 2014-06-27 21:02:58 +00:00
cpuidle cpuidle: governor: menu: don't use loadavg 2013-07-01 13:34:58 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2013-06-10 13:25:50 -07:00
dca
devfreq
dio
dma dmatest: do not allow to interrupt ongoing tests 2013-06-08 02:13:44 +05:30
edac amd64_edac: Fix bogus sysfs file permissions 2013-05-21 09:13:11 +02:00
eisa
extcon Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
firewire IEEE 1394 (FireWire) subsystem changes: 2013-05-09 10:11:48 -07:00
firmware efivar: fix oops in efivar_update_sysfs_entries() caused by memory reuse 2013-05-13 20:20:02 +01:00
gpio gpiolib: remove warnning of allocations with IRQs disabled 2013-12-18 18:43:55 -08:00
gpu ion: move into staging 2013-11-07 13:28:41 -08:00
hid HID: check for NULL field when setting values 2014-07-11 14:30:38 -07:00
hsi
hv Drivers: hv: Fix a bug in get_vp_index() 2013-05-21 09:56:55 -07:00
hwmon hwmon: (adm1021) Strengthen chip detection for ADM1021, LM84 and MAX1617 2013-06-07 12:29:31 -07:00
hwspinlock
i2c Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-05-21 11:11:45 -07:00
ide
idle Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2013-05-11 15:23:17 -07:00
iio staging:iio:events: Don't copy data to user-space with a locked spinlock. 2013-07-01 14:16:11 -07:00
infiniband Merge branches 'iser' and 'qib' into for-next 2013-06-04 17:06:46 -07:00
input input: Made keyreset more robust 2014-07-02 10:47:02 -07:00
iommu
ipack
irqchip ARM: SoC fixes for 3.10-rc 2013-06-22 09:44:45 -10:00
isdn isdn/kcapi: fix a small underflow 2013-05-20 13:38:14 -07:00
leds drivers/leds/leds-ot200.c: fix error caused by shifted mask 2013-05-24 16:22:51 -07:00
lguest
macintosh
mailbox
md A few bugfixes for md 2013-06-13 10:13:29 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2013-06-22 08:43:17 -10:00
memory drivers/memory: don't check resource with devm_ioremap_resource 2013-05-18 11:55:52 +02:00
memstick
message
mfd mfd: tps6586x: correct device name of the regulator cell 2013-06-24 12:37:47 +01:00
misc misc: uidstat: Remove use of obsolete create_proc_read_entry api 2013-07-01 15:52:03 -07:00
mmc mmc: core: Remove stray CONFIG_EXPERIMENTAL dependencies 2013-07-01 15:52:00 -07:00
mtd mtd: nand: Allow NAND chip ids to be included standalone. 2013-07-01 13:34:56 -07:00
net net: PPPoPNS and PPPoLAC update to use PPP_MRU instead of PPP_MRU 2013-07-01 14:16:07 -07:00
nfc NFC: mei: Do not disable MEI devices from their remove routine 2013-05-21 10:48:41 +02:00
ntb NTB: Multiple NTB client fix 2013-05-15 10:58:22 -07:00
nubus
of of: fix CONFIG_CMDLINE_EXTEND 2014-04-17 20:02:30 -07:00
oprofile
parisc parisc: fix serial ports on C8000 workstation 2013-06-18 20:29:07 +02:00
parport parisc: parport0: fix this legacy no-device port driver! 2013-06-01 14:46:42 +02:00
pci ACPI / dock / PCI: Synchronous handling of dock events for PCI devices 2013-06-24 11:22:53 +02:00
pcmcia
pinctrl Renesas ARM based SoC fixes for v3.10 2013-06-07 18:11:02 -07:00
platform x86 / platform / hp_wmi: Fix bluetooth_rfkill misuse in hp_wmi_rfkill_setup() 2013-06-01 23:51:48 +02:00
pnp
power power: Add property CHARGE_COUNTER_EXT and 64-bit precision properties 2014-06-17 02:18:07 +00:00
pps
ps3
ptp ptp_pch: fix error handling in pch_probe() 2013-05-25 21:24:15 -07:00
pwm drivers/pwm: don't check resource with devm_ioremap_resource 2013-05-18 11:55:58 +02:00
rapidio rapidio/tsi721: fix bug in MSI interrupt handling 2013-05-24 16:22:51 -07:00
regulator mfd: tps6586x: correct device name of the regulator cell 2013-06-24 12:37:47 +01:00
remoteproc
reset
rpmsg
rtc rtc-at91rm9200: use shadow IMR on at91sam9x5 2013-06-12 16:29:46 -07:00
s390 netiucv: Hold rtnl between name allocation and device registration. 2013-06-13 17:41:18 -07:00
sbus
scsi This patch fixes a critical bug that was introduced in 3.9 2013-06-26 23:08:22 -07:00
sfi
sh
sn
spi Merge remote-tracking branch 'spi/fix/s3c64xx' into spi-linus 2013-06-24 12:28:29 +01:00
ssb - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
ssbi
staging staging: android: ashmem: Avoid deadlock with mmap/shrink 2014-08-11 17:16:04 -07:00
switch drivers: switch: remove S_IWUSR from dev_attr 2013-10-31 09:36:50 +08:00
target iscsi-target: Remove left over v3.10-rc debug printks 2013-06-20 16:47:41 -07:00
tc
thermal drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-18 11:57:30 +02:00
tty n_tty: Fix n_tty_write crash when echoing in raw mode 2014-05-13 20:08:08 -07:00
uio uio: UIO_DMEM_GENIRQ should depend on HAS_DMA 2013-05-21 10:13:23 -07:00
usb usb: Add support for rndis uplink aggregation 2014-08-25 17:55:53 -07:00
uwb
vfio vfio: fix crash on rmmod 2013-06-05 08:54:16 -06:00
vhost vhost: fix ubuf_info cleanup 2013-06-11 02:46:21 -07:00
video video: adf: Cleanup sw_sync timeline at adf_device_destroy 2014-07-17 16:02:20 -07:00
virt
virtio
vlynq
vme
w1 w1: ds2482: Manage SLPZ pin sleep state 2013-07-01 14:16:06 -07:00
watchdog drivers/watchdog: don't check resource with devm_ioremap_resource 2013-05-18 11:58:04 +02:00
xen xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it. 2013-06-10 10:14:33 -04:00
zorro
Kconfig switch: switch class and GPIO drivers. 2013-07-01 13:40:19 -07:00
Makefile switch: switch class and GPIO drivers. 2013-07-01 13:40:19 -07:00