mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
[GIT PULL for v7.0-rc6] media fixes
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAmnGRUMACgkQCF8+vY7k 4RVnhg/9EuN2Lz9XFm86e/b2/gQowj/cVise8SLFQsXQoBQtNWc5qJyQIJaXGATs mSONFX+rtRZHZrlxg3YD27oFuvYWOQ3aVJHJv4SZsbejfK11kLOk3RDpJ267DyCC i8Q8ymvC20lGD7Wu8zaOGttULobkfIfgL3PPhob3aQAdv73zRoBHlalfHFuVrrBB mnDGyRx07GsuzCsJO9KBEdBZqTBKRifzpQuBNJy7nk2LP+G85Bd0gFPcRoFgQ4n9 /QgmD08GOQhXtqqDn6gN0YnMejKxqB52TFz4nsMg3RwaLJxWsTGnnXur8jm0sPZg /684R8Q8S+e+huniu8R3p0OjpEqAboWDknJCrOuPreWxeZIcbdNx1D6aSumv7D29 nRvKaWperzvziR3PK0QnXr0XDCNdoiFA3BM0eTAnpRfvROzkOn+EvXNC9R/7B8gJ vam7dk3qoc1jxQ05WDTE0r1XGa8up9gQzMdBtSMYmTKmm1GRa2mZhiTaE6G44ue/ F5FjlSZf7g92gOBrvt3hcO17Rve9JaAf4P2yI2LimtZLWtIVCeLfAt/MXk3Nr0d1 LKcobTOLGzZA2GNvCNcCTPwrrtXcuxcCvr5cvLpNPYe+3DCiDxUp9l8OylGnSr88 T/XA2kS6GFHnNqzTPGFoxnQBw4QfCQ82wqDBOLLLOW0MulrjU3Y= =nrey -----END PGP SIGNATURE----- Merge tag 'media/v7.0-6' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - uvcvideo may cause OOPS when out of memory - remove a deadlock in the ccs driver * tag 'media/v7.0-6' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: ccs: Avoid deadlock in ccs_init_state() media: uvcvideo: Fix bug in error path of uvc_alloc_urb_buffers
This commit is contained in:
commit
f44c65111e
|
|
@ -3080,8 +3080,6 @@ static int ccs_init_state(struct v4l2_subdev *sd,
|
|||
struct v4l2_rect *crop =
|
||||
v4l2_subdev_state_get_crop(sd_state, pad);
|
||||
|
||||
guard(mutex)(&sensor->mutex);
|
||||
|
||||
ccs_get_native_size(ssd, crop);
|
||||
|
||||
fmt->width = crop->width;
|
||||
|
|
|
|||
|
|
@ -1751,7 +1751,8 @@ static void uvc_video_complete(struct urb *urb)
|
|||
/*
|
||||
* Free transfer buffers.
|
||||
*/
|
||||
static void uvc_free_urb_buffers(struct uvc_streaming *stream)
|
||||
static void uvc_free_urb_buffers(struct uvc_streaming *stream,
|
||||
unsigned int size)
|
||||
{
|
||||
struct usb_device *udev = stream->dev->udev;
|
||||
struct uvc_urb *uvc_urb;
|
||||
|
|
@ -1760,7 +1761,7 @@ static void uvc_free_urb_buffers(struct uvc_streaming *stream)
|
|||
if (!uvc_urb->buffer)
|
||||
continue;
|
||||
|
||||
usb_free_noncoherent(udev, stream->urb_size, uvc_urb->buffer,
|
||||
usb_free_noncoherent(udev, size, uvc_urb->buffer,
|
||||
uvc_stream_dir(stream), uvc_urb->sgt);
|
||||
uvc_urb->buffer = NULL;
|
||||
uvc_urb->sgt = NULL;
|
||||
|
|
@ -1820,7 +1821,7 @@ static int uvc_alloc_urb_buffers(struct uvc_streaming *stream,
|
|||
|
||||
if (!uvc_alloc_urb_buffer(stream, uvc_urb, urb_size,
|
||||
gfp_flags)) {
|
||||
uvc_free_urb_buffers(stream);
|
||||
uvc_free_urb_buffers(stream, urb_size);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1868,7 +1869,7 @@ static void uvc_video_stop_transfer(struct uvc_streaming *stream,
|
|||
}
|
||||
|
||||
if (free_buffers)
|
||||
uvc_free_urb_buffers(stream);
|
||||
uvc_free_urb_buffers(stream, stream->urb_size);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user