diff options
Diffstat (limited to 'drivers/net/rionet.c')
| -rw-r--r-- | drivers/net/rionet.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c index a57f05726b5..91d25888a1b 100644 --- a/drivers/net/rionet.c +++ b/drivers/net/rionet.c @@ -375,8 +375,8 @@ static void rionet_remove(struct rio_dev *rdev)  	struct net_device *ndev = rio_get_drvdata(rdev);  	struct rionet_peer *peer, *tmp; -	free_pages((unsigned long)rionet_active, rdev->net->hport->sys_size ? -					__fls(sizeof(void *)) + 4 : 0); +	free_pages((unsigned long)rionet_active, get_order(sizeof(void *) * +			RIO_MAX_ROUTE_ENTRIES(rdev->net->hport->sys_size)));  	unregister_netdev(ndev);  	free_netdev(ndev); @@ -432,15 +432,16 @@ static int rionet_setup_netdev(struct rio_mport *mport, struct net_device *ndev)  	int rc = 0;  	struct rionet_private *rnet;  	u16 device_id; +	const size_t rionet_active_bytes = sizeof(void *) * +				RIO_MAX_ROUTE_ENTRIES(mport->sys_size);  	rionet_active = (struct rio_dev **)__get_free_pages(GFP_KERNEL, -			mport->sys_size ? __fls(sizeof(void *)) + 4 : 0); +			get_order(rionet_active_bytes));  	if (!rionet_active) {  		rc = -ENOMEM;  		goto out;  	} -	memset((void *)rionet_active, 0, sizeof(void *) * -				RIO_MAX_ROUTE_ENTRIES(mport->sys_size)); +	memset((void *)rionet_active, 0, rionet_active_bytes);  	/* Set up private area */  	rnet = netdev_priv(ndev);  |