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

Subsystems: networking [general], the rest

STALE3205d

4 messages, 1 author, 2017-10-31 · open the first message on its own page

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

From: Gustavo A. R. Silva <hidden>
Date: 2017-10-30 22:47:18

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 <redacted>
---
 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

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

From: Gustavo A. R. Silva <hidden>
Date: 2017-10-30 23:33:40

Hi,

Quoting "Gustavo A. R. Silva" [off-list ref]:
quoted hunk
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 <redacted>
---
 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():

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

Thanks
--
Gustavo A. R. Silva

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

From: Gustavo A. R. Silva <hidden>
Date: 2017-10-31 02:34:01

Quoting "Gustavo A. R. Silva" [off-list ref]:
Hi,

Quoting "Gustavo A. R. Silva" [off-list ref]:
quoted
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 <redacted>
---
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

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

From: Gustavo A. R. Silva <hidden>
Date: 2017-10-31 04:12:12

Quoting "Gustavo A. R. Silva" [off-list ref]:
Quoting "Gustavo A. R. Silva" [off-list ref]:
quoted
Hi,

Quoting "Gustavo A. R. Silva" [off-list ref]:
quoted
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 <redacted>
---
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;
But the driver only passes in to container_of the type of driver  
structure registered with it. So this type of manipulation must be  
completely safe. Right?

Now it seems to me (again) that the patch is fine.

I'm sorry, I'm a little bit confused here.
quoted
quoted
	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.
quoted
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);
}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help