The patch titled Prep for paravirt: Be careful about touching BIOS address space has been added to the -mm tree. Its filename is prep-for-paravirt-be-careful-about-touching-bios.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: Prep for paravirt: Be careful about touching BIOS address space From: Rusty Russell <rusty@xxxxxxxxxxxxxxx> BIOS ROM areas may not be mapped into the guest address space, so be careful when touching those addresses to make sure they appear to be mapped. Signed-off-by: Jeremy Fitzhardinge <jeremy@xxxxxxxxxxxxx> Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx> Cc: Andi Kleen <ak@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/kernel/setup.c | 9 ++++++++- arch/i386/pci/pcbios.c | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/setup.c~prep-for-paravirt-be-careful-about-touching-bios arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c~prep-for-paravirt-be-careful-about-touching-bios +++ a/arch/i386/kernel/setup.c @@ -270,7 +270,14 @@ static struct resource standard_io_resou .flags = IORESOURCE_BUSY | IORESOURCE_IO } }; -#define romsignature(x) (*(unsigned short *)(x) == 0xaa55) +static inline int romsignature(const unsigned char *x) +{ + unsigned short sig; + int ret = 0; + if (__get_user(sig, (const unsigned short *)x) == 0) + ret = (sig == 0xaa55); + return ret; +} static int __init romchecksum(unsigned char *rom, unsigned long length) { diff -puN arch/i386/pci/pcbios.c~prep-for-paravirt-be-careful-about-touching-bios arch/i386/pci/pcbios.c --- a/arch/i386/pci/pcbios.c~prep-for-paravirt-be-careful-about-touching-bios +++ a/arch/i386/pci/pcbios.c @@ -5,6 +5,7 @@ #include <linux/pci.h> #include <linux/init.h> #include <linux/module.h> +#include <asm/uaccess.h> #include "pci.h" #include "pci-functions.h" @@ -301,7 +302,7 @@ static struct pci_raw_ops pci_bios_acces static struct pci_raw_ops * __devinit pci_find_bios(void) { - union bios32 *check; + union bios32 *check, sig; unsigned char sum; int i, length; @@ -314,6 +315,10 @@ static struct pci_raw_ops * __devinit pc for (check = (union bios32 *) __va(0xe0000); check <= (union bios32 *) __va(0xffff0); ++check) { + long sig; + if (__get_user(sig, &check->fields.signature)) + continue; + if (check->fields.signature != BIOS32_SIGNATURE) continue; length = check->fields.length * 16; _ Patches currently in -mm which might be from rusty@xxxxxxxxxxxxxxx are prep-for-paravirt-be-careful-about-touching-bios.patch prep-for-paravirt-cpu_detect-extraction.patch prep-for-paravirt-desch-clearer-parameter-names.patch prep-for-paravirt-rearrange-processorh.patch generic-bug-implementation.patch generic-bug-for-i386.patch generic-bug-for-x86-64.patch bug-test-1.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html