From patchwork Mon Dec 22 10:00:04 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yevgeny Petrilin X-Patchwork-Id: 15207 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 5AA53DDE0A for ; Mon, 22 Dec 2008 21:08:02 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752349AbYLVKH4 (ORCPT ); Mon, 22 Dec 2008 05:07:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751782AbYLVKH4 (ORCPT ); Mon, 22 Dec 2008 05:07:56 -0500 Received: from mail.mellanox.co.il ([194.90.237.43]:58942 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751740AbYLVKHz (ORCPT ); Mon, 22 Dec 2008 05:07:55 -0500 X-Greylist: delayed 398 seconds by postgrey-1.27 at vger.kernel.org; Mon, 22 Dec 2008 05:07:55 EST Received: from Internal Mail-Server by MTLPINE1 (envelope-from yevgenyp@mellanox.co.il) with SMTP; 22 Dec 2008 12:01:12 +0200 Received: from [10.4.3.12] ([10.4.3.12]) by mtlexch01.mtl.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 22 Dec 2008 12:01:11 +0200 Message-ID: <494F6524.1030301@mellanox.co.il> Date: Mon, 22 Dec 2008 12:00:04 +0200 From: Yevgeny Petrilin User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: jeff@garzik.org CC: rdreier@cisco.com, netdev@vger.kernel.org, general@lists.openfabrics.org Subject: [PATCH 1/9] mlx4_en: Memory leak on completion queue free X-OriginalArrivalTime: 22 Dec 2008 10:01:11.0927 (UTC) FILETIME=[38110070:01C9641C] X-TM-AS-Product-Ver: SMEX-8.0.0.1181-5.500.1027-16354.006 X-TM-AS-Result: No--4.034000-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If port is being destroyed without being activated before, CQ resources are not freed. Signed-off-by: Yevgeny Petrilin --- drivers/net/mlx4/en_cq.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/net/mlx4/en_cq.c b/drivers/net/mlx4/en_cq.c index ae2f989..4aa3b0f 100644 --- a/drivers/net/mlx4/en_cq.c +++ b/drivers/net/mlx4/en_cq.c @@ -71,6 +71,8 @@ int mlx4_en_create_cq(struct mlx4_en_priv *priv, err = mlx4_en_map_buffer(&cq->wqres.buf); if (err) mlx4_free_hwq_res(mdev->dev, &cq->wqres, cq->buf_size); + else + cq->buf = (struct mlx4_cqe *) cq->wqres.buf.direct.buf; return err; } @@ -85,7 +87,6 @@ int mlx4_en_activate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq) cq->mcq.arm_db = cq->wqres.db.db + 1; *cq->mcq.set_ci_db = 0; *cq->mcq.arm_db = 0; - cq->buf = (struct mlx4_cqe *) cq->wqres.buf.direct.buf; memset(cq->buf, 0, cq->buf_size); err = mlx4_cq_alloc(mdev->dev, cq->size, &cq->wqres.mtt, &mdev->priv_uar,