Re: [PATCH RESEND] initramfs: cleanup incomplete rootfs

From: Andy Shevchenko
Date: Tue Feb 12 2019 - 08:50:17 EST


On Tue, Feb 12, 2019 at 2:12 PM David Engraf <david.engraf@xxxxxxxxx> wrote:
> On 12.02.19 at 11:43, Andy Shevchenko wrote:
> > On Mon, Feb 11, 2019 at 2:40 PM David Engraf <david.engraf@xxxxxxxxx> wrote:
> >> On 11.02.19 at 12:40, Andy Shevchenko wrote:

> >> Ok got it. When the memory behind the actual file size is clear (0x0)
> >> the decompression doesn't complain and just ignores the padding. Any
> >> other data will be interpreted as a new archive and thus you'll see the
> >> error message.
> >
> > Correct.
> >
> >> Is it possible for you to fill the padding after the actual file size
> >> with 0x00 ?
> >
> > Not sure. This is boot loader realm. Even if I patch U-Boot, not every
> > boot loader will guarantee this.
> > So, it's fragile to rely on data being 0x00 after actual archive.
>
> The problem is that the kernel expects another archive if there are data
> left. If these data do not contain a valid magic the kernel prints an
> error message which is correct.

Agree.

> I could make this error not critical and keep the rootfs, but it's still
> an error and unexpected.

I would rather call it a warning and continue.

Perhaps something like

static void warning(const char *msg)
{
...print warning...
return without assigning return value.
}

> You're using a modified bootloader which
> reports a size larger than the file itself.

This is not true. The size supplied by whatever user input through it
command line or configuration.

> Other bootloader will use
> the file size and report the correct size to the kernel.

This follows and thus not true either. It depends on boot loader completely.

> So this
> workaround is required by your setup only.

So this is not true.

> @Andrew: What do you think about that? Shall I create a workaround for
> the special case?
--
With Best Regards,
Andy Shevchenko