Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3544653imu; Mon, 7 Jan 2019 05:24:02 -0800 (PST) X-Google-Smtp-Source: AFSGD/VWpx5o2cweLCdK+Wl9H3KLgPHUfgiUkCA2cAm/ez6R6kjtZOOpHR1t6BP5GteIbq3DMLAZ X-Received: by 2002:a62:528e:: with SMTP id g136mr65707792pfb.111.1546867442069; Mon, 07 Jan 2019 05:24:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546867442; cv=none; d=google.com; s=arc-20160816; b=O+BBteZz2ZteytRjUqYRaGBs2oJywj+EW5XN14/4NY4TCPw3Nsv7mh52fmUIi8n99U JKwP8geq+gUPCrcOggBzWK2NtRSToHq8gKFYyIYEqH1SNsOQZ2UG9Gy8/yD9h0TncfUL 1BtNNQG4NkO8xHuCIwmRphGLk6o/orxe6OVYwXxT1/E7PwrMmFIuZ0w0113BM0h5cjDl V7OZ3Fv4lBRYYEf7acAYJOAkiip2nrm1evVLXICtN+8w1AmPEwcjWwsHFEfx4V3aitBC 8MS02yoc4Xlj3TFkufiRqIHgg81nPpnogaNXsdJUf6Z2E53JDPPAWdwQIFS475Rh0JQK 0ZyQ== 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=TfVwTTNL7n4lpp60H95rzSaAILtKNCAcQv6aGF7Tx/w=; b=xjvgmyCDIVmh6f+91rQex41SQ0Yv4kz1cDUhTtVGM1ft79yzvXUQIVag8B3wmVdCzU 5JNNKOUto8ETcI0wR0eQWlBPedT0WPkIKUvKkRtQMUl7U/c0xFR3YHd3JrI1ckU2HQwv o6V21zvGRM0PiqPHpA/vVmGv5rkFFQiDOFW+d0WYjCKGMISp6TxvTtZ7zkFOzaD9gRqk nackGowrq55wkltdjicF+ejxzVJg4onftWgAKAazmGv3DkwAM1JyTEFzPCEKtzIp9lAs 0MiMNo9EMWqtKWkDTud/5/3fzTC7WMAgFA0OxTY+kLE3INWmWfctBWfojBcDyGhAwFZ1 DsLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="cRRpun/1"; 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 w5si63125062pfl.279.2019.01.07.05.23.47; Mon, 07 Jan 2019 05:24:02 -0800 (PST) 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="cRRpun/1"; 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 S1728553AbfAGMob (ORCPT + 99 others); Mon, 7 Jan 2019 07:44:31 -0500 Received: from mail.kernel.org ([198.145.29.99]:33000 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728763AbfAGMo2 (ORCPT ); Mon, 7 Jan 2019 07:44:28 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (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 41E0B20449; Mon, 7 Jan 2019 12:44:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546865067; bh=pUTwN74VX+YtOfWU+9HdoHmxmcJpKvLKcUq7LoRiCJM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cRRpun/1cC8ZydlTsTlDIOl27dFxutAUq8jlZR5R5vuui5g7Ki9pOR6aveCg42bFa xJyFlmTy1hayD3QrFlBpY2zNWMMrQPfYG7PTPs14gBxpqpmFTRV3xePpdX8roPnRNI l9zCMvUsrrTOgYCqTprzmA1xY21/3Wmwx5rVhF/g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jonas Gorski , Stijn Tintel , Kalle Valo Subject: [PATCH 4.20 099/145] brcmfmac: fix roamoff=1 modparam Date: Mon, 7 Jan 2019 13:32:16 +0100 Message-Id: <20190107104450.195994130@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190107104437.308206189@linuxfoundation.org> References: <20190107104437.308206189@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Stijn Tintel commit 8c892df41500469729e0d662816300196e4f463d upstream. When the update_connect_param callback is set, nl80211 expects the flag WIPHY_FLAG_SUPPORTS_FW_ROAM to be set as well. However, this flag is only set when modparam roamoff=0, while the callback is set unconditionally. Since commit 7f9a3e150ec7 this causes a warning in wiphy_register, which breaks brcmfmac. Disable the update_connect_param callback when roamoff=0 to fix this. Fixes: 7f9a3e150ec7 ("nl80211: Update ERP info using NL80211_CMD_UPDATE_CONNECT_PARAMS") Cc: Stable # 4.19+ Signed-off-by: Jonas Gorski Signed-off-by: Stijn Tintel Signed-off-by: Kalle Valo Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 11 +++++++++-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 2 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5196,10 +5196,17 @@ static struct cfg80211_ops brcmf_cfg8021 .del_pmk = brcmf_cfg80211_del_pmk, }; -struct cfg80211_ops *brcmf_cfg80211_get_ops(void) +struct cfg80211_ops *brcmf_cfg80211_get_ops(struct brcmf_mp_device *settings) { - return kmemdup(&brcmf_cfg80211_ops, sizeof(brcmf_cfg80211_ops), + struct cfg80211_ops *ops; + + ops = kmemdup(&brcmf_cfg80211_ops, sizeof(brcmf_cfg80211_ops), GFP_KERNEL); + + if (ops && settings->roamoff) + ops->update_connect_params = NULL; + + return ops; } struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h @@ -404,7 +404,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802 void brcmf_cfg80211_detach(struct brcmf_cfg80211_info *cfg); s32 brcmf_cfg80211_up(struct net_device *ndev); s32 brcmf_cfg80211_down(struct net_device *ndev); -struct cfg80211_ops *brcmf_cfg80211_get_ops(void); +struct cfg80211_ops *brcmf_cfg80211_get_ops(struct brcmf_mp_device *settings); enum nl80211_iftype brcmf_cfg80211_get_iftype(struct brcmf_if *ifp); struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -1130,7 +1130,7 @@ int brcmf_attach(struct device *dev, str brcmf_dbg(TRACE, "Enter\n"); - ops = brcmf_cfg80211_get_ops(); + ops = brcmf_cfg80211_get_ops(settings); if (!ops) return -ENOMEM;