Skip to content

Commit

Permalink
ALSA: Deletion of checks before the function call "iounmap"
Browse files Browse the repository at this point in the history
The iounmap() function performs also input parameter validation.
Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
elfring authored and tiwai committed Jan 4, 2015
1 parent b76c0e9 commit ff6defa
Show file tree
Hide file tree
Showing 26 changed files with 43 additions and 90 deletions.
13 changes: 6 additions & 7 deletions sound/aoa/soundbus/i2sbus/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,9 @@ static void i2sbus_release_dev(struct device *dev)
int i;

i2sdev = container_of(dev, struct i2sbus_dev, sound.ofdev.dev);

if (i2sdev->intfregs) iounmap(i2sdev->intfregs);
if (i2sdev->out.dbdma) iounmap(i2sdev->out.dbdma);
if (i2sdev->in.dbdma) iounmap(i2sdev->in.dbdma);
iounmap(i2sdev->intfregs);
iounmap(i2sdev->out.dbdma);
iounmap(i2sdev->in.dbdma);
for (i = aoa_resource_i2smmio; i <= aoa_resource_rxdbdma; i++)
release_and_free_resource(i2sdev->allocated_resource[i]);
free_dbdma_descriptor_ring(i2sdev, &i2sdev->out.dbdma_ring);
Expand Down Expand Up @@ -318,9 +317,9 @@ static int i2sbus_add_dev(struct macio_dev *macio,
free_irq(dev->interrupts[i], dev);
free_dbdma_descriptor_ring(dev, &dev->out.dbdma_ring);
free_dbdma_descriptor_ring(dev, &dev->in.dbdma_ring);
if (dev->intfregs) iounmap(dev->intfregs);
if (dev->out.dbdma) iounmap(dev->out.dbdma);
if (dev->in.dbdma) iounmap(dev->in.dbdma);
iounmap(dev->intfregs);
iounmap(dev->out.dbdma);
iounmap(dev->in.dbdma);
for (i=0;i<3;i++)
release_and_free_resource(dev->allocated_resource[i]);
mutex_destroy(&dev->lock);
Expand Down
4 changes: 2 additions & 2 deletions sound/arm/aaci.c
Original file line number Diff line number Diff line change
Expand Up @@ -889,8 +889,8 @@ static int aaci_probe_ac97(struct aaci *aaci)
static void aaci_free_card(struct snd_card *card)
{
struct aaci *aaci = card->private_data;
if (aaci->base)
iounmap(aaci->base);

iounmap(aaci->base);
}

static struct aaci *aaci_init_card(struct amba_device *dev)
Expand Down
3 changes: 1 addition & 2 deletions sound/drivers/ml403-ac97cr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1094,8 +1094,7 @@ static int snd_ml403_ac97cr_free(struct snd_ml403_ac97cr *ml403_ac97cr)
if (ml403_ac97cr->capture_irq >= 0)
free_irq(ml403_ac97cr->capture_irq, ml403_ac97cr);
/* give back "port" */
if (ml403_ac97cr->port != NULL)
iounmap(ml403_ac97cr->port);
iounmap(ml403_ac97cr->port);
kfree(ml403_ac97cr);
PDEBUG(INIT_INFO, "free(): (done)\n");
return 0;
Expand Down
3 changes: 1 addition & 2 deletions sound/isa/msnd/msnd_pinnacle.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,8 +627,7 @@ static int snd_msnd_attach(struct snd_card *card)
return 0;

err_release_region:
if (chip->mappedbase)
iounmap(chip->mappedbase);
iounmap(chip->mappedbase);
release_mem_region(chip->base, BUFFSIZE);
release_region(chip->io, DSP_NUMIO);
free_irq(chip->irq, chip);
Expand Down
4 changes: 1 addition & 3 deletions sound/parisc/harmony.c
Original file line number Diff line number Diff line change
Expand Up @@ -893,9 +893,7 @@ snd_harmony_free(struct snd_harmony *h)
if (h->irq >= 0)
free_irq(h->irq, h);

if (h->iobase)
iounmap(h->iobase);

iounmap(h->iobase);
kfree(h);
return 0;
}
Expand Down
5 changes: 1 addition & 4 deletions sound/pci/ad1889.c
Original file line number Diff line number Diff line change
Expand Up @@ -853,12 +853,9 @@ snd_ad1889_free(struct snd_ad1889 *chip)
free_irq(chip->irq, chip);

skip_hw:
if (chip->iobase)
iounmap(chip->iobase);

iounmap(chip->iobase);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);

kfree(chip);
return 0;
}
Expand Down
6 changes: 2 additions & 4 deletions sound/pci/asihpi/hpioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -541,10 +541,8 @@ void asihpi_adapter_remove(struct pci_dev *pci_dev)
hpi_send_recv_ex(&hm, &hr, HOWNER_KERNEL);

/* unmap PCI memory space, mapped during device init. */
for (idx = 0; idx < HPI_MAX_ADAPTER_MEM_SPACES; idx++) {
if (pci.ap_mem_base[idx])
iounmap(pci.ap_mem_base[idx]);
}
for (idx = 0; idx < HPI_MAX_ADAPTER_MEM_SPACES; ++idx)
iounmap(pci.ap_mem_base[idx]);

if (pa->irq)
free_irq(pa->irq, pa);
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/atiixp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1585,8 +1585,7 @@ static int snd_atiixp_free(struct atiixp *chip)
__hw_end:
if (chip->irq >= 0)
free_irq(chip->irq, chip);
if (chip->remap_addr)
iounmap(chip->remap_addr);
iounmap(chip->remap_addr);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
kfree(chip);
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/atiixp_modem.c
Original file line number Diff line number Diff line change
Expand Up @@ -1211,8 +1211,7 @@ static int snd_atiixp_free(struct atiixp_modem *chip)
__hw_end:
if (chip->irq >= 0)
free_irq(chip->irq, chip);
if (chip->remap_addr)
iounmap(chip->remap_addr);
iounmap(chip->remap_addr);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
kfree(chip);
Expand Down
4 changes: 1 addition & 3 deletions sound/pci/aw2/aw2-alsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,7 @@ static int snd_aw2_dev_free(struct snd_device *device)
if (chip->irq >= 0)
free_irq(chip->irq, (void *)chip);
/* release the i/o ports & memory */
if (chip->iobase_virt)
iounmap(chip->iobase_virt);

iounmap(chip->iobase_virt);
pci_release_regions(chip->pci);
/* disable the PCI entry */
pci_disable_device(chip->pci);
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/bt87x.c
Original file line number Diff line number Diff line change
Expand Up @@ -690,8 +690,7 @@ static int snd_bt87x_free(struct snd_bt87x *chip)
snd_bt87x_stop(chip);
if (chip->irq >= 0)
free_irq(chip->irq, chip);
if (chip->mmio)
iounmap(chip->mmio);
iounmap(chip->mmio);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
kfree(chip);
Expand Down
6 changes: 2 additions & 4 deletions sound/pci/cs4281.c
Original file line number Diff line number Diff line change
Expand Up @@ -1316,10 +1316,8 @@ static int snd_cs4281_free(struct cs4281 *chip)

if (chip->irq >= 0)
free_irq(chip->irq, chip);
if (chip->ba0)
iounmap(chip->ba0);
if (chip->ba1)
iounmap(chip->ba1);
iounmap(chip->ba0);
iounmap(chip->ba1);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);

Expand Down
4 changes: 2 additions & 2 deletions sound/pci/cs46xx/cs46xx_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -2949,8 +2949,8 @@ static int snd_cs46xx_free(struct snd_cs46xx *chip)

for (idx = 0; idx < 5; idx++) {
struct snd_cs46xx_region *region = &chip->region.idx[idx];
if (region->remap_addr)
iounmap(region->remap_addr);

iounmap(region->remap_addr);
release_and_free_resource(region->resource);
}

Expand Down
5 changes: 1 addition & 4 deletions sound/pci/ctxfi/cthw20k1.c
Original file line number Diff line number Diff line change
Expand Up @@ -1985,10 +1985,7 @@ static int hw_card_shutdown(struct hw *hw)
free_irq(hw->irq, hw);

hw->irq = -1;

if (hw->mem_base)
iounmap(hw->mem_base);

iounmap(hw->mem_base);
hw->mem_base = NULL;

if (hw->io_base)
Expand Down
5 changes: 1 addition & 4 deletions sound/pci/ctxfi/cthw20k2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2110,10 +2110,7 @@ static int hw_card_shutdown(struct hw *hw)
free_irq(hw->irq, hw);

hw->irq = -1;

if (hw->mem_base)
iounmap(hw->mem_base);

iounmap(hw->mem_base);
hw->mem_base = NULL;

if (hw->io_base)
Expand Down
6 changes: 1 addition & 5 deletions sound/pci/echoaudio/echoaudio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1872,12 +1872,8 @@ static int snd_echo_free(struct echoaudio *chip)
if (chip->comm_page)
snd_dma_free_pages(&chip->commpage_dma_buf);

if (chip->dsp_registers)
iounmap(chip->dsp_registers);

iounmap(chip->dsp_registers);
release_and_free_resource(chip->iores);


pci_disable_device(chip->pci);

/* release chip data */
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/hda/hda_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1138,8 +1138,7 @@ static int azx_free(struct azx *chip)
free_irq(chip->irq, (void*)chip);
if (chip->msi)
pci_disable_msi(chip->pci);
if (chip->remap_addr)
iounmap(chip->remap_addr);
iounmap(chip->remap_addr);

azx_free_stream_pages(chip);
if (chip->region_requested)
Expand Down
6 changes: 2 additions & 4 deletions sound/pci/lola/lola.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,10 +551,8 @@ static void lola_free(struct lola *chip)
lola_free_mixer(chip);
if (chip->irq >= 0)
free_irq(chip->irq, (void *)chip);
if (chip->bar[0].remap_addr)
iounmap(chip->bar[0].remap_addr);
if (chip->bar[1].remap_addr)
iounmap(chip->bar[1].remap_addr);
iounmap(chip->bar[0].remap_addr);
iounmap(chip->bar[1].remap_addr);
if (chip->rb.area)
snd_dma_free_pages(&chip->rb);
pci_release_regions(chip->pci);
Expand Down
7 changes: 3 additions & 4 deletions sound/pci/mixart/mixart.c
Original file line number Diff line number Diff line change
Expand Up @@ -1114,10 +1114,9 @@ static int snd_mixart_free(struct mixart_mgr *mgr)
}

/* release the i/o ports */
for (i = 0; i < 2; i++) {
if (mgr->mem[i].virt)
iounmap(mgr->mem[i].virt);
}
for (i = 0; i < 2; ++i)
iounmap(mgr->mem[i].virt);

pci_release_regions(mgr->pci);

/* free flowarray */
Expand Down
6 changes: 2 additions & 4 deletions sound/pci/nm256/nm256.c
Original file line number Diff line number Diff line change
Expand Up @@ -1460,10 +1460,8 @@ static int snd_nm256_free(struct nm256 *chip)
if (chip->irq >= 0)
free_irq(chip->irq, chip);

if (chip->cport)
iounmap(chip->cport);
if (chip->buffer)
iounmap(chip->buffer);
iounmap(chip->cport);
iounmap(chip->buffer);
release_and_free_resource(chip->res_cport);
release_and_free_resource(chip->res_buffer);

Expand Down
4 changes: 1 addition & 3 deletions sound/pci/rme9652/hdsp.c
Original file line number Diff line number Diff line change
Expand Up @@ -5309,9 +5309,7 @@ static int snd_hdsp_free(struct hdsp *hdsp)

release_firmware(hdsp->firmware);
vfree(hdsp->fw_uploaded);

if (hdsp->iobase)
iounmap(hdsp->iobase);
iounmap(hdsp->iobase);

if (hdsp->port)
pci_release_regions(hdsp->pci);
Expand Down
4 changes: 1 addition & 3 deletions sound/pci/rme9652/hdspm.c
Original file line number Diff line number Diff line change
Expand Up @@ -6965,9 +6965,7 @@ static int snd_hdspm_free(struct hdspm * hdspm)
free_irq(hdspm->irq, (void *) hdspm);

kfree(hdspm->mixer);

if (hdspm->iobase)
iounmap(hdspm->iobase);
iounmap(hdspm->iobase);

if (hdspm->port)
pci_release_regions(hdspm->pci);
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/rme9652/rme9652.c
Original file line number Diff line number Diff line change
Expand Up @@ -1756,8 +1756,7 @@ static int snd_rme9652_free(struct snd_rme9652 *rme9652)

if (rme9652->irq >= 0)
free_irq(rme9652->irq, (void *)rme9652);
if (rme9652->iobase)
iounmap(rme9652->iobase);
iounmap(rme9652->iobase);
if (rme9652->port)
pci_release_regions(rme9652->pci);

Expand Down
5 changes: 1 addition & 4 deletions sound/pci/sis7019.c
Original file line number Diff line number Diff line change
Expand Up @@ -1064,12 +1064,9 @@ static int sis_chip_free(struct sis7019 *sis)
if (sis->irq >= 0)
free_irq(sis->irq, sis);

if (sis->ioaddr)
iounmap(sis->ioaddr);

iounmap(sis->ioaddr);
pci_release_regions(sis->pci);
pci_disable_device(sis->pci);

sis_free_suspend(sis);
return 0;
}
Expand Down
3 changes: 1 addition & 2 deletions sound/pci/ymfpci/ymfpci_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2246,8 +2246,7 @@ static int snd_ymfpci_free(struct snd_ymfpci *chip)
release_and_free_resource(chip->mpu_res);
release_and_free_resource(chip->fm_res);
snd_ymfpci_free_gameport(chip);
if (chip->reg_area_virt)
iounmap(chip->reg_area_virt);
iounmap(chip->reg_area_virt);
if (chip->work_ptr.area)
snd_dma_free_pages(&chip->work_ptr);

Expand Down
15 changes: 5 additions & 10 deletions sound/ppc/pmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -867,16 +867,11 @@ static int snd_pmac_free(struct snd_pmac *chip)
snd_pmac_dbdma_free(chip, &chip->capture.cmd);
snd_pmac_dbdma_free(chip, &chip->extra_dma);
snd_pmac_dbdma_free(chip, &emergency_dbdma);
if (chip->macio_base)
iounmap(chip->macio_base);
if (chip->latch_base)
iounmap(chip->latch_base);
if (chip->awacs)
iounmap(chip->awacs);
if (chip->playback.dma)
iounmap(chip->playback.dma);
if (chip->capture.dma)
iounmap(chip->capture.dma);
iounmap(chip->macio_base);
iounmap(chip->latch_base);
iounmap(chip->awacs);
iounmap(chip->playback.dma);
iounmap(chip->capture.dma);

if (chip->node) {
int i;
Expand Down

0 comments on commit ff6defa

Please sign in to comment.