From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/7] inflate pt1: clean up input logic
Date: Sat, 25 Feb 2006 16:37:37 -0600 [thread overview]
Message-ID: <20060225223737.GO13116@waste.org> (raw)
In-Reply-To: <20060225215850.GD15276@flint.arm.linux.org.uk>
On Sat, Feb 25, 2006 at 09:58:50PM +0000, Russell King wrote:
> On Sat, Feb 25, 2006 at 03:47:04PM -0600, Matt Mackall wrote:
> > On Sat, Feb 25, 2006 at 09:22:48PM +0000, Russell King wrote:
> > > init/do_mounts_rd.c:#include "../lib/inflate.c"
> > > init/initramfs.c:#include "../lib/inflate.c"
> > >
> > > for these your arguments that halting is fine is _NOT_ correct nor is it
> > > desirable.
> >
> > If you have an argument for why we shouldn't halt on failed
> > init{rd,ramfs} decompression, I look forward to hearing it.
> >
> > > Did you read that post?
> >
> > This? http://www.ussg.iu.edu/hypermail/linux/kernel/0312.2/1024.html
>
> Yes, that.
>
> > "The firmware then calls the kernel decompressor, which dutifully
> > decompresses the image, and calls the kernel. This image ends up
> > getting corrupted at some point."
> >
> > Is your argument that we shouldn't halt after encountering a corrupt
> > image?
>
> You're getting very confused.
>
> 1. kernel is loaded.
> 2. firmware scans loaded kernel, finds gzip magic numbers (the compressed
> kernel.)
> 3. firmware sets initrd pointeres to point at the compressed kernel.
> 4. firmware calls kernel decompressor.
> 5. kernel decompresses and self-relocates.
> 6. compressed kernel image is thereby partly corrupted.
> 7. kernel boots.
> 8. kernel tries to decompress the compressed kernel image.
> 9. decompressor gets confused and tries to gobble more data than is
> available.
> 10. kernel sits there being a dumb fuck.
Why are we attempting to decompress the kernel image again? Accident?
> > In my mind, being unable to decompress init* is every bit as fatal as
> > being unable to mount root.
>
> It's very simple. With fix, the kernel successfully boots on these
> machines. Without fix, the kernel hangs on these machines for _no_
> good reason other than the firmware did something that was stupid.
And how does this work currently? We attempt to decompress the kernel
a second time, give up and move on?
Assuming we can write to the compressed image (and thereby corrupt
it), wouldn't it be better to just stomp on the gzip magic and spare
us the overhead of decompressing it twice?
> I'm sorry, I just do not see why you're being soo bloody difficult
> over this.
Because it's taken this long to get close to an explanation of what
the problem is.
--
Mathematics is the supreme nostalgia of our time.
next prev parent reply other threads:[~2006-02-25 22:37 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <0.399206195@selenic.com>
2006-02-24 20:12 ` [PATCH 2/7] inflate pt1: kill legacy bits Matt Mackall
2006-02-24 20:12 ` [PATCH 3/7] inflate pt1: clean up input logic Matt Mackall
2006-02-24 22:19 ` Russell King
2006-02-25 6:51 ` Matt Mackall
2006-02-25 8:49 ` Russell King
2006-02-25 8:55 ` Russell King
2006-02-25 9:04 ` Andrew Morton
2006-02-25 9:09 ` Russell King
2006-02-25 14:54 ` Matt Mackall
2006-02-25 18:05 ` Russell King
2006-02-25 21:04 ` Matt Mackall
2006-02-25 21:22 ` Russell King
2006-02-25 21:47 ` Matt Mackall
2006-02-25 21:58 ` Russell King
2006-02-25 22:37 ` Matt Mackall [this message]
2006-02-25 22:57 ` Russell King
2006-02-27 1:18 ` Johannes Stezenbach
2006-02-27 8:32 ` Russell King
2006-02-27 12:07 ` Johannes Stezenbach
2006-02-27 15:47 ` Russell King
2006-02-27 9:06 ` Matt Mackall
2006-02-25 22:25 ` John Reiser
2006-03-07 23:26 ` H. Peter Anvin
2006-03-10 18:55 ` Matt Mackall
2006-02-24 20:12 ` [PATCH 1/7] inflate pt1: lindent and manual formatting changes Matt Mackall
2006-02-24 20:12 ` [PATCH 4/7] inflate pt1: start moving globals into iostate Matt Mackall
2006-02-24 20:12 ` [PATCH 5/7] inflate pt1: cleanup Huffman table code Matt Mackall
2006-02-24 21:52 ` John Reiser
2006-02-24 22:06 ` Matt Mackall
2006-02-24 20:12 ` [PATCH 6/7] inflate pt1: internalize CRC calculation, cleanup table calculation Matt Mackall
2006-02-24 20:12 ` [PATCH 7/7] inflate pt1: eliminate memzero usage Matt Mackall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060225223737.GO13116@waste.org \
--to=mpm@selenic.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox