From: Alan Cox Subject: Re: Runaway loop with the current git. Date: Sun, 7 Dec 2008 17:51:18 +0000 Message-ID: <20081207175118.09c633e8@lxorguk.ukuu.org.uk> References: <20081207112335.0afd5192@lxorguk.ukuu.org.uk> <20081207155507.GA15355@gondor.apana.org.au> <20081207160921.693f637a@lxorguk.ukuu.org.uk> <20081207163151.GA31838@ioremap.net> <20081207170108.39dfd93f@lxorguk.ukuu.org.uk> <20081207172855.55fee78f@lxorguk.ukuu.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: "Evgeniy Polyakov" , "Herbert Xu" , linux-kernel@vger.kernel.org, "Linux Crypto Mailing List" To: "Kay Sievers" Return-path: Received: from earthlight.etchedpixels.co.uk ([81.2.110.250]:60733 "EHLO lxorguk.ukuu.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752143AbYLGRvL (ORCPT ); Sun, 7 Dec 2008 12:51:11 -0500 In-Reply-To: Sender: linux-crypto-owner@vger.kernel.org List-ID: On Sun, 7 Dec 2008 18:39:48 +0100 "Kay Sievers" wrote: > On Sun, Dec 7, 2008 at 18:28, Alan Cox wrote: > >> > /dev/console is a logical mapping to a device which may well be > >> > different, loaded after PCI is initialised and dependant on PCI. > >> > >> So wrong. If no driver is associated, like early, in that case, we > >> must return -ENODEV, instead of calling modprobe in a loop. It's a > >> built-in device, and it's easy to fix. > > > > You've clearly no idea how initrd even works have you ? > > Not sure, if you understand the real problem. A kernel forked binary > is allowed to access /dev/console, but it triggers a kernel bug. If there is a hotplug load for the console device then it cannot. Just as a request for the driver for /dev/hda cannot open /dev/hda* again. > Nonsense. The kernel calls /sbin/modprobe directly, no hotplug involved. Its up to you if the kernel calls modprobe and what your modprobe is > The kernel calls modprobe for something, modprobe tries to log an > error, and the kernel calls modprobe again. Bug! No hotplug involved. A modprobe to load the console device shouln't open /dev/console. Very simple and always been true. > > Kernel issues hotplug message > > ..... > > Kernel detects this is stuck > > Kernel replies with -ENODEV/-ENXIO to try > > and rescue itself from buggy initrd scripts > > Totally wrong, It never was that way Funny but its been that way for many many years. Just as it cannot try and syslog an error when loading the AF_UNIX socket family. Alan