Commit 6ac62e4f authored by Steven Whitehouse's avatar Steven Whitehouse Committed by David S. Miller

[DECNET]: Fix route device refcounting.

parent e6737a9d
...@@ -2238,7 +2238,7 @@ MODULE_PARM(addr, "2i"); ...@@ -2238,7 +2238,7 @@ MODULE_PARM(addr, "2i");
MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node"); MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node");
#endif #endif
static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.4.15-pre5s (C) 1995-2001 Linux DECnet Project Team\n"; static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.4.20-pre1s (C) 1995-2002 Linux DECnet Project Team\n";
static int __init decnet_init(void) static int __init decnet_init(void)
{ {
......
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
* are numbered! * are numbered!
* Steve Whitehouse : Added return-to-sender functions. Added * Steve Whitehouse : Added return-to-sender functions. Added
* backlog congestion level return codes. * backlog congestion level return codes.
* Steve Whitehouse : Fixed bug where routes were set up with
* no ref count on net devices.
* *
*/ */
...@@ -801,6 +803,8 @@ static int dn_route_output_slow(struct dst_entry **pprt, dn_address dst, dn_addr ...@@ -801,6 +803,8 @@ static int dn_route_output_slow(struct dst_entry **pprt, dn_address dst, dn_addr
rt->u.dst.neighbour = neigh; rt->u.dst.neighbour = neigh;
rt->u.dst.dev = neigh ? neigh->dev : NULL; rt->u.dst.dev = neigh ? neigh->dev : NULL;
if (rt->u.dst.dev)
dev_hold(rt->u.dst.dev);
rt->u.dst.lastuse = jiffies; rt->u.dst.lastuse = jiffies;
rt->u.dst.output = dn_output; rt->u.dst.output = dn_output;
rt->u.dst.input = dn_rt_bug; rt->u.dst.input = dn_rt_bug;
...@@ -978,6 +982,8 @@ static int dn_route_input_slow(struct sk_buff *skb) ...@@ -978,6 +982,8 @@ static int dn_route_input_slow(struct sk_buff *skb)
rt->u.dst.neighbour = neigh; rt->u.dst.neighbour = neigh;
rt->u.dst.dev = neigh ? neigh->dev : NULL; rt->u.dst.dev = neigh ? neigh->dev : NULL;
if (rt->u.dst.dev)
dev_hold(rt->u.dst.dev);
rt->u.dst.lastuse = jiffies; rt->u.dst.lastuse = jiffies;
rt->u.dst.output = dnrt_output; rt->u.dst.output = dnrt_output;
rt->u.dst.input = dnrt_input; rt->u.dst.input = dnrt_input;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment