ice: Use struct_size() helper
Subsystems (3)
PATCH 1/1 ice: Use struct_size() helper
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 = alloc(size, GFP_KERNEL);
Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper:
size = struct_size(instance, entry, count);
This code was detected with the help of Coccinelle.
--- drivers/net/ethernet/intel/ice/ice_sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/intel/ice/ice_sched.c +2 -2
@@ -664,10 +664,10 @@ ice_sched_add_elems(struct ice_port_info *pi, struct ice_sched_node *tc_node,u16 i, num_groups_added =0 ;enum ice_status status =0 ;struct ice_hw *hw = pi->hw; -u16 buf_size; +size_t buf_size;u32 teid; - buf_size =sizeof (*buf) +sizeof (*buf->generic) * (num_nodes -1 ); + buf_size =struct_size (buf, generic, num_nodes -1 ); buf =devm_kzalloc (ice_hw_to_dev (hw), buf_size,GFP_KERNEL );if (!buf)return ICE_ERR_NO_MEMORY ;
Signature · 1 line
2.21.0
Quoted 15 lines · Gustavo A. R. Silva
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 =
alloc(size, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:
Quoted 8 lines
size =
struct_size(instance, entry, count);This code was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/net/ethernet/intel/ice/ice_sched.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Thanks Gustavo, I will queue this up.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20190329/545a5bf5/attachment.asc>