misc: pci_endpoint_test: Use a unique test pattern for each BAR
authorNiklas Cassel <niklas.cassel@wdc.com>
Fri, 15 Dec 2023 10:59:51 +0000 (11:59 +0100)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Sat, 6 Jan 2024 05:00:08 +0000 (05:00 +0000)
Use a unique test pattern for each BAR in. This makes it easier to
detect/debug address translation issues, since a developer can dump
the backing memory on the EP side, using e.g. devmem, to verify that
the address translation for each BAR is actually correct.

Link: https://lore.kernel.org/linux-pci/20231215105952.1531683-1-nks@flawful.org
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/misc/pci_endpoint_test.c

index af519088732d9a16b724c05cec78e6c82a990f3a..412749fed8cf3b28c4bbead3a27ac0b625fcf118 100644 (file)
@@ -263,6 +263,15 @@ fail:
        return false;
 }
 
+static const u32 bar_test_pattern[] = {
+       0xA0A0A0A0,
+       0xA1A1A1A1,
+       0xA2A2A2A2,
+       0xA3A3A3A3,
+       0xA4A4A4A4,
+       0xA5A5A5A5,
+};
+
 static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
                                  enum pci_barno barno)
 {
@@ -280,11 +289,12 @@ static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
                size = 0x4;
 
        for (j = 0; j < size; j += 4)
-               pci_endpoint_test_bar_writel(test, barno, j, 0xA0A0A0A0);
+               pci_endpoint_test_bar_writel(test, barno, j,
+                                            bar_test_pattern[barno]);
 
        for (j = 0; j < size; j += 4) {
                val = pci_endpoint_test_bar_readl(test, barno, j);
-               if (val != 0xA0A0A0A0)
+               if (val != bar_test_pattern[barno])
                        return false;
        }