Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp662886yba; Fri, 5 Apr 2019 14:33:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqwxg9GnOeDlCJtoQmFqsN41LtwKvEK9C0lOPH5IkUp3T/paHwiVP6ZMeuUvrmvV0cR2w812 X-Received: by 2002:a17:902:f084:: with SMTP id go4mr14866509plb.235.1554500016021; Fri, 05 Apr 2019 14:33:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554500016; cv=none; d=google.com; s=arc-20160816; b=baH3Wn6pXW+zSWChrYMnYqffgElpauvR6nkt34sGOskT38jLcfTVd5fTsNJxaje0o2 fmC7IH7OmQqSLV1zNMNTlNpiw2C9Romzpb6A52hnfv669ZGRAhesPVLJvn9c+x3qQ+iN ojhk2JuD31XmTfHcAqIK6qqMam51suvDCPizJQYOcLO4c7jyB2D9rIFstYxvMKA7Cbiu z+Go7bmHWoq6XuHZKBJ6aS1nt0IktlaMb5tsiZKLJlxSoh7dg/kvT4w/z9BVWZab4W+w nh3rXeJFom8MNYEMu9iJYXBQaeoIWM1xVDIOY3SGxZU9NXfUiF2pZ5tPRHFYR2eGHTlg Dsog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=1xh6KVAtbI/lVttcQ4QykYI6QObovusF5z1I7nVz9GM=; b=0K6dAOWEFBffWzjgwyZMt4wXkYz3zYCixWzOlrcWbw6nury22WFN9QLZ8t2LfY2oEy cG+oSQLe48bfsWvO3pwOUfJ3Z3NnvRUPVSmLEPd9k9zs5gcjiMmMdEbHufkV0RNNEFdQ EN+Hj2etz2m/YHI3nAWyr6W47ueKlQFX8RxJo8HYPw6R1UgoxZQJgNWm2/imXs34YTmp vxw7tpVof9OTqpDhRTouBJIy1qwEsYz12yJ0mld/MecjRr4h/xOnf+LxETCYtyaBvMww gb4g27M+PEDiprOU2yvRPQKe2sF9p4v8yHJaBQwfJzbNc4jkDWSz3kPcyzKL6RbQjnNq GVyA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q25si19319225pgv.534.2019.04.05.14.33.09; Fri, 05 Apr 2019 14:33:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726458AbfDEVcE (ORCPT + 99 others); Fri, 5 Apr 2019 17:32:04 -0400 Received: from mail.ispras.ru ([83.149.199.45]:34032 "EHLO mail.ispras.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725973AbfDEVcE (ORCPT ); Fri, 5 Apr 2019 17:32:04 -0400 Received: from localhost.localdomain (109-252-62-95.nat.spd-mgts.ru [109.252.62.95]) by mail.ispras.ru (Postfix) with ESMTPSA id 71E11540093; Sat, 6 Apr 2019 00:26:48 +0300 (MSK) From: Alexey Khoroshilov To: Lennert Buytenhek , Kalle Valo Cc: Alexey Khoroshilov , "David S. Miller" , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org Subject: [PATCH] mwl8k: fix error handling in mwl8k_post_cmd() Date: Sat, 6 Apr 2019 00:26:38 +0300 Message-Id: <1554499598-29351-1-git-send-email-khoroshilov@ispras.ru> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If pci_map_single() fails in mwl8k_post_cmd(), it returns -ENOMEM immediately, while cleanup is required. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov --- drivers/net/wireless/marvell/mwl8k.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c index 8e4e9b6919e0..e0df51b62e97 100644 --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c @@ -2234,8 +2234,10 @@ static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd) dma_size = le16_to_cpu(cmd->length); dma_addr = pci_map_single(priv->pdev, cmd, dma_size, PCI_DMA_BIDIRECTIONAL); - if (pci_dma_mapping_error(priv->pdev, dma_addr)) - return -ENOMEM; + if (pci_dma_mapping_error(priv->pdev, dma_addr)) { + rc = -ENOMEM; + goto exit; + } priv->hostcmd_wait = &cmd_wait; iowrite32(dma_addr, regs + MWL8K_HIU_GEN_PTR); @@ -2275,6 +2277,7 @@ static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd) ms); } +exit: if (bitmap) mwl8k_enable_bsses(hw, true, bitmap); -- 2.7.4