[PATCH] (6/11) netrom - ax25 interface changes

From: Stephen Hemminger (terhi.victor@logonet.com)
Date: Thu Aug 14 2003 - 01:41:20 EEST

  • Next message: Stephen Hemminger: "[PATCH] (4/11) netrom - reserve room for AX25 header in skb"

    From: Jeroen Vreeken <ampz.fiocqbbfvi@illinimanor.com>

    Better control over the AX25 devices

    diff -Nru a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
    --- a/net/netrom/af_netrom.c Wed Aug 13 13:19:42 2003
    +++ b/net/netrom/af_netrom.c Wed Aug 13 13:19:42 2003
    @@ -1363,6 +1363,7 @@
     
             for (i = 0; i < nr_ndevs; i++) {
                     sprintf(dev_nr[i].name, "nr%d", i);
    + dev_nr[i].base_addr = i;
                     dev_nr[i].init = nr_init;
                     register_netdev(&dev_nr[i]);
             }
    @@ -1407,23 +1408,23 @@
     
             nr_rt_free();
     
    - ax25_protocol_release(AX25_P_NETROM);
    +#ifdef CONFIG_SYSCTL
    + nr_unregister_sysctl();
    +#endif
    +
             ax25_linkfail_release(nr_link_failed);
    + ax25_protocol_release(AX25_P_NETROM);
     
             unregister_netdevice_notifier(&nr_dev_notifier);
     
    -#ifdef CONFIG_SYSCTL
    - nr_unregister_sysctl();
    -#endif
             sock_unregister(PF_NETROM);
     
             for (i = 0; i < nr_ndevs; i++) {
                     if (dev_nr[i].priv != NULL) {
    + unregister_netdev(&dev_nr[i]);
                             kfree(dev_nr[i].priv);
                             dev_nr[i].priv = NULL;
    - unregister_netdev(&dev_nr[i]);
                     }
    - kfree(dev_nr[i].name);
             }
     
             kfree(dev_nr);
    diff -Nru a/net/netrom/nr_dev.c b/net/netrom/nr_dev.c
    --- a/net/netrom/nr_dev.c Wed Aug 13 13:19:42 2003
    +++ b/net/netrom/nr_dev.c Wed Aug 13 13:19:42 2003
    @@ -159,11 +159,13 @@
     {
             struct sockaddr *sa = addr;
     
    - ax25_listen_release((ax25_address *)dev->dev_addr, NULL);
    + if (dev->flags & IFF_UP)
    + ax25_listen_release((ax25_address *)dev->dev_addr, NULL);
     
             memcpy(dev->dev_addr, sa->sa_data, dev->addr_len);
     
    - ax25_listen_register((ax25_address *)dev->dev_addr, NULL);
    + if (dev->flags & IFF_UP)
    + ax25_listen_register((ax25_address *)dev->dev_addr, NULL);
     
             return 0;
     }
    @@ -177,8 +179,8 @@
     
     static int nr_close(struct net_device *dev)
     {
    - netif_stop_queue(dev);
             ax25_listen_release((ax25_address *)dev->dev_addr, NULL);
    + netif_stop_queue(dev);
             return 0;
     }
     
    @@ -207,6 +208,7 @@
             dev->hard_header_len = NR_NETWORK_LEN + NR_TRANSPORT_LEN;
             dev->addr_len = AX25_ADDR_LEN;
             dev->type = ARPHRD_NETROM;
    + dev->tx_queue_len = 40;
             dev->rebuild_header = nr_rebuild_header;
             dev->set_mac_address = nr_set_mac_address;
     
    -
    To unsubscribe from this list: send the line "unsubscribe linux-hams" in
    the body of a message to tif.gyrksvncu@cm128-234.liwest.at
    More majordomo info at http://vger.kernel.org/majordomo-info.html



    This archive was generated by hypermail 2b30 : Thu Aug 14 2003 - 01:42:02 EEST