18577cdcae
hisi_sas_task_exec() uses preemptible() to see if it's safe to block. This does not work for CONFIG_PREEMPT_COUNT=n kernels in which preemptible() always returns 0. The problem is masked when enabling some of the common Kconfig.debug options (like CONFIG_DEBUG_ATOMIC_SLEEP), as they implicitly enable the preemption counter. In general, driver leaf functions should not make logic decisions based on the context they're called from. The caller should be the entity responsible for explicitly indicating context. Since hisi_sas_task_exec() already has a gfp_t flags parameter, use it as the explicit context marker. Link: https://lore.kernel.org/r/20201126132952.2287996-3-bigeasy@linutronix.de Fixes: |
||
---|---|---|
.. | ||
hisi_sas_main.c | ||
hisi_sas_v1_hw.c | ||
hisi_sas_v2_hw.c | ||
hisi_sas_v3_hw.c | ||
hisi_sas.h | ||
Kconfig | ||
Makefile |