[PATCH 00/12] account for const type of of_device_id.data

2018-01-02 Thread Julia Lawall
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/)

// 
@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)
, }, ...};

// 

---

 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(-)


[PATCH 00/12] account for const type of of_device_id.data

2018-01-02 Thread Julia Lawall
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/)

// 
@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)
, }, ...};

// 

---

 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(-)