summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/epapr_hcalls.h
diff options
context:
space:
mode:
authorLaurentiu TUDOR <Laurentiu.Tudor@freescale.com>2013-07-03 17:13:15 +0300
committerScott Wood <scottwood@freescale.com>2013-08-07 18:38:06 -0500
commit4e21b94c9c644c43223878f4c848e852743e789c (patch)
tree70671b6571cb5c92752264d26a174cbc0d9034b8 /arch/powerpc/include/asm/epapr_hcalls.h
parentf31dd9443afd35696a833c2a32d584a9257abd40 (diff)
downloadblackbird-op-linux-4e21b94c9c644c43223878f4c848e852743e789c.tar.gz
blackbird-op-linux-4e21b94c9c644c43223878f4c848e852743e789c.zip
powerpc/85xx: Move ePAPR paravirt initialization earlier
At console init, when the kernel tries to flush the log buffer the ePAPR byte-channel based console write fails silently, losing the buffered messages. This happens because The ePAPR para-virtualization init isn't done early enough so that the hcall instruction to be set, causing the byte-channel write hcall to be a nop. To fix, change the ePAPR para-virt init to use early device tree functions and move it in early init. Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/include/asm/epapr_hcalls.h')
-rw-r--r--arch/powerpc/include/asm/epapr_hcalls.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h
index d3d634274d2c..86b0ac79990c 100644
--- a/arch/powerpc/include/asm/epapr_hcalls.h
+++ b/arch/powerpc/include/asm/epapr_hcalls.h
@@ -105,6 +105,12 @@
extern bool epapr_paravirt_enabled;
extern u32 epapr_hypercall_start[];
+#ifdef CONFIG_EPAPR_PARAVIRT
+int __init epapr_paravirt_early_init(void);
+#else
+static inline int epapr_paravirt_early_init(void) { return 0; }
+#endif
+
/*
* We use "uintptr_t" to define a register because it's guaranteed to be a
* 32-bit integer on a 32-bit platform, and a 64-bit integer on a 64-bit
OpenPOWER on IntegriCloud