Skip to contentSkip to conversation

Split initrd logic out of early_init_dt_scan_chosen() to fix warning

PATCH In review Michael Ellerman 2 participants 3 messages May 10, 2007 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Split initrd logic out of early_init_dt_scan_chosen() to fix warning

If CONFIG_BLK_DEV_INITRD is not defined the prop variable in early_init_dt_scan_chosen() is unused, causing a compiler warning.

So split the initrd logic into a separate function, allowing us to declare prop only when we need it.

Built for both cases and booted with an initrd.

---

 arch/powerpc/kernel/prom.c |   48 ++++++++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 16 deletions(-)
arch/powerpc/kernel/prom.c +32 -16
Index: powerpc/arch/powerpc/kernel/prom.c
===================================================================
@@ -716,11 +716,41 @@ static int __init early_init_dt_scan_cpu
 	return 0;
 }
 
+#ifdef CONFIG_BLK_DEV_INITRD
+static void __init early_init_dt_check_for_initrd(unsigned long node)
+{
+	unsigned long l;
+	u32 *prop;
+
+	DBG("Looking for initrd properties... ");
+
+	prop = of_get_flat_dt_prop(node, "linux,initrd-start", &l);
+	if (prop) {
+		initrd_start = (unsigned long)__va(of_read_ulong(prop, l/4));
+
+		prop = of_get_flat_dt_prop(node, "linux,initrd-end", &l);
+		if (prop) {
+			initrd_end = (unsigned long)
+					__va(of_read_ulong(prop, l/4));
+			initrd_below_start_ok = 1;
+		} else {
+			initrd_start = 0;
+		}
+	}
+
+	DBG("initrd_start=0x%lx  initrd_end=0x%lx\n", initrd_start, initrd_end);
+}
+#else
+static inline void early_init_dt_check_for_initrd(unsigned long node)
+{
+	return;
+}
+#endif /* CONFIG_BLK_DEV_INITRD */
+
 static int __init early_init_dt_scan_chosen(unsigned long node,
 					    const char *uname, int depth, void *data)
 {
 	unsigned long *lprop;
-	u32 *prop;
 	unsigned long l;
 	char *p;
 
@@ -762,21 +792,7 @@ static int __init early_init_dt_scan_cho
                crashk_res.end = crashk_res.start + *lprop - 1;
 #endif
 
-#ifdef CONFIG_BLK_DEV_INITRD
-	DBG("Looking for initrd properties... ");
-	prop = of_get_flat_dt_prop(node, "linux,initrd-start", &l);
-	if (prop) {
-		initrd_start = (unsigned long)__va(of_read_ulong(prop, l/4));
-		prop = of_get_flat_dt_prop(node, "linux,initrd-end", &l);
-		if (prop) {
-			initrd_end = (unsigned long)__va(of_read_ulong(prop, l/4));
-			initrd_below_start_ok = 1;
-		} else {
-			initrd_start = 0;
-		}
-	}
-	DBG("initrd_start=0x%lx  initrd_end=0x%lx\n", initrd_start, initrd_end);
-#endif /* CONFIG_BLK_DEV_INITRD */
+	early_init_dt_check_for_initrd(node);
 
 	/* Retreive command line */
  	p = of_get_flat_dt_prop(node, "bootargs", &l);
#1 lore raw
Quoted 20 lines · Michael Ellerman

If CONFIG_BLK_DEV_INITRD is not defined the prop variable in early_init_dt_scan_chosen() is unused, causing a compiler warning.

So split the initrd logic into a separate function, allowing us to declare prop only when we need it.

Built for both cases and booted with an initrd.

---

 arch/powerpc/kernel/prom.c |   48 ++++++++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 16 deletions(-)

Index: powerpc/arch/powerpc/kernel/prom.c
===================================================================

arch/powerpc/kernel/prom.c +0 -0
@@ -716,11 +716,41 @@ static int __init early_init_dt_scan_cpu
 	return 0;

arch/powerpc/kernel/prom.c static int __init early_init_dt_scan_cpu · line 726

Quoted 10 lines
arch/powerpc/kernel/prom.c +7 -0
 }
 
+#ifdef CONFIG_BLK_DEV_INITRD
 
+#else
+static inline void early_init_dt_check_for_initrd(unsigned long node)
+{
+	return;
+}
+#endif /* CONFIG_BLK_DEV_INITRD */

There's no need to use `return' in functions returning void.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE) [email protected] ------- The Corporate Village, Da Vincilaan 7-D1 Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

#2 lore raw
Quoted 25 lines · Geert Uytterhoeven
Quoted 23 lines · Michael Ellerman

If CONFIG_BLK_DEV_INITRD is not defined the prop variable in early_init_dt_scan_chosen() is unused, causing a compiler warning.

So split the initrd logic into a separate function, allowing us to declare prop only when we need it.

Built for both cases and booted with an initrd.

---

 arch/powerpc/kernel/prom.c |   48 ++++++++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 16 deletions(-)

Index: powerpc/arch/powerpc/kernel/prom.c
===================================================================

arch/powerpc/kernel/prom.c +1 -0
@@ -716,11 +716,41 @@ static int __init early_init_dt_scan_cpu
 	return 0;
 }
 
+#ifdef CONFIG_BLK_DEV_INITRD
Quoted 8 lines

arch/powerpc/kernel/prom.c static int __init early_init_dt_scan_cpu · line 748

Quoted 6 lines
arch/powerpc/kernel/prom.c +6 -0
+#else
+static inline void early_init_dt_check_for_initrd(unsigned long node)
+{
+	return;
+}
+#endif /* CONFIG_BLK_DEV_INITRD */

There's no need to use `return' in functions returning void.

I think it looks nicer :)

cheers

Signature · 8 lines
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person