• A
    ip_gre: don't overwrite iflink during net_dev init · 537aadc3
    Antonio Quartulli 提交于
    iflink is currently set to 0 in __gre_tunnel_init(). This
    function is invoked in gre_tap_init() and
    ipgre_tunnel_init() which are both used to initialise the
    ndo_init field of the respective net_device_ops structs
    (ipgre.. and gre_tap..) used by GRE interfaces.
    
    However, in netdevice_register() iflink is first set to -1,
    then ndo_init is invoked and then iflink is assigned to a
    proper value if and only if it still was -1.
    
    Assigning 0 to iflink in ndo_init is therefore first
    preventing netdev_register() to correctly assign it a proper
    value and then breaking iflink at all since 0 has not
    correct meaning.
    
    Fix this by removing the iflink assignment in
    __gre_tunnel_init().
    
    Introduced by c5441932
    ("GRE: Refactor GRE tunneling code.")
    Reported-by: NFengguang Wu <fengguang.wu@intel.com>
    Cc: Pravin B Shelar <pshelar@nicira.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    537aadc3
ip_gre.c 25.8 KB