• N
    thunderbolt: Disable ports that are not implemented · 8824d19b
    Nikunj A. Dadhania 提交于
    Commit 4caf2511 ("thunderbolt: Add trivial .shutdown") exposes a bug
    in the Thunderbolt driver, that frees an unallocated id, resulting in the
    following spinlock bad magic bug.
    
    [ 20.633803] BUG: spinlock bad magic on CPU#4, halt/3313
    [ 20.640030] lock: 0xffff92e6ad5c97e0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    [ 20.672139] Call Trace:
    [ 20.675032] dump_stack+0x97/0xdb
    [ 20.678950] ? spin_bug+0xa5/0xb0
    [ 20.682865] do_raw_spin_lock+0x68/0x98
    [ 20.687397] _raw_spin_lock_irqsave+0x3f/0x5d
    [ 20.692535] ida_destroy+0x4f/0x124
    [ 20.696657] tb_switch_release+0x6d/0xfd
    [ 20.701295] device_release+0x2c/0x7d
    [ 20.705622] kobject_put+0x8e/0xac
    [ 20.709637] tb_stop+0x55/0x66
    [ 20.713243] tb_domain_remove+0x36/0x62
    [ 20.717774] nhi_remove+0x4d/0x58
    
    Fix the issue by disabling ports that are enabled as per the EEPROM, but
    not implemented. While at it, update the kernel doc for the disabled
    field, to reflect this.
    
    Cc: stable@vger.kernel.org
    Fixes: 4caf2511 ("thunderbolt: Add trivial .shutdown")
    Reported-by: NSrikanth Nandamuri <srikanth.nandamuri@intel.com>
    Signed-off-by: NNikunj A. Dadhania <nikunj.dadhania@linux.intel.com>
    Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
    8824d19b
tb.h 31.4 KB