Re: [PATCH] net: caif: chnl_net: remove unnecessary null check in chnl_recv_cb

From: Gustavo A. R. Silva
Date: Mon Oct 30 2017 - 22:34:06 EST



Quoting "Gustavo A. R. Silva" <garsilva@xxxxxxxxxxxxxx>:

Hi,

Quoting "Gustavo A. R. Silva" <garsilva@xxxxxxxxxxxxxx>:

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 <garsilva@xxxxxxxxxxxxxx>
---
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