Nijun Gong 744c0f19d7 cnss2: use disable_irq_nosync for rome linkdown
When PCIE linkdown happen, IRQ handler will disable IRQ line then
trigger SSR. disable_irq() is used but it introduce sleep in IRQ
context(unexpected). Crash will happen if CONFIG_SCHED_WALT is set:
	android_rvh_schedule_bug+0x4/0x8
	__might_sleep+0x50/0x84
	synchronize_irq+0x48/0xc4
	disable_irq+0x70/0x9c
	cnss_pci_handle_linkdown+0x1a8/0x1c0 [cnss2]
	cnss_pci_event_cb+0x148/0x348 [cnss2]
	msm_pcie_notify_client+0x110/0x180
	msm_pcie_handle_linkdown+0x2d8/0x2f8
	handle_global_irq+0x464/0x5dc

To avoid this issue, should use disable_irq_nosync(), which doesn't
wait IRQ handler to finish. It should introduce no side effect, as
the whole device will be restated later by SSR.

Change-Id: I5ec96d41337a14280333ab9fea0c1f6132a532af
CRs-Fixed: 3548604
2023-09-08 04:11:00 -07:00
2023-06-14 22:02:19 -07:00
2023-05-11 13:09:21 -07:00
Опис
Немає опису
184 MiB
Мови
C 98.7%
C++ 0.9%
Makefile 0.3%
Starlark 0.1%