From e8973637bd49de225130f9c04ceb388d48969d98 Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Wed, 6 Feb 2008 01:39:44 -0800 Subject: FB/S3C2410: check default_display parameter passed in platform data Ensure that the default display parameter passed in via the device's platform data is valid. It turns out when mach-bast.c was updated, the default_display was set outside of the display array bounds, causing a panic on startup. If the default_display is bigger than num_displays, then generate an error and refuse to initialise the driver. Signed-off-by: Ben Dooks Cc: "Antonino A. Daplas" Cc: Vincent Sanders Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/video/s3c2410fb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c index e63f536e9fe..71fa6edb5c4 100644 --- a/drivers/video/s3c2410fb.c +++ b/drivers/video/s3c2410fb.c @@ -817,6 +817,12 @@ static int __init s3c24xxfb_probe(struct platform_device *pdev, return -EINVAL; } + if (mach_info->default_display >= mach_info->num_displays) { + dev_err(&pdev->dev, "default is %d but only %d displays\n", + mach_info->default_display, mach_info->num_displays); + return -EINVAL; + } + display = mach_info->displays + mach_info->default_display; irq = platform_get_irq(pdev, 0); -- cgit