summaryrefslogtreecommitdiffstats
path: root/arch/x86/include
diff options
context:
space:
mode:
authorLinn Crosetto <linn@hp.com>2013-08-13 15:46:41 -0600
committerH. Peter Anvin <hpa@linux.intel.com>2013-08-13 23:29:19 -0700
commit30e46b574a1db7d14404e52dca8e1aa5f5155fd2 (patch)
tree830c013b0e1bc37b77590df2998e664c89974571 /arch/x86/include
parent2449f343e4adc778de1c3d45b5aa14fe788663f5 (diff)
downloadlinux-stable-30e46b574a1db7d14404e52dca8e1aa5f5155fd2.tar.gz
linux-stable-30e46b574a1db7d14404e52dca8e1aa5f5155fd2.tar.bz2
linux-stable-30e46b574a1db7d14404e52dca8e1aa5f5155fd2.zip
x86: avoid remapping data in parse_setup_data()
Type SETUP_PCI, added by setup_efi_pci(), may advertise a ROM size larger than early_memremap() is able to handle, which is currently limited to 256kB. If this occurs it leads to a NULL dereference in parse_setup_data(). To avoid this, remap the setup_data header and allow parsing functions for individual types to handle their own data remapping. Signed-off-by: Linn Crosetto <linn@hp.com> Link: http://lkml.kernel.org/r/1376430401-67445-1-git-send-email-linn@hp.com Acked-by: Yinghai Lu <yinghai@kernel.org> Reviewed-by: Pekka Enberg <penberg@kernel.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include')
-rw-r--r--arch/x86/include/asm/e820.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index cccd07fa5e3a..779c2efe2e97 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -29,7 +29,7 @@ extern void e820_setup_gap(void);
extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize,
unsigned long start_addr, unsigned long long end_addr);
struct setup_data;
-extern void parse_e820_ext(struct setup_data *data);
+extern void parse_e820_ext(u64 phys_addr, u32 data_len);
#if defined(CONFIG_X86_64) || \
(defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION))