
< void rvu_npc_freemem(struct rvu *rvu)
< {
<   struct npc_pkind *pkind = &rvu->hw->pkind;
<   struct npc_mcam *mcam = &rvu->hw->mcam;
< 
<   kfree(pkind->rsrc.bmap);
<   npc_mcam_rsrcs_deinit(rvu);
<   kfree(mcam->counters.bmap);
<   if (rvu->kpu_prfl_addr)
<       iounmap(rvu->kpu_prfl_addr);
<   else
<       kfree(rvu->kpu_fwdata);
< }
---
> static void free_pkind_rsrc(struct npc_pkind *pkind)
> {
>     if (pkind && pkind->rsrc.bmap)
>         kfree(pkind->rsrc.bmap);
> }
> 
> static void free_mcam_counters(struct npc_mcam *mcam)
> {
>     if (mcam && mcam->counters.bmap)
>         kfree(mcam->counters.bmap);
> }
> 
> static void free_kpu_data(struct rvu *rvu)
> {
>     if (rvu->kpu_prfl_addr)
>         iounmap(rvu->kpu_prfl_addr);
>     else if (rvu->kpu_fwdata)
>         kfree(rvu->kpu_fwdata);
> }
> 
> void rvu_npc_freemem(struct rvu *rvu)
> {
>     if (!rvu)
>         return;
> 
>     free_pkind_rsrc(&rvu->hw->pkind);
>     npc_mcam_rsrcs_deinit(rvu);
>     free_mcam_counters(&rvu->hw->mcam);
>     free_kpu_data(rvu);
> }
