mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
team: fix port list dump for big number of ports
In case the port list dump does not fit into one skb currently the
dump would start over again. Fix this by continue from the last dumped
port.
Introduced by commit d90f889e9c
(team: handle sending port list in the
same way option list is sent)
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6d7581e62f
commit
3f3e7ce4ff
@ -2374,7 +2374,8 @@ static int team_nl_send_port_list_get(struct team *team, u32 portid, u32 seq,
|
||||
bool incomplete;
|
||||
int i;
|
||||
|
||||
port = list_first_entry(&team->port_list, struct team_port, list);
|
||||
port = list_first_entry_or_null(&team->port_list,
|
||||
struct team_port, list);
|
||||
|
||||
start_again:
|
||||
err = __send_and_alloc_skb(&skb, team, portid, send_func);
|
||||
@ -2402,8 +2403,8 @@ start_again:
|
||||
err = team_nl_fill_one_port_get(skb, one_port);
|
||||
if (err)
|
||||
goto errout;
|
||||
} else {
|
||||
list_for_each_entry(port, &team->port_list, list) {
|
||||
} else if (port) {
|
||||
list_for_each_entry_from(port, &team->port_list, list) {
|
||||
err = team_nl_fill_one_port_get(skb, port);
|
||||
if (err) {
|
||||
if (err == -EMSGSIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user