Commit 4fb66b82 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

caif: fix a potential NULL dereference

Commit bd30ce4b (caif: Use RCU instead of spin-lock in caif_dev.c)
added a potential NULL dereference in case alloc_percpu() fails.

caif_device_alloc() can also use GFP_KERNEL instead of GFP_ATOMIC.
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
CC: Sjur Brændeland <sjur.brandeland@stericsson.com>
Acked-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d5ccd496
...@@ -93,10 +93,14 @@ static struct caif_device_entry *caif_device_alloc(struct net_device *dev) ...@@ -93,10 +93,14 @@ static struct caif_device_entry *caif_device_alloc(struct net_device *dev)
caifdevs = caif_device_list(dev_net(dev)); caifdevs = caif_device_list(dev_net(dev));
BUG_ON(!caifdevs); BUG_ON(!caifdevs);
caifd = kzalloc(sizeof(*caifd), GFP_ATOMIC); caifd = kzalloc(sizeof(*caifd), GFP_KERNEL);
if (!caifd) if (!caifd)
return NULL; return NULL;
caifd->pcpu_refcnt = alloc_percpu(int); caifd->pcpu_refcnt = alloc_percpu(int);
if (!caifd->pcpu_refcnt) {
kfree(caifd);
return NULL;
}
caifd->netdev = dev; caifd->netdev = dev;
dev_hold(dev); dev_hold(dev);
return caifd; return caifd;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment