* [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" [not found] ` <54A9355F.4050102@users.sourceforge.net> @ 2015-01-04 13:36 ` SF Markus Elfring 2015-01-05 13:58 ` Dan Carpenter 2016-10-26 12:26 ` Dan Carpenter 0 siblings, 2 replies; 7+ messages in thread From: SF Markus Elfring @ 2015-01-04 13:36 UTC (permalink / raw) To: Jaroslav Kysela, Johannes Berg, Clemens Ladisch, Russell King, Takashi Iwai, Thibaut Varene, alsa-devel, linuxppc-dev, linux-parisc Cc: Julia Lawall, kernel-janitors, LKML From: Markus Elfring <elfring@users.sourceforge.net> Date: Sat, 3 Jan 2015 22:55:54 +0100 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 <elfring@users.sourceforge.net> --- sound/aoa/soundbus/i2sbus/core.c | 13 ++++++------- sound/arm/aaci.c | 4 ++-- sound/drivers/ml403-ac97cr.c | 3 +-- sound/isa/msnd/msnd_pinnacle.c | 3 +-- sound/parisc/harmony.c | 4 +--- sound/pci/ad1889.c | 5 +---- sound/pci/asihpi/hpioctl.c | 6 ++---- sound/pci/atiixp.c | 3 +-- sound/pci/atiixp_modem.c | 3 +-- sound/pci/aw2/aw2-alsa.c | 4 +--- sound/pci/bt87x.c | 3 +-- sound/pci/cs4281.c | 6 ++---- sound/pci/cs46xx/cs46xx_lib.c | 4 ++-- sound/pci/ctxfi/cthw20k1.c | 5 +---- sound/pci/ctxfi/cthw20k2.c | 5 +---- sound/pci/echoaudio/echoaudio.c | 6 +----- sound/pci/hda/hda_intel.c | 3 +-- sound/pci/lola/lola.c | 6 ++---- sound/pci/mixart/mixart.c | 7 +++---- sound/pci/nm256/nm256.c | 6 ++---- sound/pci/rme9652/hdsp.c | 4 +--- sound/pci/rme9652/hdspm.c | 4 +--- sound/pci/rme9652/rme9652.c | 3 +-- sound/pci/sis7019.c | 5 +---- sound/pci/ymfpci/ymfpci_main.c | 3 +-- sound/ppc/pmac.c | 15 +++++---------- 26 files changed, 43 insertions(+), 90 deletions(-) diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c index 4e2b4fb..7835045 100644 --- a/sound/aoa/soundbus/i2sbus/core.c +++ b/sound/aoa/soundbus/i2sbus/core.c @@ -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); @@ -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); diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index 0e83a73..4140b1b 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c @@ -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) diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c index ec01de1..bdcb572 100644 --- a/sound/drivers/ml403-ac97cr.c +++ b/sound/drivers/ml403-ac97cr.c @@ -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; diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c index 65b3682..4c07266 100644 --- a/sound/isa/msnd/msnd_pinnacle.c +++ b/sound/isa/msnd/msnd_pinnacle.c @@ -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); diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c index 29604a2..f2350c1 100644 --- a/sound/parisc/harmony.c +++ b/sound/parisc/harmony.c @@ -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; } diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index 547ee30..0de3129 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -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; } diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c index 72af66b..67d1133 100644 --- a/sound/pci/asihpi/hpioctl.c +++ b/sound/pci/asihpi/hpioctl.c @@ -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); diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 9c1c445..d24188f 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -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); diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index b2f63e0..c321a97 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -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); diff --git a/sound/pci/aw2/aw2-alsa.c b/sound/pci/aw2/aw2-alsa.c index e1cf019..8d2fee7 100644 --- a/sound/pci/aw2/aw2-alsa.c +++ b/sound/pci/aw2/aw2-alsa.c @@ -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); diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index 058b997..e82ceac 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c @@ -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); diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index 05a4337..ea33911 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -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); diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index dfec84e..128bbfe 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -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); } diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c index b425aa8..b8b0d8e 100644 --- a/sound/pci/ctxfi/cthw20k1.c +++ b/sound/pci/ctxfi/cthw20k1.c @@ -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) diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c index 253899d..4e16b4d 100644 --- a/sound/pci/ctxfi/cthw20k2.c +++ b/sound/pci/ctxfi/cthw20k2.c @@ -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) diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c index 21228ad..98d4f35 100644 --- a/sound/pci/echoaudio/echoaudio.c +++ b/sound/pci/echoaudio/echoaudio.c @@ -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 */ diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index d426a0b..a971425 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -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) diff --git a/sound/pci/lola/lola.c b/sound/pci/lola/lola.c index 4cf4be5..9ff60008 100644 --- a/sound/pci/lola/lola.c +++ b/sound/pci/lola/lola.c @@ -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); diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c index 1faf47e..c3a9f39 100644 --- a/sound/pci/mixart/mixart.c +++ b/sound/pci/mixart/mixart.c @@ -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 */ diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index 4e41a4e..3f52a44 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c @@ -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); diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index cf5a6c8..fe66bcb 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c @@ -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); diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 3342705..8109b8e 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -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); diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c index 6521521..648911c 100644 --- a/sound/pci/rme9652/rme9652.c +++ b/sound/pci/rme9652/rme9652.c @@ -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); diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c index 7f6a0a0..5e9437b 100644 --- a/sound/pci/sis7019.c +++ b/sound/pci/sis7019.c @@ -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; } diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index f5581a9..de7f06f 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -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); diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c index 5a13b22..d399df4 100644 --- a/sound/ppc/pmac.c +++ b/sound/ppc/pmac.c @@ -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; -- 2.2.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" 2015-01-04 13:36 ` [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" SF Markus Elfring @ 2015-01-05 13:58 ` Dan Carpenter 2016-10-26 12:26 ` Dan Carpenter 1 sibling, 0 replies; 7+ messages in thread From: Dan Carpenter @ 2015-01-05 13:58 UTC (permalink / raw) To: SF Markus Elfring Cc: alsa-devel, Russell King, linux-parisc, Takashi Iwai, kernel-janitors, Clemens Ladisch, LKML, Julia Lawall, Thibaut Varene, Johannes Berg, linuxppc-dev On Sun, Jan 04, 2015 at 02:36:01PM +0100, SF Markus Elfring wrote: > /* 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]); > Don't do the gratuitous idx++ to ++idx changes. You do it a couple other places as well. It belongs in a separate patch if you really feel it is worth doing. (It is not a clean up and it is not worth doing). regards, dan carpenter ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" 2015-01-04 13:36 ` [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" SF Markus Elfring 2015-01-05 13:58 ` Dan Carpenter @ 2016-10-26 12:26 ` Dan Carpenter 2016-10-26 12:28 ` Johannes Berg 1 sibling, 1 reply; 7+ messages in thread From: Dan Carpenter @ 2016-10-26 12:26 UTC (permalink / raw) To: SF Markus Elfring Cc: alsa-devel, Russell King, linux-parisc, Takashi Iwai, kernel-janitors, Clemens Ladisch, LKML, Jaroslav Kysela, Julia Lawall, Thibaut Varene, Johannes Berg, linuxppc-dev Someone was just mentioning in another thread that removing the check from iounmap() is not portable to other arches and then I remembered that Markus removed a bunch of these. We should consider reverting this, perhaps? regards, dan carpenter On Sun, Jan 04, 2015 at 02:36:01PM +0100, SF Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Sat, 3 Jan 2015 22:55:54 +0100 > > 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 <elfring@users.sourceforge.net> > --- > sound/aoa/soundbus/i2sbus/core.c | 13 ++++++------- > sound/arm/aaci.c | 4 ++-- > sound/drivers/ml403-ac97cr.c | 3 +-- > sound/isa/msnd/msnd_pinnacle.c | 3 +-- > sound/parisc/harmony.c | 4 +--- > sound/pci/ad1889.c | 5 +---- > sound/pci/asihpi/hpioctl.c | 6 ++---- > sound/pci/atiixp.c | 3 +-- > sound/pci/atiixp_modem.c | 3 +-- > sound/pci/aw2/aw2-alsa.c | 4 +--- > sound/pci/bt87x.c | 3 +-- > sound/pci/cs4281.c | 6 ++---- > sound/pci/cs46xx/cs46xx_lib.c | 4 ++-- > sound/pci/ctxfi/cthw20k1.c | 5 +---- > sound/pci/ctxfi/cthw20k2.c | 5 +---- > sound/pci/echoaudio/echoaudio.c | 6 +----- > sound/pci/hda/hda_intel.c | 3 +-- > sound/pci/lola/lola.c | 6 ++---- > sound/pci/mixart/mixart.c | 7 +++---- > sound/pci/nm256/nm256.c | 6 ++---- > sound/pci/rme9652/hdsp.c | 4 +--- > sound/pci/rme9652/hdspm.c | 4 +--- > sound/pci/rme9652/rme9652.c | 3 +-- > sound/pci/sis7019.c | 5 +---- > sound/pci/ymfpci/ymfpci_main.c | 3 +-- > sound/ppc/pmac.c | 15 +++++---------- > 26 files changed, 43 insertions(+), 90 deletions(-) > > diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c > index 4e2b4fb..7835045 100644 > --- a/sound/aoa/soundbus/i2sbus/core.c > +++ b/sound/aoa/soundbus/i2sbus/core.c > @@ -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); > @@ -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); > diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c > index 0e83a73..4140b1b 100644 > --- a/sound/arm/aaci.c > +++ b/sound/arm/aaci.c > @@ -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) > diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c > index ec01de1..bdcb572 100644 > --- a/sound/drivers/ml403-ac97cr.c > +++ b/sound/drivers/ml403-ac97cr.c > @@ -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; > diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c > index 65b3682..4c07266 100644 > --- a/sound/isa/msnd/msnd_pinnacle.c > +++ b/sound/isa/msnd/msnd_pinnacle.c > @@ -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); > diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c > index 29604a2..f2350c1 100644 > --- a/sound/parisc/harmony.c > +++ b/sound/parisc/harmony.c > @@ -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; > } > diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c > index 547ee30..0de3129 100644 > --- a/sound/pci/ad1889.c > +++ b/sound/pci/ad1889.c > @@ -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; > } > diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c > index 72af66b..67d1133 100644 > --- a/sound/pci/asihpi/hpioctl.c > +++ b/sound/pci/asihpi/hpioctl.c > @@ -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); > diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c > index 9c1c445..d24188f 100644 > --- a/sound/pci/atiixp.c > +++ b/sound/pci/atiixp.c > @@ -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); > diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c > index b2f63e0..c321a97 100644 > --- a/sound/pci/atiixp_modem.c > +++ b/sound/pci/atiixp_modem.c > @@ -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); > diff --git a/sound/pci/aw2/aw2-alsa.c b/sound/pci/aw2/aw2-alsa.c > index e1cf019..8d2fee7 100644 > --- a/sound/pci/aw2/aw2-alsa.c > +++ b/sound/pci/aw2/aw2-alsa.c > @@ -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); > diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c > index 058b997..e82ceac 100644 > --- a/sound/pci/bt87x.c > +++ b/sound/pci/bt87x.c > @@ -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); > diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c > index 05a4337..ea33911 100644 > --- a/sound/pci/cs4281.c > +++ b/sound/pci/cs4281.c > @@ -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); > > diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c > index dfec84e..128bbfe 100644 > --- a/sound/pci/cs46xx/cs46xx_lib.c > +++ b/sound/pci/cs46xx/cs46xx_lib.c > @@ -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); > } > > diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c > index b425aa8..b8b0d8e 100644 > --- a/sound/pci/ctxfi/cthw20k1.c > +++ b/sound/pci/ctxfi/cthw20k1.c > @@ -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) > diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c > index 253899d..4e16b4d 100644 > --- a/sound/pci/ctxfi/cthw20k2.c > +++ b/sound/pci/ctxfi/cthw20k2.c > @@ -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) > diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c > index 21228ad..98d4f35 100644 > --- a/sound/pci/echoaudio/echoaudio.c > +++ b/sound/pci/echoaudio/echoaudio.c > @@ -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 */ > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > index d426a0b..a971425 100644 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@ -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) > diff --git a/sound/pci/lola/lola.c b/sound/pci/lola/lola.c > index 4cf4be5..9ff60008 100644 > --- a/sound/pci/lola/lola.c > +++ b/sound/pci/lola/lola.c > @@ -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); > diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c > index 1faf47e..c3a9f39 100644 > --- a/sound/pci/mixart/mixart.c > +++ b/sound/pci/mixart/mixart.c > @@ -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 */ > diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c > index 4e41a4e..3f52a44 100644 > --- a/sound/pci/nm256/nm256.c > +++ b/sound/pci/nm256/nm256.c > @@ -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); > > diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c > index cf5a6c8..fe66bcb 100644 > --- a/sound/pci/rme9652/hdsp.c > +++ b/sound/pci/rme9652/hdsp.c > @@ -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); > diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c > index 3342705..8109b8e 100644 > --- a/sound/pci/rme9652/hdspm.c > +++ b/sound/pci/rme9652/hdspm.c > @@ -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); > diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c > index 6521521..648911c 100644 > --- a/sound/pci/rme9652/rme9652.c > +++ b/sound/pci/rme9652/rme9652.c > @@ -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); > > diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c > index 7f6a0a0..5e9437b 100644 > --- a/sound/pci/sis7019.c > +++ b/sound/pci/sis7019.c > @@ -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; > } > diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c > index f5581a9..de7f06f 100644 > --- a/sound/pci/ymfpci/ymfpci_main.c > +++ b/sound/pci/ymfpci/ymfpci_main.c > @@ -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); > > diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c > index 5a13b22..d399df4 100644 > --- a/sound/ppc/pmac.c > +++ b/sound/ppc/pmac.c > @@ -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; > -- > 2.2.1 > > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" 2016-10-26 12:26 ` Dan Carpenter @ 2016-10-26 12:28 ` Johannes Berg 2016-10-26 12:42 ` Dan Carpenter 0 siblings, 1 reply; 7+ messages in thread From: Johannes Berg @ 2016-10-26 12:28 UTC (permalink / raw) To: Dan Carpenter, SF Markus Elfring Cc: alsa-devel, Russell King, linux-parisc, Takashi Iwai, kernel-janitors, Clemens Ladisch, LKML, Jaroslav Kysela, Julia Lawall, Thibaut Varene, linuxppc-dev On Wed, 2016-10-26 at 15:26 +0300, Dan Carpenter wrote: > Someone was just mentioning in another thread that removing the check > from iounmap() is not portable to other arches and then I remembered > that Markus removed a bunch of these. > > We should consider reverting this, perhaps? Can't we teach all architectures? Not that reverting it would be a problem. johannes ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" 2016-10-26 12:28 ` Johannes Berg @ 2016-10-26 12:42 ` Dan Carpenter 0 siblings, 0 replies; 7+ messages in thread From: Dan Carpenter @ 2016-10-26 12:42 UTC (permalink / raw) To: Johannes Berg Cc: SF Markus Elfring, Jaroslav Kysela, Clemens Ladisch, Russell King, Takashi Iwai, Thibaut Varene, alsa-devel, linuxppc-dev, linux-parisc, LKML, kernel-janitors, Julia Lawall On Wed, Oct 26, 2016 at 02:28:59PM +0200, Johannes Berg wrote: > On Wed, 2016-10-26 at 15:26 +0300, Dan Carpenter wrote: > > Someone was just mentioning in another thread that removing the check > > from iounmap() is not portable to other arches and then I remembered > > that Markus removed a bunch of these. > > > > We should consider reverting this, perhaps? > > Can't we teach all architectures? Not that reverting it would be a > problem. We probably should. I just didn't want to suggest it, in case it sounds like volunteering... I'm not going to be able to do it because I'm on the road for a bit. regards, dan carpenter ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0/9] video: fbdev: Deletion of some unnecessary checks [not found] ` <5317A59D.4@users.sourceforge.net> [not found] ` <54A9355F.4050102@users.sourceforge.net> @ 2015-01-19 17:54 ` SF Markus Elfring 2015-01-19 18:00 ` [PATCH 1/9] video: Deletion of checks before the function call "iounmap" SF Markus Elfring 1 sibling, 1 reply; 7+ messages in thread From: SF Markus Elfring @ 2015-01-19 17:54 UTC (permalink / raw) To: Antonino Daplas, Ferenc Bakonyi, Hans de Goede, Helge Deller, James E. J. Bottomley, Jean-Christophe Plagniol-Villard, Kristoffer Ericson, Peter Jones, Tomi Valkeinen, linux-fbdev, linux-nvidia, linux-parisc Cc: LKML, kernel-janitors, Julia Lawall From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 19 Jan 2015 17:57:25 +0100 Further update suggestions were taken into account after a patch was applied from static source code analysis. Markus Elfring (9): fbdev: Deletion of checks before the function call "iounmap" One function call less in tdfxfb_probe() after error detection One function call less in vesafb_probe() after error detection Add check for return value of ioremap() in cirrusfb_pci_register() Less function calls in trident_pci_probe() after error detection One function call less in pvr2fb_common_init() after error detection One function call less in tgafb_register() after error detection Less function calls in valkyriefb_init() after error detection Less function calls in w100fb_probe() after error detection drivers/video/fbdev/aty/atyfb_base.c | 15 +++++-------- drivers/video/fbdev/cirrusfb.c | 10 ++++++--- drivers/video/fbdev/controlfb.c | 6 ++--- drivers/video/fbdev/efifb.c | 3 +-- drivers/video/fbdev/hgafb.c | 3 +-- drivers/video/fbdev/hpfb.c | 3 +-- drivers/video/fbdev/i810/i810_main.c | 6 ++--- drivers/video/fbdev/macfb.c | 15 +++++-------- drivers/video/fbdev/offb.c | 3 +-- drivers/video/fbdev/pvr2fb.c | 15 ++++++------- drivers/video/fbdev/s1d13xxxfb.c | 3 +-- drivers/video/fbdev/s3fb.c | 6 ++--- drivers/video/fbdev/sh_mobile_hdmi.c | 6 ++--- drivers/video/fbdev/sh_mobile_lcdcfb.c | 3 +-- drivers/video/fbdev/simplefb.c | 3 +-- drivers/video/fbdev/stifb.c | 3 +-- drivers/video/fbdev/tdfxfb.c | 22 +++++++++---------- drivers/video/fbdev/tgafb.c | 20 ++++++++--------- drivers/video/fbdev/tridentfb.c | 15 +++++++------ drivers/video/fbdev/valkyriefb.c | 37 ++++++++++++++++++------------- drivers/video/fbdev/vesafb.c | 11 +++++----- drivers/video/fbdev/w100fb.c | 40 +++++++++++++++++----------------- 22 files changed, 116 insertions(+), 132 deletions(-) -- 2.2.2 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/9] video: Deletion of checks before the function call "iounmap" 2015-01-19 17:54 ` [PATCH 0/9] video: fbdev: Deletion of some unnecessary checks SF Markus Elfring @ 2015-01-19 18:00 ` SF Markus Elfring 0 siblings, 0 replies; 7+ messages in thread From: SF Markus Elfring @ 2015-01-19 18:00 UTC (permalink / raw) To: Antonino Daplas, Ferenc Bakonyi, Hans de Goede, Helge Deller, James E. J. Bottomley, Jean-Christophe Plagniol-Villard, Kristoffer Ericson, Peter Jones, Tomi Valkeinen, linux-fbdev, linux-nvidia, linux-parisc Cc: LKML, kernel-janitors, Julia Lawall From: Markus Elfring <elfring@users.sourceforge.net> Date: Sun, 18 Jan 2015 22:45:39 +0100 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 <elfring@users.sourceforge.net> --- drivers/video/fbdev/aty/atyfb_base.c | 15 +++++---------- drivers/video/fbdev/cirrusfb.c | 3 +-- drivers/video/fbdev/controlfb.c | 6 ++---- drivers/video/fbdev/efifb.c | 3 +-- drivers/video/fbdev/hgafb.c | 3 +-- drivers/video/fbdev/hpfb.c | 3 +-- drivers/video/fbdev/i810/i810_main.c | 6 ++---- drivers/video/fbdev/macfb.c | 15 +++++---------- drivers/video/fbdev/offb.c | 3 +-- drivers/video/fbdev/pvr2fb.c | 3 +-- drivers/video/fbdev/s1d13xxxfb.c | 3 +-- drivers/video/fbdev/s3fb.c | 6 ++---- drivers/video/fbdev/sh_mobile_hdmi.c | 6 ++---- drivers/video/fbdev/sh_mobile_lcdcfb.c | 3 +-- drivers/video/fbdev/simplefb.c | 3 +-- drivers/video/fbdev/stifb.c | 3 +-- drivers/video/fbdev/tdfxfb.c | 6 ++---- drivers/video/fbdev/tgafb.c | 3 +-- drivers/video/fbdev/tridentfb.c | 6 ++---- drivers/video/fbdev/valkyriefb.c | 9 +++------ drivers/video/fbdev/vesafb.c | 6 ++---- drivers/video/fbdev/w100fb.c | 9 +++------ 22 files changed, 41 insertions(+), 82 deletions(-) diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index 37ec09b..0f4b147 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -3605,10 +3605,8 @@ err_release_io: #ifdef __sparc__ kfree(par->mmap_map); #else - if (par->ati_regbase) - iounmap(par->ati_regbase); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(par->ati_regbase); + iounmap(info->screen_base); #endif err_release_mem: if (par->aux_start) @@ -3733,13 +3731,10 @@ static void atyfb_remove(struct fb_info *info) } #endif #ifndef __sparc__ - if (par->ati_regbase) - iounmap(par->ati_regbase); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(par->ati_regbase); + iounmap(info->screen_base); #ifdef __BIG_ENDIAN - if (info->sprite.addr) - iounmap(info->sprite.addr); + iounmap(info->sprite.addr); #endif #endif #ifdef __sparc__ diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index d992aa5..d8b3359 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -2164,8 +2164,7 @@ err_release_regions: #endif pci_release_regions(pdev); err_release_fb: - if (cinfo->laguna_mmio != NULL) - iounmap(cinfo->laguna_mmio); + iounmap(cinfo->laguna_mmio); framebuffer_release(info); err_out: return ret; diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 080fdd2..d386fed 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -1068,10 +1068,8 @@ static void control_cleanup(void) if (!p) return; - if (p->cmap_regs) - iounmap(p->cmap_regs); - if (p->control_regs) - iounmap(p->control_regs); + iounmap(p->cmap_regs); + iounmap(p->control_regs); if (p->frame_buffer) { if (p->control_use_bank2) p->frame_buffer -= 0x600000; diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index 4bfff34..a6d08f0 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -65,8 +65,7 @@ static int efifb_setcolreg(unsigned regno, unsigned red, unsigned green, static void efifb_destroy(struct fb_info *info) { - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); if (request_mem_succeeded) release_mem_region(info->apertures->ranges[0].base, info->apertures->ranges[0].size); diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c index 5ff9fe2..76b231e 100644 --- a/drivers/video/fbdev/hgafb.c +++ b/drivers/video/fbdev/hgafb.c @@ -552,8 +552,7 @@ static int hgafb_probe(struct platform_device *pdev) if (! hga_card_detect()) { printk(KERN_INFO "hgafb: HGA card not detected.\n"); - if (hga_vram) - iounmap(hga_vram); + iounmap(hga_vram); return -EINVAL; } diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c index a1b7e5f..9b47102 100644 --- a/drivers/video/fbdev/hpfb.c +++ b/drivers/video/fbdev/hpfb.c @@ -355,8 +355,7 @@ static void hpfb_remove_one(struct dio_dev *d) iounmap((void *)fb_regs); release_mem_region(d->resource.start, resource_size(&d->resource)); fb_dealloc_cmap(&fb_info.cmap); - if (fb_info.screen_base) - iounmap(fb_info.screen_base); + iounmap(fb_info.screen_base); } static struct dio_device_id hpfb_dio_tbl[] = { diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index bb674e4..ce3a585 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -2105,10 +2105,8 @@ static void i810fb_release_resource(struct fb_info *info, if (par->i810_gtt.i810_fb_memory) agp_free_memory(gtt->i810_fb_memory); - if (par->mmio_start_virtual) - iounmap(par->mmio_start_virtual); - if (par->aperture.virtual) - iounmap(par->aperture.virtual); + iounmap(par->mmio_start_virtual); + iounmap(par->aperture.virtual); kfree(par->edid); if (par->res_flags & FRAMEBUFFER_REQ) release_mem_region(par->aperture.physical, diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index cda7587..dde0520 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -541,16 +541,11 @@ static void __init macfb_setup(char *options) static void __init iounmap_macfb(void) { - if (dafb_cmap_regs) - iounmap(dafb_cmap_regs); - if (v8_brazil_cmap_regs) - iounmap(v8_brazil_cmap_regs); - if (rbv_cmap_regs) - iounmap(rbv_cmap_regs); - if (civic_cmap_regs) - iounmap(civic_cmap_regs); - if (csc_cmap_regs) - iounmap(csc_cmap_regs); + iounmap(dafb_cmap_regs); + iounmap(v8_brazil_cmap_regs); + iounmap(rbv_cmap_regs); + iounmap(civic_cmap_regs); + iounmap(csc_cmap_regs); } static int __init macfb_init(void) diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c index 43a0a52..5efce99 100644 --- a/drivers/video/fbdev/offb.c +++ b/drivers/video/fbdev/offb.c @@ -281,8 +281,7 @@ static int offb_set_par(struct fb_info *info) static void offb_destroy(struct fb_info *info) { - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); release_mem_region(info->apertures->ranges[0].base, info->apertures->ranges[0].size); framebuffer_release(info); } diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 7c74f58..7aa4ef1 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -841,8 +841,7 @@ static int pvr2fb_common_init(void) return 0; out_err: - if (fb_info->screen_base) - iounmap(fb_info->screen_base); + iounmap(fb_info->screen_base); if (par->mmio_base) iounmap((void *)par->mmio_base); diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c index 83433cb..dff38b7 100644 --- a/drivers/video/fbdev/s1d13xxxfb.c +++ b/drivers/video/fbdev/s1d13xxxfb.c @@ -750,8 +750,7 @@ s1d13xxxfb_remove(struct platform_device *pdev) fb_dealloc_cmap(&info->cmap); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); framebuffer_release(info); } diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index f0ae61a..3d9d45f 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -1382,8 +1382,7 @@ err_find_mode: #ifdef CONFIG_FB_S3_DDC if (par->ddc_registered) i2c_del_adapter(&par->ddc_adapter); - if (par->mmio) - iounmap(par->mmio); + iounmap(par->mmio); #endif pci_iounmap(dev, info->screen_base); err_iomap: @@ -1419,8 +1418,7 @@ static void s3_pci_remove(struct pci_dev *dev) #ifdef CONFIG_FB_S3_DDC if (par->ddc_registered) i2c_del_adapter(&par->ddc_adapter); - if (par->mmio) - iounmap(par->mmio); + iounmap(par->mmio); #endif pci_iounmap(dev, info->screen_base); diff --git a/drivers/video/fbdev/sh_mobile_hdmi.c b/drivers/video/fbdev/sh_mobile_hdmi.c index 7c72a3f..2a7187d 100644 --- a/drivers/video/fbdev/sh_mobile_hdmi.c +++ b/drivers/video/fbdev/sh_mobile_hdmi.c @@ -1397,8 +1397,7 @@ static int __init sh_hdmi_probe(struct platform_device *pdev) ecodec: free_irq(irq, hdmi); ereqirq: - if (hdmi->htop1) - iounmap(hdmi->htop1); + iounmap(hdmi->htop1); emap_htop1: pm_runtime_put(&pdev->dev); pm_runtime_disable(&pdev->dev); @@ -1428,8 +1427,7 @@ static int __exit sh_hdmi_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); clk_disable_unprepare(hdmi->hdmi_clk); clk_put(hdmi->hdmi_clk); - if (hdmi->htop1) - iounmap(hdmi->htop1); + iounmap(hdmi->htop1); iounmap(hdmi->base); release_mem_region(res->start, resource_size(res)); diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c index d3013cd..4f9a25b 100644 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c @@ -2489,8 +2489,7 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev) clk_put(priv->dot_clk); } - if (priv->base) - iounmap(priv->base); + iounmap(priv->base); if (priv->irq) free_irq(priv->irq, priv); diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c index 92cac80..40e6b33 100644 --- a/drivers/video/fbdev/simplefb.c +++ b/drivers/video/fbdev/simplefb.c @@ -72,8 +72,7 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, static void simplefb_destroy(struct fb_info *info) { - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); } static struct fb_ops simplefb_ops = { diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index 86621fa..ea12305 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -1374,8 +1374,7 @@ stifb_cleanup(void) unregister_framebuffer(sti->info); release_mem_region(info->fix.mmio_start, info->fix.mmio_len); release_mem_region(info->fix.smem_start, info->fix.smem_len); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); fb_dealloc_cmap(&info->cmap); framebuffer_release(info); } diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index f761fe3..69d4062 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1572,15 +1572,13 @@ out_err_iobase: release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2)); out_err_screenbase: - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); release_mem_region(info->fix.smem_start, pci_resource_len(pdev, 1)); out_err_regbase: /* * Cleanup after anything that was remapped/allocated. */ - if (default_par->regbase_virt) - iounmap(default_par->regbase_virt); + iounmap(default_par->regbase_virt); release_mem_region(info->fix.mmio_start, info->fix.mmio_len); out_err: framebuffer_release(info); diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 65ba992..b6fb7e8 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -1520,8 +1520,7 @@ static int tgafb_register(struct device *dev) err2: fb_dealloc_cmap(&info->cmap); err1: - if (mem_base) - iounmap(mem_base); + iounmap(mem_base); release_mem_region(bar0_start, bar0_len); err0: framebuffer_release(info); diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index 7ed9a22..71567401 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -1531,13 +1531,11 @@ static int trident_pci_probe(struct pci_dev *dev, out_unmap2: kfree(info->pixmap.addr); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); release_mem_region(tridentfb_fix.smem_start, tridentfb_fix.smem_len); disable_mmio(info->par); out_unmap1: - if (default_par->io_virt) - iounmap(default_par->io_virt); + iounmap(default_par->io_virt); release_mem_region(tridentfb_fix.mmio_start, tridentfb_fix.mmio_len); framebuffer_release(info); return err; diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index 275fb98..2a9213b 100644 --- a/drivers/video/fbdev/valkyriefb.c +++ b/drivers/video/fbdev/valkyriefb.c @@ -400,12 +400,9 @@ int __init valkyriefb_init(void) out_cmap_free: fb_dealloc_cmap(&p->info.cmap); out_free: - if (p->frame_buffer) - iounmap(p->frame_buffer); - if (p->cmap_regs) - iounmap(p->cmap_regs); - if (p->valkyrie_regs) - iounmap(p->valkyrie_regs); + iounmap(p->frame_buffer); + iounmap(p->cmap_regs); + iounmap(p->valkyrie_regs); kfree(p); return err; } diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c index d79a0ac..693d18e 100644 --- a/drivers/video/fbdev/vesafb.c +++ b/drivers/video/fbdev/vesafb.c @@ -176,8 +176,7 @@ static int vesafb_setcolreg(unsigned regno, unsigned red, unsigned green, static void vesafb_destroy(struct fb_info *info) { fb_dealloc_cmap(&info->cmap); - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); release_mem_region(info->apertures->ranges[0].base, info->apertures->ranges[0].size); } @@ -492,8 +491,7 @@ static int vesafb_probe(struct platform_device *dev) fb_info(info, "%s frame buffer device\n", info->fix.id); return 0; err: - if (info->screen_base) - iounmap(info->screen_base); + iounmap(info->screen_base); framebuffer_release(info); release_mem_region(vesafb_fix.smem_start, size_total); return err; diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 10951c8..aeb53eb 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -770,12 +770,9 @@ out: fb_dealloc_cmap(&info->cmap); kfree(info->pseudo_palette); } - if (remapped_fbuf != NULL) - iounmap(remapped_fbuf); - if (remapped_regs != NULL) - iounmap(remapped_regs); - if (remapped_base != NULL) - iounmap(remapped_base); + iounmap(remapped_fbuf); + iounmap(remapped_regs); + iounmap(remapped_base); if (info) framebuffer_release(info); return err; -- 2.2.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-10-26 12:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5307CAA2.8060406@users.sourceforge.net>
[not found] ` <alpine.DEB.2.02.1402212321410.2043@localhost6.localdomain6>
[not found] ` <530A086E.8010901@users.sourceforge.net>
[not found] ` <alpine.DEB.2.02.1402231635510.1985@localhost6.localdomain6>
[not found] ` <530A72AA.3000601@users.sourceforge.net>
[not found] ` <alpine.DEB.2.02.1402240658210.2090@localhost6.localdomain6>
[not found] ` <530B5FB6.6010207@users.sourceforge.net>
[not found] ` <alpine.DEB.2.10.1402241710370.2074@hadrien>
[not found] ` <530C5E18.1020800@users.sourceforge.net>
[not found] ` <alpine.DEB.2.10.1402251014170.2080@hadrien>
[not found] ` <530CD2C4.4050903@users.sourceforge.net>
[not found] ` <alpine.DEB.2.10.1402251840450.7035@hadrien>
[not found] ` <530CF8FF.8080600@users.sourceforge.net>
[not found] ` <alpine.DEB.2.02.1402252117150.2047@localhost6.localdomain6>
[not found] ` <530DD06F.4090703@users.sourceforge.net>
[not found] ` <alpine.DEB.2.02.1402262129250.2221@localhost6.localdomain6>
[not found] ` <5317A59D.4@users.sourceforge.net>
[not found] ` <54A9355F.4050102@users.sourceforge.net>
2015-01-04 13:36 ` [PATCH 11/13] ALSA: Deletion of checks before the function call "iounmap" SF Markus Elfring
2015-01-05 13:58 ` Dan Carpenter
2016-10-26 12:26 ` Dan Carpenter
2016-10-26 12:28 ` Johannes Berg
2016-10-26 12:42 ` Dan Carpenter
2015-01-19 17:54 ` [PATCH 0/9] video: fbdev: Deletion of some unnecessary checks SF Markus Elfring
2015-01-19 18:00 ` [PATCH 1/9] video: Deletion of checks before the function call "iounmap" SF Markus Elfring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox