Messages in this thread | | | Subject | Re: [PATCH rdma-next v1 04/11] RDMA/counter: Add an is_disabled field in struct rdma_hw_stats | From | Mark Zhang <> | Date | Tue, 28 Sep 2021 11:28:39 +0800 |
| |
On 9/28/2021 12:53 AM, Jason Gunthorpe wrote: > On Wed, Sep 15, 2021 at 02:07:23AM +0300, Leon Romanovsky wrote: > >> diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c >> index 3f6b98a87566..67519730b1ac 100644 >> +++ b/drivers/infiniband/core/nldev.c >> @@ -968,15 +968,21 @@ static int fill_stat_counter_hwcounters(struct sk_buff *msg, >> if (!table_attr) >> return -EMSGSIZE; >> @@ -601,11 +604,20 @@ static inline struct rdma_hw_stats *rdma_alloc_hw_stats_struct( >> if (!stats) >> return NULL; >> >> + stats->is_disabled = kcalloc(BITS_TO_LONGS(num_counters), >> + sizeof(long), GFP_KERNEL); >> + if (!stats->is_disabled) >> + goto err; >> + > > Please de-inline this function and make a rdma_free_hw_stats_struct() > call to pair with it. The hw_stats_data kfree should be in there. If > you do this as a precursor patch this patch will be much smaller. > > Also, the > > stats = kzalloc(sizeof(*stats) + num_counters * sizeof(u64), > GFP_KERNEL); > > Should be using array_size Maybe use struct_size: stats = kzalloc(struct_size(stats, value, num_counters), GFP_KERNEL);
| |