2006-12-01 18:55:31

by Scott Wood

[permalink] [raw]
Subject: [PATCH] Make platform_device_add_data accept a const pointer.

platform_device_add_data() makes a copy of the data that is given to it,
and thus the parameter can be const. This removes a warning when data
from get_property() on powerpc is handed to platform_device_add_data(),
as get_property() returns a const pointer.

Signed-off-by: Scott Wood <[email protected]>
---
drivers/base/platform.c | 2 +-
include/linux/platform_device.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 940ce41..9cb2128 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -212,7 +212,7 @@ EXPORT_SYMBOL_GPL(platform_device_add_re
* pointer. The memory associated with the platform data will be freed
* when the platform device is released.
*/
-int platform_device_add_data(struct platform_device *pdev, void *data, size_t size)
+int platform_device_add_data(struct platform_device *pdev, const void *data, size_t size)
{
void *d;

diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 29cd6de..cc21647 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -39,7 +39,7 @@ extern struct platform_device *platform_

extern struct platform_device *platform_device_alloc(const char *name, unsigned int id);
extern int platform_device_add_resources(struct platform_device *pdev, struct resource *res, unsigned int num);
-extern int platform_device_add_data(struct platform_device *pdev, void *data, size_t size);
+extern int platform_device_add_data(struct platform_device *pdev, const void *data, size_t size);
extern int platform_device_add(struct platform_device *pdev);
extern void platform_device_del(struct platform_device *pdev);
extern void platform_device_put(struct platform_device *pdev);
--
1.4.2.3


2006-12-01 19:34:38

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] Make platform_device_add_data accept a const pointer.

On Fri, Dec 01, 2006 at 12:54:47PM -0600, Scott Wood wrote:
> platform_device_add_data() makes a copy of the data that is given to it,
> and thus the parameter can be const. This removes a warning when data
> from get_property() on powerpc is handed to platform_device_add_data(),
> as get_property() returns a const pointer.

Doesn't this cause a compile warning in platform.c, concerning assigning
'data' to struct device's non-const 'platform_data' pointer?

So in essence you're probably just moving the problem rather than really
solving anything.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:

2006-12-01 19:38:38

by Scott Wood

[permalink] [raw]
Subject: Re: [PATCH] Make platform_device_add_data accept a const pointer.

Russell King wrote:
> On Fri, Dec 01, 2006 at 12:54:47PM -0600, Scott Wood wrote:
>
>>platform_device_add_data() makes a copy of the data that is given to it,
>>and thus the parameter can be const. This removes a warning when data
>>from get_property() on powerpc is handed to platform_device_add_data(),
>>as get_property() returns a const pointer.
>
>
> Doesn't this cause a compile warning in platform.c, concerning assigning
> 'data' to struct device's non-const 'platform_data' pointer?

No, because it doesn't assign data to platform_data; it memcpy()s it (as
stated above).

-Scott