Re: [patch net] team: bcast: convert return value of team_dev_queue_xmit() to bool correctly
From: Jiri Pirko <jiri@resnulli.us>
Date: 2012-11-21 12:53:32
I forgot to mention this bug was introduced by: team: add broadcast mode (5fc889911a99043a97da1daa0d010ad72cbc3042) Wed, Nov 21, 2012 at 01:34:45PM CET, jiri@resnulli.us wrote:
quoted hunk ↗ jump to hunk
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. Reported-by: Dan Carpenter <redacted> Signed-off-by: Jiri Pirko <jiri@resnulli.us> --- drivers/net/team/team_mode_broadcast.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)diff --git a/drivers/net/team/team_mode_broadcast.c b/drivers/net/team/team_mode_broadcast.c index 9db0171..c5db428 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; } -- 1.8.0