提交 0cc6d77e 编写于 作者: L Linus Torvalds

Merge branch 'x86-setup-for-linus' of...

Merge branch 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, e820: Guard against array overflowed in __e820_add_region()
  x86, setup: remove obsolete pre-Kconfig CONFIG_VIDEO_ variables
......@@ -31,7 +31,6 @@ static inline void vesa_store_mode_params_graphics(void) {}
static int vesa_probe(void)
{
#if defined(CONFIG_VIDEO_VESA) || defined(CONFIG_FIRMWARE_EDID)
struct biosregs ireg, oreg;
u16 mode;
addr_t mode_ptr;
......@@ -49,8 +48,7 @@ static int vesa_probe(void)
vginfo.signature != VESA_MAGIC ||
vginfo.version < 0x0102)
return 0; /* Not present */
#endif /* CONFIG_VIDEO_VESA || CONFIG_FIRMWARE_EDID */
#ifdef CONFIG_VIDEO_VESA
set_fs(vginfo.video_mode_ptr.seg);
mode_ptr = vginfo.video_mode_ptr.off;
......@@ -102,9 +100,6 @@ static int vesa_probe(void)
}
return nmodes;
#else
return 0;
#endif /* CONFIG_VIDEO_VESA */
}
static int vesa_set_mode(struct mode_info *mode)
......
......@@ -47,14 +47,6 @@ static u8 vga_set_basic_mode(void)
initregs(&ireg);
#ifdef CONFIG_VIDEO_400_HACK
if (adapter >= ADAPTER_VGA) {
ireg.ax = 0x1202;
ireg.bx = 0x0030;
intcall(0x10, &ireg, NULL);
}
#endif
ax = 0x0f00;
intcall(0x10, &ireg, &oreg);
mode = oreg.al;
......@@ -62,11 +54,9 @@ static u8 vga_set_basic_mode(void)
set_fs(0);
rows = rdfs8(0x484); /* rows minus one */
#ifndef CONFIG_VIDEO_400_HACK
if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) &&
(rows == 0 || rows == 24))
return mode;
#endif
if (mode != 3 && mode != 7)
mode = 3;
......
......@@ -221,7 +221,6 @@ static unsigned int mode_menu(void)
}
}
#ifdef CONFIG_VIDEO_RETAIN
/* Save screen content to the heap */
static struct saved_screen {
int x, y;
......@@ -299,10 +298,6 @@ static void restore_screen(void)
ireg.dl = saved.curx;
intcall(0x10, &ireg, NULL);
}
#else
#define save_screen() ((void)0)
#define restore_screen() ((void)0)
#endif
void set_video(void)
{
......
......@@ -17,19 +17,8 @@
#include <linux/types.h>
/* Enable autodetection of SVGA adapters and modes. */
#undef CONFIG_VIDEO_SVGA
/* Enable autodetection of VESA modes */
#define CONFIG_VIDEO_VESA
/* Retain screen contents when switching modes */
#define CONFIG_VIDEO_RETAIN
/* Force 400 scan lines for standard modes (hack to fix bad BIOS behaviour */
#undef CONFIG_VIDEO_400_HACK
/* This code uses an extended set of video mode numbers. These include:
/*
* This code uses an extended set of video mode numbers. These include:
* Aliases for standard modes
* NORMAL_VGA (-1)
* EXTENDED_VGA (-2)
......@@ -67,13 +56,8 @@
/* The "recalculate timings" flag */
#define VIDEO_RECALC 0x8000
/* Define DO_STORE according to CONFIG_VIDEO_RETAIN */
#ifdef CONFIG_VIDEO_RETAIN
void store_screen(void);
#define DO_STORE() store_screen()
#else
#define DO_STORE() ((void)0)
#endif /* CONFIG_VIDEO_RETAIN */
/*
* Mode table structures
......
......@@ -115,7 +115,7 @@ static void __init __e820_add_region(struct e820map *e820x, u64 start, u64 size,
{
int x = e820x->nr_map;
if (x == ARRAY_SIZE(e820x->map)) {
if (x >= ARRAY_SIZE(e820x->map)) {
printk(KERN_ERR "Ooops! Too many entries in the memory map!\n");
return;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册