power: supply: Constify static w1_family_ops structs
authorRikard Falkeborn <rikard.falkeborn@gmail.com>
Sun, 4 Oct 2020 19:32:02 +0000 (21:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Oct 2020 11:21:49 +0000 (13:21 +0200)
The only usage of these structs is to assign their address to the fops
field in the w1_family struct, which is a const pointer. Make them const
to allow the compiler to put them in read-only memory.

This was done with the following Coccinelle semantic patch
(http://coccinelle.lip6.fr/):

// <smpl>
@r1 disable optional_qualifier @
identifier i;
position p;
@@
static struct w1_family_ops i@p = {...};

@ok1@
identifier r1.i;
position p;
identifier s;
@@
static struct w1_family s = {
.fops=&i@p,
};

@bad1@
position p!={r1.p,ok1.p};
identifier r1.i;
@@
i@p

@depends on !bad1 disable optional_qualifier@
identifier r1.i;
@@
static
+const
struct w1_family_ops i={};
// </smpl>

Acked-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Link: https://lore.kernel.org/r/20201004193202.4044-4-rikard.falkeborn@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/power/supply/bq27xxx_battery_hdq.c
drivers/power/supply/ds2760_battery.c
drivers/power/supply/max1721x_battery.c

index 29771967df2e3b5395b21a1b3121e3613e642969..d56b3e19e996fdf42c4e451030b63a77ed5c957c 100644 (file)
@@ -104,7 +104,7 @@ static void bq27xxx_battery_hdq_remove_slave(struct w1_slave *sl)
        bq27xxx_battery_teardown(di);
 }
 
-static struct w1_family_ops bq27xxx_battery_hdq_fops = {
+static const struct w1_family_ops bq27xxx_battery_hdq_fops = {
        .add_slave      = bq27xxx_battery_hdq_add_slave,
        .remove_slave   = bq27xxx_battery_hdq_remove_slave,
 };
index 11bed88a89facfaa76a7b17cd9586f3483597a3b..695bb67474007406bff90e99d75eb37cfbde435e 100644 (file)
@@ -795,7 +795,7 @@ static const struct of_device_id w1_ds2760_of_ids[] = {
 };
 #endif
 
-static struct w1_family_ops w1_ds2760_fops = {
+static const struct w1_family_ops w1_ds2760_fops = {
        .add_slave      = w1_ds2760_add_slave,
        .remove_slave   = w1_ds2760_remove_slave,
        .groups         = w1_ds2760_groups,
index 9ca895b0dabb558d084953d65aa00e2802bab37e..1b1a36f8e929a33426b1c812d18d856d35c75a98 100644 (file)
@@ -431,7 +431,7 @@ static int devm_w1_max1721x_add_device(struct w1_slave *sl)
        return 0;
 }
 
-static struct w1_family_ops w1_max1721x_fops = {
+static const struct w1_family_ops w1_max1721x_fops = {
        .add_slave = devm_w1_max1721x_add_device,
 };