NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/46732: setroot(9) is called twice after "MI rootonwedges"changes



The following reply was made to PR kern/46732; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: mlelstv%serpens.de@localhost
Cc: gnats-bugs%NetBSD.org@localhost, mlelstv%NetBSD.org@localhost, 
tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/46732: setroot(9) is called twice after "MI 
rootonwedges"changes
Date: Fri, 27 Jul 2012 00:48:07 +0900

 mlelstv@ wrote:
 
 > On Wed, Jul 25, 2012 at 08:56:55PM +0900, Izumi Tsutsui wrote:
 > > mlelstv@ wrote:
 > > 
 > > > And as my idea for rootconf() was to also clean up the root-on-raidframe
 > > > hack later, things would be even more complicated.
 > > 
 > > What won't actually work are you claiming?
 > > Just root on wedge (or raidframe) case?
 > 
 > Yes.
 > 
 > 
 > > Not RB_ASKNAME case, but "bootloader is loaded via network,
 > > but a kernel needs to be loaded from harddisk (or viceversa)."
 > > 
 > > In that case, a user has to specify a kernel loadpath (including
 > > device name) on the bootloader's prompt at the first boot, but
 > > no need to specify it on the bootloader prompt after reboot.
 > 
 > Sounds like a strange edge case. Isn't passing back the loadpath
 > much easier?
 
 Before MI root on wedge changes:
  - main()
    - cpu_rootconf()
      - [MD pre setroot() ops]
      - setroot(md_boot_device, md_boot_partition)
      - [MD post setroot() ops]
 
 After MI root on wedge changes:
  - main()
    - rootconf()
      - cpu_rootconf()
        - [MD pre setroot() ops]
        - setroot(md_boot_device, md_boot_partition)
        - [MD post setroot() ops]
      - rootconf_handle_wedges()
      - setroot(booted_device, booted_partition)
 
 Your proposed fix is:
  - main()
    - rootconf()
      - cpu_rootconf()
        - [MD pre setroot() ops]
        - booted_device = md_boot_device
        - booted_partition = md_booted_partition
      - rootconf_handle_wedges()
      - setroot(booted_device, booted_partition)
        (no place to put MD post setroot() ops so we have to rewrite them)
 
 What I asked is:
  - main()
    - cpu_rootconf()
      - [MD pre setroot() ops]
      - booted_device = md_boot_device
      - booted_partition = md_booted_partition
      - rootconf()
        - rootconf_handle_wedges()
        - setroot(booted_device, booted_partition)
      - [MD post setroot() ops]
 
 
 What is not easier with the last one?
 
 At least hp300 GENERIC kernel works without extra MD fixes
 other than rootconf()/setroot() changes for wedges.
 
 ---
 Izumi Tsutsui
 


Home | Main Index | Thread Index | Old Index