Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2729801pxv; Mon, 12 Jul 2021 00:05:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzusWSI6y01UgamD0GMDgaHn2aXmCfeyuXV49aKIgJF2iCDpvhJy8Ho52f7CyPbTReJfnE3 X-Received: by 2002:a05:6e02:e02:: with SMTP id a2mr9021305ilk.127.1626073518520; Mon, 12 Jul 2021 00:05:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626073518; cv=none; d=google.com; s=arc-20160816; b=KI7kJZOpSxnyEu6SnmydijbJJ8RTnZvyymVXaxaf1dMsjVHzdPBXAOv33gvJzc+UIh 387XUeXgZD8F3WvCszauR80GGYMwS7kO4bIXTV75G6lvypKNva1/su5fpltLLjKEZRID DBEhgEqs1JYyXhS6y5EOOCUyPIWCMs9IhKdO4+StSKaI7O9FJ3R7ioLanGQrqSGqp0PI n0yKI2lCCR/RQqoc/9CUBRxNSkpbojhfg4Gvu2XgDkF8pkc0gJKll6ffJgTE/mxxUPUm V1R2GZ5VSngvdC4tHyUoYf8H7hK2KaR0J5bchsw+mowsFWynxIYpiMm9WBkBYcimwdQ+ VYdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6DKdNgQGC55DOGRWMoJt97Zle0hO1GgEkOjmJDS//kY=; b=0buv6YDsh3GR5YOSwLCPnZVxyyfmweA9l2fqbJ/47CuuAdT5kZ1qVOnCfDhJov98f2 ll8vQJbEyliBwokBvrdxKLewFOd8h97xbcWvNMtJN4/s/9UbRYprHR/Al6X64CqAYXm5 usD21opyvdI46tCzw/dXbAgdV3IFaUSfspl5rR5TXt0tjFaKKjC7C6n/yQGp888ye/NI Vd9mV6fD1N7yDm+yZrCzOlGGvv0Ah1x7G9XjtE7n3DOsFQYeEQqBDRl0HPZXWrxALHz2 GU3/vp9ab4gITwAPjSO1aMK6OuOwaTcz2KXTM0DkGf+aebYT2Hdwgywhgqv9WDVMO6Ri DqFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=v4qS3rvh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s13si15854923ioj.45.2021.07.12.00.05.06; Mon, 12 Jul 2021 00:05:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=v4qS3rvh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242009AbhGLHGJ (ORCPT + 99 others); Mon, 12 Jul 2021 03:06:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:41894 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236151AbhGLGri (ORCPT ); Mon, 12 Jul 2021 02:47:38 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5A96F610F7; Mon, 12 Jul 2021 06:43:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626072205; bh=WJJL3Ul7RmUo+3DBvprBYGqS18+SvRU3ae3N1cIHDFE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=v4qS3rvhr+XOpuejEGClwNQY4jbndE4SeQLxrZyY1+2+OFYSEVNSfsmqPl/4Dknw+ OL0YgOWQ0agqMNGWH7X/AVoGXwzaFE9TGTQ91d88Bik5AfwzK4LspFDSQk15jm0Y++ V7GZ6KCNeKpTv0Xvk8Q6/S8LoxePOucxpEujizJc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sukadev Bhattiprolu , "David S. Miller" , Sasha Levin Subject: [PATCH 5.10 400/593] ibmvnic: set ltb->buff to NULL after freeing Date: Mon, 12 Jul 2021 08:09:20 +0200 Message-Id: <20210712060931.603422327@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sukadev Bhattiprolu [ Upstream commit 552a33729f1a7cc5115d0752064fe9abd6e3e336 ] free_long_term_buff() checks ltb->buff to decide whether we have a long term buffer to free. So set ltb->buff to NULL afer freeing. While here, also clear ->map_id, fix up some coding style and log an error. Fixes: 9c4eaabd1bb39 ("Check CRQ command return codes") Signed-off-by: Sukadev Bhattiprolu Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/ibm/ibmvnic.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 765b38c8b252..458619aa84f4 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -212,12 +212,11 @@ static int alloc_long_term_buff(struct ibmvnic_adapter *adapter, mutex_lock(&adapter->fw_lock); adapter->fw_done_rc = 0; reinit_completion(&adapter->fw_done); - rc = send_request_map(adapter, ltb->addr, - ltb->size, ltb->map_id); + + rc = send_request_map(adapter, ltb->addr, ltb->size, ltb->map_id); if (rc) { - dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr); - mutex_unlock(&adapter->fw_lock); - return rc; + dev_err(dev, "send_request_map failed, rc = %d\n", rc); + goto out; } rc = ibmvnic_wait_for_completion(adapter, &adapter->fw_done, 10000); @@ -225,20 +224,23 @@ static int alloc_long_term_buff(struct ibmvnic_adapter *adapter, dev_err(dev, "Long term map request aborted or timed out,rc = %d\n", rc); - dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr); - mutex_unlock(&adapter->fw_lock); - return rc; + goto out; } if (adapter->fw_done_rc) { dev_err(dev, "Couldn't map long term buffer,rc = %d\n", adapter->fw_done_rc); + rc = -1; + goto out; + } + rc = 0; +out: + if (rc) { dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr); - mutex_unlock(&adapter->fw_lock); - return -1; + ltb->buff = NULL; } mutex_unlock(&adapter->fw_lock); - return 0; + return rc; } static void free_long_term_buff(struct ibmvnic_adapter *adapter, @@ -258,6 +260,8 @@ static void free_long_term_buff(struct ibmvnic_adapter *adapter, adapter->reset_reason != VNIC_RESET_TIMEOUT) send_request_unmap(adapter, ltb->map_id); dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr); + ltb->buff = NULL; + ltb->map_id = 0; } static int reset_long_term_buff(struct ibmvnic_adapter *adapter, -- 2.30.2