From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46908C433E1 for ; Thu, 18 Jun 2020 01:08:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2082721974 for ; Thu, 18 Jun 2020 01:08:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442490; bh=3ixtTqSgLT06EGmTqWLRPWX9EpoK3ocTPIYY48k+Euc=; h=From:To:Cc:Subject:Date:List-ID:From; b=NCT/cGMesOIvVBkcEWQWy/oUZXcK2zY3bgjlzBiayJWkOBYlj0WXo9v838kFU29J4 i9+4BAMkGzOxgDS08qRGtQV6E6w3D/FUsW/6Ra185ni9JLKiPjDzBXjCNmfwKWD7QE Nbemgqt+1DqvYTI+1PJWaWgRWitW/mC3lls7E5qc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726980AbgFRBIJ (ORCPT ); Wed, 17 Jun 2020 21:08:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:33610 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726879AbgFRBII (ORCPT ); Wed, 17 Jun 2020 21:08:08 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 05FCD2193E; Thu, 18 Jun 2020 01:08:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442487; bh=3ixtTqSgLT06EGmTqWLRPWX9EpoK3ocTPIYY48k+Euc=; h=From:To:Cc:Subject:Date:From; b=QqIdWrNZKNKV+wqOJWLxGXAwpcmLF8Jz38jxeuIK1Th716Dys5IrnKlQV/E03VLhc nrXMVjaUGg0sPXXx/KZQaw1Nl3xzy2yVNAEmhDwtoe0BBt6sHYCl9WKNl0TaDjSNTF dUS6hLQJpm1/qmGueM7KQBgux1IygnMgrkM0Tj/k= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= , Dan Carpenter , Greg Kroah-Hartman , Sasha Levin , devel@driverdev.osuosl.org Subject: [PATCH AUTOSEL 5.7 001/388] staging: wfx: fix potential deadlock in wfx_tx_flush() Date: Wed, 17 Jun 2020 21:01:38 -0400 Message-Id: <20200618010805.600873-1-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jérôme Pouiller [ Upstream commit a39e761aa4fefa2a8aaf549217329933b91da7c9 ] wfx_tx_flush() wait there are no more frame in device buffer. However, this event may never happens since wfx_tx_flush() don't forbid to enqueue new frames. Note that wfx_tx_flush() should only ensure that all frames currently in hardware queues are sent. So the current code is more restrictive that it should. Note that wfx_tx_flush() release the lock before to return while wfx_tx_lock_flush() keep the lock. Reviewed-by: Dan Carpenter Signed-off-by: Jérôme Pouiller Link: https://lore.kernel.org/r/20200401110405.80282-31-Jerome.Pouiller@silabs.com Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/staging/wfx/queue.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c index 39d9127ce4b9..8ae23681e29b 100644 --- a/drivers/staging/wfx/queue.c +++ b/drivers/staging/wfx/queue.c @@ -35,6 +35,7 @@ void wfx_tx_flush(struct wfx_dev *wdev) if (wdev->chip_frozen) return; + wfx_tx_lock(wdev); mutex_lock(&wdev->hif_cmd.lock); ret = wait_event_timeout(wdev->hif.tx_buffers_empty, !wdev->hif.tx_buffers_used, @@ -47,6 +48,7 @@ void wfx_tx_flush(struct wfx_dev *wdev) wdev->chip_frozen = 1; } mutex_unlock(&wdev->hif_cmd.lock); + wfx_tx_unlock(wdev); } void wfx_tx_lock_flush(struct wfx_dev *wdev) -- 2.25.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7BF95C433DF for ; Thu, 18 Jun 2020 01:08:10 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4D79F21D94 for ; Thu, 18 Jun 2020 01:08:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="QqIdWrNZ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D79F21D94 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 0F07C87B82; Thu, 18 Jun 2020 01:08:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ojYlYgl9zEdG; Thu, 18 Jun 2020 01:08:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 2F10787DBA; Thu, 18 Jun 2020 01:08:09 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 671A51BF31F for ; Thu, 18 Jun 2020 01:08:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 63C6686C11 for ; Thu, 18 Jun 2020 01:08:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lb5lwJHd-B23 for ; Thu, 18 Jun 2020 01:08:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by fraxinus.osuosl.org (Postfix) with ESMTPS id E792586C04 for ; Thu, 18 Jun 2020 01:08:07 +0000 (UTC) Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 05FCD2193E; Thu, 18 Jun 2020 01:08:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442487; bh=3ixtTqSgLT06EGmTqWLRPWX9EpoK3ocTPIYY48k+Euc=; h=From:To:Cc:Subject:Date:From; b=QqIdWrNZKNKV+wqOJWLxGXAwpcmLF8Jz38jxeuIK1Th716Dys5IrnKlQV/E03VLhc nrXMVjaUGg0sPXXx/KZQaw1Nl3xzy2yVNAEmhDwtoe0BBt6sHYCl9WKNl0TaDjSNTF dUS6hLQJpm1/qmGueM7KQBgux1IygnMgrkM0Tj/k= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 001/388] staging: wfx: fix potential deadlock in wfx_tx_flush() Date: Wed, 17 Jun 2020 21:01:38 -0400 Message-Id: <20200618010805.600873-1-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , Greg Kroah-Hartman , devel@driverdev.osuosl.org, Dan Carpenter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKWyBV cHN0cmVhbSBjb21taXQgYTM5ZTc2MWFhNGZlZmEyYThhYWY1NDkyMTczMjk5MzNiOTFkYTdjOSBd Cgp3ZnhfdHhfZmx1c2goKSB3YWl0IHRoZXJlIGFyZSBubyBtb3JlIGZyYW1lIGluIGRldmljZSBi dWZmZXIuIEhvd2V2ZXIsCnRoaXMgZXZlbnQgbWF5IG5ldmVyIGhhcHBlbnMgc2luY2Ugd2Z4X3R4 X2ZsdXNoKCkgZG9uJ3QgZm9yYmlkIHRvCmVucXVldWUgbmV3IGZyYW1lcy4KCk5vdGUgdGhhdCB3 ZnhfdHhfZmx1c2goKSBzaG91bGQgb25seSBlbnN1cmUgdGhhdCBhbGwgZnJhbWVzIGN1cnJlbnRs eSBpbgpoYXJkd2FyZSBxdWV1ZXMgYXJlIHNlbnQuIFNvIHRoZSBjdXJyZW50IGNvZGUgaXMgbW9y ZSByZXN0cmljdGl2ZSB0aGF0Cml0IHNob3VsZC4KCk5vdGUgdGhhdCB3ZnhfdHhfZmx1c2goKSBy ZWxlYXNlIHRoZSBsb2NrIGJlZm9yZSB0byByZXR1cm4gd2hpbGUKd2Z4X3R4X2xvY2tfZmx1c2go KSBrZWVwIHRoZSBsb2NrLgoKUmV2aWV3ZWQtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50 ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5w b3VpbGxlckBzaWxhYnMuY29tPgpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjAw NDAxMTEwNDA1LjgwMjgyLTMxLUplcm9tZS5Qb3VpbGxlckBzaWxhYnMuY29tClNpZ25lZC1vZmYt Ynk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ClNpZ25l ZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL3N0 YWdpbmcvd2Z4L3F1ZXVlLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5jIGIvZHJpdmVycy9zdGFn aW5nL3dmeC9xdWV1ZS5jCmluZGV4IDM5ZDkxMjdjZTRiOS4uOGFlMjM2ODFlMjliIDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9xdWV1ZS5jCkBAIC0zNSw2ICszNSw3IEBAIHZvaWQgd2Z4X3R4X2ZsdXNoKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2KQogCWlmICh3ZGV2LT5jaGlwX2Zyb3plbikKIAkJcmV0dXJuOwogCisJd2Z4X3R4 X2xvY2sod2Rldik7CiAJbXV0ZXhfbG9jaygmd2Rldi0+aGlmX2NtZC5sb2NrKTsKIAlyZXQgPSB3 YWl0X2V2ZW50X3RpbWVvdXQod2Rldi0+aGlmLnR4X2J1ZmZlcnNfZW1wdHksCiAJCQkJICF3ZGV2 LT5oaWYudHhfYnVmZmVyc191c2VkLApAQCAtNDcsNiArNDgsNyBAQCB2b2lkIHdmeF90eF9mbHVz aChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAkJd2Rldi0+Y2hpcF9mcm96ZW4gPSAxOwogCX0KIAlt dXRleF91bmxvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CisJd2Z4X3R4X3VubG9jayh3ZGV2KTsK IH0KIAogdm9pZCB3ZnhfdHhfbG9ja19mbHVzaChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKLS0gCjIu MjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZGV2 ZWwgbWFpbGluZyBsaXN0CmRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5vcmcKaHR0cDovL2RyaXZl cmRldi5saW51eGRyaXZlcnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vZHJpdmVyZGV2LWRl dmVsCg==