[go: up one dir, main page]

|
|
Log in / Subscribe / Register

Re: [GIT PULL] Squashfs updates for 2.6.34

From:  Linus Torvalds <torvalds-AT-linux-foundation.org>
To:  Phillip Lougher <phillip-AT-lougher.demon.co.uk>
Subject:  Re: [GIT PULL] Squashfs updates for 2.6.34
Date:  Wed, 3 Mar 2010 19:49:24 -0800 (PST)
Cc:  Linux Kernel Development <linux-kernel-AT-vger.kernel.org>, Andrew Morton <akpm-AT-linux-foundation.org>, Alain Knaff <alain-AT-knaff.lu>, Peter Anvin <hpa-AT-zytor.com>



On Thu, 4 Mar 2010, Phillip Lougher wrote:
> 
> In my defence with these patches I was trying for the best solution while
> touching as little of the mess as possible.  As that's not acceptable, I'll
> go away and try and fix some of the mess, before trying for another merge.

I know, I understand. The whole thing is messy as hell, I just don't want 
that mess to spread even more.

Let's ask Peter for help. He's been involved with that whole crazy init 
loader decompressor thing.

Peter, see the thread and my unhappiness on lkml (if you don't have any 
other archives, see for example http://lkml.org/lkml/2010/3/3/275).

That whole crazy "let's hide a crappy malloc implementation in a header 
file, and then make things depend on '#ifdef STATIC'" just makes me puke. 
And I'm sure Phillip has been gouging his eyes out too, while he was 
spreading it out into those _new_ crazy header file fragments for each 
decompressor.

So rather than have those crazy header file tricks, can we just add a 
kmalloc() _library_ file for the crazy bootloader crud, so that the 
bootloader could just share header files with the regular kernel, and not 
do that crazy thing?

It's insane having that malloc() implementation, and those STATIC games, 
in a header file, and the games we play with "error()" sometimes being a 
function pointer and sometimes being a function. Crazy, crazy.

So Phillip split up these things:

	#ifdef STATIC
	/* Code active when included from pre-boot environment: */
	#define INIT
	#else
	/* Compile for initramfs/initrd code only */
	#define INIT __init
	static void(*error)(char *m);
	#endif

and I refuse to see three new copies of that disgusting thing (bunzip, 
inflate, lzma). So I'd really _really_ want for the pre-boot environment 
to have that same __init declaration, and the _same_ indirect error() 
handler model, so that we don't have this kind of thing spreading.

It was ugly enough in <compress/mm.h> (which really should be nuked from 
orbit - it's the only way to be sure), but when I see it spreading, I go 
into full zombie-attack mode, and want to start up the chainsaw and run 
around naked.

		Linus



to post comments


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds