[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20130412.145508.740030576340567517.davem@davemloft.net>
Date: Fri, 12 Apr 2013 14:55:08 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: ivecera@...hat.com
Cc: netdev@...r.kernel.org, sathya.perla@...lex.com,
subbu.seetharaman@...lex.com, ajit.khaparde@...lex.com
Subject: Re: [net PATCH] be2net: take care of __vlan_put_tag return value
From: Ivan Vecera <ivecera@...hat.com>
Date: Fri, 12 Apr 2013 16:49:24 +0200
> The driver should use return value of __vlan_put_tag with appropriate
> NULL-check instead of old skb pointer.
>
> Signed-off-by: Ivan Vecera <ivecera@...hat.com>
I'll apply this patch but there is some strangeness with the
logic that controls these code paths.
The call to be_insert_vlan_in_pkt() is guarded by:
be_vlan_tag_chk(adapter, skb)
which evaluates to:
vlan_tx_tag_present(skb) || adapter->pvid
But the __vlan_put_tag() call is guarded by only one of those two
conditions:
vlan_tx_tag_present(skb)
One of these two is wrong and should be corrected.
I suspect that we have several layers of bugs here, in that
we need to do __vlan_put_tag() in the adapter->pvid case but
that means that tag determination needs to have some
adapter->pvid logic added to it.
Or, if for some reason the adapter->pvid case doesn't apply to
this HW bug, the test guarding the be_insert_vlan_in_pkt() call
should be changed to vlan_tx_tag_present() and a big comment
added explaining why adapter->pvid is not being considered.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists