Received: by 2002:a17:90a:88:0:0:0:0 with SMTP id a8csp29502pja; Fri, 22 Nov 2019 03:03:04 -0800 (PST) X-Google-Smtp-Source: APXvYqwYWWvZeCXwGimvk7rNp+RNTLblP4c0YYhZ8EZC09zTFVuzPDia8yBjpGC131bEDipJXdyF X-Received: by 2002:aa7:dcc4:: with SMTP id w4mr305900edu.161.1574420584030; Fri, 22 Nov 2019 03:03:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574420584; cv=none; d=google.com; s=arc-20160816; b=lImd+G/Ryi3UP4fiTepPSHjZe4WNGxLxpcTH+nuiLQaBtd2VGQZa/YNY/T+SmHXKxQ Wmc+dwdOY0rAlP/7BtMkHR+SHbmOxI8uLOL8IHXhUvTRa0J0jz6Cy7jFoHL9RYQGbCWX pBCOd2WAXRBgaeeOYbYVkMqmAOp7QQfNGh9fmSr/MgOpI1zuPw8C82hBF7/50MfP7pQa fo1RmpkAMA1+R8yGbkNXUChMfQcaZGrQjQryuiqSERjsUltRMXYbJrXdRABkez8vFAmU UD6GoXVqLad8I63XklyEpyFwaxna7W1qBBWtPD995QVYA7LYlRkjKzo+BHNql58YBUEd l1Qw== 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=dUWIEZLxjjAwsZ5h4+UuekpJ1J5DTGUTqCS1NfTcGTA=; b=HnpavYFKi9usLJpIlh+iBxzq/IngwQtA8Zvk11Z02Tm939Vn95KWz569DuCNW124aF Lau+xCXoOCL/ORcdhDI8yPhwKiXsLhrTfY0eu589BzdjcGtGhDRRduMF5Jxsa/MGX0Aw yxUuYF/Yi15pGIo28ZzlClalgun0qf7VBN8y5wRRYltUKk4gL7qWif081G8sjXQE5F2e JQV6327u89waRPzl6MnFhyEixxW1p7VbpeH9jfc0TzWu+gZoG9KVWPye/Z7Xc0VGQViN rI/j2jFGcOlk13/6nBjbiX+QYAa3dWC5tAIqQ/NUxm31ukznqI1/bJGXB0uihiTEk+eu cLYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ODEThaCo; 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 j15si3859876ejv.335.2019.11.22.03.02.31; Fri, 22 Nov 2019 03:03:04 -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=ODEThaCo; 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 S1730861AbfKVLBL (ORCPT + 99 others); Fri, 22 Nov 2019 06:01:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:53888 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730109AbfKVLBJ (ORCPT ); Fri, 22 Nov 2019 06:01:09 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 C704520706; Fri, 22 Nov 2019 11:01:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574420469; bh=9tlsXAq1wvbQ7vXhH0WzC2FHYWWLkSRWNraPNNPO6MY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ODEThaCoj5Sw/zS9EFFOkLzTW58dJ3d8VKomapIxgd2hay6Kk4TBp+dVTyDXXykke 7gS9GXm6IvUKywu+jQlK1RL2OR9XqEc/nen2v7xGYJaHOv6Xa5FSqQ9v6sXfb0E1Fn mLVLZu7ZHoZOOdN38e6oSQvv853626l+0tb7dImA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sergey Matyukevich , Kalle Valo , Sasha Levin Subject: [PATCH 4.19 115/220] qtnfmac: inform wireless core about supported extended capabilities Date: Fri, 22 Nov 2019 11:28:00 +0100 Message-Id: <20191122100921.014116895@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191122100912.732983531@linuxfoundation.org> References: <20191122100912.732983531@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: Sergey Matyukevich [ Upstream commit ab1c64a1d349cc7f1090a60ce85a53298e3d371d ] Driver retrieves information about supported extended capabilities from wireless card. However this information is not propagated further to Linux wireless core. Fix this by setting extended capabilities fields of wiphy structure. Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin --- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 9 +++++++++ .../net/wireless/quantenna/qtnfmac/commands.c | 3 +-- drivers/net/wireless/quantenna/qtnfmac/core.c | 16 ++++++++++++++-- drivers/net/wireless/quantenna/qtnfmac/core.h | 1 + 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c index 1519d986b74a4..05b93f301ca08 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c +++ b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c @@ -1126,6 +1126,15 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, struct qtnf_wmac *mac) wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED; } + if (mac->macinfo.extended_capabilities_len) { + wiphy->extended_capabilities = + mac->macinfo.extended_capabilities; + wiphy->extended_capabilities_mask = + mac->macinfo.extended_capabilities_mask; + wiphy->extended_capabilities_len = + mac->macinfo.extended_capabilities_len; + } + strlcpy(wiphy->fw_version, hw_info->fw_version, sizeof(wiphy->fw_version)); wiphy->hw_version = hw_info->hw_version; diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c index 7fe22bb53bfc4..734844b34c266 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/commands.c +++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c @@ -1356,8 +1356,7 @@ static int qtnf_parse_variable_mac_info(struct qtnf_wmac *mac, ext_capa_mask = NULL; } - kfree(mac->macinfo.extended_capabilities); - kfree(mac->macinfo.extended_capabilities_mask); + qtnf_mac_ext_caps_free(mac); mac->macinfo.extended_capabilities = ext_capa; mac->macinfo.extended_capabilities_mask = ext_capa_mask; mac->macinfo.extended_capabilities_len = ext_capa_len; diff --git a/drivers/net/wireless/quantenna/qtnfmac/core.c b/drivers/net/wireless/quantenna/qtnfmac/core.c index 19abbc4e23e06..08928d5e252d7 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/core.c +++ b/drivers/net/wireless/quantenna/qtnfmac/core.c @@ -304,6 +304,19 @@ void qtnf_mac_iface_comb_free(struct qtnf_wmac *mac) } } +void qtnf_mac_ext_caps_free(struct qtnf_wmac *mac) +{ + if (mac->macinfo.extended_capabilities_len) { + kfree(mac->macinfo.extended_capabilities); + mac->macinfo.extended_capabilities = NULL; + + kfree(mac->macinfo.extended_capabilities_mask); + mac->macinfo.extended_capabilities_mask = NULL; + + mac->macinfo.extended_capabilities_len = 0; + } +} + static void qtnf_vif_reset_handler(struct work_struct *work) { struct qtnf_vif *vif = container_of(work, struct qtnf_vif, reset_work); @@ -493,8 +506,7 @@ static void qtnf_core_mac_detach(struct qtnf_bus *bus, unsigned int macid) } qtnf_mac_iface_comb_free(mac); - kfree(mac->macinfo.extended_capabilities); - kfree(mac->macinfo.extended_capabilities_mask); + qtnf_mac_ext_caps_free(mac); kfree(mac->macinfo.wowlan); wiphy_free(wiphy); bus->mac[macid] = NULL; diff --git a/drivers/net/wireless/quantenna/qtnfmac/core.h b/drivers/net/wireless/quantenna/qtnfmac/core.h index a1e338a1f055a..ecb5c41c8ed76 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/core.h +++ b/drivers/net/wireless/quantenna/qtnfmac/core.h @@ -151,6 +151,7 @@ struct qtnf_hw_info { struct qtnf_vif *qtnf_mac_get_free_vif(struct qtnf_wmac *mac); struct qtnf_vif *qtnf_mac_get_base_vif(struct qtnf_wmac *mac); void qtnf_mac_iface_comb_free(struct qtnf_wmac *mac); +void qtnf_mac_ext_caps_free(struct qtnf_wmac *mac); struct wiphy *qtnf_wiphy_allocate(struct qtnf_bus *bus); int qtnf_core_net_attach(struct qtnf_wmac *mac, struct qtnf_vif *priv, const char *name, unsigned char name_assign_type); -- 2.20.1