Subject: Re: linux-next: fastboot tree build warning

From: Ingo Molnar <[email-masked]>
Date: Thu, 4 Sep 2008 12:04:25 +0200

* Stephen Rothwell <[email-masked]> wrote:

> Hi Arjan,
> 
> The linux-next build produces the following warning:
> 
> init/do_mounts_md.c: In function 'md_run_setup':
> init/do_mounts_md.c:282: warning: ISO C90 forbids mixed declarations and code
> 
> Introduced by commit b52c36a95ed8026b6925fe8595ebcab6921ae62d ("fastboot:
> make the raid autodetect code wait for all devices to init").

i have this already fixed via the commit below - not yet pushed into the 
auto branches.

	Ingo

------------------>
From 606bd348acae9dc99f7f01a4cb3a416c7c753e9d Mon Sep 17 00:00:00 2001
From: Ingo Molnar <[email-masked]>
Date: Mon, 18 Aug 2008 12:54:00 +0200
Subject: [PATCH] warning: fix init do_mounts_md c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

fix warning:

  init/do_mounts_md.c: In function ‘md_run_setup’:
  init/do_mounts_md.c:282: warning: ISO C90 forbids mixed declarations and code

also, use the opportunity to put the RAID autodetection code
into a separate function - this also solves a checkpatch style warning.

No code changed:

md5:
   aa36a35faef371b05f1974ad583bdbbd  do_mounts_md.o.before.asm
   aa36a35faef371b05f1974ad583bdbbd  do_mounts_md.o.after.asm

Signed-off-by: Ingo Molnar <[email-masked]>
---
 init/do_mounts_md.c |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
index 1ec5c41..c0dfd3c 100644
--- a/init/do_mounts_md.c
+++ b/init/do_mounts_md.c
@@ -264,26 +264,32 @@ static int __init raid_setup(char *str)
 __setup("raid=", raid_setup);
 __setup("md=", md_setup);
 
+static void autodetect_raid(void)
+{
+	int fd;
+
+	/*
+	 * Since we don't want to detect and use half a raid array, we need to
+	 * wait for the known devices to complete their probing
+	 */
+	printk(KERN_INFO "md: Waiting for all devices to be available before autodetect\n");
+	printk(KERN_INFO "md: If you don't use raid, use raid=noautodetect\n");
+	while (driver_probe_done() < 0)
+		msleep(100);
+	fd = sys_open("/dev/md0", 0, 0);
+	if (fd >= 0) {
+		sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
+		sys_close(fd);
+	}
+}
+
 void __init md_run_setup(void)
 {
 	create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
 
 	if (raid_noautodetect)
 		printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n");
-	else {
-		/* 
-		 * Since we don't want to detect and use half a raid array, we need to
-		 * wait for the known devices to complete their probing
-		 */
-		printk(KERN_INFO "md: Waiting for all devices to be available before autodetect\n");
-		printk(KERN_INFO "md: If you don't use raid, use raid=noautodetect\n");
-		while (driver_probe_done() < 0)
-			msleep(100);
-		int fd = sys_open("/dev/md0", 0, 0);
-		if (fd >= 0) {
-			sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
-			sys_close(fd);
-		}
-	}
+	else
+		autodetect_raid();
 	md_setup_drive();
 }