lkml.org 
[lkml]   [2011]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH 09/34] x86: Allow to override the ROOT_DEV variable
    From
    Date
    On Mon, 2011-04-11 at 17:08 +0200, Michal Marek wrote:
    > Subject: [PATCH] x86: Do not set the rood_dev field in bzImage
    >
    > This has been obsoleted by the root= commandline for several years.
    > People who still depend on this will surely have a copy of the rdev
    > command around, the rest of the world gets rid of another piece of
    > buildhost-dependent data in the build.
    >
    > Cc: Thomas Gleixner <tglx@linutronix.de>
    > Cc: Ingo Molnar <mingo@redhat.com>
    > Cc: "H. Peter Anvin" <hpa@zytor.com>
    > Cc: x86@kernel.org
    > Signed-off-by: Michal Marek <mmarek@suse.cz>
    > ---
    > arch/x86/boot/Makefile | 9 +--------
    > 1 files changed, 1 insertions(+), 8 deletions(-)
    >
    > diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
    > index f7cb086..95365a8 100644
    > --- a/arch/x86/boot/Makefile
    > +++ b/arch/x86/boot/Makefile
    > @@ -9,12 +9,6 @@
    > # Changed by many, many contributors over the years.
    > #
    >
    > -# ROOT_DEV specifies the default root-device when making the image.
    > -# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
    > -# the default of FLOPPY is used by 'build'.
    > -
    > -ROOT_DEV := CURRENT
    > -
    > # If you want to preset the SVGA mode, uncomment the next line and
    > # set SVGA_MODE to whatever number you want.
    > # Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
    > @@ -75,8 +69,7 @@ GCOV_PROFILE := n
    > $(obj)/bzImage: asflags-y := $(SVGA_MODE)
    >
    > quiet_cmd_image = BUILD $@
    > -cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin \
    > - $(ROOT_DEV) > $@
    > +cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin > $@
    >
    > $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE
    > $(call if_changed,image)

    I'm not familiar with the rdev command. I assume it allows one to
    manipulate the two rootdev bytes in a kernel image. 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
    --- 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);




    \
     
     \ /
      Last update: 2011-04-12 07:05    [W:0.041 / U:0.120 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site