Anything in there will be overwritten, so it helps catching nasty
bugs if we check that it's indeed full of NULL's before we do so.

Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
---
 arch/powerpc/kernel/setup-common.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/powerpc/kernel/setup-common.c 
b/arch/powerpc/kernel/setup-common.c
index 2a3564c..7e85fac 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -575,6 +575,7 @@ void probe_machine(void)
 {
        extern struct machdep_calls __machine_desc_start;
        extern struct machdep_calls __machine_desc_end;
+       unsigned int i;
 
        /*
         * Iterate all ppc_md structures until we find the proper
@@ -582,6 +583,16 @@ void probe_machine(void)
         */
        DBG("Probing machine type ...\n");
 
+       /* Check ppc_md is empty, if not we have a bug, ie, we setup an
+        * entry before probe_machine() which will be overwritten
+        */
+       for (i = 0; i < (sizeof(ppc_md) / sizeof(void *)); i++) {
+               if (((void **)&ppc_md)[i]) {
+                       printk(KERN_ERR "Entry %d in ppc_md non empty before"
+                              " machine probe !\n", i);
+               }
+       }
+
        for (machine_id = &__machine_desc_start;
             machine_id < &__machine_desc_end;
             machine_id++) {
-- 
2.7.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to