Remove unnecessary function x25_kill_by_device.

Signed-off-by: Martin Schiller <m...@dev.tdt.de>
---
 net/x25/af_x25.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c
index 439ae65ab7a8..d98d1145500e 100644
--- a/net/x25/af_x25.c
+++ b/net/x25/af_x25.c
@@ -210,22 +210,6 @@ static void x25_remove_socket(struct sock *sk)
        write_unlock_bh(&x25_list_lock);
 }
 
-/*
- *     Kill all bound sockets on a dropped device.
- */
-static void x25_kill_by_device(struct net_device *dev)
-{
-       struct sock *s;
-
-       write_lock_bh(&x25_list_lock);
-
-       sk_for_each(s, &x25_list)
-               if (x25_sk(s)->neighbour && x25_sk(s)->neighbour->dev == dev)
-                       x25_disconnect(s, ENETUNREACH, 0, 0);
-
-       write_unlock_bh(&x25_list_lock);
-}
-
 /*
  *     Handle device status changes.
  */
@@ -266,7 +250,11 @@ static int x25_device_event(struct notifier_block *this, 
unsigned long event,
                        break;
                case NETDEV_DOWN:
                        pr_debug("X.25: got event NETDEV_DOWN for device: 
%s\n", dev->name);
-                       x25_kill_by_device(dev);
+                       nb = x25_get_neigh(dev);
+                       if (nb) {
+                               x25_kill_by_neigh(nb);
+                               x25_neigh_put(nb);
+                       }
                        x25_route_device_down(dev);
                        x25_link_device_down(dev);
                        break;
-- 
2.20.1

Reply via email to