Skip to content

Commit 3d18e4f

Browse files
Arkadi Sharshevskydavem330
authored andcommitted
devlink: Fix resource coverity errors
Fix resource coverity errors. Fixes: d9f9b9a ("devlink: Add support for resource abstraction") Signed-off-by: Arkadi Sharshevsky <[email protected]> Acked-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent c7272c2 commit 3d18e4f

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

net/core/devlink.c

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,10 +1695,11 @@ static int devlink_dpipe_table_put(struct sk_buff *skb,
16951695
goto nla_put_failure;
16961696

16971697
if (table->resource_valid) {
1698-
nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,
1699-
table->resource_id, DEVLINK_ATTR_PAD);
1700-
nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,
1701-
table->resource_units, DEVLINK_ATTR_PAD);
1698+
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,
1699+
table->resource_id, DEVLINK_ATTR_PAD) ||
1700+
nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,
1701+
table->resource_units, DEVLINK_ATTR_PAD))
1702+
goto nla_put_failure;
17021703
}
17031704
if (devlink_dpipe_matches_put(table, skb))
17041705
goto nla_put_failure;
@@ -2372,20 +2373,22 @@ static int devlink_nl_cmd_resource_set(struct sk_buff *skb,
23722373
return 0;
23732374
}
23742375

2375-
static void
2376+
static int
23762377
devlink_resource_size_params_put(struct devlink_resource *resource,
23772378
struct sk_buff *skb)
23782379
{
23792380
struct devlink_resource_size_params *size_params;
23802381

23812382
size_params = resource->size_params;
2382-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN,
2383-
size_params->size_granularity, DEVLINK_ATTR_PAD);
2384-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX,
2385-
size_params->size_max, DEVLINK_ATTR_PAD);
2386-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN,
2387-
size_params->size_min, DEVLINK_ATTR_PAD);
2388-
nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit);
2383+
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN,
2384+
size_params->size_granularity, DEVLINK_ATTR_PAD) ||
2385+
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX,
2386+
size_params->size_max, DEVLINK_ATTR_PAD) ||
2387+
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN,
2388+
size_params->size_min, DEVLINK_ATTR_PAD) ||
2389+
nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit))
2390+
return -EMSGSIZE;
2391+
return 0;
23892392
}
23902393

23912394
static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
@@ -2409,10 +2412,12 @@ static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
24092412
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW,
24102413
resource->size_new, DEVLINK_ATTR_PAD);
24112414
if (resource->resource_ops && resource->resource_ops->occ_get)
2412-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC,
2413-
resource->resource_ops->occ_get(devlink),
2414-
DEVLINK_ATTR_PAD);
2415-
devlink_resource_size_params_put(resource, skb);
2415+
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC,
2416+
resource->resource_ops->occ_get(devlink),
2417+
DEVLINK_ATTR_PAD))
2418+
goto nla_put_failure;
2419+
if (devlink_resource_size_params_put(resource, skb))
2420+
goto nla_put_failure;
24162421
if (list_empty(&resource->resource_list))
24172422
goto out;
24182423

0 commit comments

Comments
 (0)