From: "Tobin C. Harding" <me@tobin.cc>
To: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: "Tobin C. Harding" <me@tobin.cc>,
kernel-hardening@lists.openwall.com,
linux-kernel@vger.kernel.org,
driverdev-devel@linuxdriverproject.org,
Tycho Andersen <tycho@tycho.ws>,
Kees Cook <keescook@chromium.org>
Subject: [PATCH 4/4] video: Remove stack VLA usage
Date: Fri, 9 Mar 2018 16:50:25 +1100 [thread overview]
Message-ID: <1520574625-4225-1-git-send-email-me@tobin.cc> (raw)
The kernel would like to have all stack VLA usage removed[1]. The
arrays are fixed here (declared with a const variable) but they appear
like VLAs to the compiler. We can use a pre-processor define to fix the
warning.
[1]: https://lkml.org/lkml/2018/3/7/621
Signed-off-by: Tobin C. Harding <me@tobin.cc>
---
drivers/video/fbdev/via/via_aux_sii164.c | 8 +++++---
drivers/video/fbdev/via/via_aux_vt1631.c | 11 +++++++----
drivers/video/fbdev/via/via_aux_vt1632.c | 11 +++++++----
drivers/video/fbdev/via/via_aux_vt1636.c | 11 +++++++----
4 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/drivers/video/fbdev/via/via_aux_sii164.c b/drivers/video/fbdev/via/via_aux_sii164.c
index ca1b35f033b1..f715ea4f466c 100644
--- a/drivers/video/fbdev/via/via_aux_sii164.c
+++ b/drivers/video/fbdev/via/via_aux_sii164.c
@@ -27,6 +27,9 @@
static const char *name = "SiI 164 PanelLink Transmitter";
+/* check vendor id and device id */
+const u8 id[] = {0x01, 0x00, 0x06, 0x00};
+#define VIA_SII164_LEN ARRAY_SIZE(id)
static void probe(struct via_aux_bus *bus, u8 addr)
{
@@ -34,9 +37,8 @@ static void probe(struct via_aux_bus *bus, u8 addr)
.bus = bus,
.addr = addr,
.name = name};
- /* check vendor id and device id */
- const u8 id[] = {0x01, 0x00, 0x06, 0x00}, len = ARRAY_SIZE(id);
- u8 tmp[len];
+ u8 tmp[VIA_SII164_LEN];
+ int len = VIA_SII164_LEN;
if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
return;
diff --git a/drivers/video/fbdev/via/via_aux_vt1631.c b/drivers/video/fbdev/via/via_aux_vt1631.c
index 06e742f1f723..5bfaa20ec5a8 100644
--- a/drivers/video/fbdev/via/via_aux_vt1631.c
+++ b/drivers/video/fbdev/via/via_aux_vt1631.c
@@ -27,16 +27,19 @@
static const char *name = "VT1631 LVDS Transmitter";
+/* check vendor id and device id */
+const u8 id[] = {0x06, 0x11, 0x91, 0x31}, len = ARRAY_SIZE(id);
+#define VIA_VT1631_LEN ARRAY_SIZE(id)
void via_aux_vt1631_probe(struct via_aux_bus *bus)
{
struct via_aux_drv drv = {
.bus = bus,
.addr = 0x38,
- .name = name};
- /* check vendor id and device id */
- const u8 id[] = {0x06, 0x11, 0x91, 0x31}, len = ARRAY_SIZE(id);
- u8 tmp[len];
+ .name = name
+ };
+ u8 tmp[VIA_VT1631_LEN];
+ int len = VIA_VT1631_LEN;
if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
return;
diff --git a/drivers/video/fbdev/via/via_aux_vt1632.c b/drivers/video/fbdev/via/via_aux_vt1632.c
index d24f4cd97401..fcddd761d4a4 100644
--- a/drivers/video/fbdev/via/via_aux_vt1632.c
+++ b/drivers/video/fbdev/via/via_aux_vt1632.c
@@ -27,16 +27,19 @@
static const char *name = "VT1632 DVI Transmitter";
+/* check vendor id and device id */
+const u8 id[] = {0x06, 0x11, 0x92, 0x31};
+#define VIA_VT1632_LEN ARRAY_SIZE(id)
static void probe(struct via_aux_bus *bus, u8 addr)
{
struct via_aux_drv drv = {
.bus = bus,
.addr = addr,
- .name = name};
- /* check vendor id and device id */
- const u8 id[] = {0x06, 0x11, 0x92, 0x31}, len = ARRAY_SIZE(id);
- u8 tmp[len];
+ .name = name
+ };
+ u8 tmp[VIA_VT1632_LEN];
+ int len = VIA_VT1632_LEN;
if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
return;
diff --git a/drivers/video/fbdev/via/via_aux_vt1636.c b/drivers/video/fbdev/via/via_aux_vt1636.c
index 9e015c101d4d..49c9269c7f81 100644
--- a/drivers/video/fbdev/via/via_aux_vt1636.c
+++ b/drivers/video/fbdev/via/via_aux_vt1636.c
@@ -27,16 +27,19 @@
static const char *name = "VT1636 LVDS Transmitter";
+/* check vendor id and device id */
+const u8 id[] = {0x06, 0x11, 0x45, 0x33};
+#define VIA_VT1636_LEN ARRAY_SIZE(id)
void via_aux_vt1636_probe(struct via_aux_bus *bus)
{
struct via_aux_drv drv = {
.bus = bus,
.addr = 0x40,
- .name = name};
- /* check vendor id and device id */
- const u8 id[] = {0x06, 0x11, 0x45, 0x33}, len = ARRAY_SIZE(id);
- u8 tmp[len];
+ .name = name
+ };
+ u8 tmp[VIA_VT1636_LEN];
+ int len = VIA_VT1636_LEN;
if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
return;
--
2.7.4
next reply other threads:[~2018-03-09 5:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-09 5:50 Tobin C. Harding [this message]
2018-03-09 6:01 ` Joe Perches
2018-03-09 6:04 ` Tobin C. Harding
2018-03-09 6:11 ` Tycho Andersen
2018-03-09 6:16 ` Gustavo A. R. Silva
2018-03-09 6:28 ` Tobin C. Harding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1520574625-4225-1-git-send-email-me@tobin.cc \
--to=me@tobin.cc \
--cc=FlorianSchandinat@gmx.de \
--cc=b.zolnierkie@samsung.com \
--cc=driverdev-devel@linuxdriverproject.org \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tycho@tycho.ws \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®