[BUG] rts5208: Sleeping under a spin lock in free_zone
From: Jia-Ju Bai
Date: Sun Jun 04 2017 - 21:57:34 EST
According to rtsx_chip.c and xd.c, the driver may sleep under a spin lock.
The function call path is:
rtsx_exclusive_enter_ss (acquire the lock by spin_lock)
rtsx_enter_ss
rtsx_power_off_card
xd_cleanup_work
xd_delay_write
xd_finish_write
xd_set_unused_block
free_zone
vfree --> may sleep
This bug is found by my static analysis tool and my code review.
I hope to fix it, but I do not have a good solution.
Thanks,
Jia-Ju Bai