* [PATCH 00/12] account for const type of of_device_id.data
@ 2018-01-02 13:27 Julia Lawall
2018-01-02 13:28 ` [PATCH 11/12] iio: common: ssp_sensors: " Julia Lawall
0 siblings, 1 reply; 3+ messages in thread
From: Julia Lawall @ 2018-01-02 13:27 UTC (permalink / raw)
To: linux-iio
Cc: kernel-janitors, Peter Meerwald-Stadler, Lars-Peter Clausen,
Hartmut Knaack, linux-mtd, linux-i2c, linux-spi, linux-rockchip,
linux-arm-kernel, linux-pm, linux-kernel, linux-gpio, linux-pci,
linux-arm-msm
Maintain const annotations when putting values into the data field of
an of_device_id structure, and afterwards when extracting them from
the data field of such a structure.
This was done using the following semantic patch:
(http://coccinelle.lip6.fr/)
// <smpl>
@r@
identifier i,j;
const struct j *m;
struct i *y;
type T;
expression x,e;
position p;
@@
(
y =@p (T)(of_device_get_match_data(...));
|
x = of_match_node(...);
... when != x = e
(
m = e;
|
y =@p (T)(x->data);
)
)
@s@
identifier r.i,j;
@@
const struct i j = { ... };
@t depends on s disable optional_qualifier@
expression e;
identifier r.i,x,j,n;
struct j *m;
struct i *e1;
position any r.p;
type T;
@@
(
+const
struct i *x;
<+...
(
x =@p
- (T)(e)
+ e
|
x =@p e
)
...+>
|
m->@e1 n =@p
- (T)(e)
+ e
|
m->@e1 n =@p e
)
@disable optional_qualifier@
identifier t.j,t.n,r.i;
@@
struct j {
...
+ const
struct i *n;
...
}
@@
identifier x,s.j;
type T;
@@
struct of_device_id x[] = { ...,
{ .data =
- (T)
&j, }, ...};
// </smpl>
---
drivers/i2c/busses/i2c-rk3x.c | 16 ++++++++--------
drivers/iio/common/ssp_sensors/ssp.h | 2 +-
drivers/iio/common/ssp_sensors/ssp_dev.c | 2 +-
drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++----
drivers/pci/dwc/pcie-qcom.c | 4 ++--
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 4 ++--
drivers/pinctrl/pinctrl-at91-pio4.c | 4 ++--
drivers/pinctrl/pinctrl-axp209.c | 2 +-
drivers/power/avs/rockchip-io-domain.c | 24 ++++++++++++------------
drivers/power/reset/at91-sama5d2_shdwc.c | 4 ++--
drivers/power/supply/axp20x_ac_power.c | 8 ++++----
drivers/spi/spi-fsl-dspi.c | 7 +++----
drivers/spi/spi-sirf.c | 4 ++--
13 files changed, 44 insertions(+), 44 deletions(-)
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 11/12] iio: common: ssp_sensors: account for const type of of_device_id.data
2018-01-02 13:27 [PATCH 00/12] account for const type of of_device_id.data Julia Lawall
@ 2018-01-02 13:28 ` Julia Lawall
2018-01-06 12:23 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Julia Lawall @ 2018-01-02 13:28 UTC (permalink / raw)
To: Jonathan Cameron
Cc: kernel-janitors, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, linux-kernel
This driver creates a number of const structures that it stores in the
data field of an of_device_id array.
Add const to the declaration of the location that receives a value
from the data field to ensure that the compiler will continue to check
that the value is not modified and remove the const-dropping cast on
the access to the data field.
Done using Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
drivers/iio/common/ssp_sensors/ssp.h | 2 +-
drivers/iio/common/ssp_sensors/ssp_dev.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff -u -p a/drivers/iio/common/ssp_sensors/ssp.h b/drivers/iio/common/ssp_sensors/ssp.h
--- a/drivers/iio/common/ssp_sensors/ssp.h
+++ b/drivers/iio/common/ssp_sensors/ssp.h
@@ -188,7 +188,7 @@ struct ssp_sensorhub_info {
*/
struct ssp_data {
struct spi_device *spi;
- struct ssp_sensorhub_info *sensorhub_info;
+ const struct ssp_sensorhub_info *sensorhub_info;
struct timer_list wdt_timer;
struct work_struct work_wdt;
struct delayed_work work_refresh;
diff -u -p a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
--- a/drivers/iio/common/ssp_sensors/ssp_dev.c
+++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
@@ -486,7 +486,7 @@ static struct ssp_data *ssp_parse_dt(str
if (!match)
goto err_mcu_reset_gpio;
- data->sensorhub_info = (struct ssp_sensorhub_info *)match->data;
+ data->sensorhub_info = match->data;
dev_set_drvdata(dev, data);
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH 11/12] iio: common: ssp_sensors: account for const type of of_device_id.data
2018-01-02 13:28 ` [PATCH 11/12] iio: common: ssp_sensors: " Julia Lawall
@ 2018-01-06 12:23 ` Jonathan Cameron
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2018-01-06 12:23 UTC (permalink / raw)
To: Julia Lawall
Cc: kernel-janitors, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, linux-kernel
On Tue, 2 Jan 2018 14:28:07 +0100
Julia Lawall <Julia.Lawall@lip6.fr> wrote:
> This driver creates a number of const structures that it stores in the
> data field of an of_device_id array.
>
> Add const to the declaration of the location that receives a value
> from the data field to ensure that the compiler will continue to check
> that the value is not modified and remove the const-dropping cast on
> the access to the data field.
>
> Done using Coccinelle.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Thanks. Applied to the togreg branch of iio.git and pushed out
as testing for the autobuilders to play with it.
Jonathan
>
> ---
> drivers/iio/common/ssp_sensors/ssp.h | 2 +-
> drivers/iio/common/ssp_sensors/ssp_dev.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff -u -p a/drivers/iio/common/ssp_sensors/ssp.h b/drivers/iio/common/ssp_sensors/ssp.h
> --- a/drivers/iio/common/ssp_sensors/ssp.h
> +++ b/drivers/iio/common/ssp_sensors/ssp.h
> @@ -188,7 +188,7 @@ struct ssp_sensorhub_info {
> */
> struct ssp_data {
> struct spi_device *spi;
> - struct ssp_sensorhub_info *sensorhub_info;
> + const struct ssp_sensorhub_info *sensorhub_info;
> struct timer_list wdt_timer;
> struct work_struct work_wdt;
> struct delayed_work work_refresh;
> diff -u -p a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -486,7 +486,7 @@ static struct ssp_data *ssp_parse_dt(str
> if (!match)
> goto err_mcu_reset_gpio;
>
> - data->sensorhub_info = (struct ssp_sensorhub_info *)match->data;
> + data->sensorhub_info = match->data;
>
> dev_set_drvdata(dev, data);
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-01-06 12:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-02 13:27 [PATCH 00/12] account for const type of of_device_id.data Julia Lawall
2018-01-02 13:28 ` [PATCH 11/12] iio: common: ssp_sensors: " Julia Lawall
2018-01-06 12:23 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox