1. 03 3月, 2009 2 次提交
    • D
      netns: fix addrconf_ifdown kernel panic · 176c39af
      Daniel Lezcano 提交于
      When a network namespace is destroyed the network interfaces are
      all unregistered, making addrconf_ifdown called by the netdevice
      notifier. 
      In the other hand, the addrconf exit method does a loop on the network
      devices and does addrconf_ifdown on each of them. But the ordering of 
      the netns subsystem is not right because it uses the register_pernet_device
      instead of register_pernet_subsys. If we handle the loopback as
      any network device, we can safely use register_pernet_subsys.
      
      But if we use register_pernet_subsys, the addrconf exit method will do
      exactly what was already done with the unregistering of the network
      devices. So in definitive, this code is pointless.
      
      I removed the netns addrconf exit method and moved the code to the
      addrconf cleanup function.
      Signed-off-by: NDaniel Lezcano <dlezcano@fr.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      176c39af
    • S
      ipv6: Fix sysctl unregistration deadlock · b325fddb
      Stephen Hemminger 提交于
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b325fddb
  2. 28 1月, 2009 1 次提交
  3. 20 11月, 2008 1 次提交
  4. 05 11月, 2008 1 次提交
    • B
      ipv6: fix run pending DAD when interface becomes ready · e3ec6cfc
      Benjamin Thery 提交于
      With some net devices types, an IPv6 address configured while the
      interface was down can stay 'tentative' forever, even after the interface
      is set up. In some case, pending IPv6 DADs are not executed when the
      device becomes ready.
      
      I observed this while doing some tests with kvm. If I assign an IPv6 
      address to my interface eth0 (kvm driver rtl8139) when it is still down
      then the address is flagged tentative (IFA_F_TENTATIVE). Then, I set
      eth0 up, and to my surprise, the address stays 'tentative', no DAD is
      executed and the address can't be pinged.
      
      I also observed the same behaviour, without kvm, with virtual interfaces
      types macvlan and veth.
      
      Some easy steps to reproduce the issue with macvlan:
      
      1. ip link add link eth0 type macvlan
      2. ip -6 addr add 2003::ab32/64 dev macvlan0
      3. ip addr show dev macvlan0
         ... 
         inet6 2003::ab32/64 scope global tentative
         ...
      4. ip link set macvlan0 up
      5. ip addr show dev macvlan0
         ...
         inet6 2003::ab32/64 scope global tentative
         ...
         Address is still tentative
      
      I think there's a bug in net/ipv6/addrconf.c, addrconf_notify():
      addrconf_dad_run() is not always run when the interface is flagged IF_READY.
      Currently it is only run when receiving NETDEV_CHANGE event. Looks like
      some (virtual) devices doesn't send this event when becoming up.
      
      For both NETDEV_UP and NETDEV_CHANGE events, when the interface becomes
      ready, run_pending should be set to 1. Patch below.
      
      'run_pending = 1' could be moved below the if/else block but it makes 
      the code less readable.
      Signed-off-by: NBenjamin Thery <benjamin.thery@bull.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3ec6cfc
  5. 04 11月, 2008 1 次提交
    • A
      net: '&' redux · 6d9f239a
      Alexey Dobriyan 提交于
      I want to compile out proc_* and sysctl_* handlers totally and
      stub them to NULL depending on config options, however usage of &
      will prevent this, since taking adress of NULL pointer will break
      compilation.
      
      So, drop & in front of every ->proc_handler and every ->strategy
      handler, it was never needed in fact.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6d9f239a
  6. 30 10月, 2008 1 次提交
  7. 29 10月, 2008 1 次提交
  8. 17 10月, 2008 1 次提交
  9. 23 8月, 2008 1 次提交
    • S
      ipv6: protocol for address routes · f410a1fb
      Stephen Hemminger 提交于
      This fixes a problem spotted with zebra, but not sure if it is
      necessary a kernel problem.  With IPV6 when an address is added to an
      interface, Zebra creates a duplicate RIB entry, one as a connected
      route, and other as a kernel route.
      
      When an address is added to an interface the RTN_NEWADDR message
      causes Zebra to create a connected route. In IPV4 when an address is
      added to an interface a RTN_NEWROUTE message is set to user space with
      the protocol RTPROT_KERNEL. Zebra ignores these messages, because it
      already has the connected route.
      
      The problem is that route created in IPV6 has route protocol ==
      RTPROT_BOOT.  Was this a design decision or a bug? This fixes it. Same
      patch applies to both net-2.6 and stable.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f410a1fb
  10. 15 8月, 2008 1 次提交
  11. 26 7月, 2008 1 次提交
  12. 23 7月, 2008 1 次提交
  13. 21 7月, 2008 1 次提交
  14. 20 7月, 2008 1 次提交
  15. 09 7月, 2008 3 次提交
  16. 03 7月, 2008 3 次提交
  17. 20 6月, 2008 1 次提交
  18. 12 6月, 2008 3 次提交
  19. 05 6月, 2008 2 次提交
  20. 20 5月, 2008 2 次提交
  21. 22 4月, 2008 1 次提交
  22. 14 4月, 2008 3 次提交
  23. 12 4月, 2008 5 次提交
  24. 11 4月, 2008 1 次提交
  25. 05 4月, 2008 1 次提交