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);
}