Commit 96d513f5 authored by Damien Le Moal's avatar Damien Le Moal Committed by Bjorn Helgaas
Browse files

PCI: epf-test: Cleanup pci_epf_test_cmd_handler()

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: default avatarDamien Le Moal <dlemoal@kernel.org>
Signed-off-by: default avatarLorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarManivannan Sadhasivam <mani@kernel.org>
parent fc97f5f7
Loading
Loading
Loading
Loading
+14 −16
Original line number Diff line number Diff line
@@ -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: