forked from mirrors/linux
		
	page_pool: fix netlink dump stop/resume
If message fills up we need to stop writing. 'break' will
only get us out of the iteration over pools of a single
netdev, we need to also stop walking netdevs.
This results in either infinite dump, or missing pools,
depending on whether message full happens on the last
netdev (infinite dump) or non-last (missing pools).
Fixes: 950ab53b77 ("net: page_pool: implement GET in the netlink API")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									1ca1ba465e
								
							
						
					
					
						commit
						429679dcf7
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		|  | @ -94,11 +94,12 @@ netdev_nl_page_pool_get_dump(struct sk_buff *skb, struct netlink_callback *cb, | |||
| 			state->pp_id = pool->user.id; | ||||
| 			err = fill(skb, pool, info); | ||||
| 			if (err) | ||||
| 				break; | ||||
| 				goto out; | ||||
| 		} | ||||
| 
 | ||||
| 		state->pp_id = 0; | ||||
| 	} | ||||
| out: | ||||
| 	mutex_unlock(&page_pools_lock); | ||||
| 	rtnl_unlock(); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jakub Kicinski
						Jakub Kicinski