Clean up the previous commit for fixing memory leaks.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
                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);