octeontx2-pf: mcs: Clear stats before freeing resource
authorSubbaraya Sundeep <sbhatta@marvell.com>
Wed, 26 Apr 2023 06:25:26 +0000 (11:55 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:53:32 +0000 (11:53 +0200)
[ Upstream commit 815debbbf7b52026462c37eea3be70d6377a7a9a ]

When freeing MCS hardware resources like SecY, SC and
SA the corresponding stats needs to be cleared. Otherwise
previous stats are shown in newly created macsec interfaces.

Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading")
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c

index f699209978fef0163b2d7a7a30dc230398b6bb2b..13faca9add9f40659cc3a6e00ddff6f97882a3f1 100644 (file)
@@ -150,11 +150,20 @@ static void cn10k_mcs_free_rsrc(struct otx2_nic *pfvf, enum mcs_direction dir,
                                enum mcs_rsrc_type type, u16 hw_rsrc_id,
                                bool all)
 {
+       struct mcs_clear_stats *clear_req;
        struct mbox *mbox = &pfvf->mbox;
        struct mcs_free_rsrc_req *req;
 
        mutex_lock(&mbox->lock);
 
+       clear_req = otx2_mbox_alloc_msg_mcs_clear_stats(mbox);
+       if (!clear_req)
+               goto fail;
+
+       clear_req->id = hw_rsrc_id;
+       clear_req->type = type;
+       clear_req->dir = dir;
+
        req = otx2_mbox_alloc_msg_mcs_free_resources(mbox);
        if (!req)
                goto fail;