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
Reference in a new issue