diff options
Diffstat (limited to 'net/caif/caif_dev.c')
| -rw-r--r-- | net/caif/caif_dev.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c index 7c2fa0a0814..7f9ac0742d1 100644 --- a/net/caif/caif_dev.c +++ b/net/caif/caif_dev.c @@ -93,10 +93,14 @@ static struct caif_device_entry *caif_device_alloc(struct net_device *dev)  	caifdevs = caif_device_list(dev_net(dev));  	BUG_ON(!caifdevs); -	caifd = kzalloc(sizeof(*caifd), GFP_ATOMIC); +	caifd = kzalloc(sizeof(*caifd), GFP_KERNEL);  	if (!caifd)  		return NULL;  	caifd->pcpu_refcnt = alloc_percpu(int); +	if (!caifd->pcpu_refcnt) { +		kfree(caifd); +		return NULL; +	}  	caifd->netdev = dev;  	dev_hold(dev);  	return caifd;  |