ip_gre: don't overwrite iflink during net_dev init
authorAntonio Quartulli <ordex@autistici.org>
Sat, 30 Mar 2013 07:07:37 +0000 (07:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 30 Mar 2013 21:28:33 +0000 (17:28 -0400)
commit537aadc3a4a0336e432c789c577b7efa0adf4af0
tree182c1cb05798a139077969ddb04938d7b49e61c1
parenta691ce7fe451363d2f1fa48d30c8f4b87c2475d4
ip_gre: don't overwrite iflink during net_dev init

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 c54419321455631079c7d6e60bc732dd0c5914c5
("GRE: Refactor GRE tunneling code.")

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Cc: Pravin B Shelar <pshelar@nicira.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_gre.c