From: Ben Dooks 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 --- drivers/video/s3c2410fb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff -puN drivers/video/s3c2410fb.c~fb-s3c2410-check-default_display-parameter-passed-in-platform-data drivers/video/s3c2410fb.c --- a/drivers/video/s3c2410fb.c~fb-s3c2410-check-default_display-parameter-passed-in-platform-data +++ a/drivers/video/s3c2410fb.c @@ -817,6 +817,12 @@ static int __init s3c24xxfb_probe(struct 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); _