# # This is a simple wrapper Makefile that calls the main Makefile.perf # with a -j option to do parallel builds # # If you want to invoke the perf build in some non-standard way then # you can use the 'make -f Makefile.perf' method to invoke it. # # # Clear out the built-in rules GNU make defines by default (such as .o targets), # so that we pass through all targets to Makefile.perf: # .SUFFIXES: # # We don't want to pass along options like -j: # unexport MAKEFLAGS # # Do a parallel build with multiple jobs, based on the number of CPUs online # in this system: 'make -j8' on a 8-CPU system, etc. # # (To override it, run 'make JOBS=1' and similar.) # ifeq ($(JOBS),) JOBS := $(shell (getconf _NPROCESSORS_ONLN || egrep -c '^processor|^CPU[0-9]' /proc/cpuinfo) 2>/dev/null) ifeq ($(JOBS),0) JOBS := 1 endif endif # # Only pass canonical directory names as the output directory: # ifneq ($(O),) FULL_O := $(shell readlink -f $(O) || echo $(O)) endif # # Only accept the 'DEBUG' variable from the command line: # ifeq ("$(origin DEBUG)", "command line") ifeq ($(DEBUG),) override DEBUG = 0 else SET_DEBUG = "DEBUG=$(DEBUG)" endif else override DEBUG = 0 endif define print_msg @printf ' BUILD: Doing '\''make \033[33m-j'$(JOBS)'\033[m'\'' parallel build\n' endef define make @$(MAKE) -f Makefile.perf --no-print-directory -j$(JOBS) O=$(FULL_O) $(SET_DEBUG) $@ endef # # Needed if no target specified: # (Except for tags and TAGS targets. The reason is that the # Makefile does not treat tags/TAGS as targets but as files # and thus won't rebuilt them once they are in place.) # all tags TAGS: $(print_msg) $(make) ifdef MAKECMDGOALS has_clean := 0 ifneq ($(filter clean,$(MAKECMDGOALS)),) has_clean := 1 endif # clean ifeq ($(has_clean),1) rest := $(filter-out clean,$(MAKECMDGOALS)) ifneq ($(rest),) $(rest): clean endif # rest endif # has_clean endif # MAKECMDGOALS # # The clean target is not really parallel, don't print the jobs info: # clean: $(make) # # The build-test target is not really parallel, don't print the jobs info, # it also uses only the tests/make targets that don't pollute the source # repository, i.e. that uses O= or builds the tarpkg outside the source # repo directories. # # For a full test, use: # # make -C tools/perf -f tests/make # build-test: @$(MAKE) SHUF=1 -f tests/make REUSE_FEATURES_DUMP=1 MK=Makefile SET_PARALLEL=1 --no-print-directory tarpkg out # # All other targets get passed through: # %: FORCE $(print_msg) $(make) .PHONY: tags TAGS FORCE Makefile ge
path: root/include/dt-bindings/input/input.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-01-31 09:37:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-01-31 21:47:58 +0100
commit0becc0ae5b42828785b589f686725ff5bc3b9b25 (patch)
treebe6d0e1f37c38ed0a7dd5da2d4b1e93f0fb43101 /include/dt-bindings/input/input.h
parent24c2503255d35c269b67162c397a1a1c1e02f6ce (diff)
x86/mce: Make timer handling more robust
Erik reported that on a preproduction hardware a CMCI storm triggers the BUG_ON in add_timer_on(). The reason is that the per CPU MCE timer is started by the CMCI logic before the MCE CPU hotplug callback starts the timer with add_timer_on(). So the timer is already queued which triggers the BUG. Using add_timer_on() is pretty pointless in this code because the timer is strictlty per CPU, initialized as pinned and all operations which arm the timer happen on the CPU to which the timer belongs. Simplify the whole machinery by using mod_timer() instead of add_timer_on() which avoids the problem because mod_timer() can handle already queued timers. Use __start_timer() everywhere so the earliest armed expiry time is preserved. Reported-by: Erik Veijola <erik.veijola@intel.com> Tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@alien8.de> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701310936080.3457@nanos Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/dt-bindings/input/input.h')