]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
macsec: set actual real device for xmit when !protect_frames
authorDaniel Borkmann <daniel@iogearbox.net>
Thu, 30 Jun 2016 22:00:54 +0000 (00:00 +0200)
committerDhaval Giani <dhaval.giani@oracle.com>
Mon, 16 Jan 2017 19:49:06 +0000 (14:49 -0500)
Avoid recursions of dev_queue_xmit() to the wrong net device when
frames are unprotected, since at that time skb->dev still points to
our own macsec dev and unlike macsec_encrypt_finish() dev pointer
doesn't get updated to real underlying device.

Fixes: c09440f7dcb3 ("macsec: introduce IEEE 802.1AE driver")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Sabrina Dubroca <sd@queasysnail.net>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 79c62220d74a4a3f961a2cb7320da09eebf5daf7)

Orabug: 24614549

Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/macsec.c

index a10f0ab97bfd6e72a43b01e618791ea1a66a0475..b444f4b8b20f2b48bc0189f7282f07b7b3a8e3df 100644 (file)
@@ -2585,6 +2585,7 @@ static netdev_tx_t macsec_start_xmit(struct sk_buff *skb,
                u64_stats_update_begin(&secy_stats->syncp);
                secy_stats->stats.OutPktsUntagged++;
                u64_stats_update_end(&secy_stats->syncp);
+               skb->dev = macsec->real_dev;
                len = skb->len;
                ret = dev_queue_xmit(skb);
                count_tx(dev, ret, len);