diff options
author | Jiri Pirko <jiri@resnulli.us> | 2012-11-21 02:34:45 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-21 11:55:07 -0500 |
commit | 403f43c937d24832b18524f65415c0bbba6b5064 (patch) | |
tree | d4200f7ab5fc11ad0ca71cc11ce22e8e3ed4773b /drivers/net/team | |
parent | 0e376bd0b791ac6ac6bdb051492df0769c840848 (diff) | |
download | linux-stable-403f43c937d24832b18524f65415c0bbba6b5064.tar.gz linux-stable-403f43c937d24832b18524f65415c0bbba6b5064.tar.bz2 linux-stable-403f43c937d24832b18524f65415c0bbba6b5064.zip |
team: bcast: convert return value of team_dev_queue_xmit() to bool correctly
The thing is that team_dev_queue_xmit() returns NET_XMIT_* or -E*.
bc_trasmit() should return true in case all went well. So use ! to get
correct retval from team_dev_queue_xmit() result.
This bug caused iface statistics to be badly computed.
This bug was introduced by:
team: add broadcast mode (5fc889911a99043a97da1daa0d010ad72cbc3042)
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/team')
-rw-r--r-- | drivers/net/team/team_mode_broadcast.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/team/team_mode_broadcast.c b/drivers/net/team/team_mode_broadcast.c index 9db0171e9366..c5db428e73fa 100644 --- a/drivers/net/team/team_mode_broadcast.c +++ b/drivers/net/team/team_mode_broadcast.c @@ -29,8 +29,8 @@ static bool bc_transmit(struct team *team, struct sk_buff *skb) if (last) { skb2 = skb_clone(skb, GFP_ATOMIC); if (skb2) { - ret = team_dev_queue_xmit(team, last, - skb2); + ret = !team_dev_queue_xmit(team, last, + skb2); if (!sum_ret) sum_ret = ret; } @@ -39,7 +39,7 @@ static bool bc_transmit(struct team *team, struct sk_buff *skb) } } if (last) { - ret = team_dev_queue_xmit(team, last, skb); + ret = !team_dev_queue_xmit(team, last, skb); if (!sum_ret) sum_ret = ret; } |