Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp345205pxx; Wed, 28 Oct 2020 06:22:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzYs4cB6AfVTEG/LQsf9qMk1PJMReCRDj1dkV9LGXxHxA/z/HJT7H9PGqAnwnztb2AqIq8p X-Received: by 2002:a05:6402:384:: with SMTP id o4mr7728014edv.387.1603891343507; Wed, 28 Oct 2020 06:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603891343; cv=none; d=google.com; s=arc-20160816; b=zAAS4HuOtAODrPDzRpV4oBrzwqLAELSQEFuRlk8YCEch8Obqg8eakrVhXpJfQmGfyk KJhE7s6KoTOEsWk/2dYdcgcu1z0+h9fU9mqVV+uU9ysF4f8SRMse3CxN71lSOKObZ9Uy hBz5cc+AJr7FLIqzMiYy8UQk8e/6lbdiTitBEH8FC4RUuzN4ulfKXxWqDu0CWsqe1xpQ cFAP/HklrzgTeDV4OIVGFKVywUdnDQ42U9cWgWHq5l6rQIVwQmY1Co4s9F3J3GzmIUeB 9zu4UdafIe/+PoPluIYgCdDmN3MLBdOpAUZYFc/DWJtSbdOZxfW1ryD/od7AE3FBkseu 5TZQ== 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=ohjzCHTIlXqDwppO7+NMbu1DYyBhTQeUjk2qpNk/4AQ=; b=cCtTRtQ7OTfhiQN8WhpIQ80e5OltUzOzVOOFTFFpx3FVI6ElOtGixVKi/+5vw31+HD CPy2IKe2f7+SceSm9mqNUVig+dVcY8ue6xxLDmHKvpIded5Uxi6IJ1wrdqJQrb1ppyx/ +HkZPfxnRnIVFPPeVyzPpc8ij2NYaTsilNOgEqq35GBDDjuTkno3q5Pi5JasiRvSTZ97 aD5BAKxBk1uo4BFvapFKrOUf71h/Dcz3dz0SPMmpJEM1+XoUArxTKg8VzvYo8Vya9nHY A0KF7exBjnzHtPMX1PqnFHC3castdgjw+TeFy1cEoJ8M7UaUD8HMwx67fbSk0S3/WGgz 87BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dBVVFYyY; 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=fail (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 d2si2953320edn.245.2020.10.28.06.22.00; Wed, 28 Oct 2020 06:22:23 -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=@kernel.org header.s=default header.b=dBVVFYyY; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1799513AbgJ0Pm2 (ORCPT + 99 others); Tue, 27 Oct 2020 11:42:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:51498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1799876AbgJ0Pdx (ORCPT ); Tue, 27 Oct 2020 11:33:53 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9A96D22263; Tue, 27 Oct 2020 15:33:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603812832; bh=X0JhAcdX0GJjijwZDUlnwnbHgDOOhxJpSUNZtm3TzUc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dBVVFYyYYdR/ka3MJLl3gK9smTxxW4sTKuThiNFl5mvFhe0ESWe7kh5dOkIvCuvFr j/ZDCxQcFpVeXtz5jnfuvnIuBQVd0YaQerZRluaKw4Tz0ovw0iMksII4BD7TXPrnLj w0mHPyQDux4alJNLUzxcStNtY2roYG6mAKU0Vcno= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chin-Yen Lee , Yan-Hsuan Chuang , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Kalle Valo , Sasha Levin Subject: [PATCH 5.9 314/757] rtw88: Fix potential probe error handling race with wow firmware loading Date: Tue, 27 Oct 2020 14:49:24 +0100 Message-Id: <20201027135505.265834977@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@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: Andreas Färber [ Upstream commit ac4bac99161e8f7a7a9faef70d8ca8f69d5493a9 ] If rtw_core_init() fails to load the wow firmware, rtw_core_deinit() will not get called to clean up the regular firmware. Ensure that an error loading the wow firmware does not produce an oops for the regular firmware by waiting on its completion to be signalled before returning. Also release the loaded firmware. Fixes: c8e5695eae99 ("rtw88: load wowlan firmware if wowlan is supported") Cc: Chin-Yen Lee Cc: Yan-Hsuan Chuang Signed-off-by: Andreas Färber Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20200920132621.26468-3-afaerber@suse.de Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtw88/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c index 58c760dfd6b80..d69e4c6fc680a 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -1473,6 +1473,9 @@ int rtw_core_init(struct rtw_dev *rtwdev) ret = rtw_load_firmware(rtwdev, RTW_WOWLAN_FW); if (ret) { rtw_warn(rtwdev, "no wow firmware loaded\n"); + wait_for_completion(&rtwdev->fw.completion); + if (rtwdev->fw.firmware) + release_firmware(rtwdev->fw.firmware); return ret; } } -- 2.25.1