staging: zsmalloc: Finish conversion to a separate module
ZSMALLOC is tristate, but the code has no MODULE_LICENSE and since it depends on GPL-only symbols it cannot be loaded as a module. This in turn breaks zram which now depends on it. I assume it's meant to be Dual BSD/GPL like the other z-stuff. There is also no module_exit, which will make it impossible to unload. Add the appropriate module_init and module_exit declarations suggested by comments. Reported-by: Christian Ohm <chr.ohm@gmx.net> References: http://bugs.debian.org/677273 Cc: stable@vger.kernel.org # v3.4 Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2f0f8e6a21
commit
069f101fa4
1 changed files with 7 additions and 26 deletions
|
@ -471,12 +471,6 @@ static struct page *find_get_zspage(struct size_class *class)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* If this becomes a separate module, register zs_init() with
|
||||
* module_init(), zs_exit with module_exit(), and remove zs_initialized
|
||||
*/
|
||||
static int zs_initialized;
|
||||
|
||||
static int zs_cpu_notifier(struct notifier_block *nb, unsigned long action,
|
||||
void *pcpu)
|
||||
{
|
||||
|
@ -535,7 +529,7 @@ static int zs_init(void)
|
|||
|
||||
struct zs_pool *zs_create_pool(const char *name, gfp_t flags)
|
||||
{
|
||||
int i, error, ovhd_size;
|
||||
int i, ovhd_size;
|
||||
struct zs_pool *pool;
|
||||
|
||||
if (!name)
|
||||
|
@ -562,28 +556,9 @@ struct zs_pool *zs_create_pool(const char *name, gfp_t flags)
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
* If this becomes a separate module, register zs_init with
|
||||
* module_init, and remove this block
|
||||
*/
|
||||
if (!zs_initialized) {
|
||||
error = zs_init();
|
||||
if (error)
|
||||
goto cleanup;
|
||||
zs_initialized = 1;
|
||||
}
|
||||
|
||||
pool->flags = flags;
|
||||
pool->name = name;
|
||||
|
||||
error = 0; /* Success */
|
||||
|
||||
cleanup:
|
||||
if (error) {
|
||||
zs_destroy_pool(pool);
|
||||
pool = NULL;
|
||||
}
|
||||
|
||||
return pool;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(zs_create_pool);
|
||||
|
@ -799,3 +774,9 @@ u64 zs_get_total_size_bytes(struct zs_pool *pool)
|
|||
return npages << PAGE_SHIFT;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(zs_get_total_size_bytes);
|
||||
|
||||
module_init(zs_init);
|
||||
module_exit(zs_exit);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_AUTHOR("Nitin Gupta <ngupta@vflare.org>");
|
||||
|
|
Loading…
Reference in a new issue