From: Takashi Iwai Date: Tue, 17 Jun 2008 14:30:27 +0000 (+0200) Subject: ALSA: emu10k1 - simplify the last fix X-Git-Tag: v2.6.27-rc1~1111^2~72 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=284373059f9605442cac6453780f6aaecf9abac1;p=linux-2.6 ALSA: emu10k1 - simplify the last fix Clean up the previous commit for fixing memory leaks. Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c index 759e29f894..7d379f5131 100644 --- a/sound/pci/emu10k1/memory.c +++ b/sound/pci/emu10k1/memory.c @@ -465,15 +465,12 @@ static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk struct page *p = alloc_page(GFP_KERNEL | GFP_DMA32 | __GFP_NOWARN); if (!p || (page_to_pfn(p) & ~(emu->dma_mask >> PAGE_SHIFT))) { + if (p) + __free_page(p); /* try to allocate from <16MB zone */ - struct page *p1 = - alloc_page(GFP_ATOMIC | GFP_DMA | + p = alloc_page(GFP_ATOMIC | GFP_DMA | __GFP_NORETRY | /* no OOM-killer */ __GFP_NOWARN); - /* free page outside dma_mask range */ - if (p) - free_page((unsigned long)page_address(p)); - p = p1; } if (!p) { __synth_free_pages(emu, first_page, page - 1);