From patchwork Fri May 5 19:47:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98693 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp292855qge; Fri, 5 May 2017 12:48:44 -0700 (PDT) X-Received: by 10.84.128.47 with SMTP id 44mr66810969pla.35.1494013724740; Fri, 05 May 2017 12:48:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494013724; cv=none; d=google.com; s=arc-20160816; b=TYlZeDvZCwlGl+o93h2/8RNZRerqZ8KQe9Dlv3Z2ap5K4pmOrSbJB9U260fs2hHsBY UcnIvA6TJQvdwe5qIN2rkfa+e5mcnAmugMSA/Gl92FQfSgFbfiTbTROv1lZEPWNORmeL beQzhY6W6Rd0m3wZrjdwZVBDBrH4HbdZTFAU20bAJrXzQxy/u/7SzfZ+TtTrxvyZaI/M 1I/j1HKOX7miT1hj70SEcmA3xBMhyYipRxHN1Qv6/+TL9A8L26dcjESGB96OaxFVAz+w KXpOIOjArz0GkaDXqt36pFavEkjpOQPb8uoWYiuqLK058vGzrvaxdiWfQQrFb9h7C/4E Cf+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=FzZq1qx33bNCZeHc9d+lMjmALdnGf+IvRTpqbwKOso0=; b=FtqMeQZUxujHDZSrkks8RwvfV65tJhMDIM6ArMzqvKUZNVYulpVV4uchhElXDnfxs5 zP1I9oZIyubue07SuKbNvmnAmJUxTHjncUwwuJJO4yYkxtGTZgNZAs4DOpinoMG93u9n 3aLq4TX98gENo+IsSVCqzWFi1o2ILywcVB2vD8RyrWXRd9UsJFjp8MyRjQDSE5O8q0KW ygTovFdURw1PGKYkPDgp4gUCfwytVvGb/PlU26sW4Uc0YAyqBKpqun51znxOmTnDxFSZ o4kxhra7mOkmCp1cNgasLUJYpTXot0lQGKqESB/31NA7BPE57jhJLbyDyUgEAb9XnlQx ROUw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 n5si2698005pgk.367.2017.05.05.12.48.44; Fri, 05 May 2017 12:48:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755715AbdEETsi (ORCPT + 6 others); Fri, 5 May 2017 15:48:38 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:61480 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754768AbdEETsc (ORCPT ); Fri, 5 May 2017 15:48:32 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0M9B5p-1dCXZr1lpV-00CVH6; Fri, 05 May 2017 21:48:30 +0200 From: Arnd Bergmann To: Ben Hutchings Cc: stable@vger.kernel.org, Arnd Bergmann Subject: [PATCH 3.16-stable 65/87] staging: vt6655: fix overly large stack usage Date: Fri, 5 May 2017 21:47:23 +0200 Message-Id: <20170505194745.3627137-66-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170505194745.3627137-1-arnd@arndb.de> References: <20170505194745.3627137-1-arnd@arndb.de> X-Provags-ID: V03:K0:+OErm4qW4GqVjTdfROLgUcEHAEaxbEYzJsIyiu7KbWwUX7kyXEw iR8vcGYsjncCIC2BMA4XiR0p5aXC49Omi5c76hNMfq91Aqh9wRRreNUHHeB2sYl+zmwk+4g 6Eh1MhASGbaehX8mjqSwatV9xWKC+NL4GBlGWWZQSEbpYJHjOrUmCPNg8tJlefe99a7wA/j HOU5O5cQqUg0CyBUscPHA== X-UI-Out-Filterresults: notjunk:1; V01:K0:IYNpyHZZwSY=:93/F72y1aZ60aaLWvHRZme O5INIYTHLzfT3UkgxlJpVNqYoNNBwQYNU1bX3O/7PqQoiszbaMFOqEQBSLr00GUJMvMfKXFkp L+NMkkBYxLIZAPxKQgRl6zceaJVZCzwe652xoeZRQ+iQ8/NnVpxtLvHP5QBP5abX/ev7j8png ZUy8/HqijZrzjByxSJhGFP3hKhmyd0IxPPDGDNPhnJXzU4RwDwTq2UynMxzVFf+/d81YfNSYi /qY/0Q2xfI1nd1l/yiScaOHQshVuXy5zUKqvho2dXgsPba4wqZz7QjSrEQPzem8LrGbslFaVC 1R799awUYp0aOkRseSxpbPKSq1u6/OLsvnbVYzIjtA0AreV5/4id79F5wW9AOG7zdqm6ZnHrk Ozun6M3aesUJD4tOug5BfVXQ2hyI0R0dMV7XG/pXjxe214LYES2Xr4YGaWTwAxdNsXiWhGKXI kXqwynRNBMbBchfdHHgLRoYxUNJ1lmmZG2KtwtY0Cne0DFm1NcRb6S4we3KaBayWivuHdeTum XJPt2Lr9hch/WjbRy4v+KE3lVQMM+rnP5ejvI1o5mFbHB6kptCsxJcpHidPUex7t/sPkXQVeV 8GgmjKpuL5BX06hjdw/WeH04HPIP+S/XGBJF7VAYEtEoUEp3caNJbNrb5fw+/BWPOCU4ClBpq 6s7EsD6VyOOaXIuYNKH+T4K/emLG/qBt86prb5aila/nyP+yu8CxnWWifudzDNLlaXHM= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org We get a warning for the large stack usage in some configurations: drivers/staging/vt6655/device_main.c: In function 'device_ioctl': drivers/staging/vt6655/device_main.c:2974:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=] This is addressed in linux-3.19 with commit 67013f2c0e58 ("staging: vt6655: mac80211 conversion add main mac80211 functions"), which obsoletes the device_ioctl() function, but as that does not apply to stable kernels, this picks an easier way out by using dynamic allocation. The driver was merged in 2.6.31, and the fix applies to all versions before 3.19. Fixes: 5449c685a4b3 ("Staging: Add pristine upstream vt6655 driver sources") Signed-off-by: Arnd Bergmann --- drivers/staging/vt6655/device_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) -- 2.9.0 diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index e3ae2599a2b7..88ffe31053ed 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -2933,11 +2933,13 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWSENS \n"); rc = -EOPNOTSUPP; break; - case SIOCGIWAPLIST: { - char buffer[IW_MAX_AP * (sizeof(struct sockaddr) + sizeof(struct iw_quality))]; + char *buffer = kzalloc(IW_MAX_AP * (sizeof(struct sockaddr) + + sizeof(struct iw_quality)), GFP_KERNEL); - if (wrq->u.data.pointer) { + if (!buffer) { + rc = -ENOMEM; + } else if (wrq->u.data.pointer) { rc = iwctl_giwaplist(dev, NULL, &(wrq->u.data), buffer); if (rc == 0) { if (copy_to_user(wrq->u.data.pointer, @@ -2947,6 +2949,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { rc = -EFAULT; } } + kfree(buffer); } break; @@ -2993,7 +2996,6 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWGENIE \n"); rc = iwctl_giwgenie(dev, NULL, &(wrq->u.data), wrq->u.data.pointer); break; - case SIOCSIWENCODEEXT: { char extra[sizeof(struct iw_encode_ext)+MAX_KEY_LEN+1]; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWENCODEEXT \n");