提交 b7c19476 编写于 作者: B Bjorn Helgaas

Merge branch 'pci/host-hv' into next

* pci/host-hv:
  PCI: hv: Do not sleep in compose_msi_msg()
...@@ -50,6 +50,7 @@ ...@@ -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) ...@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册