diff options
Diffstat (limited to 'net/core/netdev-genl.c')
| -rw-r--r-- | net/core/netdev-genl.c | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/net/core/netdev-genl.c b/net/core/netdev-genl.c index 2afa7b2141aa..6314eb7bdf69 100644 --- a/net/core/netdev-genl.c +++ b/net/core/netdev-genl.c @@ -184,6 +184,10 @@ netdev_nl_napi_fill_one(struct sk_buff *rsp, struct napi_struct *napi,  	if (napi->irq >= 0 && nla_put_u32(rsp, NETDEV_A_NAPI_IRQ, napi->irq))  		goto nla_put_failure; +	if (nla_put_uint(rsp, NETDEV_A_NAPI_THREADED, +			 napi_get_threaded(napi))) +		goto nla_put_failure; +  	if (napi->thread) {  		pid = task_pid_nr(napi->thread);  		if (nla_put_u32(rsp, NETDEV_A_NAPI_PID, pid)) @@ -322,8 +326,18 @@ netdev_nl_napi_set_config(struct napi_struct *napi, struct genl_info *info)  {  	u64 irq_suspend_timeout = 0;  	u64 gro_flush_timeout = 0; +	u8 threaded = 0;  	u32 defer = 0; +	if (info->attrs[NETDEV_A_NAPI_THREADED]) { +		int ret; + +		threaded = nla_get_uint(info->attrs[NETDEV_A_NAPI_THREADED]); +		ret = napi_set_threaded(napi, threaded); +		if (ret) +			return ret; +	} +  	if (info->attrs[NETDEV_A_NAPI_DEFER_HARD_IRQS]) {  		defer = nla_get_u32(info->attrs[NETDEV_A_NAPI_DEFER_HARD_IRQS]);  		napi_set_defer_hard_irqs(napi, defer);  | 
