diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 14:37:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 14:37:15 -0400 |
commit | 542a086ac72fb193cbc1b996963a572269e57743 (patch) | |
tree | b137c08037cca4ffc8a156a891a01113b3b8edce /drivers/base/cpu.c | |
parent | 1d1fdd95df681f0c065d90ffaafa215a0e8825e2 (diff) | |
parent | 1eeeef153c02f5856ec109fa532eb5f31c39f85c (diff) |
Merge tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core patches from Greg KH:
"Here's the big driver core pull request for 3.12-rc1.
Lots of tiny changes here fixing up the way sysfs attributes are
created, to try to make drivers simpler, and fix a whole class race
conditions with creations of device attributes after the device was
announced to userspace.
All the various pieces are acked by the different subsystem
maintainers"
* tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (119 commits)
firmware loader: fix pending_fw_head list corruption
drivers/base/memory.c: introduce help macro to_memory_block
dynamic debug: line queries failing due to uninitialized local variable
sysfs: sysfs_create_groups returns a value.
debugfs: provide debugfs_create_x64() when disabled
rbd: convert bus code to use bus_groups
firmware: dcdbas: use binary attribute groups
sysfs: add sysfs_create/remove_groups for when SYSFS is not enabled
driver core: add #include <linux/sysfs.h> to core files.
HID: convert bus code to use dev_groups
Input: serio: convert bus code to use drv_groups
Input: gameport: convert bus code to use drv_groups
driver core: firmware: use __ATTR_RW()
driver core: core: use DEVICE_ATTR_RO
driver core: bus: use DRIVER_ATTR_WO()
driver core: create write-only attribute macros for devices and drivers
sysfs: create __ATTR_WO()
driver-core: platform: convert bus code to use dev_groups
workqueue: convert bus code to use dev_groups
MEI: convert bus code to use dev_groups
...
Diffstat (limited to 'drivers/base/cpu.c')
-rw-r--r-- | drivers/base/cpu.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index 4c358bc44c72..6bfaaca6955e 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c | |||
@@ -43,11 +43,14 @@ static int __ref cpu_subsys_online(struct device *dev) | |||
43 | struct cpu *cpu = container_of(dev, struct cpu, dev); | 43 | struct cpu *cpu = container_of(dev, struct cpu, dev); |
44 | int cpuid = dev->id; | 44 | int cpuid = dev->id; |
45 | int from_nid, to_nid; | 45 | int from_nid, to_nid; |
46 | int ret; | 46 | int ret = -ENODEV; |
47 | 47 | ||
48 | cpu_hotplug_driver_lock(); | 48 | cpu_hotplug_driver_lock(); |
49 | 49 | ||
50 | from_nid = cpu_to_node(cpuid); | 50 | from_nid = cpu_to_node(cpuid); |
51 | if (from_nid == NUMA_NO_NODE) | ||
52 | goto out; | ||
53 | |||
51 | ret = cpu_up(cpuid); | 54 | ret = cpu_up(cpuid); |
52 | /* | 55 | /* |
53 | * When hot adding memory to memoryless node and enabling a cpu | 56 | * When hot adding memory to memoryless node and enabling a cpu |
@@ -57,6 +60,7 @@ static int __ref cpu_subsys_online(struct device *dev) | |||
57 | if (from_nid != to_nid) | 60 | if (from_nid != to_nid) |
58 | change_cpu_under_node(cpu, from_nid, to_nid); | 61 | change_cpu_under_node(cpu, from_nid, to_nid); |
59 | 62 | ||
63 | out: | ||
60 | cpu_hotplug_driver_unlock(); | 64 | cpu_hotplug_driver_unlock(); |
61 | return ret; | 65 | return ret; |
62 | } | 66 | } |