1
0
Fork 0

jfs: microoptimize get_zeroed_page / virt_to_page

get_zeroed_page does alloc_page and returns page_address of the result;
subsequent virt_to_page will recover the page, but since the caller
needs both page and its page_address() anyway, why bother going through
that wrapper at all?

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
steinar/wifi_calib_4_9_kernel
Al Viro 2016-01-02 14:22:04 -05:00
parent 222e4adec5
commit 76e8d7cb71
1 changed files with 4 additions and 5 deletions

View File

@ -1835,17 +1835,16 @@ static int lbmLogInit(struct jfs_log * log)
for (i = 0; i < LOGPAGES;) {
char *buffer;
uint offset;
struct page *page;
struct page *page = alloc_page(GFP_KERNEL | __GFP_ZERO);
buffer = (char *) get_zeroed_page(GFP_KERNEL);
if (buffer == NULL)
if (!page)
goto error;
page = virt_to_page(buffer);
buffer = page_address(page);
for (offset = 0; offset < PAGE_SIZE; offset += LOGPSIZE) {
lbuf = kmalloc(sizeof(struct lbuf), GFP_KERNEL);
if (lbuf == NULL) {
if (offset == 0)
free_page((unsigned long) buffer);
__free_page(page);
goto error;
}
if (offset) /* we already have one reference */