From patchwork Wed May 9 21:41:53 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: 10390875 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 454D960540 for ; Wed, 9 May 2018 21:42:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 33B662871F for ; Wed, 9 May 2018 21:42:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 311D728760; Wed, 9 May 2018 21:42:16 +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 DE21F287DC for ; Wed, 9 May 2018 21:41:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965505AbeEIVl5 (ORCPT ); Wed, 9 May 2018 17:41:57 -0400 Received: from mail.toke.dk ([52.28.52.200]:38681 "EHLO mail.toke.dk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935504AbeEIVlz (ORCPT ); Wed, 9 May 2018 17:41:55 -0400 Subject: [PATCH v2 2/3] staging: Dynamically allocate struct station_info DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1525902114; bh=kj6WfGch4t2TzPOGptxCNnbySpu6F0nW8CaTghCIOEs=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Mli0iSewuwRioqVAT6czwyv2853rUV+XQQrSpk0O63irHcMLol/QITtiNt0oCMXtN v9ysZEIW+zWRtYpOeP1pTodWxDQORVdEQ8CV0hCCi6KCPfVMyKwCV/muD1VGGC13/+ vgPc60iGrMU9OlTjQEuPxS3r1WkniQ2mtG8y5gBAB7Gr+TbFXNe2u0eUtd3baZHWZV UtiwV2JJDwoDOWocM7f1dgprBLjmAUWA4ETcvp45/HLHPjJQQTlYKQY4cIb6vplcfM VFkp6IMc0f/iMFhCXiBhiOsQgX0Hks57HIVBYhssTNHUpFM9iWoUL3Obj3YWGCUbyD AonTzWvX+TzAw== From: Toke =?utf-8?q?H=C3=B8iland-J=C3=B8rgensen?= To: linux-wireless@vger.kernel.org Date: Wed, 09 May 2018 23:41:53 +0200 X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <152590211365.13924.15018198940585646104.stgit@alrua-kau> In-Reply-To: <152590211357.13924.18408619969539206421.stgit@alrua-kau> References: <152590211357.13924.18408619969539206421.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); } }