diff options
author | Doug Ledford <dledford@redhat.com> | 2016-06-07 02:52:55 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-06-07 16:42:21 +0300 |
commit | 41aaa99fab6ceaa4b533c2b6ad4913987ddb3ddc (patch) | |
tree | ac82511a648fc9eab5c35010b39578a72aa779b7 /drivers/infiniband/core | |
parent | 55c40648d31d0d97608f266955b8afae74e2b686 (diff) | |
download | linux-41aaa99fab6ceaa4b533c2b6ad4913987ddb3ddc.tar.xz |
IB/core: Fix array length allocation
The new sysfs hw_counters code had an off by one in its array allocation
length. Fix that and the comment along with it.
Reported-by: Mark Bloch <markb@mellanox.com>
Fixes: b40f4757daa1 (IB/core: Make device counter infrastructure
dynamic)
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/sysfs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c index ed04a7bd4481..2bc43444841b 100644 --- a/drivers/infiniband/core/sysfs.c +++ b/drivers/infiniband/core/sysfs.c @@ -901,9 +901,12 @@ static void setup_hw_stats(struct ib_device *device, struct ib_port *port, if (!stats->names || stats->num_counters <= 0) goto err_free_stats; + /* + * Two extra attribue elements here, one for the lifespan entry and + * one to NULL terminate the list for the sysfs core code + */ hsag = kzalloc(sizeof(*hsag) + - // 1 extra for the lifespan config entry - sizeof(void *) * (stats->num_counters + 1), + sizeof(void *) * (stats->num_counters + 2), GFP_KERNEL); if (!hsag) goto err_free_stats; |