![Hal Emmerich](/assets/img/avatar_default.png)
Add backported patched from 5.x from usb related fixes Up kernel version to most recent lts
53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
From eeca7606dd6e2445f505903f235e908eb7b78dfc Mon Sep 17 00:00:00 2001
|
|
From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
|
|
Date: Mon, 18 Feb 2019 12:59:37 -0600
|
|
Subject: [PATCH 27/53] usb: dwc2: use struct_size() in kzalloc()
|
|
|
|
One of the more common cases of allocation size calculations is finding
|
|
the size of a structure that has a zero-sized array at the end, along
|
|
with memory for some number of elements for that array. For example:
|
|
|
|
struct foo {
|
|
int stuff;
|
|
struct boo entry[];
|
|
};
|
|
|
|
size = sizeof(struct foo) + count * sizeof(struct boo);
|
|
instance = kzalloc(size, GFP_KERNEL);
|
|
|
|
Instead of leaving these open-coded and prone to type mistakes, we can
|
|
now use the new struct_size() helper:
|
|
|
|
instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);
|
|
|
|
Notice that, in this case, variable size is not necessary, hence
|
|
it is removed.
|
|
|
|
This code was detected with the help of Coccinelle.
|
|
|
|
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
drivers/usb/dwc2/hcd.c | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
|
|
index dd82fa516f3f..3f087962f498 100644
|
|
--- a/drivers/usb/dwc2/hcd.c
|
|
+++ b/drivers/usb/dwc2/hcd.c
|
|
@@ -3981,10 +3981,8 @@ static struct dwc2_hcd_urb *dwc2_hcd_urb_alloc(struct dwc2_hsotg *hsotg,
|
|
gfp_t mem_flags)
|
|
{
|
|
struct dwc2_hcd_urb *urb;
|
|
- u32 size = sizeof(*urb) + iso_desc_count *
|
|
- sizeof(struct dwc2_hcd_iso_packet_desc);
|
|
|
|
- urb = kzalloc(size, mem_flags);
|
|
+ urb = kzalloc(struct_size(urb, iso_descs, iso_desc_count), mem_flags);
|
|
if (urb)
|
|
urb->packet_count = iso_desc_count;
|
|
return urb;
|
|
--
|
|
2.11.0
|
|
|