[BUG] gma500: Possible sleep-in-atomic bugs in gma_resume_pci

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The driver may sleep under a spinlock, and the function call paths are:
gma_power_begin (acquire the spinlock)
  gma_resume_pci
    pci_set_power_state
      __pci_start_power_transition (drivers/pci/pci.c)
        msleep --> may sleep

gma_power_begin (acquire the spinlock)
  gma_resume_pci
    pci_enable_device
      pci_enable_device_flags (drivers/pci/pci.c)
        do_pci_enable_device
          pci_set_power_state
            __pci_start_power_transition
              msleep --> may sleep

A possible fix is to replace msleep with mdelay in __pci_start_power_transition in drivers/pci/pci.c.

These bugs are found by my static analysis tool and my code review.


Thanks,
Jia-Ju Bai




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux