lkml.org 
[lkml]   [2017]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] 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 = { ... };

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

    diff --git a/drivers/i2c/busses/i2c-designware-slave.c b/drivers/i2c/busses/i2c-designware-slave.c
    index 4012c74..e62799e 100644
    --- a/drivers/i2c/busses/i2c-designware-slave.c
    +++ b/drivers/i2c/busses/i2c-designware-slave.c
    @@ -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,
    --
    2.5.0
    \
     
     \ /
      Last update: 2017-07-09 23:36    [W:3.227 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site