Message ID | 20230308090313.1653-11-damien.lemoal@opensource.wdc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | PCI endpoint fixes and improvements | expand |
On Wed, Mar 08, 2023 at 06:03:07PM +0900, Damien Le Moal wrote: > 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. > > Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> Thanks, Mani > --- > drivers/pci/endpoint/functions/pci-epf-test.c | 30 +++++++++---------- > 1 file changed, 14 insertions(+), 16 deletions(-) > > diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c > index e0cf8c2bf6db..d1b5441391fb 100644 > --- a/drivers/pci/endpoint/functions/pci-epf-test.c > +++ b/drivers/pci/endpoint/functions/pci-epf-test.c > @@ -678,41 +678,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\n"); > + break; > } > > reset_handler: > -- > 2.39.2 >
diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c index e0cf8c2bf6db..d1b5441391fb 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -678,41 +678,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\n"); + break; } reset_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. Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> --- drivers/pci/endpoint/functions/pci-epf-test.c | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-)