Thread (23 messages) 23 messages, 4 authors, 2015-12-01

Re: [PATCH] video: fbdev: fsl: fix kernel crash when diu_ops is not implemented

From: Scott Wood <hidden>
Date: 2015-11-24 16:55:19

On Tue, 2015-11-24 at 11:54 -0500, Timur Tabi wrote:
On Tue, Nov 24, 2015 at 11:15 AM, Scott Wood [off-list ref]
wrote:
quoted
On Tue, 2015-11-24 at 11:12 -0500, Timur Tabi wrote:
quoted
 On Tue, Nov 24, 2015 at 1:27 AM, Dongsheng Wang
[off-list ref] wrote:
quoted
@@ -1697,6 +1700,9 @@ static int fsl_diu_probe(struct platform_device
*pdev)
        unsigned int i;
        int ret;

+       if (!diu_ops.set_pixel_clock)
+               return -ENODEV;
+
        data = dmam_alloc_coherent(&pdev->dev, sizeof(struct
fsl_diu_data),
                                   &dma_addr, GFP_DMA | __GFP_ZERO);
        if (!data)
This doesn't make any sense.  If set_pixel_clock() is not defined,
then the whole driver aborts the probe.
That's what this patch is trying to accomplish.  Currently it crashes
instead.
quoted
  When could that ever happen?
If the platform code does not exist, then don't let the driver be
probed.
How do you propose to accomplish that other than with such a check?
Well, if you're concern is that there's no platform code, then there
should be a check that says, "see if there's any platform code", not
"let's check this obscure function and abort without explanation if
it's not initialized."
Do you have a *specific* better way to "see if there's any platform code"?
Alternatively, why can't you just do this, in update_lcdc():

Do nothing?

-Scott

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help