• Govindarajulu Varadarajan's avatar
    enic: initialize enic->rfs_h.lock in enic_probe · 3256d29f
    Govindarajulu Varadarajan authored
    lockdep spotted that we are using rfs_h.lock in enic_get_rxnfc() without
    initializing. rfs_h.lock is initialized in enic_open(). But ethtool_ops
    can be called when interface is down.
    
    Move enic_rfs_flw_tbl_init to enic_probe.
    
    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    CPU: 18 PID: 1189 Comm: ethtool Not tainted 4.17.0-rc7-devel+ #27
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-20171110_100015-anatol 04/01/2014
    Call Trace:
    dump_stack+0x85/0xc0
    register_lock_class+0x550/0x560
    ? __handle_mm_fault+0xa8b/0x1100
    __lock_acquire+0x81/0x670
    lock_acquire+0xb9/0x1e0
    ?  enic_get_rxnfc+0x139/0x2b0 [enic]
    _raw_spin_lock_bh+0x38/0x80
    ? enic_get_rxnfc+0x139/0x2b0 [enic]
    enic_get_rxnfc+0x139/0x2b0 [enic]
    ethtool_get_rxnfc+0x8d/0x1c0
    dev_ethtool+0x16c8/0x2400
    ? __mutex_lock+0x64d/0xa00
    ? dev_load+0x6a/0x150
    dev_ioctl+0x253/0x4b0
    sock_do_ioctl+0x9a/0x130
    sock_ioctl+0x1af/0x350
    do_vfs_ioctl+0x8e/0x670
    ? syscall_trace_enter+0x1e2/0x380
    ksys_ioctl+0x60/0x90
    __x64_sys_ioctl+0x16/0x20
    do_syscall_64+0x5a/0x170
    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    Signed-off-by: default avatarGovindarajulu Varadarajan <gvaradar@cisco.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3256d29f
enic_clsf.c 6.96 KB