aboutsummaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-02-06 01:39:44 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-06 10:41:18 -0800
commite8973637bd49de225130f9c04ceb388d48969d98 (patch)
tree598aa995af584390fe3a1e0feb6280b8608272a0 /drivers/video
parentc0d40335353e1c89c9c885e5af4d0be0f1a50483 (diff)
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 <ben-linux@fluff.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Vincent Sanders <vince@simtec.co.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/s3c2410fb.c6
1 files changed, 6 insertions, 0 deletions
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);