summaryrefslogtreecommitdiffstats
path: root/kernel/linux2.5/net
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-09-16 19:44:55 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-09-16 19:44:55 +0000
commit111e233e5aec0592f70a7c421f007902aee64449 (patch)
tree92a5ea3f0231bcfea86ee5309cc4849027d65f94 /kernel/linux2.5/net
parent57947535135f29cf676cfad1cc8e58060f6287d1 (diff)
change spaces to tab, bugfix, update to 2.5.35
Diffstat (limited to 'kernel/linux2.5/net')
-rw-r--r--kernel/linux2.5/net/core/dev.c19
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