Hi, On Sun, Feb 3, 2019 at 5:50 AM Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote: > > 3.16.63-rc1 review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Nadav Amit <namit@xxxxxxxxxx> > > commit 89dd34caf73e28018c58cd193751e41b1f8bdc56 upstream. > > The use of ALIGN() in uvc_alloc_entity() is incorrect, since the size of > (entity->pads) is not a power of two. As a stop-gap, until a better > solution is adapted, use roundup() instead. > > Found by a static assertion. Compile-tested only. > > Fixes: 4ffc2d89f38a ("uvcvideo: Register subdevices for each entity") > > Signed-off-by: Nadav Amit <namit@xxxxxxxxxx> > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> > Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> > --- > drivers/media/usb/uvc/uvc_driver.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/drivers/media/usb/uvc/uvc_driver.c > +++ b/drivers/media/usb/uvc/uvc_driver.c > @@ -826,7 +826,7 @@ static struct uvc_entity *uvc_alloc_enti > unsigned int size; > unsigned int i; > > - extra_size = ALIGN(extra_size, sizeof(*entity->pads)); > + extra_size = roundup(extra_size, sizeof(*entity->pads)); > num_inputs = (type & UVC_TERM_OUTPUT) ? num_pads : num_pads - 1; > size = sizeof(*entity) + extra_size + sizeof(*entity->pads) * num_pads > + num_inputs; Funny that this commit made its way to 3.16 but didn't make its way to 4.19 (at least checking 4.19.43). I haven't seen any actual crashes caused by the lack of this commit but it seems like the kind of thing we probably want picked back to other stable kernels too. -Doug