i2c: designware-slave: constify i2c_algorithm structure
Subsystems (3)
PATCH 1/1 i2c: designware-slave: constify i2c_algorithm structure
Check for i2c_algorithm structures that are only stored in the algo field of an i2c_adapter structure. This field is declared const, so i2c_algorithm structures that have this property can be declared as const also.
This issue was identified using Coccinelle and the following semantic patch:
@r disable optional_qualifier@
identifier i;
position p;
@@
static struct i2c_algorithm i@p = { ... };
@ok@
identifier r.i;
struct i2c_adapter e;
position p;
@@
e.algo = &i@p;
@bad@
position p != {r.p,ok.p};
identifier r.i;
@@
i@p
@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
struct i2c_algorithm i = { ... };
--- drivers/i2c/busses/i2c-designware-slave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/i2c/busses/i2c-designware-slave.c +1 -1
@@ -344,7 +344,7 @@ static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)return IRQ_RETVAL (ret); } -static struct i2c_algorithm i2c_dw_algo = { +static const struct i2c_algorithm i2c_dw_algo = { .functionality = i2c_dw_func, .reg_slave = i2c_dw_reg_slave, .unreg_slave = i2c_dw_unreg_slave,
Signature · 1 line
2.5.0
Quoted 28 lines · Gustavo A. R. Silva
Check for
i2c_algorithmstructures that are only stored in the algo field of ani2c_adapterstructure. This field is declared const, soi2c_algorithmstructures that have this property can be declared as const also.This issue was identified using Coccinelle and the following semantic patch:
@r disable optional_qualifier@
identifier i;
position p;
@@
static structi2c_algorithmi@p = { ... };@ok@
identifier r.i;
structi2c_adaptere;
position p;
@@
e.algo = &i@p;@bad@
position p != {r.p,ok.p};
identifier r.i;
@@
i@p
Quoted 6 lines
@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
structi2c_algorithmi = { ... };
I don't think it's a good idea to copy'n'paste patch to each change where you fixing the issue. Can you create a github repository of the coccinelle recipes and give just a link?
Other than that, I'm fine with the change as long as it compiles without troubles (had seen recently similar patch that has been sent without actual testing).
Quoted 21 lines
Signed-off-by Gustavo A. R. Silva <[email protected]>---
drivers/i2c/busses/i2c-designware-slave.c | 2 +-1 file changed, 1 insertion(+), 1 deletion(-)drivers/i2c/busses/i2c-designware-slave.c +0
-0@@ -344,7 +344,7 @@ static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id) return IRQ_RETVAL(ret); }drivers/i2c/busses/i2c-designware-slave.c +1
-1-static struct i2c_algorithm i2c_dw_algo = { +static const struct i2c_algorithm i2c_dw_algo = {.functionality =
i2c_dw_func,
.reg_slave =i2c_dw_reg_slave,
.unreg_slave =i2c_dw_unreg_slave,
Signature · 2 lines
Andy Shevchenko <[email protected]> Intel Finland Oy
Hi Andy,
Quoted 34 lines · Andy Shevchenko
Quoted 27 lines · Gustavo A. R. Silva
Check for
i2c_algorithmstructures that are only stored in the algo field of ani2c_adapterstructure. This field is declared const, soi2c_algorithmstructures that have this property can be declared as const also.This issue was identified using Coccinelle and the following semantic patch:
@r disable optional_qualifier@
identifier i;
position p;
@@
static structi2c_algorithmi@p = { ... };@ok@
identifier r.i;
structi2c_adaptere;
position p;
@@
e.algo = &i@p;@bad@
position p != {r.p,ok.p};
identifier r.i;
@@
i@pQuoted 6 lines
@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
structi2c_algorithmi = { ... };
Quoted 3 lines
I don't think it's a good idea to copy'n'paste patch to each change where you fixing the issue. Can you create a github repository of the coccinelle recipes and give just a link?
I will take note of that, thanks for the suggestion.
Quoted 5 lines
Other than that, I'm fine with the change as long as it compiles without troubles (had seen recently similar patch that has been sent without actual testing).
Acked-by Andy Shevchenko <[email protected]>
Thank you
Quoted 20 lines
Quoted 20 lines
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/i2c/busses/i2c-designware-slave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/i2c/busses/i2c-designware-slave.c +1
-1@@ -344,7 +344,7 @@ static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)return IRQ_RETVAL (ret); } -static struct i2c_algorithm i2c_dw_algo = { +static const struct i2c_algorithm i2c_dw_algo = { .functionality = i2c_dw_func, .reg_slave = i2c_dw_reg_slave,.unreg_slave =
i2c_dw_unreg_slave,
Signature · 1 line
Gustavo A. R. Silva
Wolfram Sang
AppliedQuoted 6 lines
Quoted 4 lines
I don't think it's a good idea to copy'n'paste patch to each change where you fixing the issue. Can you create a github repository of the coccinelle recipes and give just a link?
I will take note of that, thanks for the suggestion.
I took the liberty to squash the 4 patches into one commit and fixed the commit message by removing the semantic patch.
Applied to for-next, thanks!