aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng2015-07-30 03:49:13 -0700
committerSimon Glass2015-08-05 08:42:38 -0600
commit1e7a04730426a96110989ed9c2bafb0d66ec2428 (patch)
treebb24547509ecf520ef441542132656ed3e3ddb90
parenta2eb65fcad4c66ee6992e18d8bea15fd0b07886e (diff)
x86: Sanity test on vesa parameters before setting up kernel screen_info
We should not set up kernel screen_info when the vesa parameters are insane, otherwise kernel will panic. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/pci/pci_rom.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci_rom.c b/drivers/pci/pci_rom.c
index a33efae2636..26db3ca0a13 100644
--- a/drivers/pci/pci_rom.c
+++ b/drivers/pci/pci_rom.c
@@ -235,6 +235,10 @@ void setup_video(struct screen_info *screen_info)
#ifdef CONFIG_FRAMEBUFFER_SET_VESA_MODE
struct vesa_mode_info *vesa = &mode_info.vesa;
+ /* Sanity test on VESA parameters */
+ if (!vesa->x_resolution || !vesa->y_resolution)
+ return;
+
screen_info->orig_video_isVGA = VIDEO_TYPE_VLFB;
screen_info->lfb_width = vesa->x_resolution;