On 1/29/2018 4:31 PM, Keith Busch wrote: > + if (!work_busy(&dpc->work)) > + schedule_work(&dpc->work); Isn't there a race condition between the time that dpc_work() clears PCI_EXP_DPC_STATUS register and when work actually completes by returning from dpc_work()? If the interrupt arrives just in this window, this code will not schedule the work. -- Sinan Kaya Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.