From: Dan Carpenter <dan.carpenter@oracle.com>
To: minchan@kernel.org
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
linux-mm@kvack.org
Subject: re: mm: add NR_ZSMALLOC to vmstat
Date: Mon, 6 Jun 2016 23:05:38 +0300 [thread overview]
Message-ID: <20160606200538.GA31983@mwanda> (raw)
Hello Minchan Kim,
The patch b37284200b39: "mm: add NR_ZSMALLOC to vmstat" from Jun 5,
2016, leads to the following static checker warning:
mm/zsmalloc.c:1155 alloc_zspage()
error: we previously assumed 'page' could be null (see line 1152)
mm/zsmalloc.c
1130 /*
1131 * Allocate a zspage for the given size class
1132 */
1133 static struct zspage *alloc_zspage(struct zs_pool *pool,
1134 struct size_class *class,
1135 gfp_t gfp)
1136 {
1137 int i;
1138 struct page *pages[ZS_MAX_PAGES_PER_ZSPAGE];
1139 struct zspage *zspage = cache_alloc_zspage(pool, gfp);
1140
1141 if (!zspage)
1142 return NULL;
1143
1144 memset(zspage, 0, sizeof(struct zspage));
1145 zspage->magic = ZSPAGE_MAGIC;
1146 migrate_lock_init(zspage);
1147
1148 for (i = 0; i < class->pages_per_zspage; i++) {
1149 struct page *page;
1150
1151 page = alloc_page(gfp);
1152 if (!page) {
^^^^
1153 while (--i >= 0) {
1154 __free_page(pages[i]);
1155 dec_zone_page_state(page, NR_ZSMALLOC);
^^^^
Potential NULL deref inside function call.
1156 }
1157 cache_free_zspage(pool, zspage);
1158 return NULL;
1159 }
1160
1161 inc_zone_page_state(page, NR_ZSMALLOC);
1162 pages[i] = page;
1163 }
1164
1165 create_page_chain(class, zspage, pages);
1166 init_zspage(class, zspage);
1167
1168 return zspage;
1169 }
regards,
dan carpenter
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2016-06-06 20:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-06 20:05 Dan Carpenter [this message]
2016-06-07 2:21 ` mm: add NR_ZSMALLOC to vmstat Minchan Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160606200538.GA31983@mwanda \
--to=dan.carpenter@oracle.com \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=sergey.senozhatsky.work@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.