macsec: fix validation failed in asynchronous operation.
authorLee Ryder <ryder.lee@mediatek.com>
Tue, 21 Feb 2017 09:40:45 +0000 (17:40 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Feb 2017 18:13:51 +0000 (13:13 -0500)
MACSec test failed when asynchronous crypto operations is used. It
encounters packet validation failed since macsec_skb_cb(skb)->valid
is always 'false'.

This patch adds missing "macsec_skb_cb(skb)->valid = true" in
macsec_decrypt_done() when "err == 0".

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macsec.c

index 778a77303c495597bb1a776fd75f53b90d804d05..ff0a5ed3ca803551a0350303af44976d0f47dcfc 100644 (file)
@@ -879,6 +879,9 @@ static void macsec_decrypt_done(struct crypto_async_request *base, int err)
 
        aead_request_free(macsec_skb_cb(skb)->req);
 
+       if (!err)
+               macsec_skb_cb(skb)->valid = true;
+
        rcu_read_lock_bh();
        pn = ntohl(macsec_ethhdr(skb)->packet_number);
        if (!macsec_post_decrypt(skb, &macsec->secy, pn)) {