From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Sun, 12 Nov 2017 10:10:53 +0100 * Adjust jump targets so that a bit of exception handling can be better reused at the end of this function. This issue was detected by using the Coccinelle software. * The script "checkpatch.pl" pointed information out like the following. ERROR: do not use assignment in if condition Thus fix five affected source code places. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- sound/pci/ad1889.c | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index 0bf2c04eeada..9f00e63937a5 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -894,21 +894,23 @@ snd_ad1889_create(struct snd_card *card, *rchip = NULL; - if ((err = pci_enable_device(pci)) < 0) + err = pci_enable_device(pci); + if (err < 0) return err; /* check PCI availability (32bit DMA) */ if (dma_set_mask(&pci->dev, DMA_BIT_MASK(32)) < 0 || dma_set_coherent_mask(&pci->dev, DMA_BIT_MASK(32)) < 0) { dev_err(card->dev, "error setting 32-bit DMA mask.\n"); - pci_disable_device(pci); - return -ENXIO; + err = -ENXIO; + goto disable_device; } /* allocate chip specific data with zero-filled memory */ - if ((chip = kzalloc(sizeof(*chip), GFP_KERNEL)) == NULL) { - pci_disable_device(pci); - return -ENOMEM; + chip = kzalloc(sizeof(*chip), GFP_KERNEL); + if (!chip) { + err = -ENOMEM; + goto disable_device; } chip->card = card; @@ -917,15 +919,16 @@ snd_ad1889_create(struct snd_card *card, chip->irq = -1; /* (1) PCI resource allocation */ - if ((err = pci_request_regions(pci, card->driver)) < 0) - goto free_and_ret; + err = pci_request_regions(pci, card->driver); + if (err < 0) + goto free_data; chip->bar = pci_resource_start(pci, 0); chip->iobase = pci_ioremap_bar(pci, 0); if (chip->iobase == NULL) { dev_err(card->dev, "unable to reserve region.\n"); err = -EBUSY; - goto free_and_ret; + goto free_data; } pci_set_master(pci); @@ -935,32 +938,34 @@ snd_ad1889_create(struct snd_card *card, if (request_irq(pci->irq, snd_ad1889_interrupt, IRQF_SHARED, KBUILD_MODNAME, chip)) { dev_err(card->dev, "cannot obtain IRQ %d\n", pci->irq); - snd_ad1889_free(chip); - return -EBUSY; + err = -EBUSY; + goto free_sound_chip; } chip->irq = pci->irq; synchronize_irq(chip->irq); /* (2) initialization of the chip hardware */ - if ((err = snd_ad1889_init(chip)) < 0) { - snd_ad1889_free(chip); - return err; - } + err = snd_ad1889_init(chip); + if (err < 0) + goto free_sound_chip; - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { - snd_ad1889_free(chip); - return err; - } + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + if (err < 0) + goto free_sound_chip; *rchip = chip; return 0; -free_and_ret: +free_data: kfree(chip); +disable_device: pci_disable_device(pci); + return err; +free_sound_chip: + snd_ad1889_free(chip); return err; } -- 2.15.0 -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html