Commit 3370b588 authored by David S. Miller's avatar David S. Miller

Merge branch 'cxgb3-undefined-behaviour-and-use-struct_size'

Gustavo A. R. Silva says:

====================
cxgb3/l2t: Fix undefined behaviour and use struct_size() helper

This patchset aims to fix an undefined behaviour when using a zero-sized
array and, add the use of the struct_size() helper in kvzalloc().

You might consider the first patch in this series for stable.

More details in the commit logs.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents a2c7023f db4863fd
...@@ -443,9 +443,9 @@ void t3_l2t_update(struct t3cdev *dev, struct neighbour *neigh) ...@@ -443,9 +443,9 @@ void t3_l2t_update(struct t3cdev *dev, struct neighbour *neigh)
struct l2t_data *t3_init_l2t(unsigned int l2t_capacity) struct l2t_data *t3_init_l2t(unsigned int l2t_capacity)
{ {
struct l2t_data *d; struct l2t_data *d;
int i, size = sizeof(*d) + l2t_capacity * sizeof(struct l2t_entry); int i;
d = kvzalloc(size, GFP_KERNEL); d = kvzalloc(struct_size(d, l2tab, l2t_capacity), GFP_KERNEL);
if (!d) if (!d)
return NULL; return NULL;
......
...@@ -75,8 +75,8 @@ struct l2t_data { ...@@ -75,8 +75,8 @@ struct l2t_data {
struct l2t_entry *rover; /* starting point for next allocation */ struct l2t_entry *rover; /* starting point for next allocation */
atomic_t nfree; /* number of free entries */ atomic_t nfree; /* number of free entries */
rwlock_t lock; rwlock_t lock;
struct l2t_entry l2tab[0];
struct rcu_head rcu_head; /* to handle rcu cleanup */ struct rcu_head rcu_head; /* to handle rcu cleanup */
struct l2t_entry l2tab[];
}; };
typedef void (*arp_failure_handler_func)(struct t3cdev * dev, typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment