<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT size=2><FONT size=1>
<P><FONT face=Arial size=2>Fixed QP memory leak, inserted in <SPAN 
class=864130818-23112008>1288 </SPAN>fix.</FONT></P>
<P><FONT face=Arial size=2>The driver missed release of bits in QPN bitmap, 
preventing using this qpn once more.</FONT></P></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index: 
hw/mlx4/kernel/bus/ib/qp.c<BR>===================================================================<BR>--- 
hw/mlx4/kernel/bus/ib/qp.c (revision 1765)<BR>+++ 
hw/mlx4/kernel/bus/ib/qp.c (working copy)<BR>@@ -438,6 +438,11 
@@<BR>  if (err)<BR>   goto 
err_wrid;<BR> <BR>+ if (err) 
{<BR>+  mlx4_qp_release_range(dev->dev, sqpn, 
1);<BR>+  goto 
err_wrid;<BR>+ }<BR>+<BR>  /*<BR>   * Hardware wants 
QPN written in big-endian order (after<BR>   * shifting) for send 
doorbell.  Precompute this value to save<BR>@@ -551,6 +556,10 
@@<BR>  mlx4_ib_unlock_cqs(send_cq, 
recv_cq);<BR> <BR>  mlx4_qp_free(dev->dev, 
&qp->mqp);<BR>+<BR>+ if (!is_sqp(dev, 
qp))<BR>+  mlx4_qp_release_range(dev->dev, qp->mqp.qpn, 
1);<BR>+<BR>  mlx4_mtt_cleanup(dev->dev, 
&qp->mtt);<BR> <BR>  if (is_user) 
{<BR></FONT></DIV></BODY></HTML>