835f2f51 (staging: zcache: enable zcache to be built/loaded as a module) introduced in 3.10-rc1 has introduced a bug for zcache=FOO module parameter processing.
zcache_comp_init return code doesn't agree with crypto_has_comp which uses 1 for the success unlike zcache_comp_init which uses 0. This causes module loading failure even if the given algorithm is supported: [ 0.815330] zcache: compressor initialization failed Reported-by: Cristian RodrÃguez <[email protected]> Signed-off-by: Michal Hocko <[email protected]> --- drivers/staging/zcache/zcache-main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c index dcceed2..0fe530b 100644 --- a/drivers/staging/zcache/zcache-main.c +++ b/drivers/staging/zcache/zcache-main.c @@ -1811,10 +1811,12 @@ static int zcache_comp_init(void) #else if (*zcache_comp_name != '\0') { ret = crypto_has_comp(zcache_comp_name, 0, 0); - if (!ret) + if (!ret) { pr_info("zcache: %s not supported\n", zcache_comp_name); - goto out; + goto out; + } + goto out_alloc; } if (!ret) strcpy(zcache_comp_name, "lzo"); @@ -1827,6 +1829,7 @@ static int zcache_comp_init(void) pr_info("zcache: using %s compressor\n", zcache_comp_name); /* alloc percpu transforms */ +out_alloc: ret = 0; zcache_comp_pcpu_tfms = alloc_percpu(struct crypto_comp *); if (!zcache_comp_pcpu_tfms) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

