Quoting "Gustavo A. R. Silva" <garsi...@embeddedor.com>:

Hi,

Quoting "Gustavo A. R. Silva" <garsi...@embeddedor.com>:

container_of is never null, so this null check is unnecessary.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <garsi...@embeddedor.com>
---
net/caif/chnl_net.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c
index 922ac1d..489298d 100644
--- a/net/caif/chnl_net.c
+++ b/net/caif/chnl_net.c
@@ -77,8 +77,6 @@ static int chnl_recv_cb(struct cflayer *layr, struct cfpkt *pkt)
        u8 buf;

        priv = container_of(layr, struct chnl_net, chnl);
-       if (!priv)
-               return -EINVAL;

        skb = (struct sk_buff *) cfpkt_tonative(pkt);

--
2.7.4

Please, ignore this patch.

I just realized that function chnl_recv_cb is being called only during initialization:

chnl_init_module() -> rtnl_link_register() -> ipcaif_net_setup() -> chnl_recv_cb():


Well, here ipcaif_net_setup stores a pointer to chnl_recv_cb in a structure. It doesn't call it.

static void ipcaif_net_setup(struct net_device *dev)
{
[...]
        priv = netdev_priv(dev);
        priv->chnl.receive = chnl_recv_cb;

[...]
}

static struct rtnl_link_ops ipcaif_link_ops __read_mostly = {
        .kind           = "caif",
        .priv_size      = sizeof(struct chnl_net),
        .setup          = ipcaif_net_setup,
        .maxtype        = IFLA_CAIF_MAX,
        .policy         = ipcaif_policy,
        .newlink        = ipcaif_newlink,
        .changelink     = ipcaif_changelink,
        .get_size       = ipcaif_get_size,
        .fill_info      = ipcaif_fill_info,

};

static int __init chnl_init_module(void)
{
        return rtnl_link_register(&ipcaif_link_ops);
}


--
Gustavo A. R. Silva






Reply via email to