infiniband: make sure the src net is infiniband when create new link
authorHangbin Liu <liuhangbin@gmail.com>
Fri, 3 Jan 2014 03:33:45 +0000 (11:33 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 4 Jan 2014 01:38:56 +0000 (20:38 -0500)
commit0d68fc4f1210f8caea2bdd68f99dc6da35ee3740
treef43d45c068c5f990a73748b71feefa62f6010f3f
parent7bda701e012373ca53c9d837b7b25131852e0238
infiniband: make sure the src net is infiniband when create new link

When we create a new infiniband link with uninfiniband device, e.g. `ip link
add link em1 type ipoib pkey 0x8001`. We will get a NULL pointer dereference
cause other dev like Ethernet don't have struct ib_device.

The code path is:
rtnl_newlink
  |-- ipoib_new_child_link
        |-- __ipoib_vlan_add
              |-- ipoib_set_dev_features
                    |-- ib_query_device

Fix this bug by make sure the src net is infiniband when create new link.

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/infiniband/ulp/ipoib/ipoib_netlink.c