diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2002-09-16 19:44:55 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2002-09-16 19:44:55 +0000 |
commit | 111e233e5aec0592f70a7c421f007902aee64449 (patch) | |
tree | 92a5ea3f0231bcfea86ee5309cc4849027d65f94 /kernel/linux2.5 | |
parent | 57947535135f29cf676cfad1cc8e58060f6287d1 (diff) |
change spaces to tab, bugfix, update to 2.5.35
Diffstat (limited to 'kernel/linux2.5')
-rw-r--r-- | kernel/linux2.5/net/core/dev.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/kernel/linux2.5/net/core/dev.c b/kernel/linux2.5/net/core/dev.c index 6988fb9..5efaf6e 100644 --- a/kernel/linux2.5/net/core/dev.c +++ b/kernel/linux2.5/net/core/dev.c @@ -694,10 +694,14 @@ int dev_open(struct net_device *dev) * Call device private open method */ if (try_inc_mod_count(dev->owner)) { + set_bit(__LINK_STATE_START, &dev->state); if (dev->open) { ret = dev->open(dev); - if (ret && dev->owner) - __MOD_DEC_USE_COUNT(dev->owner); + if (ret) { + clear_bit(__LINK_STATE_START, &dev->state); + if (dev->owner) + __MOD_DEC_USE_COUNT(dev->owner); + } } } else { ret = -ENODEV; @@ -713,8 +717,6 @@ int dev_open(struct net_device *dev) */ dev->flags |= IFF_UP; - set_bit(__LINK_STATE_START, &dev->state); - /* * Initialize multicasting status */ @@ -1472,11 +1474,12 @@ int netif_receive_skb(struct sk_buff *skb) #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) if (skb->dev->br_port && br_handle_frame_hook) { - int ret; + int ret; - ret = handle_bridge(skb, pt_prev); - if (br_handle_frame_hook(skb) == 0) - return ret; + ret = handle_bridge(skb, pt_prev); + if (br_handle_frame_hook(skb) == 0) + return ret; + pt_prev = NULL; } #endif |