PCI: epf-test: Cleanup pci_epf_test_cmd_handler()
authorDamien Le Moal <dlemoal@kernel.org>
Sat, 15 Apr 2023 02:35:35 +0000 (11:35 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 23 Jun 2023 20:02:39 +0000 (15:02 -0500)
Command codes are never combined together as flags into a single value.
Thus we can replace the series of "if" tests in pci_epf_test_cmd_handler()
with a cleaner switch-case statement.  This also allows checking that we
got a valid command and print an error message if we did not.

Link: https://lore.kernel.org/r/20230415023542.77601-11-dlemoal@kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
drivers/pci/endpoint/functions/pci-epf-test.c

index fa48e9b..7f482ec 100644 (file)
@@ -676,41 +676,39 @@ static void pci_epf_test_cmd_handler(struct work_struct *work)
                goto reset_handler;
        }
 
-       if ((command & COMMAND_RAISE_LEGACY_IRQ) ||
-           (command & COMMAND_RAISE_MSI_IRQ) ||
-           (command & COMMAND_RAISE_MSIX_IRQ)) {
+       switch (command) {
+       case COMMAND_RAISE_LEGACY_IRQ:
+       case COMMAND_RAISE_MSI_IRQ:
+       case COMMAND_RAISE_MSIX_IRQ:
                pci_epf_test_raise_irq(epf_test, reg);
-               goto reset_handler;
-       }
-
-       if (command & COMMAND_WRITE) {
+               break;
+       case COMMAND_WRITE:
                ret = pci_epf_test_write(epf_test, reg);
                if (ret)
                        reg->status |= STATUS_WRITE_FAIL;
                else
                        reg->status |= STATUS_WRITE_SUCCESS;
                pci_epf_test_raise_irq(epf_test, reg);
-               goto reset_handler;
-       }
-
-       if (command & COMMAND_READ) {
+               break;
+       case COMMAND_READ:
                ret = pci_epf_test_read(epf_test, reg);
                if (!ret)
                        reg->status |= STATUS_READ_SUCCESS;
                else
                        reg->status |= STATUS_READ_FAIL;
                pci_epf_test_raise_irq(epf_test, reg);
-               goto reset_handler;
-       }
-
-       if (command & COMMAND_COPY) {
+               break;
+       case COMMAND_COPY:
                ret = pci_epf_test_copy(epf_test, reg);
                if (!ret)
                        reg->status |= STATUS_COPY_SUCCESS;
                else
                        reg->status |= STATUS_COPY_FAIL;
                pci_epf_test_raise_irq(epf_test, reg);
-               goto reset_handler;
+               break;
+       default:
+               dev_err(dev, "Invalid command 0x%x\n", command);
+               break;
        }
 
 reset_handler: