From patchwork Thu May 10 07:20:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= X-Patchwork-Id: 10391291 X-Patchwork-Delegate: johannes@sipsolutions.net Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 60AB56053D for ; Thu, 10 May 2018 07:20:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B17E288BC for ; Thu, 10 May 2018 07:20:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3D91C28893; Thu, 10 May 2018 07:20:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 84218288BC for ; Thu, 10 May 2018 07:20:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756737AbeEJHUV (ORCPT ); Thu, 10 May 2018 03:20:21 -0400 Received: from mail.toke.dk ([52.28.52.200]:59793 "EHLO mail.toke.dk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756734AbeEJHUU (ORCPT ); Thu, 10 May 2018 03:20:20 -0400 Subject: [PATCH v3 2/3] staging: Dynamically allocate struct station_info DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1525936817; bh=kj6WfGch4t2TzPOGptxCNnbySpu6F0nW8CaTghCIOEs=; h=Subject:From:To:Date:In-Reply-To:References:From; b=rTRt2Fj11fKPHHG9A8QeMqCjDdrdf3THjSSp6ulApYWzqwB9vJ5FKBNDe4PR1tzEn Xx3q8TFbsQfoVo+v8e1qtC6NPi5WIUI1Tx6bVLT3IWn66rzb+QQTE/tHoXszn2DqtJ o16vGkOwKpYG5zy6n768dYXnqabcEElhbWC7sfr0nzn2SyQk6SH7WGtfJcKeGp3ApI R9resI0de1FNYfW3ILyhHzp8e/5EaSDDQ8yfCoFn7RHX/r0OQI7TlXbZDLwFy8DU2J IWXtQuS5AVXcppScBhTyo8Tjd4ONizKKDX6qQx/iyNsK9Yx31NjSQsjZ1/CnKUUPhK 4zSHNbpL8Gghw== From: Toke =?utf-8?q?H=C3=B8iland-J=C3=B8rgensen?= To: linux-wireless@vger.kernel.org Date: Thu, 10 May 2018 09:20:17 +0200 X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <152593681722.16852.2696052770562763059.stgit@alrua-kau> In-Reply-To: <152593681714.16852.1707659146940273335.stgit@alrua-kau> References: <152593681714.16852.1707659146940273335.stgit@alrua-kau> MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Since the addition of the TXQ stats to cfg80211, the station_info struct has grown to be quite large, which results in warnings when allocated on the stack. Fix the affected places to do dynamic allocations instead. This patch applies the fix to the rtl8723bs driver in staging while a separate patch fixes the drivers in the main tree. Fixes: 52539ca89f36 ("cfg80211: Expose TXQ stats and parameters to userspace") Signed-off-by: Toke Høiland-Jørgensen --- drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c index 46bc2e512557..1ffc8c9ada52 100644 --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c @@ -2431,17 +2431,23 @@ void rtw_cfg80211_indicate_sta_assoc(struct adapter *padapter, u8 *pmgmt_frame, DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); { - struct station_info sinfo; + struct station_info *sinfo; u8 ie_offset; if (GetFrameSubType(pmgmt_frame) == WIFI_ASSOCREQ) ie_offset = _ASOCREQ_IE_OFFSET_; else /* WIFI_REASSOCREQ */ ie_offset = _REASOCREQ_IE_OFFSET_; - sinfo.filled = 0; - sinfo.assoc_req_ies = pmgmt_frame + WLAN_HDR_A3_LEN + ie_offset; - sinfo.assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset; - cfg80211_new_sta(ndev, GetAddr2Ptr(pmgmt_frame), &sinfo, GFP_ATOMIC); + sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL); + if (!sinfo) + return; + + sinfo->filled = 0; + sinfo->assoc_req_ies = pmgmt_frame + WLAN_HDR_A3_LEN + ie_offset; + sinfo->assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset; + cfg80211_new_sta(ndev, GetAddr2Ptr(pmgmt_frame), sinfo, GFP_ATOMIC); + + kfree(sinfo); } }