Commit e8973637 authored by Ben Dooks's avatar Ben Dooks Committed by Linus Torvalds

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: default avatarBen Dooks <ben-linux@fluff.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Vincent Sanders <vince@simtec.co.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c0d40335
...@@ -817,6 +817,12 @@ static int __init s3c24xxfb_probe(struct platform_device *pdev, ...@@ -817,6 +817,12 @@ static int __init s3c24xxfb_probe(struct platform_device *pdev,
return -EINVAL; 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; display = mach_info->displays + mach_info->default_display;
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment