Re: [PATCH] PCI hotplug: ibmphp: Add check to prevent readingbeyond mapped area
From: Jesse Barnes
Date: Thu Nov 11 2010 - 12:09:28 EST
On Mon, 08 Nov 2010 23:20:27 -0500
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> While testing various randconfigs with ktest.pl, I hit the following panic:
>
> BUG: unable to handle kernel paging request at f7e54b03
> IP: [<c0d63409>] ibmphp_access_ebda+0x101/0x19bb
>
> Adding printks, I found that the loop that reads the ebda blocks
> can move out of the mapped section.
>
> ibmphp_access_ebda: start=f7e44c00 size=5120 end=f7e46000
> ibmphp_access_ebda: io_mem=f7e44d80 offset=384
> ibmphp_access_ebda: io_mem=f7e54b03 offset=65283
>
> The start of the iomap was at f7e44c00 and had a size of 5120,
> making the end f7e46000. We start with an offset of 0x180 or
> 384, giving the first read at 0xf7e44d80. Reading that location
> yields 65283, which is much bigger than the 5120 that was allocated
> and makes the next read at f7e54b03 which is outside the mapped area.
>
> Perhaps this is a bug in the driver, or buggy hardware, but this patch
> is more about not crashing my box on start up and just giving a warning
> if it detects this error.
>
> This patch at least lets my box boot with just a warning.
>
> Cc: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
> Cc: Chandru Siddalingappa <chandru@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
> ---
> drivers/pci/hotplug/ibmphp_ebda.c | 6 ++++++
> 1 file changed, 6 insertions(+)
Applied to my for-linus branch, thanks.
--
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/