Message ID | 1473599168-30561-24-git-send-email-Julia.Lawall@lip6.fr (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Geert Uytterhoeven |
Headers | show |
On 09/11/2016 04:06 PM, Julia Lawall wrote: > For structure types defined in the same file or local header files, find > top-level static structure declarations that have the following > properties: > 1. Never reassigned. Really? > 2. Address never taken Really? > 3. Not passed to a top-level macro call > 4. No pointer or array-typed field passed to a function or stored in a > variable. > Declare structures having all of these properties as const. > > Done using Coccinelle. > Based on a suggestion by Joe Perches <joe@perches.com>. > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> NAK, see sh_eth_set_default_cpu_data(). MBR, Sergei
On Sun, 11 Sep 2016, Sergei Shtylyov wrote: > On 09/11/2016 04:06 PM, Julia Lawall wrote: > > For structure types defined in the same file or local header files, find > > top-level static structure declarations that have the following > > properties: > > 1. Never reassigned. > > Really? > > > 2. Address never taken > > Really? > > > 3. Not passed to a top-level macro call > > 4. No pointer or array-typed field passed to a function or stored in a > > variable. > > Declare structures having all of these properties as const. > > > > Done using Coccinelle. > > Based on a suggestion by Joe Perches <joe@perches.com>. > > > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > > NAK, see sh_eth_set_default_cpu_data(). Thanks for the feedback. I will check on why this slipped through. Perhaps it is a variability (ifdef) problem. julia > > MBR, Sergei > >
On Sun, 11 Sep 2016, Sergei Shtylyov wrote: > On 09/11/2016 04:06 PM, Julia Lawall wrote: > > For structure types defined in the same file or local header files, find > > top-level static structure declarations that have the following > > properties: > > 1. Never reassigned. > > Really? > > > 2. Address never taken > > Really? OK, I see the problem. The code has, eg: { "sh7724-ether", (kernel_ulong_t)&sh7724_data } Coccinelle doesn't know anything about kernel_ulong_t, so it assumes that it is an identifier, and that the whole expression is a bit and, rather than an address computation. And at the same time, the cast causes the compiler to discard the const annotation, so it doesn't complain either. I can update the rule to avoid this case, since taking a bit and on the address of a top-level structure is not likely to be useful, and I will check whether any of the other patches are affected by this issue. Thanks for the report. julia > > > 3. Not passed to a top-level macro call > > 4. No pointer or array-typed field passed to a function or stored in a > > variable. > > Declare structures having all of these properties as const. > > > > Done using Coccinelle. > > Based on a suggestion by Joe Perches <joe@perches.com>. > > > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > > NAK, see sh_eth_set_default_cpu_data(). > > MBR, Sergei > > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index 1f8240a..d2ed57f 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -654,7 +654,7 @@ static void sh_eth_set_rate_sh7724(struct net_device *ndev) } /* SH7724 */ -static struct sh_eth_cpu_data sh7724_data = { +static const struct sh_eth_cpu_data sh7724_data = { .set_duplex = sh_eth_set_duplex, .set_rate = sh_eth_set_rate_sh7724, @@ -692,7 +692,7 @@ static void sh_eth_set_rate_sh7757(struct net_device *ndev) } /* SH7757 */ -static struct sh_eth_cpu_data sh7757_data = { +static const struct sh_eth_cpu_data sh7757_data = { .set_duplex = sh_eth_set_duplex, .set_rate = sh_eth_set_rate_sh7757, @@ -757,7 +757,7 @@ static void sh_eth_set_rate_giga(struct net_device *ndev) } /* SH7757(GETHERC) */ -static struct sh_eth_cpu_data sh7757_data_giga = { +static const struct sh_eth_cpu_data sh7757_data_giga = { .chip_reset = sh_eth_chip_reset_giga, .set_duplex = sh_eth_set_duplex, .set_rate = sh_eth_set_rate_giga, @@ -788,7 +788,7 @@ static struct sh_eth_cpu_data sh7757_data_giga = { }; /* SH7734 */ -static struct sh_eth_cpu_data sh7734_data = { +static const struct sh_eth_cpu_data sh7734_data = { .chip_reset = sh_eth_chip_reset, .set_duplex = sh_eth_set_duplex, .set_rate = sh_eth_set_rate_gether, @@ -817,7 +817,7 @@ static struct sh_eth_cpu_data sh7734_data = { }; /* SH7763 */ -static struct sh_eth_cpu_data sh7763_data = { +static const struct sh_eth_cpu_data sh7763_data = { .chip_reset = sh_eth_chip_reset, .set_duplex = sh_eth_set_duplex, .set_rate = sh_eth_set_rate_gether, @@ -844,7 +844,7 @@ static struct sh_eth_cpu_data sh7763_data = { .irq_flags = IRQF_SHARED, }; -static struct sh_eth_cpu_data sh7619_data = { +static const struct sh_eth_cpu_data sh7619_data = { .register_type = SH_ETH_REG_FAST_SH3_SH2, .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, @@ -855,7 +855,7 @@ static struct sh_eth_cpu_data sh7619_data = { .hw_swap = 1, }; -static struct sh_eth_cpu_data sh771x_data = { +static const struct sh_eth_cpu_data sh771x_data = { .register_type = SH_ETH_REG_FAST_SH3_SH2, .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff,
For structure types defined in the same file or local header files, find top-level static structure declarations that have the following properties: 1. Never reassigned. 2. Address never taken 3. Not passed to a top-level macro call 4. No pointer or array-typed field passed to a function or stored in a variable. Declare structures having all of these properties as const. Done using Coccinelle. Based on a suggestion by Joe Perches <joe@perches.com>. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> --- The semantic patch seems too long for a commit log, but is in the cover letter. drivers/net/ethernet/renesas/sh_eth.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)