Skip to contentSkip to conversation

watchdog: stm32_iwdg: constify watchdog_ops structure

PATCH In review Gustavo A. R. Silva 2 participants 3 messages Jul 8, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 watchdog: stm32_iwdg: constify watchdog_ops structure

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 at p = { ... };

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

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

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

---
 drivers/watchdog/stm32_iwdg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/watchdog/stm32_iwdg.c +1 -1
index 6c501b7..be64a86 100644
@@ -140,7 +140,7 @@ static const struct watchdog_info stm32_iwdg_info = {
 	.identity	= "STM32 Independent Watchdog",
 };
 
-static struct watchdog_ops stm32_iwdg_ops = {
+static const struct watchdog_ops stm32_iwdg_ops = {
 	.owner		= THIS_MODULE,
 	.start		= stm32_iwdg_start,
 	.ping		= stm32_iwdg_ping,
Signature · 1 line
2.5.0
maintainer Reviewed-by on v1 1/1
#1 lore raw
Quoted 27 lines · Gustavo A. R. Silva

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 at p = { ... };

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

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

Quoted 8 lines

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

Quoted 18 lines
---
  drivers/watchdog/stm32_iwdg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
drivers/watchdog/stm32_iwdg.c +1 -1
index 6c501b7..be64a86 100644
@@ -140,7 +140,7 @@ static const struct watchdog_info stm32_iwdg_info = {
  	.identity	= "STM32 Independent Watchdog",
  };
 
-static struct watchdog_ops stm32_iwdg_ops = {
+static const struct watchdog_ops stm32_iwdg_ops = {
  	.owner		= THIS_MODULE,
  	.start		= stm32_iwdg_start,
  	.ping		= stm32_iwdg_ping,
maintainer Reviewed-by on v1 1/1
#2 lore raw
In reply to Gustavo A. R. Silva
Quoted 27 lines · Gustavo A. R. Silva

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 at p = { ... };

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

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

Quoted 8 lines

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

Quoted 18 lines
---
  drivers/watchdog/stm32_iwdg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
drivers/watchdog/stm32_iwdg.c +1 -1
index 6c501b7..be64a86 100644
@@ -140,7 +140,7 @@ static const struct watchdog_info stm32_iwdg_info = {
  	.identity	= "STM32 Independent Watchdog",
  };
 
-static struct watchdog_ops stm32_iwdg_ops = {
+static const struct watchdog_ops stm32_iwdg_ops = {
  	.owner		= THIS_MODULE,
  	.start		= stm32_iwdg_start,
  	.ping		= stm32_iwdg_ping,