diff options
Diffstat (limited to 'arch/i386/kernel/e820.c')
-rw-r--r-- | arch/i386/kernel/e820.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/i386/kernel/e820.c b/arch/i386/kernel/e820.c index b755255f2721..b704790f7969 100644 --- a/arch/i386/kernel/e820.c +++ b/arch/i386/kernel/e820.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
10 | #include <linux/efi.h> | 10 | #include <linux/efi.h> |
11 | #include <linux/pfn.h> | 11 | #include <linux/pfn.h> |
12 | #include <linux/uaccess.h> | ||
12 | 13 | ||
13 | #include <asm/pgtable.h> | 14 | #include <asm/pgtable.h> |
14 | #include <asm/page.h> | 15 | #include <asm/page.h> |
@@ -155,7 +156,14 @@ static struct resource standard_io_resources[] = { { | |||
155 | .flags = IORESOURCE_BUSY | IORESOURCE_IO | 156 | .flags = IORESOURCE_BUSY | IORESOURCE_IO |
156 | } }; | 157 | } }; |
157 | 158 | ||
158 | #define romsignature(x) (*(unsigned short *)(x) == 0xaa55) | 159 | static int romsignature(const unsigned char *x) |
160 | { | ||
161 | unsigned short sig; | ||
162 | int ret = 0; | ||
163 | if (probe_kernel_address((const unsigned short *)x, sig) == 0) | ||
164 | ret = (sig == 0xaa55); | ||
165 | return ret; | ||
166 | } | ||
159 | 167 | ||
160 | static int __init romchecksum(unsigned char *rom, unsigned long length) | 168 | static int __init romchecksum(unsigned char *rom, unsigned long length) |
161 | { | 169 | { |