diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-02 14:44:19 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-02 14:44:19 -0400 |
| commit | fc76a258d41eea7953bb763397c3d1e589d3bb98 (patch) | |
| tree | ef8c4b828f3011adf9fc9ef976b9d07c35628e81 /include | |
| parent | fe3c22bd5cadd8e36977b218b27fbea821381ec8 (diff) | |
| parent | bfd63cd24df69120585c22e09fda78723772ee2a (diff) | |
Merge tag 'driver-core-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH:
"Here's the big driver core merge for 3.11-rc1
Lots of little things, and larger firmware subsystem updates, all
described in the shortlog. Nice thing here is that we finally get rid
of CONFIG_HOTPLUG, after 10+ years, thanks to Stephen Rohtwell (it had
been always on for a number of kernel releases, now it's just
removed)"
* tag 'driver-core-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (27 commits)
driver core: device.h: fix doc compilation warnings
firmware loader: fix another compile warning with PM_SLEEP unset
build some drivers only when compile-testing
firmware loader: fix compile warning with PM_SLEEP set
kobject: sanitize argument for format string
sysfs_notify is only possible on file attributes
firmware loader: simplify holding module for request_firmware
firmware loader: don't export cache_firmware and uncache_firmware
drivers/base: Use attribute groups to create sysfs memory files
firmware loader: fix compile warning
firmware loader: fix build failure with !CONFIG_FW_LOADER_USER_HELPER
Documentation: Updated broken link in HOWTO
Finally eradicate CONFIG_HOTPLUG
driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests before suspend
driver core: firmware loader: don't cache FW_ACTION_NOHOTPLUG firmware
Documentation: Tidy up some drivers/base/core.c kerneldoc content.
platform_device: use a macro instead of platform_driver_register
firmware: move EXPORT_SYMBOL annotations
firmware: Avoid deadlock of usermodehelper lock at shutdown
dell_rbu: Select CONFIG_FW_LOADER_USER_HELPER explicitly
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/vmlinux.lds.h | 20 | ||||
| -rw-r--r-- | include/linux/debugfs.h | 2 | ||||
| -rw-r--r-- | include/linux/device.h | 3 | ||||
| -rw-r--r-- | include/linux/firmware.h | 11 | ||||
| -rw-r--r-- | include/linux/platform_device.h | 8 |
5 files changed, 12 insertions, 32 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index eb58d2d7d971..4f2737208c42 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
| @@ -68,14 +68,6 @@ | |||
| 68 | * are handled as text/data or they can be discarded (which | 68 | * are handled as text/data or they can be discarded (which |
| 69 | * often happens at runtime) | 69 | * often happens at runtime) |
| 70 | */ | 70 | */ |
| 71 | #ifdef CONFIG_HOTPLUG | ||
| 72 | #define DEV_KEEP(sec) *(.dev##sec) | ||
| 73 | #define DEV_DISCARD(sec) | ||
| 74 | #else | ||
| 75 | #define DEV_KEEP(sec) | ||
| 76 | #define DEV_DISCARD(sec) *(.dev##sec) | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #ifdef CONFIG_HOTPLUG_CPU | 71 | #ifdef CONFIG_HOTPLUG_CPU |
| 80 | #define CPU_KEEP(sec) *(.cpu##sec) | 72 | #define CPU_KEEP(sec) *(.cpu##sec) |
| 81 | #define CPU_DISCARD(sec) | 73 | #define CPU_DISCARD(sec) |
| @@ -182,8 +174,6 @@ | |||
| 182 | *(.data) \ | 174 | *(.data) \ |
| 183 | *(.ref.data) \ | 175 | *(.ref.data) \ |
| 184 | *(.data..shared_aligned) /* percpu related */ \ | 176 | *(.data..shared_aligned) /* percpu related */ \ |
| 185 | DEV_KEEP(init.data) \ | ||
| 186 | DEV_KEEP(exit.data) \ | ||
| 187 | CPU_KEEP(init.data) \ | 177 | CPU_KEEP(init.data) \ |
| 188 | CPU_KEEP(exit.data) \ | 178 | CPU_KEEP(exit.data) \ |
| 189 | MEM_KEEP(init.data) \ | 179 | MEM_KEEP(init.data) \ |
| @@ -372,8 +362,6 @@ | |||
| 372 | /* __*init sections */ \ | 362 | /* __*init sections */ \ |
| 373 | __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) { \ | 363 | __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) { \ |
| 374 | *(.ref.rodata) \ | 364 | *(.ref.rodata) \ |
| 375 | DEV_KEEP(init.rodata) \ | ||
| 376 | DEV_KEEP(exit.rodata) \ | ||
| 377 | CPU_KEEP(init.rodata) \ | 365 | CPU_KEEP(init.rodata) \ |
| 378 | CPU_KEEP(exit.rodata) \ | 366 | CPU_KEEP(exit.rodata) \ |
| 379 | MEM_KEEP(init.rodata) \ | 367 | MEM_KEEP(init.rodata) \ |
| @@ -416,8 +404,6 @@ | |||
| 416 | *(.text.hot) \ | 404 | *(.text.hot) \ |
| 417 | *(.text) \ | 405 | *(.text) \ |
| 418 | *(.ref.text) \ | 406 | *(.ref.text) \ |
| 419 | DEV_KEEP(init.text) \ | ||
| 420 | DEV_KEEP(exit.text) \ | ||
| 421 | CPU_KEEP(init.text) \ | 407 | CPU_KEEP(init.text) \ |
| 422 | CPU_KEEP(exit.text) \ | 408 | CPU_KEEP(exit.text) \ |
| 423 | MEM_KEEP(init.text) \ | 409 | MEM_KEEP(init.text) \ |
| @@ -503,7 +489,6 @@ | |||
| 503 | /* init and exit section handling */ | 489 | /* init and exit section handling */ |
| 504 | #define INIT_DATA \ | 490 | #define INIT_DATA \ |
| 505 | *(.init.data) \ | 491 | *(.init.data) \ |
| 506 | DEV_DISCARD(init.data) \ | ||
| 507 | CPU_DISCARD(init.data) \ | 492 | CPU_DISCARD(init.data) \ |
| 508 | MEM_DISCARD(init.data) \ | 493 | MEM_DISCARD(init.data) \ |
| 509 | KERNEL_CTORS() \ | 494 | KERNEL_CTORS() \ |
| @@ -511,7 +496,6 @@ | |||
| 511 | *(.init.rodata) \ | 496 | *(.init.rodata) \ |
| 512 | FTRACE_EVENTS() \ | 497 | FTRACE_EVENTS() \ |
| 513 | TRACE_SYSCALLS() \ | 498 | TRACE_SYSCALLS() \ |
| 514 | DEV_DISCARD(init.rodata) \ | ||
| 515 | CPU_DISCARD(init.rodata) \ | 499 | CPU_DISCARD(init.rodata) \ |
| 516 | MEM_DISCARD(init.rodata) \ | 500 | MEM_DISCARD(init.rodata) \ |
| 517 | CLK_OF_TABLES() \ | 501 | CLK_OF_TABLES() \ |
| @@ -521,14 +505,11 @@ | |||
| 521 | 505 | ||
| 522 | #define INIT_TEXT \ | 506 | #define INIT_TEXT \ |
| 523 | *(.init.text) \ | 507 | *(.init.text) \ |
| 524 | DEV_DISCARD(init.text) \ | ||
| 525 | CPU_DISCARD(init.text) \ | 508 | CPU_DISCARD(init.text) \ |
| 526 | MEM_DISCARD(init.text) | 509 | MEM_DISCARD(init.text) |
| 527 | 510 | ||
| 528 | #define EXIT_DATA \ | 511 | #define EXIT_DATA \ |
| 529 | *(.exit.data) \ | 512 | *(.exit.data) \ |
| 530 | DEV_DISCARD(exit.data) \ | ||
| 531 | DEV_DISCARD(exit.rodata) \ | ||
| 532 | CPU_DISCARD(exit.data) \ | 513 | CPU_DISCARD(exit.data) \ |
| 533 | CPU_DISCARD(exit.rodata) \ | 514 | CPU_DISCARD(exit.rodata) \ |
| 534 | MEM_DISCARD(exit.data) \ | 515 | MEM_DISCARD(exit.data) \ |
| @@ -536,7 +517,6 @@ | |||
| 536 | 517 | ||
| 537 | #define EXIT_TEXT \ | 518 | #define EXIT_TEXT \ |
| 538 | *(.exit.text) \ | 519 | *(.exit.text) \ |
| 539 | DEV_DISCARD(exit.text) \ | ||
| 540 | CPU_DISCARD(exit.text) \ | 520 | CPU_DISCARD(exit.text) \ |
| 541 | MEM_DISCARD(exit.text) | 521 | MEM_DISCARD(exit.text) |
| 542 | 522 | ||
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 63f2465807d4..d68b4ea7343c 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
| @@ -79,6 +79,8 @@ struct dentry *debugfs_create_x64(const char *name, umode_t mode, | |||
| 79 | struct dentry *parent, u64 *value); | 79 | struct dentry *parent, u64 *value); |
| 80 | struct dentry *debugfs_create_size_t(const char *name, umode_t mode, | 80 | struct dentry *debugfs_create_size_t(const char *name, umode_t mode, |
| 81 | struct dentry *parent, size_t *value); | 81 | struct dentry *parent, size_t *value); |
| 82 | struct dentry *debugfs_create_atomic_t(const char *name, umode_t mode, | ||
| 83 | struct dentry *parent, atomic_t *value); | ||
| 82 | struct dentry *debugfs_create_bool(const char *name, umode_t mode, | 84 | struct dentry *debugfs_create_bool(const char *name, umode_t mode, |
| 83 | struct dentry *parent, u32 *value); | 85 | struct dentry *parent, u32 *value); |
| 84 | 86 | ||
diff --git a/include/linux/device.h b/include/linux/device.h index c0a126125325..9d4835a8f8b8 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -80,6 +80,7 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *); | |||
| 80 | * bus-specific setup | 80 | * bus-specific setup |
| 81 | * @p: The private data of the driver core, only the driver core can | 81 | * @p: The private data of the driver core, only the driver core can |
| 82 | * touch this. | 82 | * touch this. |
| 83 | * @lock_key: Lock class key for use by the lock validator | ||
| 83 | * | 84 | * |
| 84 | * A bus is a channel between the processor and one or more devices. For the | 85 | * A bus is a channel between the processor and one or more devices. For the |
| 85 | * purposes of the device model, all devices are connected via a bus, even if | 86 | * purposes of the device model, all devices are connected via a bus, even if |
| @@ -635,6 +636,7 @@ struct acpi_dev_node { | |||
| 635 | * segment limitations. | 636 | * segment limitations. |
| 636 | * @dma_pools: Dma pools (if dma'ble device). | 637 | * @dma_pools: Dma pools (if dma'ble device). |
| 637 | * @dma_mem: Internal for coherent mem override. | 638 | * @dma_mem: Internal for coherent mem override. |
| 639 | * @cma_area: Contiguous memory area for dma allocations | ||
| 638 | * @archdata: For arch-specific additions. | 640 | * @archdata: For arch-specific additions. |
| 639 | * @of_node: Associated device tree node. | 641 | * @of_node: Associated device tree node. |
| 640 | * @acpi_node: Associated ACPI device node. | 642 | * @acpi_node: Associated ACPI device node. |
| @@ -648,6 +650,7 @@ struct acpi_dev_node { | |||
| 648 | * @release: Callback to free the device after all references have | 650 | * @release: Callback to free the device after all references have |
| 649 | * gone away. This should be set by the allocator of the | 651 | * gone away. This should be set by the allocator of the |
| 650 | * device (i.e. the bus driver that discovered the device). | 652 | * device (i.e. the bus driver that discovered the device). |
| 653 | * @iommu_group: IOMMU group the device belongs to. | ||
| 651 | * | 654 | * |
| 652 | * At the lowest level, every device in a Linux system is represented by an | 655 | * At the lowest level, every device in a Linux system is represented by an |
| 653 | * instance of struct device. The device structure contains the information | 656 | * instance of struct device. The device structure contains the information |
diff --git a/include/linux/firmware.h b/include/linux/firmware.h index e4279fedb93a..e154c1005cd1 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h | |||
| @@ -47,8 +47,6 @@ int request_firmware_nowait( | |||
| 47 | void (*cont)(const struct firmware *fw, void *context)); | 47 | void (*cont)(const struct firmware *fw, void *context)); |
| 48 | 48 | ||
| 49 | void release_firmware(const struct firmware *fw); | 49 | void release_firmware(const struct firmware *fw); |
| 50 | int cache_firmware(const char *name); | ||
| 51 | int uncache_firmware(const char *name); | ||
| 52 | #else | 50 | #else |
| 53 | static inline int request_firmware(const struct firmware **fw, | 51 | static inline int request_firmware(const struct firmware **fw, |
| 54 | const char *name, | 52 | const char *name, |
| @@ -68,15 +66,6 @@ static inline void release_firmware(const struct firmware *fw) | |||
| 68 | { | 66 | { |
| 69 | } | 67 | } |
| 70 | 68 | ||
| 71 | static inline int cache_firmware(const char *name) | ||
| 72 | { | ||
| 73 | return -ENOENT; | ||
| 74 | } | ||
| 75 | |||
| 76 | static inline int uncache_firmware(const char *name) | ||
| 77 | { | ||
| 78 | return -EINVAL; | ||
| 79 | } | ||
| 80 | #endif | 69 | #endif |
| 81 | 70 | ||
| 82 | #endif | 71 | #endif |
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 9abf1db6aea6..cd46ee58b9dc 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
| @@ -180,7 +180,13 @@ struct platform_driver { | |||
| 180 | const struct platform_device_id *id_table; | 180 | const struct platform_device_id *id_table; |
| 181 | }; | 181 | }; |
| 182 | 182 | ||
| 183 | extern int platform_driver_register(struct platform_driver *); | 183 | /* |
| 184 | * use a macro to avoid include chaining to get THIS_MODULE | ||
| 185 | */ | ||
| 186 | #define platform_driver_register(drv) \ | ||
| 187 | __platform_driver_register(drv, THIS_MODULE) | ||
| 188 | extern int __platform_driver_register(struct platform_driver *, | ||
| 189 | struct module *); | ||
| 184 | extern void platform_driver_unregister(struct platform_driver *); | 190 | extern void platform_driver_unregister(struct platform_driver *); |
| 185 | 191 | ||
| 186 | /* non-hotpluggable platform devices may use this so that probe() and | 192 | /* non-hotpluggable platform devices may use this so that probe() and |
