• Laurent Pinchart's avatar
    [media] omap3isp: video: Avoid crashes when pipeline set stream operation fails · 5b6c3ef0
    Laurent Pinchart authored
    If streaming can't be enabled on the pipeline, the DMA buffers queue is
    not emptied. If the buffers then get freed the queue will end up
    referencing free memory. This is usually not an issue, as the DMA queue
    will be reinitialized the next time streaming is enabled, before
    enabling the hardware.
    
    However, if the sensor connected at the pipeline input is free-running,
    the CCDC will start generating interrupts as soon as it gets powered up,
    before the streaming gets enabled on the hardware. This will make the
    CCDC interrupt handler access freed memory, causing a crash.
    
    Reinitialize the DMA buffers queue in isp_video_streamon() if the error
    path to make sure this situation won't happen.
    Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    5b6c3ef0
ispvideo.c 37.7 KB