From: Greg Kroah-Hartman Date: Fri, 21 Jul 2023 07:00:15 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v5.15.121~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b84bbba7e3b1f0fc1844c5b4c3092fd25371b8a;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: misc-pci_endpoint_test-re-init-completion-for-every-test.patch --- diff --git a/queue-4.14/misc-pci_endpoint_test-re-init-completion-for-every-test.patch b/queue-4.14/misc-pci_endpoint_test-re-init-completion-for-every-test.patch new file mode 100644 index 00000000000..6e79889f907 --- /dev/null +++ b/queue-4.14/misc-pci_endpoint_test-re-init-completion-for-every-test.patch @@ -0,0 +1,44 @@ +From fb620ae73b70c2f57b9d3e911fc24c024ba2324f Mon Sep 17 00:00:00 2001 +From: Damien Le Moal +Date: Sat, 15 Apr 2023 11:35:40 +0900 +Subject: misc: pci_endpoint_test: Re-init completion for every test + +From: Damien Le Moal + +commit fb620ae73b70c2f57b9d3e911fc24c024ba2324f upstream. + +The irq_raised completion used to detect the end of a test case is +initialized when the test device is probed, but never reinitialized again +before a test case. As a result, the irq_raised completion synchronization +is effective only for the first ioctl test case executed. Any subsequent +call to wait_for_completion() by another ioctl() call will immediately +return, potentially too early, leading to false positive failures. + +Fix this by reinitializing the irq_raised completion before starting a new +ioctl() test command. + +Link: https://lore.kernel.org/r/20230415023542.77601-16-dlemoal@kernel.org +Fixes: 2c156ac71c6b ("misc: Add host side PCI driver for PCI test function device") +Signed-off-by: Damien Le Moal +Signed-off-by: Lorenzo Pieralisi +Signed-off-by: Bjorn Helgaas +Reviewed-by: Manivannan Sadhasivam +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/misc/pci_endpoint_test.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/misc/pci_endpoint_test.c ++++ b/drivers/misc/pci_endpoint_test.c +@@ -425,6 +425,10 @@ static long pci_endpoint_test_ioctl(stru + struct pci_endpoint_test *test = to_endpoint_test(file->private_data); + + mutex_lock(&test->mutex); ++ ++ reinit_completion(&test->irq_raised); ++ test->last_irq = -ENODATA; ++ + switch (cmd) { + case PCITEST_BAR: + bar = arg; diff --git a/queue-4.14/series b/queue-4.14/series index 6a3e7fdc7fa..276aff67986 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -107,3 +107,4 @@ ext4-fix-to-check-return-value-of-freeze_bdev-in-ext4_shutdown.patch ext4-only-update-i_reserved_data_blocks-on-successful-block-allocation.patch jfs-jfs_dmap-validate-db_l2nbperpage-while-mounting.patch pci-add-function-1-dma-alias-quirk-for-marvell-88se9235.patch +misc-pci_endpoint_test-re-init-completion-for-every-test.patch