lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri,  6 Jul 2018 15:09:02 +0200
From:   Arnd Bergmann <arnd@...db.de>
To:     Minchan Kim <minchan@...nel.org>, Nitin Gupta <ngupta@...are.org>
Cc:     Colin Ian King <colin.king@...onical.com>,
        Arnd Bergmann <arnd@...db.de>,
        Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Nick Desaulniers <nick.desaulniers@...il.com>,
        linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: [PATCH] zmalloc: hide unused lock_zspage

Making lock_zspage() static revealed that it is unused in some confiurations:

mm/zsmalloc.c:931:13: error: 'lock_zspage' defined but not used [-Werror=unused-function]

I considered moving it into the same #ifdef that hides its user, but
it seems better to keep it close to trylock_zspage() etc, so this
marks it __maybe_unused() to let the compiler drop it without warning
about it.

Fixes: 0de664ada6b6 ("mm/zsmalloc.c: make several functions and a struct static")
Signed-off-by: Arnd Bergmann <arnd@...db.de>
---
 mm/zsmalloc.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 900bea99452a..58886d40786b 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -924,19 +924,6 @@ static void reset_page(struct page *page)
 	page->freelist = NULL;
 }
 
-/*
- * To prevent zspage destroy during migration, zspage freeing should
- * hold locks of all pages in the zspage.
- */
-static void lock_zspage(struct zspage *zspage)
-{
-	struct page *page = get_first_page(zspage);
-
-	do {
-		lock_page(page);
-	} while ((page = get_next_page(page)) != NULL);
-}
-
 static int trylock_zspage(struct zspage *zspage)
 {
 	struct page *cursor, *fail;
@@ -1814,6 +1801,19 @@ static enum fullness_group putback_zspage(struct size_class *class,
 }
 
 #ifdef CONFIG_COMPACTION
+/*
+ * To prevent zspage destroy during migration, zspage freeing should
+ * hold locks of all pages in the zspage.
+ */
+static void lock_zspage(struct zspage *zspage)
+{
+	struct page *page = get_first_page(zspage);
+
+	do {
+		lock_page(page);
+	} while ((page = get_next_page(page)) != NULL);
+}
+
 static struct dentry *zs_mount(struct file_system_type *fs_type,
 			       int flags, const char *dev_name,
 			       void *data, size_t data_size)
-- 
2.9.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