Merge tag 'for-linus' of git://github.com/rustyrussell/linux
Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 * tag 'for-linus' of git://github.com/rustyrussell/linux: module_param: check that bool parameters really are bool. intelfbdrv.c: bailearly is an int module_param paride/pcd: fix bool verbose module parameter. module_param: make bool parameters really bool (drivers & misc) module_param: make bool parameters really bool (arch) module_param: make bool parameters really bool (core code) kernel/async: remove redundant declaration. printk: fix unnecessary module_param_name. lirc_parallel: fix module parameter description. module_param: avoid bool abuse, add bint for special cases. module_param: check type correctness for module_param_array modpost: use linker section to generate table. modpost: use a table rather than a giant if/else statement. modules: sysfs - export: taint, coresize, initsize kernel/params: replace DEBUGP with pr_debug module: replace DEBUGP with pr_debug module: struct module_ref should contains long fields module: Fix performance regression on modules with large symbol tables module: Add comments describing how the "strmap" logic works Fix up conflicts in scripts/mod/file2alias.c due to the new linker- generated table approach to adding __mod_*_device_table entries. The ARM sa11x0 mcp bus needed to be converted to that too.
This commit is contained in:
@@ -152,7 +152,7 @@ extern int braille_register_console(struct console *, int index,
|
||||
char *console_options, char *braille_options);
|
||||
extern int braille_unregister_console(struct console *);
|
||||
extern void console_sysfs_notify(void);
|
||||
extern int console_suspend_enabled;
|
||||
extern bool console_suspend_enabled;
|
||||
|
||||
/* Suspend and resume console messages over PM events */
|
||||
extern void suspend_console(void);
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#define _LINUX_INIT_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/* These macros are used to mark some functions or
|
||||
* initialized data (doesn't apply to uninitialized data)
|
||||
@@ -156,7 +157,7 @@ void prepare_namespace(void);
|
||||
|
||||
extern void (*late_time_init)(void);
|
||||
|
||||
extern int initcall_debug;
|
||||
extern bool initcall_debug;
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -195,7 +195,7 @@ extern struct svc_procedure nlmsvc_procedures4[];
|
||||
#endif
|
||||
extern int nlmsvc_grace_period;
|
||||
extern unsigned long nlmsvc_timeout;
|
||||
extern int nsm_use_hostnames;
|
||||
extern bool nsm_use_hostnames;
|
||||
extern u32 nsm_local_state;
|
||||
|
||||
/*
|
||||
|
@@ -417,7 +417,7 @@ static inline void mmc_set_disable_delay(struct mmc_host *host,
|
||||
}
|
||||
|
||||
/* Module parameter */
|
||||
extern int mmc_assume_removable;
|
||||
extern bool mmc_assume_removable;
|
||||
|
||||
static inline int mmc_card_is_removable(struct mmc_host *host)
|
||||
{
|
||||
|
@@ -205,6 +205,20 @@ enum module_state
|
||||
MODULE_STATE_GOING,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct module_ref - per cpu module reference counts
|
||||
* @incs: number of module get on this cpu
|
||||
* @decs: number of module put on this cpu
|
||||
*
|
||||
* We force an alignment on 8 or 16 bytes, so that alloc_percpu()
|
||||
* put @incs/@decs in same cache line, with no extra memory cost,
|
||||
* since alloc_percpu() is fine grained.
|
||||
*/
|
||||
struct module_ref {
|
||||
unsigned long incs;
|
||||
unsigned long decs;
|
||||
} __attribute((aligned(2 * sizeof(unsigned long))));
|
||||
|
||||
struct module
|
||||
{
|
||||
enum module_state state;
|
||||
@@ -347,10 +361,7 @@ struct module
|
||||
/* Destruction function. */
|
||||
void (*exit)(void);
|
||||
|
||||
struct module_ref {
|
||||
unsigned int incs;
|
||||
unsigned int decs;
|
||||
} __percpu *refptr;
|
||||
struct module_ref __percpu *refptr;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CONSTRUCTORS
|
||||
@@ -434,7 +445,7 @@ extern void __module_put_and_exit(struct module *mod, long code)
|
||||
#define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code);
|
||||
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
unsigned int module_refcount(struct module *mod);
|
||||
unsigned long module_refcount(struct module *mod);
|
||||
void __symbol_put(const char *symbol);
|
||||
#define symbol_put(x) __symbol_put(MODULE_SYMBOL_PREFIX #x)
|
||||
void symbol_put_addr(void *addr);
|
||||
|
@@ -350,23 +350,23 @@ extern int param_set_charp(const char *val, const struct kernel_param *kp);
|
||||
extern int param_get_charp(char *buffer, const struct kernel_param *kp);
|
||||
#define param_check_charp(name, p) __param_check(name, p, char *)
|
||||
|
||||
/* For historical reasons "bool" parameters can be (unsigned) "int". */
|
||||
/* We used to allow int as well as bool. We're taking that away! */
|
||||
extern struct kernel_param_ops param_ops_bool;
|
||||
extern int param_set_bool(const char *val, const struct kernel_param *kp);
|
||||
extern int param_get_bool(char *buffer, const struct kernel_param *kp);
|
||||
#define param_check_bool(name, p) \
|
||||
static inline void __check_##name(void) \
|
||||
{ \
|
||||
BUILD_BUG_ON(!__same_type((p), bool *) && \
|
||||
!__same_type((p), unsigned int *) && \
|
||||
!__same_type((p), int *)); \
|
||||
}
|
||||
#define param_check_bool(name, p) __param_check(name, p, bool)
|
||||
|
||||
extern struct kernel_param_ops param_ops_invbool;
|
||||
extern int param_set_invbool(const char *val, const struct kernel_param *kp);
|
||||
extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
|
||||
#define param_check_invbool(name, p) __param_check(name, p, bool)
|
||||
|
||||
/* An int, which can only be set like a bool (though it shows as an int). */
|
||||
extern struct kernel_param_ops param_ops_bint;
|
||||
extern int param_set_bint(const char *val, const struct kernel_param *kp);
|
||||
#define param_get_bint param_get_int
|
||||
#define param_check_bint param_check_int
|
||||
|
||||
/**
|
||||
* module_param_array - a parameter which is an array of some type
|
||||
* @name: the name of the array variable
|
||||
@@ -395,6 +395,7 @@ extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
|
||||
* module_param_named() for why this might be necessary.
|
||||
*/
|
||||
#define module_param_array_named(name, array, type, nump, perm) \
|
||||
param_check_##type(name, &(array)[0]); \
|
||||
static const struct kparam_array __param_arr_##name \
|
||||
= { .max = ARRAY_SIZE(array), .num = nump, \
|
||||
.ops = ¶m_ops_##type, \
|
||||
|
Reference in New Issue
Block a user