@@ -1695,10 +1695,11 @@ static int devlink_dpipe_table_put(struct sk_buff *skb,
1695
1695
goto nla_put_failure ;
1696
1696
1697
1697
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 ;
1702
1703
}
1703
1704
if (devlink_dpipe_matches_put (table , skb ))
1704
1705
goto nla_put_failure ;
@@ -2372,20 +2373,22 @@ static int devlink_nl_cmd_resource_set(struct sk_buff *skb,
2372
2373
return 0 ;
2373
2374
}
2374
2375
2375
- static void
2376
+ static int
2376
2377
devlink_resource_size_params_put (struct devlink_resource * resource ,
2377
2378
struct sk_buff * skb )
2378
2379
{
2379
2380
struct devlink_resource_size_params * size_params ;
2380
2381
2381
2382
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 ;
2389
2392
}
2390
2393
2391
2394
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,
2409
2412
nla_put_u64_64bit (skb , DEVLINK_ATTR_RESOURCE_SIZE_NEW ,
2410
2413
resource -> size_new , DEVLINK_ATTR_PAD );
2411
2414
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 ;
2416
2421
if (list_empty (& resource -> resource_list ))
2417
2422
goto out ;
2418
2423
0 commit comments