diff options
Diffstat (limited to 'debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch')
-rw-r--r-- | debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch b/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch new file mode 100644 index 000000000..e4c764804 --- /dev/null +++ b/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch @@ -0,0 +1,46 @@ +From 267b1086437ac0cca8ca59197e5cc8cbe8fc6a83 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Tue, 9 Mar 2021 09:42:15 +0100 +Subject: [PATCH 143/323] PCI: hv: Use tasklet_disable_in_atomic() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz + +The hv_compose_msi_msg() callback in irq_chip::irq_compose_msi_msg is +invoked via irq_chip_compose_msi_msg(), which itself is always invoked from +atomic contexts from the guts of the interrupt core code. + +There is no way to change this w/o rewriting the whole driver, so use +tasklet_disable_in_atomic() which allows to make tasklet_disable() +sleepable once the remaining atomic users are addressed. + +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +Cc: "K. Y. Srinivasan" <kys@microsoft.com> +Cc: Haiyang Zhang <haiyangz@microsoft.com> +Cc: Stephen Hemminger <sthemmin@microsoft.com> +Cc: Wei Liu <wei.liu@kernel.org> +Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> +Cc: Rob Herring <robh@kernel.org> +Cc: Bjorn Helgaas <bhelgaas@google.com> +Cc: linux-hyperv@vger.kernel.org +Cc: linux-pci@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + drivers/pci/controller/pci-hyperv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c +index 2d6c77dcc815..7daba964f54e 100644 +--- a/drivers/pci/controller/pci-hyperv.c ++++ b/drivers/pci/controller/pci-hyperv.c +@@ -1518,7 +1518,7 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) + * Prevents hv_pci_onchannelcallback() from running concurrently + * in the tasklet. + */ +- tasklet_disable(&channel->callback_event); ++ tasklet_disable_in_atomic(&channel->callback_event); + + /* + * Since this function is called with IRQ locks held, can't +-- +2.43.0 + |