| From f4464e05f8a4f873358b634555a517c343f00fb4 Mon Sep 17 00:00:00 2001 |
| From: Dmitry Bogdanov <dbogdanov@marvell.com> |
| Date: Tue, 10 Mar 2020 18:22:24 +0300 |
| Subject: [PATCH] net: macsec: update SCI upon MAC address change. |
| |
| commit 6fc498bc82929ee23aa2f35a828c6178dfd3f823 upstream. |
| |
| SCI should be updated, because it contains MAC in its first 6 octets. |
| |
| Fixes: c09440f7dcb3 ("macsec: introduce IEEE 802.1AE driver") |
| Signed-off-by: Dmitry Bogdanov <dbogdanov@marvell.com> |
| Signed-off-by: Mark Starovoytov <mstarovoitov@marvell.com> |
| Signed-off-by: Igor Russkikh <irusskikh@marvell.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c |
| index 1bd113b142ea..1ca6f20f7775 100644 |
| --- a/drivers/net/macsec.c |
| +++ b/drivers/net/macsec.c |
| @@ -533,6 +533,11 @@ static struct macsec_eth_header *macsec_ethhdr(struct sk_buff *skb) |
| return (struct macsec_eth_header *)skb_mac_header(skb); |
| } |
| |
| +static sci_t dev_to_sci(struct net_device *dev, __be16 port) |
| +{ |
| + return make_sci(dev->dev_addr, port); |
| +} |
| + |
| static u32 tx_sa_update_pn(struct macsec_tx_sa *tx_sa, struct macsec_secy *secy) |
| { |
| u32 pn; |
| @@ -2905,6 +2910,7 @@ static int macsec_set_mac_address(struct net_device *dev, void *p) |
| |
| out: |
| ether_addr_copy(dev->dev_addr, addr->sa_data); |
| + macsec->secy.sci = dev_to_sci(dev, MACSEC_PORT_ES); |
| return 0; |
| } |
| |
| @@ -3184,11 +3190,6 @@ static bool sci_exists(struct net_device *dev, sci_t sci) |
| return false; |
| } |
| |
| -static sci_t dev_to_sci(struct net_device *dev, __be16 port) |
| -{ |
| - return make_sci(dev->dev_addr, port); |
| -} |
| - |
| static int macsec_add_dev(struct net_device *dev, sci_t sci, u8 icv_len) |
| { |
| struct macsec_dev *macsec = macsec_priv(dev); |
| -- |
| 2.7.4 |
| |