• Honggang Li's avatar
    RDMA/IPoIB: Replace netdev_priv with ipoib_priv for ipoib_get_link_ksettings · 8c490669
    Honggang Li authored
    ipoib_dev_init accesses the wrong private data for the IPoIB device.
    Commit cd565b4b (IB/IPoIB: Support acceleration options callbacks)
    changed ipoib_priv from being identical to netdev_priv to being an
    area inside of, but not the same pointer as, the netdev_priv pointer.
    As such, the struct we want is the ipoib_priv area, not the netdev_priv
    area, so use the right accessor, otherwise we kernel panic.
    
    [   27.271938] IPv6: ADDRCONF(NETDEV_CHANGE): mlx5_ib0.8006: link becomes ready
    [   28.156790] BUG: unable to handle kernel NULL pointer dereference at 000000000000067c
    [   28.166309] IP: ib_query_port+0x30/0x180 [ib_core]
    ...
    [   28.306282] RIP: 0010:ib_query_port+0x30/0x180 [ib_core]
    ...
    [   28.393337] Call Trace:
    [   28.397594]  ipoib_get_link_ksettings+0x66/0xe0 [ib_ipoib]
    [   28.405274]  __ethtool_get_link_ksettings+0xa0/0x1c0
    [   28.412353]  speed_show+0x74/0xa0
    [   28.417503]  dev_attr_show+0x20/0x50
    [   28.422922]  ? mutex_lock+0x12/0x40
    [   28.428179]  sysfs_kf_seq_show+0xbf/0x1a0
    [   28.434002]  kernfs_seq_show+0x21/0x30
    [   28.439470]  seq_read+0x116/0x3b0
    [   28.444445]  ? do_filp_open+0xa5/0x100
    [   28.449774]  kernfs_fop_read+0xff/0x180
    [   28.455220]  __vfs_read+0x37/0x150
    [   28.460167]  ? security_file_permission+0x9d/0xc0
    [   28.466560]  vfs_read+0x8c/0x130
    [   28.471318]  SyS_read+0x55/0xc0
    [   28.475950]  do_syscall_64+0x67/0x150
    [   28.481163]  entry_SYSCALL64_slow_path+0x25/0x25
    ...
    [   28.584493] ---[ end trace 3549968a4bf0aa5d ]---
    
    Fixes: cd565b4b (IB/IPoIB: Support acceleration options callbacks)
    Fixes: 0d7e2d21 (IB/ipoib: add get_link_ksettings in ethtool)
    Signed-off-by: default avatarHonggang Li <honli@redhat.com>
    Reviewed-by: default avatarYuval Shaia <yuval.shaia@oracle.com>
    Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    8c490669
ipoib_ethtool.c 6.09 KB