Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2c7a54f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull powerpc fixes from Benjamin Herrenschmidt:
 "This is mostly bug fixes (some of them regressions, some of them I
  deemed worth merging now) along with some patches from Li Zhong
  hooking up the new context tracking stuff (for the new full NO_HZ)"

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (25 commits)
  powerpc: Set show_unhandled_signals to 1 by default
  powerpc/perf: Fix setting of "to" addresses for BHRB
  powerpc/pmu: Fix order of interpreting BHRB target entries
  powerpc/perf: Move BHRB code into CONFIG_PPC64 region
  powerpc: select HAVE_CONTEXT_TRACKING for pSeries
  powerpc: Use the new schedule_user API on userspace preemption
  powerpc: Exit user context on notify resume
  powerpc: Exception hooks for context tracking subsystem
  powerpc: Syscall hooks for context tracking subsystem
  powerpc/booke64: Fix kernel hangs at kernel_dbg_exc
  powerpc: Fix irq_set_affinity() return values
  powerpc: Provide __bswapdi2
  powerpc/powernv: Fix starting of secondary CPUs on OPALv2 and v3
  powerpc/powernv: Detect OPAL v3 API version
  powerpc: Fix MAX_STACK_TRACE_ENTRIES too low warning again
  powerpc: Make CONFIG_RTAS_PROC depend on CONFIG_PROC_FS
  powerpc: Bring all threads online prior to migration/hibernation
  powerpc/rtas_flash: Fix validate_flash buffer overflow issue
  powerpc/kexec: Fix kexec when using VMX optimised memcpy
  powerpc: Fix build errors STRICT_MM_TYPECHECKS
  ...
parents 674825d0 e34166ad
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -262,8 +262,31 @@ config PPC_EARLY_DEBUG_OPAL_HVSI
	  Select this to enable early debugging for the PowerNV platform
	  using an "hvsi" console

config PPC_EARLY_DEBUG_MEMCONS
	bool "In memory console"
	help
	  Select this to enable early debugging using an in memory console.
	  This console provides input and output buffers stored within the
	  kernel BSS and should be safe to select on any system. A debugger
	  can then be used to read kernel output or send input to the console.
endchoice

config PPC_MEMCONS_OUTPUT_SIZE
	int "In memory console output buffer size"
	depends on PPC_EARLY_DEBUG_MEMCONS
	default 4096
	help
	  Selects the size of the output buffer (in bytes) of the in memory
	  console.

config PPC_MEMCONS_INPUT_SIZE
	int "In memory console input buffer size"
	depends on PPC_EARLY_DEBUG_MEMCONS
	default 128
	help
	  Selects the size of the input buffer (in bytes) of the in memory
	  console.

config PPC_EARLY_DEBUG_OPAL
	def_bool y
	depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
+10 −0
Original line number Diff line number Diff line
#ifndef _ASM_POWERPC_CONTEXT_TRACKING_H
#define _ASM_POWERPC_CONTEXT_TRACKING_H

#ifdef CONFIG_CONTEXT_TRACKING
#define SCHEDULE_USER bl	.schedule_user
#else
#define SCHEDULE_USER bl	.schedule
#endif

#endif
+3 −1
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@
#define FW_FEATURE_BEST_ENERGY	ASM_CONST(0x0000000080000000)
#define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000)
#define FW_FEATURE_PRRN		ASM_CONST(0x0000000200000000)
#define FW_FEATURE_OPALv3	ASM_CONST(0x0000000400000000)

#ifndef __ASSEMBLY__

@@ -69,7 +70,8 @@ enum {
		FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
		FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN,
	FW_FEATURE_PSERIES_ALWAYS = 0,
	FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_OPALv2,
	FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_OPALv2 |
		FW_FEATURE_OPALv3,
	FW_FEATURE_POWERNV_ALWAYS = 0,
	FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
	FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
+3 −2
Original line number Diff line number Diff line
@@ -96,11 +96,12 @@ static inline bool arch_irqs_disabled(void)
#endif

#define hard_irq_disable()	do {			\
	u8 _was_enabled = get_paca()->soft_enabled;	\
	__hard_irq_disable();				\
	if (local_paca->soft_enabled)			\
		trace_hardirqs_off();			\
	get_paca()->soft_enabled = 0;			\
	get_paca()->irq_happened |= PACA_IRQ_HARD_DIS;	\
	if (_was_enabled)				\
		trace_hardirqs_off();			\
} while(0)

static inline bool lazy_irq_pending(void)
+4 −1
Original line number Diff line number Diff line
@@ -243,7 +243,8 @@ enum OpalMCE_TlbErrorType {

enum OpalThreadStatus {
	OPAL_THREAD_INACTIVE = 0x0,
	OPAL_THREAD_STARTED = 0x1
	OPAL_THREAD_STARTED = 0x1,
	OPAL_THREAD_UNAVAILABLE = 0x2 /* opal-v3 */
};

enum OpalPciBusCompare {
@@ -563,6 +564,8 @@ extern void opal_nvram_init(void);

extern int opal_machine_check(struct pt_regs *regs);

extern void opal_shutdown(void);

#endif /* __ASSEMBLY__ */

#endif /* __OPAL_H */
Loading