On Monday 28 May 2007 4:48 am, Michael-Luke Jones wrote:I'd love to write up documentation on this if anybody can tell me what it should say. :) And for block devices ala: https://bugs.launchpad.net/ubuntu/dapper/+source/initramfs-tools/+bug/74004 https://issues.rpath.com/browse/RPL-1350 The first use could be "mount" or open of the block device under /dev. So now you have the mount and open syscalls returning -ENOFIRMWARE. This is not a small change. Userspace doesn't have to register a hotplug handler: /sys/hotplug is the default and if there is one in initramfs it should get called. You shouldn't have to wait for init to run for this to be the case. I believe the initramfs cpio archive used to get extracted just before the attempt to exec /init out of it, and that it was moved to much earlier in the boot process so that firmware loading could be done out of it for statically linked drivers. Look at do_basic_setup() in init/main.c: notice how usermodehelper_init() gets called right before driver_init(). Ask yourself: "why did it do that"? Notice how rest_init() forks the first kernel thread (PID 1) to run kernel_init(), and then becomes PID 0 (the idle task). So from kernel_init() it's ok to spawn all the new tasks we want because they can't take any reserved PIDs. Because of course every userspace utility in the world will immediately be rewritten to provide clear and informative error messages for this race condition corner case. Somehow, I can't bring myself to believe this. Why would you make two different code paths for module load and first use? Happy to. I'm just trying to figure out what the correct behavior is so I can document it. Rob -
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Rafael J. Wysocki | Re: Linux 2.6.27-rc5: System boot regression caused by commit a2bd7274b47124d2fc4d... |
git: | |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
