2013-06-27 15:17:55

by Seth Jennings

[permalink] [raw]
Subject: [RESEND][PATCH] zswap: fix Kconfig to depend on CRYPTO=y

The Kconfig entry for zswap currently allows CRYPTO=m to satisfy the
zswap dependency. However zswap is boolean (i.e. built-in) and has
symbol dependencies on CRYPTO. Additionally, because the CRYPTO dependency
is satisfied with =m, the additional selects zswap does can also
be satisfied with =m, which leads to additional linking errors.

>From the report:
=====
tree: git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-3.9
head: 57cefddb141d6c9d0ab4f5a8589dd017f796a3f7
commit: 563f51c95b552e0d663df5bdf6cfc8e8a72d3ec6 [494/499] zswap: add to mm/
config: x86_64-randconfig-x004-0619 (attached as .config)

All error/warnings:

mm/built-in.o: In function `zswap_frontswap_invalidate_area':
>> zswap.c:(.text+0x3a705): undefined reference to `zbud_free'
mm/built-in.o: In function `zswap_free_entry':
>> zswap.c:(.text+0x3a76b): undefined reference to `zbud_free'
>> zswap.c:(.text+0x3a789): undefined reference to `zbud_get_pool_size'
on and on...
=====

This patch makes CRYPTO a built-in dependency of ZSWAP. This has the
side effect of also making the selects built-in.

Signed-off-by: Seth Jennings <[email protected]>
Reported-by: Fengguang Wu <[email protected]>
---

Andrew, please merge this into your mmotm ASAP as it fixes a demonstrable
build break.

mm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/Kconfig b/mm/Kconfig
index 949e8de..81763ae 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -490,7 +490,7 @@ config ZBUD

config ZSWAP
bool "Compressed cache for swap pages (EXPERIMENTAL)"
- depends on FRONTSWAP && CRYPTO
+ depends on FRONTSWAP && CRYPTO=y
select CRYPTO_LZO
select ZBUD
default n
--
1.8.3.1