Merge branch 'pci/host-hv' into next
* pci/host-hv: PCI: hv: Do not sleep in compose_msi_msg()
This commit is contained in:
commit
b7c19476bd
|
@ -50,6 +50,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
#include <linux/semaphore.h>
|
#include <linux/semaphore.h>
|
||||||
#include <linux/irqdomain.h>
|
#include <linux/irqdomain.h>
|
||||||
#include <asm/irqdomain.h>
|
#include <asm/irqdomain.h>
|
||||||
|
@ -1159,7 +1160,12 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
|
||||||
goto free_int_desc;
|
goto free_int_desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
wait_for_completion(&comp.comp_pkt.host_event);
|
/*
|
||||||
|
* Since this function is called with IRQ locks held, can't
|
||||||
|
* do normal wait for completion; instead poll.
|
||||||
|
*/
|
||||||
|
while (!try_wait_for_completion(&comp.comp_pkt.host_event))
|
||||||
|
udelay(100);
|
||||||
|
|
||||||
if (comp.comp_pkt.completion_status < 0) {
|
if (comp.comp_pkt.completion_status < 0) {
|
||||||
dev_err(&hbus->hdev->device,
|
dev_err(&hbus->hdev->device,
|
||||||
|
|
Loading…
Reference in New Issue