Pull core fixes from Thomas Gleixner: "A small set of core updates: - Make the watchdog respect the selected CPU mask again. That was broken by the rework of the watchdog thread management and caused inconsistent state and NMI watchdog being unstoppable. - Ensure that the objtool build can find the libelf location. - Remove dead kcore stub code" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: watchdog: Respect watchdog cpumask on CPU hotplug objtool: Query pkg-config for libelf location proc/kcore: Remove unused kclist_add_remap()
Unified · Split
| @@ -953,9 +953,11 @@ mod_sign_cmd = true · 952 unmodified lines | ||
| 953 | 953 | endif |
| 954 | 954 | export mod_sign_cmd |
| 955 | 955 | |
| 956 | +HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) | |
| 957 | + | |
| 956 | 958 | ifdef CONFIG_STACK_VALIDATION |
| 957 | 959 | has_libelf := $(call try-run,\ |
| 958 | − echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) | |
| 960 | + echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) | |
| 959 | 961 | ifeq ($(has_libelf),1) |
| 960 | 962 | objtool_target := tools/objtool FORCE |
| 961 | 963 | else |
| @@ -38,12 +38,6 @@ struct vmcoredd_node { · 37 unmodified lines | ||
| 38 | 38 | |
| 39 | 39 | #ifdef CONFIG_PROC_KCORE |
| 40 | 40 | void __init kclist_add(struct kcore_list *, void *, size_t, int type); |
| 41 | −static inline | |
| 42 | −void kclist_add_remap(struct kcore_list *m, void *addr, void *vaddr, size_t sz) | |
| 43 | −{ | |
| 44 | − m->vaddr = (unsigned long)vaddr; | |
| 45 | − kclist_add(m, addr, sz, KCORE_REMAP); | |
| 46 | −} | |
| 47 | 41 | |
| 48 | 42 | extern int __init register_mem_pfn_is_ram(int (*fn)(unsigned long pfn)); |
| 49 | 43 | #else |
| @@ -51,11 +45,6 @@ static inline · 1 unmodified line | ||
| 51 | 45 | void kclist_add(struct kcore_list *new, void *addr, size_t size, int type) |
| 52 | 46 | { |
| 53 | 47 | } |
| 54 | − | |
| 55 | −static inline | |
| 56 | −void kclist_add_remap(struct kcore_list *m, void *addr, void *vaddr, size_t sz) | |
| 57 | −{ | |
| 58 | −} | |
| 59 | 48 | #endif |
| 60 | 49 | |
| 61 | 50 | #endif /* _LINUX_KCORE_H */ |
| @@ -554,13 +554,15 @@ static void softlockup_start_all(void) · 553 unmodified lines | ||
| 554 | 554 | |
| 555 | 555 | int lockup_detector_online_cpu(unsigned int cpu) |
| 556 | 556 | { |
| 557 | − watchdog_enable(cpu); | |
| 557 | + if (cpumask_test_cpu(cpu, &watchdog_allowed_mask)) | |
| 558 | + watchdog_enable(cpu); | |
| 558 | 559 | return 0; |
| 559 | 560 | } |
| 560 | 561 | |
| 561 | 562 | int lockup_detector_offline_cpu(unsigned int cpu) |
| 562 | 563 | { |
| 563 | − watchdog_disable(cpu); | |
| 564 | + if (cpumask_test_cpu(cpu, &watchdog_allowed_mask)) | |
| 565 | + watchdog_disable(cpu); | |
| 564 | 566 | return 0; |
| 565 | 567 | } |
| 566 | 568 | |
| @@ -25,14 +25,17 @@ LIBSUBCMD = $(LIBSUBCMD_OUTPUT)libsubcmd.a · 24 unmodified lines | ||
| 25 | 25 | OBJTOOL := $(OUTPUT)objtool |
| 26 | 26 | OBJTOOL_IN := $(OBJTOOL)-in.o |
| 27 | 27 | |
| 28 | +LIBELF_FLAGS := $(shell pkg-config libelf --cflags 2>/dev/null) | |
| 29 | +LIBELF_LIBS := $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) | |
| 30 | + | |
| 28 | 31 | all: $(OBJTOOL) |
| 29 | 32 | |
| 30 | 33 | INCLUDES := -I$(srctree)/tools/include \ |
| 31 | 34 | -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \ |
| 32 | 35 | -I$(srctree)/tools/objtool/arch/$(ARCH)/include |
| 33 | 36 | WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed |
| 34 | −CFLAGS += -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES) | |
| 35 | −LDFLAGS += -lelf $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS) | |
| 37 | +CFLAGS += -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES) $(LIBELF_FLAGS) | |
| 38 | +LDFLAGS += $(LIBELF_LIBS) $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS) | |
| 36 | 39 | |
| 37 | 40 | # Allow old libelf to be used: |
| 38 | 41 | elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr) |