diff mbox

watchdog: coh901327_wdt: constify watchdog_ops structure

Message ID 20170708003330.GA15374@embeddedgus (mailing list archive)
State New, archived
Headers show

Commit Message

Gustavo A. R. Silva July 8, 2017, 12:33 a.m. UTC
Check for watchdog_ops structures that are only stored in the ops field of
a watchdog_device structure. This field is declared const, so watchdog_ops
structures that have this property can be declared as const also.

This issue was detected using Coccinelle and the following semantic patch:

@r
disable optional_qualifier@
identifier i;
position p;
@@
static struct watchdog_ops i@p = { ... };

@ok@
identifier r.i;
struct watchdog_device e;
position p;
@@
e.ops = &i@p;

@bad@
position p != {r.p,ok.p};
identifier r.i;
struct watchdog_ops e;
@@
e@i@p

@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
 struct watchdog_ops i = { ... };

Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/watchdog/coh901327_wdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Guenter Roeck July 8, 2017, 1:45 a.m. UTC | #1
On 07/07/2017 05:33 PM, Gustavo A. R. Silva wrote:
> Check for watchdog_ops structures that are only stored in the ops field of
> a watchdog_device structure. This field is declared const, so watchdog_ops
> structures that have this property can be declared as const also.
> 
> This issue was detected using Coccinelle and the following semantic patch:
> 
> @r
> disable optional_qualifier@
> identifier i;
> position p;
> @@
> static struct watchdog_ops i@p = { ... };
> 
> @ok@
> identifier r.i;
> struct watchdog_device e;
> position p;
> @@
> e.ops = &i@p;
> 
> @bad@
> position p != {r.p,ok.p};
> identifier r.i;
> struct watchdog_ops e;
> @@
> e@i@p
> 
> @depends on !bad disable optional_qualifier@
> identifier r.i;
> @@
> static
> +const
>   struct watchdog_ops i = { ... };
> 
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>   drivers/watchdog/coh901327_wdt.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
> index 38dd60f0..4410337 100644
> --- a/drivers/watchdog/coh901327_wdt.c
> +++ b/drivers/watchdog/coh901327_wdt.c
> @@ -218,7 +218,7 @@ static const struct watchdog_info coh901327_ident = {
>   	.identity = DRV_NAME,
>   };
>   
> -static struct watchdog_ops coh901327_ops = {
> +static const struct watchdog_ops coh901327_ops = {
>   	.owner = THIS_MODULE,
>   	.start = coh901327_start,
>   	.stop = coh901327_stop,
>
Gustavo A. R. Silva July 17, 2017, 4:03 a.m. UTC | #2
On 07/07/2017 08:45 PM, Guenter Roeck wrote:
> On 07/07/2017 05:33 PM, Gustavo A. R. Silva wrote:
>> Check for watchdog_ops structures that are only stored in the ops 
>> field of
>> a watchdog_device structure. This field is declared const, so 
>> watchdog_ops
>> structures that have this property can be declared as const also.
>>
>> This issue was detected using Coccinelle and the following semantic 
>> patch:
>>
>> @r
>> disable optional_qualifier@
>> identifier i;
>> position p;
>> @@
>> static struct watchdog_ops i@p = { ... };
>>
>> @ok@
>> identifier r.i;
>> struct watchdog_device e;
>> position p;
>> @@
>> e.ops = &i@p;
>>
>> @bad@
>> position p != {r.p,ok.p};
>> identifier r.i;
>> struct watchdog_ops e;
>> @@
>> e@i@p
>>
>> @depends on !bad disable optional_qualifier@
>> identifier r.i;
>> @@
>> static
>> +const
>>   struct watchdog_ops i = { ... };
>>
>> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>

Thank you, Guenter.

>> ---
>>   drivers/watchdog/coh901327_wdt.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/watchdog/coh901327_wdt.c 
>> b/drivers/watchdog/coh901327_wdt.c
>> index 38dd60f0..4410337 100644
>> --- a/drivers/watchdog/coh901327_wdt.c
>> +++ b/drivers/watchdog/coh901327_wdt.c
>> @@ -218,7 +218,7 @@ static const struct watchdog_info coh901327_ident 
>> = {
>>       .identity = DRV_NAME,
>>   };
>>   -static struct watchdog_ops coh901327_ops = {
>> +static const struct watchdog_ops coh901327_ops = {
>>       .owner = THIS_MODULE,
>>       .start = coh901327_start,
>>       .stop = coh901327_stop,
>>
>
Linus Walleij Aug. 2, 2017, 8:24 a.m. UTC | #3
On Sat, Jul 8, 2017 at 2:33 AM, Gustavo A. R. Silva
<garsilva@embeddedor.com> wrote:

> Check for watchdog_ops structures that are only stored in the ops field of
> a watchdog_device structure. This field is declared const, so watchdog_ops
> structures that have this property can be declared as const also.
>
> This issue was detected using Coccinelle and the following semantic patch:
>
> @r
> disable optional_qualifier@
> identifier i;
> position p;
> @@
> static struct watchdog_ops i@p = { ... };
>
> @ok@
> identifier r.i;
> struct watchdog_device e;
> position p;
> @@
> e.ops = &i@p;
>
> @bad@
> position p != {r.p,ok.p};
> identifier r.i;
> struct watchdog_ops e;
> @@
> e@i@p
>
> @depends on !bad disable optional_qualifier@
> identifier r.i;
> @@
> static
> +const
>  struct watchdog_ops i = { ... };
>
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
diff mbox

Patch

diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
index 38dd60f0..4410337 100644
--- a/drivers/watchdog/coh901327_wdt.c
+++ b/drivers/watchdog/coh901327_wdt.c
@@ -218,7 +218,7 @@  static const struct watchdog_info coh901327_ident = {
 	.identity = DRV_NAME,
 };
 
-static struct watchdog_ops coh901327_ops = {
+static const struct watchdog_ops coh901327_ops = {
 	.owner = THIS_MODULE,
 	.start = coh901327_start,
 	.stop = coh901327_stop,