
< 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 inline void safe_kfree(void **ptr)
> {
>     if (*ptr) {
>         kfree(*ptr);
>         *ptr = NULL;
>     }
> }
> 
> void rvu_npc_freemem(struct rvu *rvu)
> {
>     struct npc_pkind *pkind = &rvu->hw->pkind;
>     struct npc_mcam *mcam = &rvu->hw->mcam;
> 
>     safe_kfree((void **)&pkind->rsrc.bmap);
>     npc_mcam_rsrcs_deinit(rvu);
>     safe_kfree((void **)&mcam->counters.bmap);
>     if (rvu->kpu_prfl_addr)
>         iounmap(rvu->kpu_prfl_addr);
>     else
>         safe_kfree((void **)&rvu->kpu_fwdata);
> }
