forked from mirrors/linux
		
	We have 100+ syzbot reports about netns being dismantled too soon, still unresolved as of today. We think a missing get_net() or an extra put_net() is the root cause. In order to find the bug(s), and be able to spot future ones, this patch adds CONFIG_NET_NS_REFCNT_TRACKER and new helpers to precisely pair all put_net() with corresponding get_net(). To use these helpers, each data structure owning a refcount should also use a "netns_tracker" to pair the get and put. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			424 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			424 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
#ifndef __NET_NET_TRACKERS_H
 | 
						|
#define __NET_NET_TRACKERS_H
 | 
						|
#include <linux/ref_tracker.h>
 | 
						|
 | 
						|
#ifdef CONFIG_NET_DEV_REFCNT_TRACKER
 | 
						|
typedef struct ref_tracker *netdevice_tracker;
 | 
						|
#else
 | 
						|
typedef struct {} netdevice_tracker;
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef CONFIG_NET_NS_REFCNT_TRACKER
 | 
						|
typedef struct ref_tracker *netns_tracker;
 | 
						|
#else
 | 
						|
typedef struct {} netns_tracker;
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* __NET_NET_TRACKERS_H */
 |