netdevsim: Add extack error message for devlink reload
devlink reset command can fail if a FIB resource limit is set to a value
lower than the current occupancy. Return a proper message indicating the
reason for the failure.
$ devlink resource sh netdevsim/netdevsim0
netdevsim/netdevsim0:
name IPv4 size unlimited unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
resources:
name fib size unlimited occ 43 unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
name fib-rules size unlimited occ 4 unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
name IPv6 size unlimited unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
resources:
name fib size unlimited occ 54 unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
name fib-rules size unlimited occ 3 unit entry size_min 0 size_max unlimited size_gran 1 dpipe_tables none
$ devlink resource set netdevsim/netdevsim0 path /IPv4/fib size 40
$ devlink dev reload netdevsim/netdevsim0
Error: netdevsim: New size is less than current occupancy.
devlink answers: Invalid argument
Signed-off-by: David Ahern <dsahern@gmail.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
ac0fc8a1bb
commit
7fa76d777e
@@ -163,7 +163,7 @@ static int nsim_devlink_reload(struct devlink *devlink,
|
||||
|
||||
err = devlink_resource_size_get(devlink, res_ids[i], &val);
|
||||
if (!err) {
|
||||
err = nsim_fib_set_max(net, res_ids[i], val);
|
||||
err = nsim_fib_set_max(net, res_ids[i], val, extack);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
@@ -181,7 +181,7 @@ static void nsim_devlink_net_reset(struct net *net)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(res_ids); ++i) {
|
||||
if (nsim_fib_set_max(net, res_ids[i], (u64)-1)) {
|
||||
if (nsim_fib_set_max(net, res_ids[i], (u64)-1, NULL)) {
|
||||
pr_err("Failed to reset limit for resource %u\n",
|
||||
res_ids[i]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user