Skip to contentSkip to conversation

rts5208: Sleeping under a spin lock in xd_init_l2p_tbl

BUG Jia-Ju Bai 1 participant 1 message Jun 5, 2017

lore
Share & tools
lore

Jia-Ju Bai

author
#0 lore raw

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
              xd_build_l2p_tbl
                xd_init_l2p_tbl
                  vmalloc --> 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