Răsfoiți Sursa

IB: cxgb3: delay freeing mem untill entirely done with it

Sure, it's just the pointer value we use, but the coverity checker
complains about a use-after-free bug and it really does seem cleaner
to delay freeing until we are entirely done with the memory. So,
rearrange the code to move the kfree() later untill we are completely
done.
Trivial and harmless, but nice IMHO.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jesper Juhl 12 ani în urmă
părinte
comite
fe194f19da
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      drivers/infiniband/hw/cxgb3/iwch_provider.c

+ 1 - 1
drivers/infiniband/hw/cxgb3/iwch_provider.c

@@ -783,8 +783,8 @@ static int iwch_dealloc_mw(struct ib_mw *mw)
 	mmid = (mw->rkey) >> 8;
 	mmid = (mw->rkey) >> 8;
 	cxio_deallocate_window(&rhp->rdev, mhp->attr.stag);
 	cxio_deallocate_window(&rhp->rdev, mhp->attr.stag);
 	remove_handle(rhp, &rhp->mmidr, mmid);
 	remove_handle(rhp, &rhp->mmidr, mmid);
-	kfree(mhp);
 	PDBG("%s ib_mw %p mmid 0x%x ptr %p\n", __func__, mw, mmid, mhp);
 	PDBG("%s ib_mw %p mmid 0x%x ptr %p\n", __func__, mw, mmid, mhp);
+	kfree(mhp);
 	return 0;
 	return 0;
 }
 }