Commit 2ba8c15c authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[ALSA] Removed unneeded page-reserve



Modules: Memalloc module

Removed unneeded page-reservation.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ea50888d
Loading
Loading
Loading
Loading
+2 −30
Original line number Diff line number Diff line
@@ -141,10 +141,6 @@ static void *snd_dma_hack_alloc_coherent(struct device *dev, size_t size,

#endif /* arch */

#if ! defined(__arm__)
#define NEED_RESERVE_PAGES
#endif

/*
 *
 *  Generic memory allocators
@@ -163,20 +159,6 @@ static inline void dec_snd_pages(int order)
	snd_allocated_pages -= 1 << order;
}

static void mark_pages(struct page *page, int order)
{
	struct page *last_page = page + (1 << order);
	while (page < last_page)
		SetPageReserved(page++);
}

static void unmark_pages(struct page *page, int order)
{
	struct page *last_page = page + (1 << order);
	while (page < last_page)
		ClearPageReserved(page++);
}

/**
 * snd_malloc_pages - allocate pages with the given size
 * @size: the size to allocate in bytes
@@ -195,10 +177,8 @@ void *snd_malloc_pages(size_t size, gfp_t gfp_flags)
	snd_assert(gfp_flags != 0, return NULL);
	gfp_flags |= __GFP_COMP;	/* compound page lets parts be mapped */
	pg = get_order(size);
	if ((res = (void *) __get_free_pages(gfp_flags, pg)) != NULL) {
		mark_pages(virt_to_page(res), pg);
	if ((res = (void *) __get_free_pages(gfp_flags, pg)) != NULL)
		inc_snd_pages(pg);
	}
	return res;
}

@@ -217,7 +197,6 @@ void snd_free_pages(void *ptr, size_t size)
		return;
	pg = get_order(size);
	dec_snd_pages(pg);
	unmark_pages(virt_to_page(ptr), pg);
	free_pages((unsigned long) ptr, pg);
}

@@ -242,12 +221,8 @@ static void *snd_malloc_dev_pages(struct device *dev, size_t size, dma_addr_t *d
		| __GFP_NORETRY /* don't trigger OOM-killer */
		| __GFP_NOWARN; /* no stack trace print - this call is non-critical */
	res = dma_alloc_coherent(dev, PAGE_SIZE << pg, dma, gfp_flags);
	if (res != NULL) {
#ifdef NEED_RESERVE_PAGES
		mark_pages(virt_to_page(res), pg); /* should be dma_to_page() */
#endif
	if (res != NULL)
		inc_snd_pages(pg);
	}

	return res;
}
@@ -262,9 +237,6 @@ static void snd_free_dev_pages(struct device *dev, size_t size, void *ptr,
		return;
	pg = get_order(size);
	dec_snd_pages(pg);
#ifdef NEED_RESERVE_PAGES
	unmark_pages(virt_to_page(ptr), pg); /* should be dma_to_page() */
#endif
	dma_free_coherent(dev, PAGE_SIZE << pg, ptr, dma);
}