media: atomisp: Flush queue on atomisp_css_start() error
authorHans de Goede <hdegoede@redhat.com>
Sun, 23 Oct 2022 20:13:01 +0000 (21:13 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 25 Nov 2022 08:18:44 +0000 (08:18 +0000)
commit36c953e1efa8249fb2d85a1f396d885a9463e9a8
treec7fdb5627a99bbcb9cf0c93e01bb7f33cf7f1ed3
parentafbfe82cbba3aab816ef3b8bf13450bba7c25cad
media: atomisp: Flush queue on atomisp_css_start() error

I managed to trigger an atomisp_css_start() error by pushing my test system
towards an OOM situation, this triggered the following WARN_ON() in
__vb2_queue_cancel() in videobuf2-core.c:

        /*
         * If you see this warning, then the driver isn't cleaning up properly
         * after a failed start_streaming(). See the start_streaming()
         * documentation in videobuf2-core.h for more information how buffers
         * should be returned to vb2 in start_streaming().
         */
        if (WARN_ON(atomic_read(&q->owned_by_drv_count))) {

Fix this by calling atomisp_flush_video_pipe() to return any queued buffers
back to the videobuf2-core on an atomisp_css_start() error.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_ioctl.c