All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  4:13 ` Andrew Jeffery
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Jeffery @ 2016-04-19  4:13 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: Tomasz Figa, Krzysztof Kozlowski, Sylwester Nawrocki,
	Linus Walleij, Kukjin Kim, Thomas P Abraham, linux-arm-kernel,
	linux-gpio, linux-kernel, stable

The range is registered into a linked list which can be referenced
throughout the lifetime of the driver. Ensure the range's memory is useful
for the same lifetime by adding it to the driver's private data structure.

The bug was introduced in the driver's initial commit, which was present in
v3.10.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
Cc: stable@vger.kernel.org
---
This is my first contribution to the kernel, so hopefully I've followed all the
relevant documentation. If not, please let me know and point me in the right
direction!

I don't have the means to test the patch, but it compiles. Someone with
appropriate hardware should probably give it a spin.

 drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
index 00ab63abf1d9..d45028a75c0f 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
@@ -117,6 +117,7 @@ struct exynos5440_pinctrl_priv_data {
 	unsigned int			nr_groups;
 	const struct exynos5440_pmx_func	*pmx_functions;
 	unsigned int			nr_functions;
+	struct pinctrl_gpio_range	range;
 };
 
 /**
@@ -742,7 +743,6 @@ static int exynos5440_pinctrl_register(struct platform_device *pdev,
 	struct pinctrl_desc *ctrldesc;
 	struct pinctrl_dev *pctl_dev;
 	struct pinctrl_pin_desc *pindesc, *pdesc;
-	struct pinctrl_gpio_range grange;
 	char *pin_names;
 	int pin, ret;
 
@@ -794,12 +794,12 @@ static int exynos5440_pinctrl_register(struct platform_device *pdev,
 		return PTR_ERR(pctl_dev);
 	}
 
-	grange.name = "exynos5440-pctrl-gpio-range";
-	grange.id = 0;
-	grange.base = 0;
-	grange.npins = EXYNOS5440_MAX_PINS;
-	grange.gc = priv->gc;
-	pinctrl_add_gpio_range(pctl_dev, &grange);
+	priv->range.name = "exynos5440-pctrl-gpio-range";
+	priv->range.id = 0;
+	priv->range.base = 0;
+	priv->range.npins = EXYNOS5440_MAX_PINS;
+	priv->range.gc = priv->gc;
+	pinctrl_add_gpio_range(pctl_dev, &priv->range);
 	return 0;
 }
 
-- 
2.5.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  4:13 ` Andrew Jeffery
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Jeffery @ 2016-04-19  4:13 UTC (permalink / raw)
  To: linux-arm-kernel

The range is registered into a linked list which can be referenced
throughout the lifetime of the driver. Ensure the range's memory is useful
for the same lifetime by adding it to the driver's private data structure.

The bug was introduced in the driver's initial commit, which was present in
v3.10.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
Cc: stable at vger.kernel.org
---
This is my first contribution to the kernel, so hopefully I've followed all the
relevant documentation. If not, please let me know and point me in the right
direction!

I don't have the means to test the patch, but it compiles. Someone with
appropriate hardware should probably give it a spin.

 drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
