linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
@ 2025-04-08  8:35 Francesco Dolcini
  2025-04-08  9:26 ` Paul Menzel
  2025-04-08 15:45 ` Vignesh Raghavendra
  0 siblings, 2 replies; 11+ messages in thread
From: Francesco Dolcini @ 2025-04-08  8:35 UTC (permalink / raw)
  To: Amitkumar Karwar, Neeraj Kale, Nishanth Menon, Tero Kristo,
	Santosh Shilimkar
  Cc: linux-bluetooth, linux-kernel, linux-arm-kernel, linux-pm,
	linux-serial

Hello,
I do have the following kernel warning with 6.15-rc1, on a TI AM62
platform (arm64), single CPU core, using btnxpuart driver, any idea?
PREEMPT_RT is enabled, if it matters.

Either the issue is not systematic, or multi cores SoCs are not affected
(no error on the exact same image on a dual nor on quad core TI AM62).


[   23.139080] Voluntary context switch within RCU read-side critical section!
[   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
[   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
[   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
[   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
[   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
[   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
[   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
[   23.139658] sp : ffff8000819fb740
[   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
[   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
[   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
[   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
[   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
[   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
[   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
[   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
[   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
[   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
[   23.139788] Call trace:
[   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
[   23.139813]  __schedule+0xa0/0x7dc
[   23.139830]  schedule+0x34/0x11c
[   23.139841]  schedule_timeout+0x8c/0x110
[   23.139861]  wait_for_completion_timeout+0x78/0x14c
[   23.139873]  ti_sci_set_device_state+0x120/0x1fc
[   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
[   23.139899]  ti_sci_pd_power_on+0x28/0x54
[   23.139916]  _genpd_power_on+0x98/0x188
[   23.139927]  genpd_power_on+0xa8/0x168
[   23.139940]  genpd_runtime_resume+0xc0/0x298
[   23.139957]  __rpm_callback+0x48/0x1a4
[   23.139974]  rpm_callback+0x74/0x80
[   23.139987]  rpm_resume+0x3b0/0x698
[   23.140000]  __pm_runtime_resume+0x48/0x88
[   23.140012]  omap8250_set_mctrl+0x2c/0xbc
[   23.140030]  serial8250_set_mctrl+0x20/0x40
[   23.140046]  uart_update_mctrl+0x80/0x110
[   23.140062]  uart_dtr_rts+0x104/0x118
[   23.140079]  tty_port_shutdown+0xd4/0xe0
[   23.140092]  tty_port_close+0x3c/0xb8
[   23.140103]  uart_close+0x34/0x98
[   23.140116]  ttyport_close+0x50/0xa0
[   23.140137]  serdev_device_close+0x40/0x5c
[   23.140150]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
[   23.140175]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
[   23.140243]  hci_dev_do_close+0x2c/0x70 [bluetooth]
[   23.140309]  hci_power_off+0x20/0x64 [bluetooth]
[   23.140379]  process_one_work+0x148/0x284
[   23.140403]  worker_thread+0x2c8/0x3dc
[   23.140414]  kthread+0x12c/0x208
[   23.140426]  ret_from_fork+0x10/0x20


Francesco



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-08  8:35 Kernel WARNING (RCU) with btnxpuart on TI AM62 platform Francesco Dolcini
@ 2025-04-08  9:26 ` Paul Menzel
  2025-04-08  9:35   ` Francesco Dolcini
  2025-04-08 15:45 ` Vignesh Raghavendra
  1 sibling, 1 reply; 11+ messages in thread
From: Paul Menzel @ 2025-04-08  9:26 UTC (permalink / raw)
  To: Francesco Dolcini
  Cc: Amitkumar Karwar, Neeraj Kale, Nishanth Menon, Tero Kristo,
	Santosh Shilimkar, linux-bluetooth, linux-kernel,
	linux-arm-kernel, linux-pm, linux-serial, regressions

[Cc: +regressions@]

#regzbot introduced: v6.14..v6.15-rc1


Dear Francesco,


Thank you for your report.

Am 08.04.25 um 10:35 schrieb Francesco Dolcini:

> I do have the following kernel warning with 6.15-rc1, on a TI AM62
> platform (arm64), single CPU core, using btnxpuart driver, any idea?
> PREEMPT_RT is enabled, if it matters.
> 
> Either the issue is not systematic, or multi cores SoCs are not affected
> (no error on the exact same image on a dual nor on quad core TI AM62).
> 
> 
> [   23.139080] Voluntary context switch within RCU read-side critical section!
> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
> [   23.139658] sp : ffff8000819fb740
> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
> [   23.139788] Call trace:
> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
> [   23.139813]  __schedule+0xa0/0x7dc
> [   23.139830]  schedule+0x34/0x11c
> [   23.139841]  schedule_timeout+0x8c/0x110
> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
> [   23.139916]  _genpd_power_on+0x98/0x188
> [   23.139927]  genpd_power_on+0xa8/0x168
> [   23.139940]  genpd_runtime_resume+0xc0/0x298
> [   23.139957]  __rpm_callback+0x48/0x1a4
> [   23.139974]  rpm_callback+0x74/0x80
> [   23.139987]  rpm_resume+0x3b0/0x698
> [   23.140000]  __pm_runtime_resume+0x48/0x88
> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
> [   23.140030]  serial8250_set_mctrl+0x20/0x40
> [   23.140046]  uart_update_mctrl+0x80/0x110
> [   23.140062]  uart_dtr_rts+0x104/0x118
> [   23.140079]  tty_port_shutdown+0xd4/0xe0
> [   23.140092]  tty_port_close+0x3c/0xb8
> [   23.140103]  uart_close+0x34/0x98
> [   23.140116]  ttyport_close+0x50/0xa0
> [   23.140137]  serdev_device_close+0x40/0x5c
> [   23.140150]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   23.140175]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   23.140243]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   23.140309]  hci_power_off+0x20/0x64 [bluetooth]
> [   23.140379]  process_one_work+0x148/0x284
> [   23.140403]  worker_thread+0x2c8/0x3dc
> [   23.140414]  kthread+0x12c/0x208
> [   23.140426]  ret_from_fork+0x10/0x20

As I understood, that it’s a regression, and you can reproduce it, would 
it be possible, that you bisected the issue?


Kind regards,

Paul


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-08  9:26 ` Paul Menzel
@ 2025-04-08  9:35   ` Francesco Dolcini
  0 siblings, 0 replies; 11+ messages in thread
From: Francesco Dolcini @ 2025-04-08  9:35 UTC (permalink / raw)
  To: Paul Menzel
  Cc: Francesco Dolcini, Amitkumar Karwar, Neeraj Kale, Nishanth Menon,
	Tero Kristo, Santosh Shilimkar, linux-bluetooth, linux-kernel,
	linux-arm-kernel, linux-pm, linux-serial, regressions

Hello,

On Tue, Apr 08, 2025 at 11:26:47AM +0200, Paul Menzel wrote:
> [Cc: +regressions@]
> 
> #regzbot introduced: v6.14..v6.15-rc1
> 
> 
> Thank you for your report.
> 
> Am 08.04.25 um 10:35 schrieb Francesco Dolcini:
> 
> > I do have the following kernel warning with 6.15-rc1, on a TI AM62
> > platform (arm64), single CPU core, using btnxpuart driver, any idea?
> > PREEMPT_RT is enabled, if it matters.
> > 
> > Either the issue is not systematic, or multi cores SoCs are not affected
> > (no error on the exact same image on a dual nor on quad core TI AM62).
> > 
> > 
> > [   23.139080] Voluntary context switch within RCU read-side critical section!
> > [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430

...

> As I understood, that it’s a regression, and you can reproduce it, would it
> be possible, that you bisected the issue?

I am not sure if this is a regression. It's possible that the issue is not new,
and it is just non systematic. For sure it was reproduced by our CI on v6.15-rc1.

Francesco



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-08  8:35 Kernel WARNING (RCU) with btnxpuart on TI AM62 platform Francesco Dolcini
  2025-04-08  9:26 ` Paul Menzel
@ 2025-04-08 15:45 ` Vignesh Raghavendra
  2025-04-10  6:20   ` Francesco Dolcini
  1 sibling, 1 reply; 11+ messages in thread
From: Vignesh Raghavendra @ 2025-04-08 15:45 UTC (permalink / raw)
  To: Francesco Dolcini, Amitkumar Karwar, Neeraj Kale, Nishanth Menon,
	Tero Kristo, Santosh Shilimkar
  Cc: linux-bluetooth, linux-kernel, linux-arm-kernel, linux-pm,
	linux-serial

Hi,

On 08/04/25 14:05, Francesco Dolcini wrote:
> Hello,
> I do have the following kernel warning with 6.15-rc1, on a TI AM62
> platform (arm64), single CPU core, using btnxpuart driver, any idea?
> PREEMPT_RT is enabled, if it matters.
> 
> Either the issue is not systematic, or multi cores SoCs are not affected
> (no error on the exact same image on a dual nor on quad core TI AM62).
> 
> 
> [   23.139080] Voluntary context switch within RCU read-side critical section!
> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
> [   23.139658] sp : ffff8000819fb740
> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
> [   23.139788] Call trace:
> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
> [   23.139813]  __schedule+0xa0/0x7dc
> [   23.139830]  schedule+0x34/0x11c
> [   23.139841]  schedule_timeout+0x8c/0x110
> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
> [   23.139916]  _genpd_power_on+0x98/0x188
> [   23.139927]  genpd_power_on+0xa8/0x168
> [   23.139940]  genpd_runtime_resume+0xc0/0x298
> [   23.139957]  __rpm_callback+0x48/0x1a4
> [   23.139974]  rpm_callback+0x74/0x80
> [   23.139987]  rpm_resume+0x3b0/0x698
> [   23.140000]  __pm_runtime_resume+0x48/0x88
> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
> [   23.140030]  serial8250_set_mctrl+0x20/0x40
> [   23.140046]  uart_update_mctrl+0x80/0x110

I think issue is that uart_update_mctrl() holds a spinlock:

	uart_port_lock_irqsave(port, &flags);

and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
needs to talk to a Firmware to enable pd. This IPC call is a sleeping
call leading to scheduling with IRQs disabled.

I guess this is what RT linux is complaining? I dont have a solution
though, maybe serdev delays pm_runtime_put till the port is closed?

> [   23.140062]  uart_dtr_rts+0x104/0x118
> [   23.140079]  tty_port_shutdown+0xd4/0xe0
> [   23.140092]  tty_port_close+0x3c/0xb8
> [   23.140103]  uart_close+0x34/0x98
> [   23.140116]  ttyport_close+0x50/0xa0
> [   23.140137]  serdev_device_close+0x40/0x5c
> [   23.140150]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   23.140175]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   23.140243]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   23.140309]  hci_power_off+0x20/0x64 [bluetooth]
> [   23.140379]  process_one_work+0x148/0x284
> [   23.140403]  worker_thread+0x2c8/0x3dc
> [   23.140414]  kthread+0x12c/0x208
> [   23.140426]  ret_from_fork+0x10/0x20
> 
> 
> Francesco
> 
> 

-- 
Regards
Vignesh
https://ti.com/opensource



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-08 15:45 ` Vignesh Raghavendra
@ 2025-04-10  6:20   ` Francesco Dolcini
  2025-04-10  6:34     ` Paul Menzel
  2025-05-12 14:47     ` Paul Menzel
  0 siblings, 2 replies; 11+ messages in thread
From: Francesco Dolcini @ 2025-04-10  6:20 UTC (permalink / raw)
  To: Vignesh Raghavendra
  Cc: Francesco Dolcini, Amitkumar Karwar, Neeraj Kale, Nishanth Menon,
	Tero Kristo, Santosh Shilimkar, linux-bluetooth, linux-kernel,
	linux-arm-kernel, linux-pm, linux-serial

Hello Vignesh,

On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
> On 08/04/25 14:05, Francesco Dolcini wrote:
> > I do have the following kernel warning with 6.15-rc1, on a TI AM62
> > platform (arm64), single CPU core, using btnxpuart driver, any idea?
> > PREEMPT_RT is enabled, if it matters.
> > 
> > Either the issue is not systematic, or multi cores SoCs are not affected
> > (no error on the exact same image on a dual nor on quad core TI AM62).
> > 
> > 
> > [   23.139080] Voluntary context switch within RCU read-side critical section!
> > [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
> > [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
> > [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
> > [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> > [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
> > [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> > [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
> > [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
> > [   23.139658] sp : ffff8000819fb740
> > [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
> > [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
> > [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
> > [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
> > [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
> > [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
> > [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
> > [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
> > [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
> > [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
> > [   23.139788] Call trace:
> > [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
> > [   23.139813]  __schedule+0xa0/0x7dc
> > [   23.139830]  schedule+0x34/0x11c
> > [   23.139841]  schedule_timeout+0x8c/0x110
> > [   23.139861]  wait_for_completion_timeout+0x78/0x14c
> > [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
> > [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
> > [   23.139899]  ti_sci_pd_power_on+0x28/0x54
> > [   23.139916]  _genpd_power_on+0x98/0x188
> > [   23.139927]  genpd_power_on+0xa8/0x168
> > [   23.139940]  genpd_runtime_resume+0xc0/0x298
> > [   23.139957]  __rpm_callback+0x48/0x1a4
> > [   23.139974]  rpm_callback+0x74/0x80
> > [   23.139987]  rpm_resume+0x3b0/0x698
> > [   23.140000]  __pm_runtime_resume+0x48/0x88
> > [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
> > [   23.140030]  serial8250_set_mctrl+0x20/0x40
> > [   23.140046]  uart_update_mctrl+0x80/0x110
> 
> I think issue is that uart_update_mctrl() holds a spinlock:
> 
> 	uart_port_lock_irqsave(port, &flags);
> 
> and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
> needs to talk to a Firmware to enable pd. This IPC call is a sleeping
> call leading to scheduling with IRQs disabled.
> 
> I guess this is what RT linux is complaining? I dont have a solution
> though, maybe serdev delays pm_runtime_put till the port is closed?

Our CI reproduced what looks like the same issue also on current
torvalds/master (6.15-rc1+) branch, without PREEMPT_RT.

The call trace seems just the same, but attaching it here for
completeness.


[   20.931923] BUG: scheduling while atomic: kworker/u5:0/42/0x00000002
[   20.938429] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
[   20.938865] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT
[   20.938878] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
[   20.938895] Workqueue: hci0 hci_power_off [bluetooth]
[   20.939032] Call trace:
[   20.939037]  show_stack+0x2c/0x84 (C)
[   20.939063]  dump_stack_lvl+0x60/0x80
[   20.939084]  dump_stack+0x18/0x24
[   20.939096]  __schedule_bug+0x54/0x70
[   20.939116]  __schedule+0x628/0x7dc
[   20.939129]  schedule+0x34/0x11c
[   20.939138]  rpm_resume+0x17c/0x6a0
[   20.939155]  __pm_runtime_resume+0x50/0x9c
[   20.939168]  omap8250_set_mctrl+0x2c/0xc0
[   20.939183]  serial8250_set_mctrl+0x20/0x40
[   20.939193]  uart_update_mctrl+0x88/0x11c
[   20.939215]  uart_dtr_rts+0x104/0x120
[   20.939226]  tty_port_shutdown+0xd4/0xdc
[   20.939236]  tty_port_close+0x40/0xc0
[   20.939248]  uart_close+0x34/0x9c
[   20.939259]  ttyport_close+0x50/0xa0
[   20.939272]  serdev_device_close+0x40/0x5c
[   20.939283]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
[   20.939309]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
[   20.939376]  hci_dev_do_close+0x2c/0x70 [bluetooth]
[   20.939441]  hci_power_off+0x20/0x64 [bluetooth]
[   20.939508]  process_one_work+0x148/0x290
[   20.939528]  worker_thread+0x2c8/0x3e4
[   20.939541]  kthread+0x12c/0x204
[   20.939554]  ret_from_fork+0x10/0x20
[   20.943567] BUG: scheduling while atomic: kworker/u5:0/42/0x00000000
[   20.950126] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
[   20.950550] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Tainted: G        W           6.15.0-rc1-0.0.0-devel #1 PREEMPT
[   20.950566] Tainted: [W]=WARN
[   20.950570] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
[   20.950584] Workqueue: hci0 hci_power_off [bluetooth]
[   20.950721] Call trace:
[   20.950726]  show_stack+0x2c/0x84 (C)
[   20.950747]  dump_stack_lvl+0x60/0x80
[   20.950771]  dump_stack+0x18/0x24
[   20.950783]  __schedule_bug+0x54/0x70
[   20.950798]  __schedule+0x628/0x7dc
[   20.950815]  schedule+0x34/0x11c
[   20.950824]  schedule_timeout+0xd4/0x110
[   20.950838]  wait_for_completion+0x78/0x140
[   20.950853]  __flush_work+0x250/0x340
[   20.950868]  flush_work+0x14/0x20
[   20.950879]  omap_8250_shutdown+0x2c/0x1a4
[   20.950903]  serial8250_shutdown+0x18/0x40
[   20.950913]  uart_port_shutdown+0x40/0x58
[   20.950926]  uart_tty_port_shutdown+0x5c/0x178
[   20.950940]  tty_port_shutdown+0x84/0xdc
[   20.950950]  tty_port_close+0x40/0xc0
[   20.950958]  uart_close+0x34/0x9c
[   20.950969]  ttyport_close+0x50/0xa0
[   20.950990]  serdev_device_close+0x40/0x5c
[   20.951001]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
[   20.951017]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
[   20.951082]  hci_dev_do_close+0x2c/0x70 [bluetooth]
[   20.951149]  hci_power_off+0x20/0x64 [bluetooth]
[   20.951214]  process_one_work+0x148/0x290
[   20.951227]  worker_thread+0x2c8/0x3e4
[   20.951242]  kthread+0x12c/0x204
[   20.951258]  ret_from_fork+0x10/0x20


Francesco



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-10  6:20   ` Francesco Dolcini
@ 2025-04-10  6:34     ` Paul Menzel
  2025-04-10  6:48       ` Paul Menzel
                         ` (2 more replies)
  2025-05-12 14:47     ` Paul Menzel
  1 sibling, 3 replies; 11+ messages in thread
From: Paul Menzel @ 2025-04-10  6:34 UTC (permalink / raw)
  To: Francesco Dolcini
  Cc: Vignesh Raghavendra, Amitkumar Karwar, Neeraj Kale,
	Nishanth Menon, Tero Kristo, Santosh Shilimkar, linux-bluetooth,
	linux-kernel, linux-arm-kernel, linux-pm, linux-serial,
	Marcel Ziswiler

[Cc: +Marcel]

Dear Francesco,


Am 10.04.25 um 08:20 schrieb Francesco Dolcini:

> On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
>> On 08/04/25 14:05, Francesco Dolcini wrote:
>>> I do have the following kernel warning with 6.15-rc1, on a TI AM62
>>> platform (arm64), single CPU core, using btnxpuart driver, any idea?
>>> PREEMPT_RT is enabled, if it matters.
>>>
>>> Either the issue is not systematic, or multi cores SoCs are not affected
>>> (no error on the exact same image on a dual nor on quad core TI AM62).
>>>
>>> [   23.139080] Voluntary context switch within RCU read-side critical section!
>>> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
>>> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
>>> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
>>> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>>> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
>>> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>>> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
>>> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
>>> [   23.139658] sp : ffff8000819fb740
>>> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
>>> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
>>> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
>>> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
>>> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
>>> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
>>> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
>>> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
>>> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
>>> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
>>> [   23.139788] Call trace:
>>> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
>>> [   23.139813]  __schedule+0xa0/0x7dc
>>> [   23.139830]  schedule+0x34/0x11c
>>> [   23.139841]  schedule_timeout+0x8c/0x110
>>> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
>>> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
>>> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
>>> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
>>> [   23.139916]  _genpd_power_on+0x98/0x188
>>> [   23.139927]  genpd_power_on+0xa8/0x168
>>> [   23.139940]  genpd_runtime_resume+0xc0/0x298
>>> [   23.139957]  __rpm_callback+0x48/0x1a4
>>> [   23.139974]  rpm_callback+0x74/0x80
>>> [   23.139987]  rpm_resume+0x3b0/0x698
>>> [   23.140000]  __pm_runtime_resume+0x48/0x88
>>> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
>>> [   23.140030]  serial8250_set_mctrl+0x20/0x40
>>> [   23.140046]  uart_update_mctrl+0x80/0x110
>>
>> I think issue is that uart_update_mctrl() holds a spinlock:
>>
>> 	uart_port_lock_irqsave(port, &flags);
>>
>> and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
>> needs to talk to a Firmware to enable pd. This IPC call is a sleeping
>> call leading to scheduling with IRQs disabled.
>>
>> I guess this is what RT linux is complaining? I dont have a solution
>> though, maybe serdev delays pm_runtime_put till the port is closed?
> 
> Our CI reproduced what looks like the same issue also on current
> torvalds/master (6.15-rc1+) branch, without PREEMPT_RT.
> 
> The call trace seems just the same, but attaching it here for
> completeness.
> 
> 
> [   20.931923] BUG: scheduling while atomic: kworker/u5:0/42/0x00000002
> [   20.938429] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
> [   20.938865] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT
> [   20.938878] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   20.938895] Workqueue: hci0 hci_power_off [bluetooth]
> [   20.939032] Call trace:
> [   20.939037]  show_stack+0x2c/0x84 (C)
> [   20.939063]  dump_stack_lvl+0x60/0x80
> [   20.939084]  dump_stack+0x18/0x24
> [   20.939096]  __schedule_bug+0x54/0x70
> [   20.939116]  __schedule+0x628/0x7dc
> [   20.939129]  schedule+0x34/0x11c
> [   20.939138]  rpm_resume+0x17c/0x6a0
> [   20.939155]  __pm_runtime_resume+0x50/0x9c
> [   20.939168]  omap8250_set_mctrl+0x2c/0xc0
> [   20.939183]  serial8250_set_mctrl+0x20/0x40
> [   20.939193]  uart_update_mctrl+0x88/0x11c
> [   20.939215]  uart_dtr_rts+0x104/0x120
> [   20.939226]  tty_port_shutdown+0xd4/0xdc
> [   20.939236]  tty_port_close+0x40/0xc0
> [   20.939248]  uart_close+0x34/0x9c
> [   20.939259]  ttyport_close+0x50/0xa0
> [   20.939272]  serdev_device_close+0x40/0x5c
> [   20.939283]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   20.939309]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   20.939376]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   20.939441]  hci_power_off+0x20/0x64 [bluetooth]
> [   20.939508]  process_one_work+0x148/0x290
> [   20.939528]  worker_thread+0x2c8/0x3e4
> [   20.939541]  kthread+0x12c/0x204
> [   20.939554]  ret_from_fork+0x10/0x20
> [   20.943567] BUG: scheduling while atomic: kworker/u5:0/42/0x00000000
> [   20.950126] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
> [   20.950550] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Tainted: G        W           6.15.0-rc1-0.0.0-devel #1 PREEMPT
> [   20.950566] Tainted: [W]=WARN
> [   20.950570] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   20.950584] Workqueue: hci0 hci_power_off [bluetooth]
> [   20.950721] Call trace:
> [   20.950726]  show_stack+0x2c/0x84 (C)
> [   20.950747]  dump_stack_lvl+0x60/0x80
> [   20.950771]  dump_stack+0x18/0x24
> [   20.950783]  __schedule_bug+0x54/0x70
> [   20.950798]  __schedule+0x628/0x7dc
> [   20.950815]  schedule+0x34/0x11c
> [   20.950824]  schedule_timeout+0xd4/0x110
> [   20.950838]  wait_for_completion+0x78/0x140
> [   20.950853]  __flush_work+0x250/0x340
> [   20.950868]  flush_work+0x14/0x20
> [   20.950879]  omap_8250_shutdown+0x2c/0x1a4
> [   20.950903]  serial8250_shutdown+0x18/0x40
> [   20.950913]  uart_port_shutdown+0x40/0x58
> [   20.950926]  uart_tty_port_shutdown+0x5c/0x178
> [   20.950940]  tty_port_shutdown+0x84/0xdc
> [   20.950950]  tty_port_close+0x40/0xc0
> [   20.950958]  uart_close+0x34/0x9c
> [   20.950969]  ttyport_close+0x50/0xa0
> [   20.950990]  serdev_device_close+0x40/0x5c
> [   20.951001]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   20.951017]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   20.951082]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   20.951149]  hci_power_off+0x20/0x64 [bluetooth]
> [   20.951214]  process_one_work+0x148/0x290
> [   20.951227]  worker_thread+0x2c8/0x3e4
> [   20.951242]  kthread+0x12c/0x204
> [   20.951258]  ret_from_fork+0x10/0x20

CVE-2024-26959 [1] has the same trace, and supposedly was fixed by 
Marcel’s commit 664130c0b030 (Bluetooth: btnxpuart: Fix btnxpuart_close) 
present since v6.9-rc1, that is also signed off by you.


Kind regards,

Paul


[1]: https://nvd.nist.gov/vuln/detail/cve-2024-26959
[2]: 
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=664130c0b0309b360bc5bdd40a30604a9387bde8


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-10  6:34     ` Paul Menzel
@ 2025-04-10  6:48       ` Paul Menzel
  2025-04-10  6:51       ` Paul Menzel
  2025-04-10  9:53       ` Francesco Dolcini
  2 siblings, 0 replies; 11+ messages in thread
From: Paul Menzel @ 2025-04-10  6:48 UTC (permalink / raw)
  To: Francesco Dolcini
  Cc: Vignesh Raghavendra, Amitkumar Karwar, Neeraj Kale,
	Nishanth Menon, Tero Kristo, Santosh Shilimkar, linux-bluetooth,
	linux-kernel, linux-arm-kernel, linux-pm, linux-serial,
	Marcel Ziswiler

Am 10.04.25 um 08:34 schrieb Paul Menzel:
> [Cc: +Marcel]

[Remove, as email is not valid anymore.]

> Dear Francesco,
> 
> 
> Am 10.04.25 um 08:20 schrieb Francesco Dolcini:
> 
>> On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
>>> On 08/04/25 14:05, Francesco Dolcini wrote:
>>>> I do have the following kernel warning with 6.15-rc1, on a TI AM62
>>>> platform (arm64), single CPU core, using btnxpuart driver, any idea?
>>>> PREEMPT_RT is enabled, if it matters.
>>>>
>>>> Either the issue is not systematic, or multi cores SoCs are not 
>>>> affected
>>>> (no error on the exact same image on a dual nor on quad core TI AM62).
>>>>
>>>> [   23.139080] Voluntary context switch within RCU read-side critical section!
>>>> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
>>>> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
>>>> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>>>> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
>>>> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>>>> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139658] sp : ffff8000819fb740
>>>> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
>>>> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
>>>> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
>>>> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
>>>> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
>>>> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
>>>> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
>>>> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
>>>> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
>>>> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
>>>> [   23.139788] Call trace:
>>>> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
>>>> [   23.139813]  __schedule+0xa0/0x7dc
>>>> [   23.139830]  schedule+0x34/0x11c
>>>> [   23.139841]  schedule_timeout+0x8c/0x110
>>>> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
>>>> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
>>>> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
>>>> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
>>>> [   23.139916]  _genpd_power_on+0x98/0x188
>>>> [   23.139927]  genpd_power_on+0xa8/0x168
>>>> [   23.139940]  genpd_runtime_resume+0xc0/0x298
>>>> [   23.139957]  __rpm_callback+0x48/0x1a4
>>>> [   23.139974]  rpm_callback+0x74/0x80
>>>> [   23.139987]  rpm_resume+0x3b0/0x698
>>>> [   23.140000]  __pm_runtime_resume+0x48/0x88
>>>> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
>>>> [   23.140030]  serial8250_set_mctrl+0x20/0x40
>>>> [   23.140046]  uart_update_mctrl+0x80/0x110
>>>
>>> I think issue is that uart_update_mctrl() holds a spinlock:
>>>
>>>     uart_port_lock_irqsave(port, &flags);
>>>
>>> and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
>>> needs to talk to a Firmware to enable pd. This IPC call is a sleeping
>>> call leading to scheduling with IRQs disabled.
>>>
>>> I guess this is what RT linux is complaining? I dont have a solution
>>> though, maybe serdev delays pm_runtime_put till the port is closed?
>>
>> Our CI reproduced what looks like the same issue also on current
>> torvalds/master (6.15-rc1+) branch, without PREEMPT_RT.
>>
>> The call trace seems just the same, but attaching it here for
>> completeness.
>>
>>
>> [   20.931923] BUG: scheduling while atomic: kworker/u5:0/42/0x00000002
>> [   20.938429] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card 
>> snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
>> [   20.938865] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT
>> [   20.938878] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>> [   20.938895] Workqueue: hci0 hci_power_off [bluetooth]
>> [   20.939032] Call trace:
>> [   20.939037]  show_stack+0x2c/0x84 (C)
>> [   20.939063]  dump_stack_lvl+0x60/0x80
>> [   20.939084]  dump_stack+0x18/0x24
>> [   20.939096]  __schedule_bug+0x54/0x70
>> [   20.939116]  __schedule+0x628/0x7dc
>> [   20.939129]  schedule+0x34/0x11c
>> [   20.939138]  rpm_resume+0x17c/0x6a0
>> [   20.939155]  __pm_runtime_resume+0x50/0x9c
>> [   20.939168]  omap8250_set_mctrl+0x2c/0xc0
>> [   20.939183]  serial8250_set_mctrl+0x20/0x40
>> [   20.939193]  uart_update_mctrl+0x88/0x11c
>> [   20.939215]  uart_dtr_rts+0x104/0x120
>> [   20.939226]  tty_port_shutdown+0xd4/0xdc
>> [   20.939236]  tty_port_close+0x40/0xc0
>> [   20.939248]  uart_close+0x34/0x9c
>> [   20.939259]  ttyport_close+0x50/0xa0
>> [   20.939272]  serdev_device_close+0x40/0x5c
>> [   20.939283]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
>> [   20.939309]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
>> [   20.939376]  hci_dev_do_close+0x2c/0x70 [bluetooth]
>> [   20.939441]  hci_power_off+0x20/0x64 [bluetooth]
>> [   20.939508]  process_one_work+0x148/0x290
>> [   20.939528]  worker_thread+0x2c8/0x3e4
>> [   20.939541]  kthread+0x12c/0x204
>> [   20.939554]  ret_from_fork+0x10/0x20
>> [   20.943567] BUG: scheduling while atomic: kworker/u5:0/42/0x00000000
>> [   20.950126] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card 
>> snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
>> [   20.950550] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Tainted: G        W           6.15.0-rc1-0.0.0-devel #1 PREEMPT
>> [   20.950566] Tainted: [W]=WARN
>> [   20.950570] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>> [   20.950584] Workqueue: hci0 hci_power_off [bluetooth]
>> [   20.950721] Call trace:
>> [   20.950726]  show_stack+0x2c/0x84 (C)
>> [   20.950747]  dump_stack_lvl+0x60/0x80
>> [   20.950771]  dump_stack+0x18/0x24
>> [   20.950783]  __schedule_bug+0x54/0x70
>> [   20.950798]  __schedule+0x628/0x7dc
>> [   20.950815]  schedule+0x34/0x11c
>> [   20.950824]  schedule_timeout+0xd4/0x110
>> [   20.950838]  wait_for_completion+0x78/0x140
>> [   20.950853]  __flush_work+0x250/0x340
>> [   20.950868]  flush_work+0x14/0x20
>> [   20.950879]  omap_8250_shutdown+0x2c/0x1a4
>> [   20.950903]  serial8250_shutdown+0x18/0x40
>> [   20.950913]  uart_port_shutdown+0x40/0x58
>> [   20.950926]  uart_tty_port_shutdown+0x5c/0x178
>> [   20.950940]  tty_port_shutdown+0x84/0xdc
>> [   20.950950]  tty_port_close+0x40/0xc0
>> [   20.950958]  uart_close+0x34/0x9c
>> [   20.950969]  ttyport_close+0x50/0xa0
>> [   20.950990]  serdev_device_close+0x40/0x5c
>> [   20.951001]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
>> [   20.951017]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
>> [   20.951082]  hci_dev_do_close+0x2c/0x70 [bluetooth]
>> [   20.951149]  hci_power_off+0x20/0x64 [bluetooth]
>> [   20.951214]  process_one_work+0x148/0x290
>> [   20.951227]  worker_thread+0x2c8/0x3e4
>> [   20.951242]  kthread+0x12c/0x204
>> [   20.951258]  ret_from_fork+0x10/0x20
> 
> CVE-2024-26959 [1] has the same trace, and supposedly was fixed by 
> Marcel’s commit 664130c0b030 (Bluetooth: btnxpuart: Fix btnxpuart_close) 
> present since v6.9-rc1, that is also signed off by you.
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> [1]: https://nvd.nist.gov/vuln/detail/cve-2024-26959
> [2]: https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=664130c0b0309b360bc5bdd40a30604a9387bde8


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-10  6:34     ` Paul Menzel
  2025-04-10  6:48       ` Paul Menzel
@ 2025-04-10  6:51       ` Paul Menzel
  2025-04-10  9:53       ` Francesco Dolcini
  2 siblings, 0 replies; 11+ messages in thread
From: Paul Menzel @ 2025-04-10  6:51 UTC (permalink / raw)
  To: Francesco Dolcini
  Cc: Vignesh Raghavendra, Amitkumar Karwar, Neeraj Kale,
	Nishanth Menon, Tero Kristo, Santosh Shilimkar, linux-bluetooth,
	linux-kernel, linux-arm-kernel, linux-pm, linux-serial

Am 10.04.25 um 08:34 schrieb Paul Menzel:
> [Cc: +Marcel]

[Remove, as email is not valid anymore. (Now really.)]

> Dear Francesco,
> 
> 
> Am 10.04.25 um 08:20 schrieb Francesco Dolcini:
> 
>> On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
>>> On 08/04/25 14:05, Francesco Dolcini wrote:
>>>> I do have the following kernel warning with 6.15-rc1, on a TI AM62
>>>> platform (arm64), single CPU core, using btnxpuart driver, any idea?
>>>> PREEMPT_RT is enabled, if it matters.
>>>>
>>>> Either the issue is not systematic, or multi cores SoCs are not 
>>>> affected
>>>> (no error on the exact same image on a dual nor on quad core TI AM62).
>>>>
>>>> [   23.139080] Voluntary context switch within RCU read-side critical section!
>>>> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
>>>> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
>>>> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>>>> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
>>>> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>>>> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
>>>> [   23.139658] sp : ffff8000819fb740
>>>> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
>>>> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
>>>> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
>>>> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
>>>> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
>>>> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
>>>> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
>>>> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
>>>> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
>>>> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
>>>> [   23.139788] Call trace:
>>>> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
>>>> [   23.139813]  __schedule+0xa0/0x7dc
>>>> [   23.139830]  schedule+0x34/0x11c
>>>> [   23.139841]  schedule_timeout+0x8c/0x110
>>>> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
>>>> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
>>>> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
>>>> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
>>>> [   23.139916]  _genpd_power_on+0x98/0x188
>>>> [   23.139927]  genpd_power_on+0xa8/0x168
>>>> [   23.139940]  genpd_runtime_resume+0xc0/0x298
>>>> [   23.139957]  __rpm_callback+0x48/0x1a4
>>>> [   23.139974]  rpm_callback+0x74/0x80
>>>> [   23.139987]  rpm_resume+0x3b0/0x698
>>>> [   23.140000]  __pm_runtime_resume+0x48/0x88
>>>> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
>>>> [   23.140030]  serial8250_set_mctrl+0x20/0x40
>>>> [   23.140046]  uart_update_mctrl+0x80/0x110
>>>
>>> I think issue is that uart_update_mctrl() holds a spinlock:
>>>
>>>     uart_port_lock_irqsave(port, &flags);
>>>
>>> and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
>>> needs to talk to a Firmware to enable pd. This IPC call is a sleeping
>>> call leading to scheduling with IRQs disabled.
>>>
>>> I guess this is what RT linux is complaining? I dont have a solution
>>> though, maybe serdev delays pm_runtime_put till the port is closed?
>>
>> Our CI reproduced what looks like the same issue also on current
>> torvalds/master (6.15-rc1+) branch, without PREEMPT_RT.
>>
>> The call trace seems just the same, but attaching it here for
>> completeness.
>>
>>
>> [   20.931923] BUG: scheduling while atomic: kworker/u5:0/42/0x00000002
>> [   20.938429] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card 
>> snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
>> [   20.938865] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT
>> [   20.938878] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>> [   20.938895] Workqueue: hci0 hci_power_off [bluetooth]
>> [   20.939032] Call trace:
>> [   20.939037]  show_stack+0x2c/0x84 (C)
>> [   20.939063]  dump_stack_lvl+0x60/0x80
>> [   20.939084]  dump_stack+0x18/0x24
>> [   20.939096]  __schedule_bug+0x54/0x70
>> [   20.939116]  __schedule+0x628/0x7dc
>> [   20.939129]  schedule+0x34/0x11c
>> [   20.939138]  rpm_resume+0x17c/0x6a0
>> [   20.939155]  __pm_runtime_resume+0x50/0x9c
>> [   20.939168]  omap8250_set_mctrl+0x2c/0xc0
>> [   20.939183]  serial8250_set_mctrl+0x20/0x40
>> [   20.939193]  uart_update_mctrl+0x88/0x11c
>> [   20.939215]  uart_dtr_rts+0x104/0x120
>> [   20.939226]  tty_port_shutdown+0xd4/0xdc
>> [   20.939236]  tty_port_close+0x40/0xc0
>> [   20.939248]  uart_close+0x34/0x9c
>> [   20.939259]  ttyport_close+0x50/0xa0
>> [   20.939272]  serdev_device_close+0x40/0x5c
>> [   20.939283]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
>> [   20.939309]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
>> [   20.939376]  hci_dev_do_close+0x2c/0x70 [bluetooth]
>> [   20.939441]  hci_power_off+0x20/0x64 [bluetooth]
>> [   20.939508]  process_one_work+0x148/0x290
>> [   20.939528]  worker_thread+0x2c8/0x3e4
>> [   20.939541]  kthread+0x12c/0x204
>> [   20.939554]  ret_from_fork+0x10/0x20
>> [   20.943567] BUG: scheduling while atomic: kworker/u5:0/42/0x00000000
>> [   20.950126] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card 
>> snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
>> [   20.950550] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Tainted: G        W           6.15.0-rc1-0.0.0-devel #1 PREEMPT
>> [   20.950566] Tainted: [W]=WARN
>> [   20.950570] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>> [   20.950584] Workqueue: hci0 hci_power_off [bluetooth]
>> [   20.950721] Call trace:
>> [   20.950726]  show_stack+0x2c/0x84 (C)
>> [   20.950747]  dump_stack_lvl+0x60/0x80
>> [   20.950771]  dump_stack+0x18/0x24
>> [   20.950783]  __schedule_bug+0x54/0x70
>> [   20.950798]  __schedule+0x628/0x7dc
>> [   20.950815]  schedule+0x34/0x11c
>> [   20.950824]  schedule_timeout+0xd4/0x110
>> [   20.950838]  wait_for_completion+0x78/0x140
>> [   20.950853]  __flush_work+0x250/0x340
>> [   20.950868]  flush_work+0x14/0x20
>> [   20.950879]  omap_8250_shutdown+0x2c/0x1a4
>> [   20.950903]  serial8250_shutdown+0x18/0x40
>> [   20.950913]  uart_port_shutdown+0x40/0x58
>> [   20.950926]  uart_tty_port_shutdown+0x5c/0x178
>> [   20.950940]  tty_port_shutdown+0x84/0xdc
>> [   20.950950]  tty_port_close+0x40/0xc0
>> [   20.950958]  uart_close+0x34/0x9c
>> [   20.950969]  ttyport_close+0x50/0xa0
>> [   20.950990]  serdev_device_close+0x40/0x5c
>> [   20.951001]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
>> [   20.951017]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
>> [   20.951082]  hci_dev_do_close+0x2c/0x70 [bluetooth]
>> [   20.951149]  hci_power_off+0x20/0x64 [bluetooth]
>> [   20.951214]  process_one_work+0x148/0x290
>> [   20.951227]  worker_thread+0x2c8/0x3e4
>> [   20.951242]  kthread+0x12c/0x204
>> [   20.951258]  ret_from_fork+0x10/0x20
> 
> CVE-2024-26959 [1] has the same trace, and supposedly was fixed by 
> Marcel’s commit 664130c0b030 (Bluetooth: btnxpuart: Fix btnxpuart_close) 
> present since v6.9-rc1, that is also signed off by you.
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> [1]: https://nvd.nist.gov/vuln/detail/cve-2024-26959
> [2]: https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=664130c0b0309b360bc5bdd40a30604a9387bde8


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-10  6:34     ` Paul Menzel
  2025-04-10  6:48       ` Paul Menzel
  2025-04-10  6:51       ` Paul Menzel
@ 2025-04-10  9:53       ` Francesco Dolcini
  2 siblings, 0 replies; 11+ messages in thread
From: Francesco Dolcini @ 2025-04-10  9:53 UTC (permalink / raw)
  To: Paul Menzel
  Cc: Francesco Dolcini, Vignesh Raghavendra, Amitkumar Karwar,
	Neeraj Kale, Nishanth Menon, Tero Kristo, Santosh Shilimkar,
	linux-bluetooth, linux-kernel, linux-arm-kernel, linux-pm,
	linux-serial

On Thu, Apr 10, 2025 at 08:34:23AM +0200, Paul Menzel wrote:
> Am 10.04.25 um 08:20 schrieb Francesco Dolcini:
> 
> > On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
> > > On 08/04/25 14:05, Francesco Dolcini wrote:
> > > > I do have the following kernel warning with 6.15-rc1, on a TI AM62
> > > > platform (arm64), single CPU core, using btnxpuart driver, any idea?
> > > > PREEMPT_RT is enabled, if it matters.
> > > > 
> > > > Either the issue is not systematic, or multi cores SoCs are not affected
> > > > (no error on the exact same image on a dual nor on quad core TI AM62).

...

> CVE-2024-26959 [1] has the same trace, and supposedly was fixed by Marcel’s
> commit 664130c0b030 (Bluetooth: btnxpuart: Fix btnxpuart_close) present
> since v6.9-rc1, that is also signed off by you.

It seems that the conclusion at that time was just wrong, the real issue seems
what Vignesh suggested.

Francesco



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-04-10  6:20   ` Francesco Dolcini
  2025-04-10  6:34     ` Paul Menzel
@ 2025-05-12 14:47     ` Paul Menzel
  2025-05-23  8:07       ` Francesco Dolcini
  1 sibling, 1 reply; 11+ messages in thread
From: Paul Menzel @ 2025-05-12 14:47 UTC (permalink / raw)
  To: Francesco Dolcini, Vignesh Raghavendra
  Cc: Amitkumar Karwar, Neeraj Kale, Nishanth Menon, Tero Kristo,
	Santosh Shilimkar, linux-bluetooth, linux-kernel,
	linux-arm-kernel, linux-pm, linux-serial, Greg Kroah-Hartman,
	Jiri Slaby, linux-serial, LKML

Dear Vignesh, dear Francesco,


Am 10.04.25 um 08:20 schrieb Francesco Dolcini:

> On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
>> On 08/04/25 14:05, Francesco Dolcini wrote:
>>> I do have the following kernel warning with 6.15-rc1, on a TI AM62
>>> platform (arm64), single CPU core, using btnxpuart driver, any idea?
>>> PREEMPT_RT is enabled, if it matters.
>>>
>>> Either the issue is not systematic, or multi cores SoCs are not affected
>>> (no error on the exact same image on a dual nor on quad core TI AM62).
>>>
>>>
>>> [   23.139080] Voluntary context switch within RCU read-side critical section!
>>> [   23.139119] WARNING: CPU: 0 PID: 61 at /kernel/rcu/tree_plugin.h:332 rcu_note_context_switch+0x3c4/0x430
>>> [   23.139172] Modules linked in: uas onboard_usb_dev optee_rng dwc3 evdev btnxpuart spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils optee spi_cadence_quadspi tee gpio_keys usb_conn_gpio display_connector roles dwc3_am62 mwifiex_sdio k3_j72xx_bandgap mwifiex rtc_ti_k3 cfg80211 tidss sa2ul sha512_generic snd_soc_davinci_mcasp authenc drm_display_helper snd_soc_ti_udma crypto_null snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx snd_soc_wm8904 ti_ads1015 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c tps65219_pwrbutton crc_ccitt tpm_tis_core tpm rng_core tc358768 m_can_platform pwm_tiehrpwm m_can spi_omap2_mcspi can_dev bluetooth ecdh_generic ecc rfkill libaes loop fuse ipv6 autofs4
>>> [   23.139459] CPU: 0 UID: 0 PID: 61 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT_RT
>>> [   23.139471] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
>>> [   23.139478] Workqueue: hci0 hci_power_off [bluetooth]
>>> [   23.139615] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>>> [   23.139625] pc : rcu_note_context_switch+0x3c4/0x430
>>> [   23.139647] lr : rcu_note_context_switch+0x3c4/0x430
>>> [   23.139658] sp : ffff8000819fb740
>>> [   23.139661] x29: ffff8000819fb740 x28: 0000000000000000 x27: ffff0000079d2010
>>> [   23.139673] x26: ffff0000011e7810 x25: ffff000001c2c200 x24: 0000000000000000
>>> [   23.139688] x23: 0000000000000000 x22: ffff000001c2c200 x21: ffff000001c2c200
>>> [   23.139700] x20: ffff800081083ec0 x19: ffff00001da9fec0 x18: fffffffffffe7e78
>>> [   23.139712] x17: ffff7fff9ca1c000 x16: ffff800080000000 x15: ffff00001da9f8c0
>>> [   23.139726] x14: fffffffffffc7e77 x13: 216e6f6974636573 x12: 206c616369746972
>>> [   23.139738] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
>>> [   23.139750] x8 : ffff80008113f040 x7 : ffff8000819fb4e0 x6 : 000000000000000c
>>> [   23.139761] x5 : ffff00001da95888 x4 : 0000000000000000 x3 : 0000000000000027
>>> [   23.139775] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001c2c200
>>> [   23.139788] Call trace:
>>> [   23.139793]  rcu_note_context_switch+0x3c4/0x430 (P)
>>> [   23.139813]  __schedule+0xa0/0x7dc
>>> [   23.139830]  schedule+0x34/0x11c
>>> [   23.139841]  schedule_timeout+0x8c/0x110
>>> [   23.139861]  wait_for_completion_timeout+0x78/0x14c
>>> [   23.139873]  ti_sci_set_device_state+0x120/0x1fc
>>> [   23.139886]  ti_sci_cmd_get_device_exclusive+0x18/0x30
>>> [   23.139899]  ti_sci_pd_power_on+0x28/0x54
>>> [   23.139916]  _genpd_power_on+0x98/0x188
>>> [   23.139927]  genpd_power_on+0xa8/0x168
>>> [   23.139940]  genpd_runtime_resume+0xc0/0x298
>>> [   23.139957]  __rpm_callback+0x48/0x1a4
>>> [   23.139974]  rpm_callback+0x74/0x80
>>> [   23.139987]  rpm_resume+0x3b0/0x698
>>> [   23.140000]  __pm_runtime_resume+0x48/0x88
>>> [   23.140012]  omap8250_set_mctrl+0x2c/0xbc
>>> [   23.140030]  serial8250_set_mctrl+0x20/0x40
>>> [   23.140046]  uart_update_mctrl+0x80/0x110
>>
>> I think issue is that uart_update_mctrl() holds a spinlock:
>>
>> 	uart_port_lock_irqsave(port, &flags);
>>
>> and then omap8250_set_mctrl() calls pm_runtime APIs which on K3 SoC
>> needs to talk to a Firmware to enable pd. This IPC call is a sleeping
>> call leading to scheduling with IRQs disabled.
>>
>> I guess this is what RT linux is complaining? I dont have a solution
>> though, maybe serdev delays pm_runtime_put till the port is closed?
> 
> Our CI reproduced what looks like the same issue also on current
> torvalds/master (6.15-rc1+) branch, without PREEMPT_RT.
> 
> The call trace seems just the same, but attaching it here for
> completeness.
> 
> 
> [   20.931923] BUG: scheduling while atomic: kworker/u5:0/42/0x00000002
> [   20.938429] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
> [   20.938865] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Not tainted 6.15.0-rc1-0.0.0-devel #1 PREEMPT
> [   20.938878] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   20.938895] Workqueue: hci0 hci_power_off [bluetooth]
> [   20.939032] Call trace:
> [   20.939037]  show_stack+0x2c/0x84 (C)
> [   20.939063]  dump_stack_lvl+0x60/0x80
> [   20.939084]  dump_stack+0x18/0x24
> [   20.939096]  __schedule_bug+0x54/0x70
> [   20.939116]  __schedule+0x628/0x7dc
> [   20.939129]  schedule+0x34/0x11c
> [   20.939138]  rpm_resume+0x17c/0x6a0
> [   20.939155]  __pm_runtime_resume+0x50/0x9c
> [   20.939168]  omap8250_set_mctrl+0x2c/0xc0
> [   20.939183]  serial8250_set_mctrl+0x20/0x40
> [   20.939193]  uart_update_mctrl+0x88/0x11c
> [   20.939215]  uart_dtr_rts+0x104/0x120
> [   20.939226]  tty_port_shutdown+0xd4/0xdc
> [   20.939236]  tty_port_close+0x40/0xc0
> [   20.939248]  uart_close+0x34/0x9c
> [   20.939259]  ttyport_close+0x50/0xa0
> [   20.939272]  serdev_device_close+0x40/0x5c
> [   20.939283]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   20.939309]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   20.939376]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   20.939441]  hci_power_off+0x20/0x64 [bluetooth]
> [   20.939508]  process_one_work+0x148/0x290
> [   20.939528]  worker_thread+0x2c8/0x3e4
> [   20.939541]  kthread+0x12c/0x204
> [   20.939554]  ret_from_fork+0x10/0x20
> [   20.943567] BUG: scheduling while atomic: kworker/u5:0/42/0x00000000
> [   20.950126] Modules linked in: sd_mod uas onboard_usb_dev btnxpuart optee_rng dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils mwifiex_sdio mwifiex display_connector spi_cadence_quadspi optee usb_conn_gpio tee gpio_keys roles k3_j72xx_bandgap cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul sha512_generic rfkill authenc tidss crypto_null libaes snd_soc_davinci_mcasp sha1_generic drm_display_helper snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma omap_hwspinlock lontium_lt8912b ina2xx ti_ads1015 snd_soc_wm8904 industrialio_triggered_buffer kfifo_buf lm75 tpm_tis_i2c crc_ccitt tps65219_pwrbutton tpm_tis_core tpm m_can_platform m_can rng_core tc358768 can_dev pwm_tiehrpwm spi_omap2_mcspi loop fuse ipv6 autofs4
> [   20.950550] CPU: 0 UID: 0 PID: 42 Comm: kworker/u5:0 Tainted: G        W           6.15.0-rc1-0.0.0-devel #1 PREEMPT
> [   20.950566] Tainted: [W]=WARN
> [   20.950570] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
> [   20.950584] Workqueue: hci0 hci_power_off [bluetooth]
> [   20.950721] Call trace:
> [   20.950726]  show_stack+0x2c/0x84 (C)
> [   20.950747]  dump_stack_lvl+0x60/0x80
> [   20.950771]  dump_stack+0x18/0x24
> [   20.950783]  __schedule_bug+0x54/0x70
> [   20.950798]  __schedule+0x628/0x7dc
> [   20.950815]  schedule+0x34/0x11c
> [   20.950824]  schedule_timeout+0xd4/0x110
> [   20.950838]  wait_for_completion+0x78/0x140
> [   20.950853]  __flush_work+0x250/0x340
> [   20.950868]  flush_work+0x14/0x20
> [   20.950879]  omap_8250_shutdown+0x2c/0x1a4
> [   20.950903]  serial8250_shutdown+0x18/0x40
> [   20.950913]  uart_port_shutdown+0x40/0x58
> [   20.950926]  uart_tty_port_shutdown+0x5c/0x178
> [   20.950940]  tty_port_shutdown+0x84/0xdc
> [   20.950950]  tty_port_close+0x40/0xc0
> [   20.950958]  uart_close+0x34/0x9c
> [   20.950969]  ttyport_close+0x50/0xa0
> [   20.950990]  serdev_device_close+0x40/0x5c
> [   20.951001]  btnxpuart_close+0x1c/0xa0 [btnxpuart]
> [   20.951017]  hci_dev_close_sync+0x304/0x7cc [bluetooth]
> [   20.951082]  hci_dev_do_close+0x2c/0x70 [bluetooth]
> [   20.951149]  hci_power_off+0x20/0x64 [bluetooth]
> [   20.951214]  process_one_work+0x148/0x290
> [   20.951227]  worker_thread+0x2c8/0x3e4
> [   20.951242]  kthread+0x12c/0x204
> [   20.951258]  ret_from_fork+0x10/0x20

Not that this gets forgotten. Vignesh, is your theory still valid with 
PREEMPT_RT not set?

Francesco, were you able to test older Linux kernels in the meantime?


Kind regards,

Paul


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Kernel WARNING (RCU) with btnxpuart on TI AM62 platform
  2025-05-12 14:47     ` Paul Menzel
@ 2025-05-23  8:07       ` Francesco Dolcini
  0 siblings, 0 replies; 11+ messages in thread
From: Francesco Dolcini @ 2025-05-23  8:07 UTC (permalink / raw)
  To: Paul Menzel
  Cc: Francesco Dolcini, Vignesh Raghavendra, Amitkumar Karwar,
	Neeraj Kale, Nishanth Menon, Tero Kristo, Santosh Shilimkar,
	linux-bluetooth, linux-kernel, linux-arm-kernel, linux-pm,
	linux-serial, Greg Kroah-Hartman, Jiri Slaby

On Mon, May 12, 2025 at 04:47:28PM +0200, Paul Menzel wrote:
> Am 10.04.25 um 08:20 schrieb Francesco Dolcini:
> > On Tue, Apr 08, 2025 at 09:15:26PM +0530, Vignesh Raghavendra wrote:
> > > On 08/04/25 14:05, Francesco Dolcini wrote:
> > > > I do have the following kernel warning with 6.15-rc1, on a TI AM62
> > > > platform (arm64), single CPU core, using btnxpuart driver, any idea?
> > > > PREEMPT_RT is enabled, if it matters.
> > > > 
> > > > Either the issue is not systematic, or multi cores SoCs are not affected
> > > > (no error on the exact same image on a dual nor on quad core TI AM62).

...

> Not that this gets forgotten. Vignesh, is your theory still valid with
> PREEMPT_RT not set?
> 
> Francesco, were you able to test older Linux kernels in the meantime?

Yes. The same happens with 6.12.30 kernel. Not systematic.

[   19.908418] Voluntary context switch within RCU read-side critical section!
[   19.908453] WARNING: CPU: 0 PID: 371 at /kernel/rcu/tree_plugin.h:331 rcu_note_context_switch+0x3d0/0x428
[   19.908510] Modules linked in: sd_mod uas onboard_usb_dev optee_rng rng_core btnxpuart dwc3 evdev spidev aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha2_ce sha256_arm64 sha1_ce snd_soc_simple_card snd_soc_simple_card_utils display_connector optee gpio_keys spi_cadence_quadspi usb_conn_gpio tee roles k3_j72xx_bandgap mwifiex_sdio mwifiex cfg80211 rtc_ti_k3 dwc3_am62 bluetooth ecdh_generic ecc sa2ul rfkill sha512_generic authenc tidss snd_soc_davinci_mcasp crypto_null libaes snd_soc_ti_udma drm_display_helper snd_soc_ti_edma sha1_generic snd_soc_ti_sdma omap_hwspinlock ti_ads1015 lontium_lt8912b ina2xx industrialio_triggered_buffer kfifo_buf tps65219_pwrbutton tc358768 lm75 m_can_platform snd_soc_wm8904 pwm_tiehrpwm m_can can_dev spi_omap2_mcspi fuse ipv6 autofs4
[   19.908761] CPU: 0 UID: 0 PID: 371 Comm: kworker/u5:2 Not tainted 6.12.30-7.3.0-devel #1
[   19.908773] Hardware name: Toradex Verdin AM62 WB on Dahlia Board (DT)
[   19.908780] Workqueue: hci0 hci_power_off [bluetooth]
[   19.908917] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   19.908930] pc : rcu_note_context_switch+0x3d0/0x428
[   19.908946] lr : rcu_note_context_switch+0x3d0/0x428
[   19.908957] sp : ffff8000825dba60
[   19.908961] x29: ffff8000825dba60 x28: 0000000000000000 x27: 0000000000000000
[   19.908977] x26: ffff0000011e11c0 x25: ffff00000a5a9080 x24: 0000000000000000
[   19.908988] x23: 0000000000000000 x22: ffff00000a5a9080 x21: ffff00001daa92c0
[   19.908999] x20: ffff8000810220c0 x19: ffff00001daaa0c0 x18: fffffffffffe7a38
[   19.909010] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000048
[   19.909023] x14: fffffffffffe7a80 x13: 216e6f6974636573 x12: 206c616369746972
[   19.909034] x11: 6320656469732d64 x10: 6165722055435220 x9 : 206e696874697720
[   19.909045] x8 : 6863746977732074 x7 : ffff80008122c840 x6 : ffff8000825db820
[   19.909056] x5 : ffff00001da9f888 x4 : 0000000000000000 x3 : 0000000000000027
[   19.909071] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff00000a5a9080
[   19.909084] Call trace:
[   19.909089]  rcu_note_context_switch+0x3d0/0x428
[   19.909107]  __schedule+0x98/0x774
[   19.909124]  schedule+0x34/0x104
[   19.909133]  rpm_resume+0x17c/0x6b0
[   19.909144]  __pm_runtime_resume+0x48/0x88
[   19.909158]  serial8250_stop_rx+0x28/0x84
[   19.909173]  uart_tty_port_shutdown+0x3c/0x178
[   19.909184]  tty_port_shutdown+0x84/0xdc
[   19.909201]  tty_port_close+0x3c/0xac
[   19.909211]  uart_close+0x34/0x98
[   19.909219]  ttyport_close+0x50/0x94
[   19.909230]  serdev_device_close+0x40/0x50
[   19.909243]  btnxpuart_close+0x1c/0x9c [btnxpuart]
[   19.909258]  hci_dev_close_sync+0x314/0x7d8 [bluetooth]
[   19.909325]  hci_dev_do_close+0x2c/0x70 [bluetooth]
[   19.909388]  hci_power_off+0x20/0x64 [bluetooth]
[   19.909454]  process_one_work+0x148/0x28c
[   19.909477]  worker_thread+0x2d4/0x3d8
[   19.909488]  kthread+0x110/0x114
[   19.909499]  ret_from_fork+0x10/0x20
[   19.909518] ---[ end trace 0000000000000000 ]---

Francesco



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-05-23  8:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-08  8:35 Kernel WARNING (RCU) with btnxpuart on TI AM62 platform Francesco Dolcini
2025-04-08  9:26 ` Paul Menzel
2025-04-08  9:35   ` Francesco Dolcini
2025-04-08 15:45 ` Vignesh Raghavendra
2025-04-10  6:20   ` Francesco Dolcini
2025-04-10  6:34     ` Paul Menzel
2025-04-10  6:48       ` Paul Menzel
2025-04-10  6:51       ` Paul Menzel
2025-04-10  9:53       ` Francesco Dolcini
2025-05-12 14:47     ` Paul Menzel
2025-05-23  8:07       ` Francesco Dolcini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).