netdev
[Top] [All Lists]

[PATCH] (12/13) ddp do netdev hold/put

To: Jay Schulist <jschlst@xxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>
Subject: [PATCH] (12/13) ddp do netdev hold/put
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Fri, 29 Aug 2003 14:16:38 -0700
Cc: netdev@xxxxxxxxxxx
Organization: Open Source Development Lab
Sender: netdev-bounce@xxxxxxxxxxx
DDP holds a pointer to underlying network device, but doesn't
do the refcount bookeeping that it should.

diff -Nru a/net/appletalk/ddp.c b/net/appletalk/ddp.c
--- a/net/appletalk/ddp.c       Fri Aug 29 13:33:24 2003
+++ b/net/appletalk/ddp.c       Fri Aug 29 13:33:24 2003
@@ -232,6 +232,7 @@
        while ((tmp = *iface) != NULL) {
                if (tmp->dev == dev) {
                        *iface = tmp->next;
+                       dev_put(dev);
                        kfree(tmp);
                        dev->atalk_ptr = NULL;
                } else
@@ -248,6 +249,7 @@
        if (!iface)
                goto out;
 
+       dev_hold(dev);
        iface->dev = dev;
        dev->atalk_ptr = iface;
        iface->address = *sa;
@@ -609,6 +611,7 @@
                    (!(tmp->flags&RTF_GATEWAY) ||
                     tmp->target.s_node == addr->s_node)) {
                        *r = tmp->next;
+                       dev_put(tmp->dev);
                        kfree(tmp);
                        goto out;
                }
@@ -633,6 +636,7 @@
        while ((tmp = *r) != NULL) {
                if (tmp->dev == dev) {
                        *r = tmp->next;
+                       dev_put(dev);
                        kfree(tmp);
                } else
                        r = &tmp->next;

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] (12/13) ddp do netdev hold/put, Stephen Hemminger <=