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: Timur Tabi <hidden>
Date: 2015-11-24 16:54:08

On Tue, Nov 24, 2015 at 11:15 AM, Scott Wood [off-list ref] wrote:
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."

Alternatively, why can't you just do this, in update_lcdc():



-Scott

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help