<!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><SPAN class=570011713-27112008><FONT face=Arial color=#0000ff 
size=2>Applied in 1770</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Leonid 
  Keller<BR><B>Sent:</B> Sunday, November 23, 2008 8:16 PM<BR><B>To:</B> 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> [ofw][patch][MLX4] Fixed QP 
  memory leak<BR></FONT><BR></DIV>
  <DIV></DIV>
  <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></BLOCKQUOTE></BODY></HTML>