• J
    scsi: lpfc: Fix lockdep error - register non-static key · f861f596
    James Smart 提交于
    The following lockdep error was reported when unloading the lpfc driver:
    
      INFO: trying to register non-static key.
      the code is fine but needs lockdep annotation.
      turning off the locking correctness validator.
      ...
      Call Trace:
      dump_stack+0x96/0xe0
      register_lock_class+0x8b8/0x8c0
      ? lockdep_hardirqs_on+0x190/0x280
      ? is_dynamic_key+0x150/0x150
      ? wait_for_completion_interruptible+0x2a0/0x2a0
      ? wake_up_q+0xd0/0xd0
      __lock_acquire+0xda/0x21a0
      ? register_lock_class+0x8c0/0x8c0
      ? synchronize_rcu_expedited+0x500/0x500
      ? __call_rcu+0x850/0x850
      lock_acquire+0xf3/0x1f0
      ? del_timer_sync+0x5/0xb0
      del_timer_sync+0x3c/0xb0
      ? del_timer_sync+0x5/0xb0
      lpfc_pci_remove_one.cold.102+0x8b7/0x935 [lpfc]
      ...
    
    Unloading the driver resulted in a call to del_timer_sync for the
    cpuhp_poll_timer. However the call to setup the timer had never been made,
    so the timer structures used by lockdep checking were not initialized.
    
    Unconditionally call setup_timer for the cpuhp_poll_timer during driver
    initialization. Calls to start the timer remain "as needed".
    
    Link: https://lore.kernel.org/r/20200322181304.37655-3-jsmart2021@gmail.comSigned-off-by: NJames Smart <jsmart2021@gmail.com>
    Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
    f861f596
lpfc_init.c 407.1 KB