mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-27 00:04:47 +08:00
staging: vchiq: Fix refcounting bug in buffer_from_host()
If we fail to queue the buffer then it can never be dequeued. This can
lead to a forever loop in stop_streaming() when we wait for everything
to finish.
Fixes: 70ec64ccda
("staging: bcm2835-camera: Ensure all buffers are returned on disable")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20200722130651.GC220681@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
908e757dae
commit
50b2677c4e
@ -441,6 +441,8 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
|
||||
ret = vchiq_queue_kernel_message(instance->service_handle, &m,
|
||||
sizeof(struct mmal_msg_header) +
|
||||
sizeof(m.u.buffer_from_host));
|
||||
if (ret)
|
||||
atomic_dec(&port->buffers_with_vpu);
|
||||
|
||||
vchiq_release_service(instance->service_handle);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user