Commit df1deb67532ea26f1a033a5f48bf34b30bec8e1d
Committed by
Jaroslav Kysela
1 parent
1005f66fd7
Exists in
master
and in
39 other branches
[ALSA] sound/core/memalloc.c: Add missing pci_dev_put
There should be a pci_dev_put when breaking out of a loop that iterates over calls to pci_get_device and similar functions. In this case, the return under the initial if needs a pci_dev_put in the same way that the return under the subsequent for loop has a pci_dev_put. This was fixed using the following semantic patch. // <smpl> @@ type T; identifier d; expression e; @@ T *d; ... while ((d = \(pci_get_device\|pci_get_device_reverse\|pci_get_subsys\|pci_get_class\)(..., d)) != NULL) {... when != pci_dev_put(d) when != e = d ( return d; | + pci_dev_put(d); ? return ...; ) ...} // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Showing 1 changed file with 1 additions and 0 deletions Side-by-side Diff
sound/core/memalloc.c
... | ... | @@ -568,6 +568,7 @@ |
568 | 568 | if (pci_set_dma_mask(pci, mask) < 0 || |
569 | 569 | pci_set_consistent_dma_mask(pci, mask) < 0) { |
570 | 570 | printk(KERN_ERR "snd-page-alloc: cannot set DMA mask %lx for pci %04x:%04x\n", mask, vendor, device); |
571 | + pci_dev_put(pci); | |
571 | 572 | return count; |
572 | 573 | } |
573 | 574 | } |