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
This commit is contained in:
Linus Torvalds 2009-09-14 08:01:47 -07:00
commit 0cc6d77e55
5 changed files with 4 additions and 40 deletions

View file

@ -31,7 +31,6 @@ static inline void vesa_store_mode_params_graphics(void) {}
static int vesa_probe(void) static int vesa_probe(void)
{ {
#if defined(CONFIG_VIDEO_VESA) || defined(CONFIG_FIRMWARE_EDID)
struct biosregs ireg, oreg; struct biosregs ireg, oreg;
u16 mode; u16 mode;
addr_t mode_ptr; addr_t mode_ptr;
@ -49,8 +48,7 @@ static int vesa_probe(void)
vginfo.signature != VESA_MAGIC || vginfo.signature != VESA_MAGIC ||
vginfo.version < 0x0102) vginfo.version < 0x0102)
return 0; /* Not present */ return 0; /* Not present */
#endif /* CONFIG_VIDEO_VESA || CONFIG_FIRMWARE_EDID */
#ifdef CONFIG_VIDEO_VESA
set_fs(vginfo.video_mode_ptr.seg); set_fs(vginfo.video_mode_ptr.seg);
mode_ptr = vginfo.video_mode_ptr.off; mode_ptr = vginfo.video_mode_ptr.off;
@ -102,9 +100,6 @@ static int vesa_probe(void)
} }
return nmodes; return nmodes;
#else
return 0;
#endif /* CONFIG_VIDEO_VESA */
} }
static int vesa_set_mode(struct mode_info *mode) static int vesa_set_mode(struct mode_info *mode)

View file

@ -47,14 +47,6 @@ static u8 vga_set_basic_mode(void)
initregs(&ireg); initregs(&ireg);
#ifdef CONFIG_VIDEO_400_HACK
if (adapter >= ADAPTER_VGA) {
ireg.ax = 0x1202;
ireg.bx = 0x0030;
intcall(0x10, &ireg, NULL);
}
#endif
ax = 0x0f00; ax = 0x0f00;
intcall(0x10, &ireg, &oreg); intcall(0x10, &ireg, &oreg);
mode = oreg.al; mode = oreg.al;
@ -62,11 +54,9 @@ static u8 vga_set_basic_mode(void)
set_fs(0); set_fs(0);
rows = rdfs8(0x484); /* rows minus one */ rows = rdfs8(0x484); /* rows minus one */
#ifndef CONFIG_VIDEO_400_HACK
if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) && if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) &&
(rows == 0 || rows == 24)) (rows == 0 || rows == 24))
return mode; return mode;
#endif
if (mode != 3 && mode != 7) if (mode != 3 && mode != 7)
mode = 3; mode = 3;

View file

@ -221,7 +221,6 @@ static unsigned int mode_menu(void)
} }
} }
#ifdef CONFIG_VIDEO_RETAIN
/* Save screen content to the heap */ /* Save screen content to the heap */
static struct saved_screen { static struct saved_screen {
int x, y; int x, y;
@ -299,10 +298,6 @@ static void restore_screen(void)
ireg.dl = saved.curx; ireg.dl = saved.curx;
intcall(0x10, &ireg, NULL); intcall(0x10, &ireg, NULL);
} }
#else
#define save_screen() ((void)0)
#define restore_screen() ((void)0)
#endif
void set_video(void) void set_video(void)
{ {

View file

@ -17,19 +17,8 @@
#include <linux/types.h> #include <linux/types.h>
/* Enable autodetection of SVGA adapters and modes. */ /*
#undef CONFIG_VIDEO_SVGA * This code uses an extended set of video mode numbers. These include:
/* 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:
* Aliases for standard modes * Aliases for standard modes
* NORMAL_VGA (-1) * NORMAL_VGA (-1)
* EXTENDED_VGA (-2) * EXTENDED_VGA (-2)
@ -67,13 +56,8 @@
/* The "recalculate timings" flag */ /* The "recalculate timings" flag */
#define VIDEO_RECALC 0x8000 #define VIDEO_RECALC 0x8000
/* Define DO_STORE according to CONFIG_VIDEO_RETAIN */
#ifdef CONFIG_VIDEO_RETAIN
void store_screen(void); void store_screen(void);
#define DO_STORE() store_screen() #define DO_STORE() store_screen()
#else
#define DO_STORE() ((void)0)
#endif /* CONFIG_VIDEO_RETAIN */
/* /*
* Mode table structures * Mode table structures

View file

@ -115,7 +115,7 @@ static void __init __e820_add_region(struct e820map *e820x, u64 start, u64 size,
{ {
int x = e820x->nr_map; 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"); printk(KERN_ERR "Ooops! Too many entries in the memory map!\n");
return; return;
} }