|
@@ -899,14 +899,14 @@ static void setup_hw_stats(struct ib_device *device, struct ib_port *port,
|
|
|
return;
|
|
|
|
|
|
if (!stats->names || stats->num_counters <= 0)
|
|
|
- goto err;
|
|
|
+ goto err_free_stats;
|
|
|
|
|
|
hsag = kzalloc(sizeof(*hsag) +
|
|
|
// 1 extra for the lifespan config entry
|
|
|
sizeof(void *) * (stats->num_counters + 1),
|
|
|
GFP_KERNEL);
|
|
|
if (!hsag)
|
|
|
- return;
|
|
|
+ goto err_free_stats;
|
|
|
|
|
|
ret = device->get_hw_stats(device, stats, port_num,
|
|
|
stats->num_counters);
|
|
@@ -946,10 +946,11 @@ static void setup_hw_stats(struct ib_device *device, struct ib_port *port,
|
|
|
return;
|
|
|
|
|
|
err:
|
|
|
- kfree(stats);
|
|
|
for (; i >= 0; i--)
|
|
|
kfree(hsag->attrs[i]);
|
|
|
kfree(hsag);
|
|
|
+err_free_stats:
|
|
|
+ kfree(stats);
|
|
|
return;
|
|
|
}
|
|
|
|