Re: [PATCH 1/2] thunderbolt: Initialize HopID IDAs in tb_switch_alloc()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 03, 2021 at 03:13:09PM +0300, Mika Westerberg wrote:
> If there is a failure before the tb_switch_add() is called the switch
> object is released by tb_switch_release() but at that point HopID IDAs
> have not yet been initialized. So we see splat like this:
> 
> BUG: spinlock bad magic on CPU#2, kworker/u8:5/115
> ...
> Workqueue: thunderbolt0 tb_handle_hotplug
> Call Trace:
>  dump_stack+0x97/0xdc
>  ? spin_bug+0x9a/0xa7
>  do_raw_spin_lock+0x68/0x98
>  _raw_spin_lock_irqsave+0x3f/0x5d
>  ida_destroy+0x4f/0x127
>  tb_switch_release+0x6d/0xfd
>  device_release+0x2c/0x7d
>  kobject_put+0x9b/0xbc
>  tb_handle_hotplug+0x278/0x452
>  process_one_work+0x1db/0x396
>  worker_thread+0x216/0x375
>  kthread+0x14d/0x155
>  ? pr_cont_work+0x58/0x58
>  ? kthread_blkcg+0x2e/0x2e
>  ret_from_fork+0x1f/0x40
> 
> Fix this by always initializing HopID IDAs in tb_switch_alloc().
> 
> Fixes: 0b2863ac3cfd ("thunderbolt: Add functions for allocating and releasing HopIDs")
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Chiranjeevi Rapolu <chiranjeevi.rapolu@xxxxxxxxx>
> Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>

Applied this and the 2/2 to thunderbolt.git/fixes.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux