bridge: cleanup netpoll code
This started out with fixing a sparse warning, then I realized that the wrapper function br_netpoll_info could just be collapsed away by rolling it into the enable code. Also, eliminate unnecessary goto's Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Jiri Pirko <jiri@resnulli.us> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								f52809483c
							
						
					
				
			
			
				commit
				
					
						93d8bf9fb8
					
				
			
		
					 3 changed files with 8 additions and 17 deletions
				
			
		|  | @ -244,22 +244,22 @@ fail: | ||||||
| int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp) | int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp) | ||||||
| { | { | ||||||
| 	struct netpoll *np; | 	struct netpoll *np; | ||||||
| 	int err = 0; | 	int err; | ||||||
|  | 
 | ||||||
|  | 	if (!p->br->dev->npinfo) | ||||||
|  | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	np = kzalloc(sizeof(*p->np), gfp); | 	np = kzalloc(sizeof(*p->np), gfp); | ||||||
| 	err = -ENOMEM; |  | ||||||
| 	if (!np) | 	if (!np) | ||||||
| 		goto out; | 		return -ENOMEM; | ||||||
| 
 | 
 | ||||||
| 	err = __netpoll_setup(np, p->dev, gfp); | 	err = __netpoll_setup(np, p->dev, gfp); | ||||||
| 	if (err) { | 	if (err) { | ||||||
| 		kfree(np); | 		kfree(np); | ||||||
| 		goto out; | 		return err; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	p->np = np; | 	p->np = np; | ||||||
| 
 |  | ||||||
| out: |  | ||||||
| 	return err; | 	return err; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -363,7 +363,8 @@ int br_add_if(struct net_bridge *br, struct net_device *dev) | ||||||
| 	if (err) | 	if (err) | ||||||
| 		goto err2; | 		goto err2; | ||||||
| 
 | 
 | ||||||
| 	if (br_netpoll_info(br) && ((err = br_netpoll_enable(p, GFP_KERNEL)))) | 	err = br_netpoll_enable(p, GFP_KERNEL); | ||||||
|  | 	if (err) | ||||||
| 		goto err3; | 		goto err3; | ||||||
| 
 | 
 | ||||||
| 	err = netdev_master_upper_dev_link(dev, br->dev); | 	err = netdev_master_upper_dev_link(dev, br->dev); | ||||||
|  |  | ||||||
|  | @ -333,11 +333,6 @@ extern void br_dev_delete(struct net_device *dev, struct list_head *list); | ||||||
| extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, | extern netdev_tx_t br_dev_xmit(struct sk_buff *skb, | ||||||
| 			       struct net_device *dev); | 			       struct net_device *dev); | ||||||
| #ifdef CONFIG_NET_POLL_CONTROLLER | #ifdef CONFIG_NET_POLL_CONTROLLER | ||||||
| static inline struct netpoll_info *br_netpoll_info(struct net_bridge *br) |  | ||||||
| { |  | ||||||
| 	return br->dev->npinfo; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static inline void br_netpoll_send_skb(const struct net_bridge_port *p, | static inline void br_netpoll_send_skb(const struct net_bridge_port *p, | ||||||
| 				       struct sk_buff *skb) | 				       struct sk_buff *skb) | ||||||
| { | { | ||||||
|  | @ -350,11 +345,6 @@ static inline void br_netpoll_send_skb(const struct net_bridge_port *p, | ||||||
| extern int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp); | extern int br_netpoll_enable(struct net_bridge_port *p, gfp_t gfp); | ||||||
| extern void br_netpoll_disable(struct net_bridge_port *p); | extern void br_netpoll_disable(struct net_bridge_port *p); | ||||||
| #else | #else | ||||||
| static inline struct netpoll_info *br_netpoll_info(struct net_bridge *br) |  | ||||||
| { |  | ||||||
| 	return NULL; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static inline void br_netpoll_send_skb(const struct net_bridge_port *p, | static inline void br_netpoll_send_skb(const struct net_bridge_port *p, | ||||||
| 				       struct sk_buff *skb) | 				       struct sk_buff *skb) | ||||||
| { | { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 stephen hemminger
				stephen hemminger