Loading net/ax25/ax25_iface.c +4 −3 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev) return 0; if ((listen = kmalloc(sizeof(*listen), GFP_ATOMIC)) == NULL) return 0; return -ENOMEM; listen->callsign = *callsign; listen->dev = dev; Loading @@ -164,7 +164,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev) listen_list = listen; spin_unlock_bh(&listen_lock); return 1; return 0; } EXPORT_SYMBOL(ax25_listen_register); Loading Loading @@ -225,7 +225,8 @@ int ax25_listen_mine(ax25_address *callsign, struct net_device *dev) spin_lock_bh(&listen_lock); for (listen = listen_list; listen != NULL; listen = listen->next) if (ax25cmp(&listen->callsign, callsign) == 0 && (listen->dev == dev || listen->dev == NULL)) { if (ax25cmp(&listen->callsign, callsign) == 0 && (listen->dev == dev || listen->dev == NULL)) { spin_unlock_bh(&listen_lock); return 1; } Loading net/netrom/nr_dev.c +18 −6 Original line number Diff line number Diff line Loading @@ -128,25 +128,37 @@ static int nr_header(struct sk_buff *skb, struct net_device *dev, unsigned short return -37; } static int nr_set_mac_address(struct net_device *dev, void *addr) static int __must_check nr_set_mac_address(struct net_device *dev, void *addr) { struct sockaddr *sa = addr; int err; if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len)) return 0; if (dev->flags & IFF_UP) { err = ax25_listen_register((ax25_address *)sa->sa_data, NULL); if (err) return err; if (dev->flags & IFF_UP) ax25_listen_release((ax25_address *)dev->dev_addr, NULL); } memcpy(dev->dev_addr, sa->sa_data, dev->addr_len); if (dev->flags & IFF_UP) ax25_listen_register((ax25_address *)dev->dev_addr, NULL); return 0; } static int nr_open(struct net_device *dev) { int err; err = ax25_listen_register((ax25_address *)dev->dev_addr, NULL); if (err) return err; netif_start_queue(dev); ax25_listen_register((ax25_address *)dev->dev_addr, NULL); return 0; } Loading net/rose/af_rose.c +2 −1 Original line number Diff line number Diff line Loading @@ -1314,7 +1314,8 @@ static int rose_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) if (copy_from_user(&rose_callsign, argp, sizeof(ax25_address))) return -EFAULT; if (ax25cmp(&rose_callsign, &null_ax25_address) != 0) ax25_listen_register(&rose_callsign, NULL); return ax25_listen_register(&rose_callsign, NULL); return 0; case SIOCRSGL2CALL: Loading Loading
net/ax25/ax25_iface.c +4 −3 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev) return 0; if ((listen = kmalloc(sizeof(*listen), GFP_ATOMIC)) == NULL) return 0; return -ENOMEM; listen->callsign = *callsign; listen->dev = dev; Loading @@ -164,7 +164,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev) listen_list = listen; spin_unlock_bh(&listen_lock); return 1; return 0; } EXPORT_SYMBOL(ax25_listen_register); Loading Loading @@ -225,7 +225,8 @@ int ax25_listen_mine(ax25_address *callsign, struct net_device *dev) spin_lock_bh(&listen_lock); for (listen = listen_list; listen != NULL; listen = listen->next) if (ax25cmp(&listen->callsign, callsign) == 0 && (listen->dev == dev || listen->dev == NULL)) { if (ax25cmp(&listen->callsign, callsign) == 0 && (listen->dev == dev || listen->dev == NULL)) { spin_unlock_bh(&listen_lock); return 1; } Loading
net/netrom/nr_dev.c +18 −6 Original line number Diff line number Diff line Loading @@ -128,25 +128,37 @@ static int nr_header(struct sk_buff *skb, struct net_device *dev, unsigned short return -37; } static int nr_set_mac_address(struct net_device *dev, void *addr) static int __must_check nr_set_mac_address(struct net_device *dev, void *addr) { struct sockaddr *sa = addr; int err; if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len)) return 0; if (dev->flags & IFF_UP) { err = ax25_listen_register((ax25_address *)sa->sa_data, NULL); if (err) return err; if (dev->flags & IFF_UP) ax25_listen_release((ax25_address *)dev->dev_addr, NULL); } memcpy(dev->dev_addr, sa->sa_data, dev->addr_len); if (dev->flags & IFF_UP) ax25_listen_register((ax25_address *)dev->dev_addr, NULL); return 0; } static int nr_open(struct net_device *dev) { int err; err = ax25_listen_register((ax25_address *)dev->dev_addr, NULL); if (err) return err; netif_start_queue(dev); ax25_listen_register((ax25_address *)dev->dev_addr, NULL); return 0; } Loading
net/rose/af_rose.c +2 −1 Original line number Diff line number Diff line Loading @@ -1314,7 +1314,8 @@ static int rose_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) if (copy_from_user(&rose_callsign, argp, sizeof(ax25_address))) return -EFAULT; if (ax25cmp(&rose_callsign, &null_ax25_address) != 0) ax25_listen_register(&rose_callsign, NULL); return ax25_listen_register(&rose_callsign, NULL); return 0; case SIOCRSGL2CALL: Loading