Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp848093yba; Wed, 24 Apr 2019 10:33:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqwvuPkhbKPOX0QzvZuwevjCXvLmA9VFILtY01MNUhw3GEybdFhZO47cHwQhehzhAfkXhA0x X-Received: by 2002:a17:902:a5cb:: with SMTP id t11mr4318291plq.268.1556127233349; Wed, 24 Apr 2019 10:33:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556127233; cv=none; d=google.com; s=arc-20160816; b=Ki7C0m2jIuY7eb9aiPNBsaZuFe5ye/8anbzbKoB4STlI3KB86C5vH3BlGVdOurYGBl zt/EpIBNBIFqe2kDcITz1DUDpMXQqqBDhHg8aGwdNTmLHy9uKfGTl/FtClWZdczlHnPL IBVwUt2a39psrJ1OX1YIxXsnvmznf9YxOKu2QDmyBXvbJqiepbd34rVOB1qOMS5VbUal hIGrN/IEJ2PkBr8UF+MyBQH+yn06Lyfv3UqvPBRTFvA4IH7VAgmr2c5zKzlYhH38ccFt MpNSEicuRfFDiRk2MNt+GT+7YVyeCgHVgLagGah91El5Jh7WT+e3Nl0Bj9odOlGgVoR3 jC6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=k3rNwI1XHI+Wt/tXCWHa8fARwm11lzY8RrSRGOIb4LY=; b=xvR8ygP7LObuX0vsnyH9rxO21K9KFR1Pefn0fRmfqX+MQIOS4c1ElghNICU0gVMVTk o0naq/8udMimiiKZCJKhdXd5XWnBuv7cxc2Mu6He97yWcOtRRwo9i5hE3mqTftTUUuwS eofH7rfcN4zgjmRkNjK+LAV9/x+4ZrhVJgUNOCkvHzJ5ipuVZgece5NXgSylrmfvILm2 ycmi2FMNRLQKAxNq9cWGePXPgR4IrEyVWRmk/Zn8yH5d73G2Lr8CrZe3QxIDJN5ctNPS EzruIyUxbei9AsdO8vX0W2bYk2WFKdXgKIgzd4JQgdgDlN1u3/kt16L/NXibgk3hG0YM UxqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=pR15r0Us; 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 m88si20040572pfi.280.2019.04.24.10.33.38; Wed, 24 Apr 2019 10:33:53 -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; dkim=pass header.i=@kernel.org header.s=default header.b=pR15r0Us; 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 S2390877AbfDXRcF (ORCPT + 99 others); Wed, 24 Apr 2019 13:32:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:58636 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390116AbfDXRcC (ORCPT ); Wed, 24 Apr 2019 13:32:02 -0400 Received: from localhost (62-193-50-229.as16211.net [62.193.50.229]) (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 6E8042077C; Wed, 24 Apr 2019 17:32:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556127121; bh=JupyeE/Gp7ncCBpVd3LTorS+6XoRMOHvJYYv62ILULA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pR15r0UsKKpESvTklR/gntfeUv5L7/j+uw5JgS6whrrJyqwwQSZqB3UrBZuHKMCWH 8aJ1/sv6zH6HFE2e+6QhARscsFy30lyZb0EmeY0JmnyO1zx9eNfdIiGvpZ31KUSTAP LSMOyjnh3XNxE6JiiU8ucwmkjq5fnRqBo7oS8brI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Felix Fietkau , Johannes Berg Subject: [PATCH 4.19 70/96] mac80211: do not call driver wake_tx_queue op during reconfig Date: Wed, 24 Apr 2019 19:10:15 +0200 Message-Id: <20190424170924.488869565@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170919.829037226@linuxfoundation.org> References: <20190424170919.829037226@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Felix Fietkau commit 4856bfd230985e43e84c26473c91028ff0a533bd upstream. There are several scenarios in which mac80211 can call drv_wake_tx_queue after ieee80211_restart_hw has been called and has not yet completed. Driver private structs are considered uninitialized until mac80211 has uploaded the vifs, stations and keys again, so using private tx queue data during that time is not safe. The driver can also not rely on drv_reconfig_complete to figure out when it is safe to accept drv_wake_tx_queue calls again, because it is only called after all tx queues are woken again. To fix this, bail out early in drv_wake_tx_queue if local->in_reconfig is set. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg Signed-off-by: Greg Kroah-Hartman --- net/mac80211/driver-ops.h | 3 +++ 1 file changed, 3 insertions(+) --- a/net/mac80211/driver-ops.h +++ b/net/mac80211/driver-ops.h @@ -1166,6 +1166,9 @@ static inline void drv_wake_tx_queue(str { struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif); + if (local->in_reconfig) + return; + if (!check_sdata_in_driver(sdata)) return;