Message ID | 1302584470.26451.11.camel@x61.thuisdomein (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 12.4.2011 07:01, Paul Bolle wrote: > On Mon, 2011-04-11 at 17:08 +0200, Michal Marek wrote: >> Subject: [PATCH] x86: Do not set the rood_dev field in bzImage [...] > I'm not familiar with the rdev command. I assume it allows one to > manipulate the two rootdev bytes in a kernel image. Yes. > Anyhow, shouldn't > the above patch be complemented with something like the following? > > diff --git a/arch/x86/boot/tools/build.c b/arch/x86/boot/tools/build.c > index ee3a4ea..fdc60a0 100644 That makes sense. Will you send it as a proper patch or should I fold it into my patch? Michal > --- a/arch/x86/boot/tools/build.c > +++ b/arch/x86/boot/tools/build.c > @@ -130,7 +130,7 @@ static void die(const char * str, ...) > > static void usage(void) > { > - die("Usage: build setup system [rootdev] [> image]"); > + die("Usage: build setup system [> image]"); > } > > int main(int argc, char ** argv) > @@ -138,39 +138,14 @@ int main(int argc, char ** argv) > unsigned int i, sz, setup_sectors; > int c; > u32 sys_size; > - u8 major_root, minor_root; > struct stat sb; > FILE *file; > int fd; > void *kernel; > u32 crc = 0xffffffffUL; > > - if ((argc< 3) || (argc> 4)) > + if (argc != 3) > usage(); > - if (argc> 3) { > - if (!strcmp(argv[3], "CURRENT")) { > - if (stat("/",&sb)) { > - perror("/"); > - die("Couldn't stat /"); > - } > - major_root = major(sb.st_dev); > - minor_root = minor(sb.st_dev); > - } else if (strcmp(argv[3], "FLOPPY")) { > - if (stat(argv[3],&sb)) { > - perror(argv[3]); > - die("Couldn't stat root device."); > - } > - major_root = major(sb.st_rdev); > - minor_root = minor(sb.st_rdev); > - } else { > - major_root = 0; > - minor_root = 0; > - } > - } else { > - major_root = DEFAULT_MAJOR_ROOT; > - minor_root = DEFAULT_MINOR_ROOT; > - } > - fprintf(stderr, "Root device is (%d, %d)\n", major_root, minor_root); > > /* Copy the setup code */ > file = fopen(argv[1], "r"); > @@ -193,8 +168,8 @@ int main(int argc, char ** argv) > memset(buf+c, 0, i-c); > > /* Set the default root device */ > - buf[508] = minor_root; > - buf[509] = major_root; > + buf[508] = DEFAULT_MINOR_ROOT; > + buf[509] = DEFAULT_MAJOR_ROOT; > > fprintf(stderr, "Setup is %d bytes (padded to %d bytes).\n", c, i); > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2011-04-12 at 11:57 +0200, Michal Marek wrote: > That makes sense. Will you send it as a proper patch or should I fold it > into my patch? I suggest you fold it into your patch, so everything is cleaned up in a single commit. Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/boot/tools/build.c b/arch/x86/boot/tools/build.c index ee3a4ea..fdc60a0 100644 --- a/arch/x86/boot/tools/build.c +++ b/arch/x86/boot/tools/build.c @@ -130,7 +130,7 @@ static void die(const char * str, ...) static void usage(void) { - die("Usage: build setup system [rootdev] [> image]"); + die("Usage: build setup system [> image]"); } int main(int argc, char ** argv) @@ -138,39 +138,14 @@ int main(int argc, char ** argv) unsigned int i, sz, setup_sectors; int c; u32 sys_size; - u8 major_root, minor_root; struct stat sb; FILE *file; int fd; void *kernel; u32 crc = 0xffffffffUL; - if ((argc < 3) || (argc > 4)) + if (argc != 3) usage(); - if (argc > 3) { - if (!strcmp(argv[3], "CURRENT")) { - if (stat("/", &sb)) { - perror("/"); - die("Couldn't stat /"); - } - major_root = major(sb.st_dev); - minor_root = minor(sb.st_dev); - } else if (strcmp(argv[3], "FLOPPY")) { - if (stat(argv[3], &sb)) { - perror(argv[3]); - die("Couldn't stat root device."); - } - major_root = major(sb.st_rdev); - minor_root = minor(sb.st_rdev); - } else { - major_root = 0; - minor_root = 0; - } - } else { - major_root = DEFAULT_MAJOR_ROOT; - minor_root = DEFAULT_MINOR_ROOT; - } - fprintf(stderr, "Root device is (%d, %d)\n", major_root, minor_root); /* Copy the setup code */ file = fopen(argv[1], "r"); @@ -193,8 +168,8 @@ int main(int argc, char ** argv) memset(buf+c, 0, i-c); /* Set the default root device */ - buf[508] = minor_root; - buf[509] = major_root; + buf[508] = DEFAULT_MINOR_ROOT; + buf[509] = DEFAULT_MAJOR_ROOT; fprintf(stderr, "Setup is %d bytes (padded to %d bytes).\n", c, i);