Message ID | 20180530204830.GA24884@beast |
---|---|
State | New |
Headers | show |
Series | [v2] mdio-mux-gpio: Remove VLA usage | expand |
On Wed, May 30, 2018 at 01:48:30PM -0700, Kees Cook wrote: > In the quest to remove all stack VLA usage from the kernel[1], this > moves the allocation into struct mdio_mux_gpio_state during probe. > > [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com > > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > v2: allocate array as part of structure (Andrew Lunn) Hi Kees This looks much better, thanks. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, May 30, 2018 at 1:57 PM, Andrew Lunn <andrew@lunn.ch> wrote: > On Wed, May 30, 2018 at 01:48:30PM -0700, Kees Cook wrote: >> In the quest to remove all stack VLA usage from the kernel[1], this >> moves the allocation into struct mdio_mux_gpio_state during probe. >> >> [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com >> >> Signed-off-by: Kees Cook <keescook@chromium.org> >> --- >> v2: allocate array as part of structure (Andrew Lunn) > > Hi Kees > > This looks much better, thanks. > > Reviewed-by: Andrew Lunn <andrew@lunn.ch> Thanks! Who can take this patch? Linus? -Kees
On Tue, Jun 19, 2018 at 09:44:27PM -0700, Kees Cook wrote: > On Wed, May 30, 2018 at 1:57 PM, Andrew Lunn <andrew@lunn.ch> wrote: > > On Wed, May 30, 2018 at 01:48:30PM -0700, Kees Cook wrote: > >> In the quest to remove all stack VLA usage from the kernel[1], this > >> moves the allocation into struct mdio_mux_gpio_state during probe. > >> > >> [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com > >> > >> Signed-off-by: Kees Cook <keescook@chromium.org> > >> --- > >> v2: allocate array as part of structure (Andrew Lunn) > > > > Hi Kees > > > > This looks much better, thanks. > > > > Reviewed-by: Andrew Lunn <andrew@lunn.ch> > > Thanks! Who can take this patch? Linus? David Miller. Does it cleanly apply to net-next? Andrew -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Andrew Lunn <andrew@lunn.ch> Date: Wed, 20 Jun 2018 08:32:48 +0200 > Does it cleanly apply to net-next? net-next is closed, so net-next submissions should be sent when it opens back up which should be some time this weekend. Anything not in "Under Review" state in patchwork always must be resubmitted at the appropriate time. -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/phy/mdio-mux-gpio.c b/drivers/net/phy/mdio-mux-gpio.c index 082ffef0dec4..6b55e0ddef63 100644 --- a/drivers/net/phy/mdio-mux-gpio.c +++ b/drivers/net/phy/mdio-mux-gpio.c @@ -20,23 +20,23 @@ struct mdio_mux_gpio_state { struct gpio_descs *gpios; void *mux_handle; + int values[]; }; static int mdio_mux_gpio_switch_fn(int current_child, int desired_child, void *data) { struct mdio_mux_gpio_state *s = data; - int values[s->gpios->ndescs]; unsigned int n; if (current_child == desired_child) return 0; for (n = 0; n < s->gpios->ndescs; n++) - values[n] = (desired_child >> n) & 1; + s->values[n] = (desired_child >> n) & 1; gpiod_set_array_value_cansleep(s->gpios->ndescs, s->gpios->desc, - values); + s->values); return 0; } @@ -44,15 +44,21 @@ static int mdio_mux_gpio_switch_fn(int current_child, int desired_child, static int mdio_mux_gpio_probe(struct platform_device *pdev) { struct mdio_mux_gpio_state *s; + struct gpio_descs *gpios; int r; - s = devm_kzalloc(&pdev->dev, sizeof(*s), GFP_KERNEL); - if (!s) + gpios = gpiod_get_array(&pdev->dev, NULL, GPIOD_OUT_LOW); + if (IS_ERR(gpios)) + return PTR_ERR(gpios); + + s = devm_kzalloc(&pdev->dev, sizeof(*s->values) * gpios->ndescs + + sizeof(*s), GFP_KERNEL); + if (!s) { + gpiod_put_array(gpios); return -ENOMEM; + } - s->gpios = gpiod_get_array(&pdev->dev, NULL, GPIOD_OUT_LOW); - if (IS_ERR(s->gpios)) - return PTR_ERR(s->gpios); + s->gpios = gpios; r = mdio_mux_init(&pdev->dev, pdev->dev.of_node, mdio_mux_gpio_switch_fn, &s->mux_handle, s, NULL);
In the quest to remove all stack VLA usage from the kernel[1], this moves the allocation into struct mdio_mux_gpio_state during probe. [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com Signed-off-by: Kees Cook <keescook@chromium.org> --- v2: allocate array as part of structure (Andrew Lunn) --- drivers/net/phy/mdio-mux-gpio.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-)