Loading drivers/base/core.c +5 −0 Original line number Diff line number Diff line Loading @@ -1321,6 +1321,11 @@ int lock_device_hotplug_sysfs(void) return restart_syscall(); } int trylock_device_hotplug(void) { return mutex_trylock(&device_hotplug_lock); } #ifdef CONFIG_SCHED_WALT void lock_device_hotplug_assert(void) { Loading include/linux/device.h +1 −0 Original line number Diff line number Diff line Loading @@ -1592,6 +1592,7 @@ static inline bool device_supports_offline(struct device *dev) extern void lock_device_hotplug(void); extern void unlock_device_hotplug(void); extern int lock_device_hotplug_sysfs(void); extern int trylock_device_hotplug(void); #ifdef CONFIG_SCHED_WALT extern void lock_device_hotplug_assert(void); #endif Loading mm/memory_hotplug.c +3 −8 Original line number Diff line number Diff line Loading @@ -1021,17 +1021,12 @@ static int online_memory_one_block(struct memory_block *mem, void *arg) bool try_online_one_block(int nid) { struct zone *zone = &NODE_DATA(nid)->node_zones[ZONE_MOVABLE]; unsigned long zone_start, zone_size; bool onlined_block = false; lock_device_hotplug(); zone_start = PFN_PHYS(zone->zone_start_pfn); zone_size = zone->spanned_pages << PAGE_SHIFT; walk_memory_blocks(zone_start, zone_size, &onlined_block, online_memory_one_block); if (!trylock_device_hotplug()) return false; for_each_memory_block(&onlined_block, online_memory_one_block); unlock_device_hotplug(); return onlined_block; } Loading Loading
drivers/base/core.c +5 −0 Original line number Diff line number Diff line Loading @@ -1321,6 +1321,11 @@ int lock_device_hotplug_sysfs(void) return restart_syscall(); } int trylock_device_hotplug(void) { return mutex_trylock(&device_hotplug_lock); } #ifdef CONFIG_SCHED_WALT void lock_device_hotplug_assert(void) { Loading
include/linux/device.h +1 −0 Original line number Diff line number Diff line Loading @@ -1592,6 +1592,7 @@ static inline bool device_supports_offline(struct device *dev) extern void lock_device_hotplug(void); extern void unlock_device_hotplug(void); extern int lock_device_hotplug_sysfs(void); extern int trylock_device_hotplug(void); #ifdef CONFIG_SCHED_WALT extern void lock_device_hotplug_assert(void); #endif Loading
mm/memory_hotplug.c +3 −8 Original line number Diff line number Diff line Loading @@ -1021,17 +1021,12 @@ static int online_memory_one_block(struct memory_block *mem, void *arg) bool try_online_one_block(int nid) { struct zone *zone = &NODE_DATA(nid)->node_zones[ZONE_MOVABLE]; unsigned long zone_start, zone_size; bool onlined_block = false; lock_device_hotplug(); zone_start = PFN_PHYS(zone->zone_start_pfn); zone_size = zone->spanned_pages << PAGE_SHIFT; walk_memory_blocks(zone_start, zone_size, &onlined_block, online_memory_one_block); if (!trylock_device_hotplug()) return false; for_each_memory_block(&onlined_block, online_memory_one_block); unlock_device_hotplug(); return onlined_block; } Loading