index 00ab63abf1d9..d45028a75c0f 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
@@ -117,6 +117,7 @@ struct exynos5440_pinctrl_priv_data {
 	unsigned int			nr_groups;
 	const struct exynos5440_pmx_func	*pmx_functions;
 	unsigned int			nr_functions;
+	struct pinctrl_gpio_range	range;
 };
 
 /**
@@ -742,7 +743,6 @@ static int exynos5440_pinctrl_register(struct platform_device *pdev,
 	struct pinctrl_desc *ctrldesc;
 	struct pinctrl_dev *pctl_dev;
 	struct pinctrl_pin_desc *pindesc, *pdesc;
-	struct pinctrl_gpio_range grange;
 	char *pin_names;
 	int pin, ret;
 
@@ -794,12 +794,12 @@ static int exynos5440_pinctrl_register(struct platform_device *pdev,
 		return PTR_ERR(pctl_dev);
 	}
 
-	grange.name = "exynos5440-pctrl-gpio-range";
-	grange.id = 0;
-	grange.base = 0;
-	grange.npins = EXYNOS5440_MAX_PINS;
-	grange.gc = priv->gc;
-	pinctrl_add_gpio_range(pctl_dev, &grange);
+	priv->range.name = "exynos5440-pctrl-gpio-range";
+	priv->range.id = 0;
+	priv->range.base = 0;
+	priv->range.npins = EXYNOS5440_MAX_PINS;
+	priv->range.gc = priv->gc;
+	pinctrl_add_gpio_range(pctl_dev, &priv->range);
 	return 0;
 }
 
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
  2016-04-19  4:13 ` Andrew Jeffery
  (?)
@ 2016-04-19  7:24   ` Tomasz Figa
  -1 siblings, 0 replies; 8+ messages in thread
From: Tomasz Figa @ 2016-04-19  7:24 UTC (permalink / raw)
  To: Andrew Jeffery, Krzysztof Kozlowski, Sylwester Nawrocki
  Cc: linux-samsung-soc, Linus Walleij, Kukjin Kim, Thomas P Abraham,
	linux-arm-kernel, linux-gpio, linux-kernel, stable

Hi Andrew,

2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
> The range is registered into a linked list which can be referenced
> throughout the lifetime of the driver. Ensure the range's memory is useful
> for the same lifetime by adding it to the driver's private data structure.
>
> The bug was introduced in the driver's initial commit, which was present in
> v3.10.
>
> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
> Cc: stable@vger.kernel.org
> ---
> This is my first contribution to the kernel, so hopefully I've followed all the
> relevant documentation. If not, please let me know and point me in the right
> direction!
>
> I don't have the means to test the patch, but it compiles. Someone with
> appropriate hardware should probably give it a spin.
>

Thanks for the patch. Good catch, I wonder how this even worked. Just
one minor nitpick below.

Unfortunately I don't have any platform based on this SoC to test, so
I'll defer to Krzysztof or Sylwester to handle this.

Given the nitpick is fixed:

Acked-by: Tomasz Figa <tomasz.figa@gmail.com>

>  drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> index 00ab63abf1d9..d45028a75c0f 100644
> --- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> +++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> @@ -117,6 +117,7 @@ struct exynos5440_pinctrl_priv_data {
>         unsigned int                    nr_groups;
>         const struct exynos5440_pmx_func        *pmx_functions;
>         unsigned int                    nr_functions;
> +       struct pinctrl_gpio_range       range;

It would be nice to also describe this field in the kerneldoc comment
above the struct.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  7:24   ` Tomasz Figa
  0 siblings, 0 replies; 8+ messages in thread
From: Tomasz Figa @ 2016-04-19  7:24 UTC (permalink / raw)
  To: Andrew Jeffery, Krzysztof Kozlowski, Sylwester Nawrocki
  Cc: linux-samsung-soc, Linus Walleij, Kukjin Kim, Thomas P Abraham,
	linux-arm-kernel, linux-gpio, linux-kernel, stable

Hi Andrew,

2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
> The range is registered into a linked list which can be referenced
> throughout the lifetime of the driver. Ensure the range's memory is useful
> for the same lifetime by adding it to the driver's private data structure.
>
> The bug was introduced in the driver's initial commit, which was present in
> v3.10.
>
> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
> Cc: stable@vger.kernel.org
> ---
> This is my first contribution to the kernel, so hopefully I've followed all the
> relevant documentation. If not, please let me know and point me in the right
> direction!
>
> I don't have the means to test the patch, but it compiles. Someone with
> appropriate hardware should probably give it a spin.
>

Thanks for the patch. Good catch, I wonder how this even worked. Just
one minor nitpick below.

Unfortunately I don't have any platform based on this SoC to test, so
I'll defer to Krzysztof or Sylwester to handle this.

Given the nitpick is fixed:

Acked-by: Tomasz Figa <tomasz.figa@gmail.com>

>  drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> index 00ab63abf1d9..d45028a75c0f 100644
> --- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> +++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> @@ -117,6 +117,7 @@ struct exynos5440_pinctrl_priv_data {
>         unsigned int                    nr_groups;
>         const struct exynos5440_pmx_func        *pmx_functions;
>         unsigned int                    nr_functions;
> +       struct pinctrl_gpio_range       range;

It would be nice to also describe this field in the kerneldoc comment
above the struct.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  7:24   ` Tomasz Figa
  0 siblings, 0 replies; 8+ messages in thread
From: Tomasz Figa @ 2016-04-19  7:24 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Andrew,

2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
> The range is registered into a linked list which can be referenced
> throughout the lifetime of the driver. Ensure the range's memory is useful
> for the same lifetime by adding it to the driver's private data structure.
>
> The bug was introduced in the driver's initial commit, which was present in
> v3.10.
>
> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
> Cc: stable at vger.kernel.org
> ---
> This is my first contribution to the kernel, so hopefully I've followed all the
> relevant documentation. If not, please let me know and point me in the right
> direction!
>
> I don't have the means to test the patch, but it compiles. Someone with
> appropriate hardware should probably give it a spin.
>

Thanks for the patch. Good catch, I wonder how this even worked. Just
one minor nitpick below.

Unfortunately I don't have any platform based on this SoC to test, so
I'll defer to Krzysztof or Sylwester to handle this.

Given the nitpick is fixed:

Acked-by: Tomasz Figa <tomasz.figa@gmail.com>

>  drivers/pinctrl/samsung/pinctrl-exynos5440.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> index 00ab63abf1d9..d45028a75c0f 100644
> --- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> +++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
> @@ -117,6 +117,7 @@ struct exynos5440_pinctrl_priv_data {
>         unsigned int                    nr_groups;
>         const struct exynos5440_pmx_func        *pmx_functions;
>         unsigned int                    nr_functions;
> +       struct pinctrl_gpio_range       range;

It would be nice to also describe this field in the kerneldoc comment
above the struct.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
  2016-04-19  7:24   ` Tomasz Figa
  (?)
@ 2016-04-19  8:19     ` Krzysztof Kozlowski
  -1 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2016-04-19  8:19 UTC (permalink / raw)
  To: Tomasz Figa, Andrew Jeffery, Sylwester Nawrocki
  Cc: linux-samsung-soc, Linus Walleij, Kukjin Kim, Thomas P Abraham,
	linux-arm-kernel, linux-gpio, linux-kernel, stable

On 04/19/2016 09:24 AM, Tomasz Figa wrote:
> Hi Andrew,
> 
> 2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
>> The range is registered into a linked list which can be referenced
>> throughout the lifetime of the driver. Ensure the range's memory is useful
>> for the same lifetime by adding it to the driver's private data structure.
>>
>> The bug was introduced in the driver's initial commit, which was present in
>> v3.10.
>>
>> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
>> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
>> Cc: stable@vger.kernel.org
>> ---
>> This is my first contribution to the kernel, so hopefully I've followed all the
>> relevant documentation. If not, please let me know and point me in the right
>> direction!
>>
>> I don't have the means to test the patch, but it compiles. Someone with
>> appropriate hardware should probably give it a spin.
>>
> 
> Thanks for the patch. Good catch, I wonder how this even worked. Just
> one minor nitpick below.
> 
> Unfortunately I don't have any platform based on this SoC to test, so
> I'll defer to Krzysztof or Sylwester to handle this.

We don't have this board neither, it is not so popular and apparently
not many people are using it because such bug remained unnoticed.

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  8:19     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2016-04-19  8:19 UTC (permalink / raw)
  To: Tomasz Figa, Andrew Jeffery, Sylwester Nawrocki
  Cc: linux-samsung-soc, Linus Walleij, Kukjin Kim, Thomas P Abraham,
	linux-arm-kernel, linux-gpio, linux-kernel, stable

On 04/19/2016 09:24 AM, Tomasz Figa wrote:
> Hi Andrew,
> 
> 2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
>> The range is registered into a linked list which can be referenced
>> throughout the lifetime of the driver. Ensure the range's memory is useful
>> for the same lifetime by adding it to the driver's private data structure.
>>
>> The bug was introduced in the driver's initial commit, which was present in
>> v3.10.
>>
>> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
>> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
>> Cc: stable@vger.kernel.org
>> ---
>> This is my first contribution to the kernel, so hopefully I've followed all the
>> relevant documentation. If not, please let me know and point me in the right
>> direction!
>>
>> I don't have the means to test the patch, but it compiles. Someone with
>> appropriate hardware should probably give it a spin.
>>
> 
> Thanks for the patch. Good catch, I wonder how this even worked. Just
> one minor nitpick below.
> 
> Unfortunately I don't have any platform based on this SoC to test, so
> I'll defer to Krzysztof or Sylwester to handle this.

We don't have this board neither, it is not so popular and apparently
not many people are using it because such bug remained unnoticed.

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range
@ 2016-04-19  8:19     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2016-04-19  8:19 UTC (permalink / raw)
  To: linux-arm-kernel

On 04/19/2016 09:24 AM, Tomasz Figa wrote:
> Hi Andrew,
> 
> 2016-04-19 13:13 GMT+09:00 Andrew Jeffery <andrew@aj.id.au>:
>> The range is registered into a linked list which can be referenced
>> throughout the lifetime of the driver. Ensure the range's memory is useful
>> for the same lifetime by adding it to the driver's private data structure.
>>
>> The bug was introduced in the driver's initial commit, which was present in
>> v3.10.
>>
>> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
>> Fixes: f0b9a7e521fa ("pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC")
>> Cc: stable at vger.kernel.org
>> ---
>> This is my first contribution to the kernel, so hopefully I've followed all the
>> relevant documentation. If not, please let me know and point me in the right
>> direction!
>>
>> I don't have the means to test the patch, but it compiles. Someone with
>> appropriate hardware should probably give it a spin.
>>
> 
> Thanks for the patch. Good catch, I wonder how this even worked. Just
> one minor nitpick below.
> 
> Unfortunately I don't have any platform based on this SoC to test, so
> I'll defer to Krzysztof or Sylwester to handle this.

We don't have this board neither, it is not so popular and apparently
not many people are using it because such bug remained unnoticed.

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-04-19  8:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-19  4:13 [PATCH] pinctrl-exynos5440: Use off-stack memory for pinctrl_gpio_range Andrew Jeffery
2016-04-19  4:13 ` Andrew Jeffery
2016-04-19  7:24 ` Tomasz Figa
2016-04-19  7:24   ` Tomasz Figa
2016-04-19  7:24   ` Tomasz Figa
2016-04-19  8:19   ` Krzysztof Kozlowski
2016-04-19  8:19     ` Krzysztof Kozlowski
2016-04-19  8:19     ` Krzysztof Kozlowski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.