crypto: chelsio/chtls - Fixed tls stats
authorVinay Kumar Yadav <vinay.yadav@chelsio.com>
Tue, 25 Feb 2020 16:51:20 +0000 (22:21 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 6 Mar 2020 01:28:22 +0000 (12:28 +1100)
Added tls rx stats and reset tls rx/tx stats when chtls driver unload.

Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/chelsio/chtls/chtls_io.c
drivers/crypto/chelsio/chtls/chtls_main.c

index 5cf9b02..781fe7c 100644 (file)
@@ -1399,6 +1399,8 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 {
        struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
        struct chtls_hws *hws = &csk->tlshws;
+       struct net_device *dev = csk->egress_dev;
+       struct adapter *adap = netdev2adap(dev);
        struct tcp_sock *tp = tcp_sk(sk);
        unsigned long avail;
        int buffers_freed;
@@ -1540,6 +1542,7 @@ skip_copy:
                                tp->copied_seq += skb->len;
                                hws->rcvpld = skb->hdr_len;
                        } else {
+                               atomic_inc(&adap->chcr_stats.tls_pdu_rx);
                                tp->copied_seq += hws->rcvpld;
                        }
                        chtls_free_skb(sk, skb);
index 9f06abd..2110d08 100644 (file)
@@ -174,9 +174,16 @@ static inline void chtls_dev_release(struct kref *kref)
 {
        struct tls_toe_device *dev;
        struct chtls_dev *cdev;
+       struct adapter *adap;
 
        dev = container_of(kref, struct tls_toe_device, kref);
        cdev = to_chtls_dev(dev);
+
+       /* Reset tls rx/tx stats */
+       adap = pci_get_drvdata(cdev->pdev);
+       atomic_set(&adap->chcr_stats.tls_pdu_tx, 0);
+       atomic_set(&adap->chcr_stats.tls_pdu_rx, 0);
+
        chtls_free_uld(cdev);
 }