forked from luck/tmp_suning_uos_patched
You'll get a merge issue on Documentation/module-signing.txt: the one in
your tree is more recent, so ignore mine please. Cheers, Rusty. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIcBAABAgAGBQJS4IBbAAoJENkgDmzRrbjxvv4QAJRyid7F0kMMaImqNtLw+8Sc 9QouX5nE0pt9VIDVs0v3JaJVcJrFrML498DaWM8yi1M4l11EIgWH0GYJ2DLHt3yf F9AGNmwZRzSJnPVyG7HWOlMbqycwh95P3ldJ3NmGClI++BKI/Qn9ffa/hdy7O+1E y7K0TWQQmG1HgIA7BVY491bzQTiUtelqrKShup0TQ6hRYYESs1g+JOClQgeGiFLG Q3JInsYjc7mOtijdfivln4sZKbZjW8oP1Sud/3FrXfLEyS6WiZPDSE82H17ZpZrc q+tlGXziXLJKo8G3jcjCDGvM0GsMDZZe5LJQ7Ax28K73I0o9N7JTbC1cePBg3AWz YW7tWS3DQ9aNfQOum6aCFv9Nu9RadsIVOqMCDdlULbe7fCtK0PeIBxdgLZQOBauM Z5+fCwtfiW6VASnz+UFo+n6V5yzmOEsJToem1a8+UySnlKuO+NkdACBOhCxfditj 5nfOmj1rwoTKacc0jqTZ1twVBfVDSa3PYEqFf9e9DYx17ZjKEFZ0FV9NRX3EZnaN n5Z/Pw+jWMDL1FXFBMNfHUpfmq1spAul+h2+OMMc7+91v1TmRI4Xbeu1jWJeYv+S 0woqfOEHhB+0a6vgxhsXg2SWkyTGHGq/UdX0J4tvN2txKwde8zi2f2TIDdyDhSw9 YWghWp9FuiEuKJ8UgRX5 =9fZu -----END PGP SIGNATURE----- Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module updates from Rusty Russell. * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: module: Add missing newline in printk call. module: fix coding style export: declare ksymtab symbols module.h: Remove unnecessary semicolon params: improve standard definitions Add Documentation/module-signing.txt file
This commit is contained in:
commit
0dc3fd0249
|
@ -59,6 +59,7 @@ extern struct module __this_module;
|
|||
static const char __kstrtab_##sym[] \
|
||||
__attribute__((section("__ksymtab_strings"), aligned(1))) \
|
||||
= VMLINUX_SYMBOL_STR(sym); \
|
||||
extern const struct kernel_symbol __ksymtab_##sym; \
|
||||
__visible const struct kernel_symbol __ksymtab_##sym \
|
||||
__used \
|
||||
__attribute__((section("___ksymtab" sec "+" #sym), unused)) \
|
||||
|
|
|
@ -29,8 +29,7 @@
|
|||
|
||||
#define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN
|
||||
|
||||
struct modversion_info
|
||||
{
|
||||
struct modversion_info {
|
||||
unsigned long crc;
|
||||
char name[MODULE_NAME_LEN];
|
||||
};
|
||||
|
@ -146,18 +145,20 @@ extern const struct gtype##_id __mod_##gtype##_table \
|
|||
MODULE_GENERIC_TABLE(type##_device, name)
|
||||
|
||||
/* Version of form [<epoch>:]<version>[-<extra-version>].
|
||||
Or for CVS/RCS ID version, everything but the number is stripped.
|
||||
<epoch>: A (small) unsigned integer which allows you to start versions
|
||||
anew. If not mentioned, it's zero. eg. "2:1.0" is after
|
||||
"1:2.0".
|
||||
<version>: The <version> may contain only alphanumerics and the
|
||||
character `.'. Ordered by numeric sort for numeric parts,
|
||||
ascii sort for ascii parts (as per RPM or DEB algorithm).
|
||||
<extraversion>: Like <version>, but inserted for local
|
||||
customizations, eg "rh3" or "rusty1".
|
||||
* Or for CVS/RCS ID version, everything but the number is stripped.
|
||||
* <epoch>: A (small) unsigned integer which allows you to start versions
|
||||
* anew. If not mentioned, it's zero. eg. "2:1.0" is after
|
||||
* "1:2.0".
|
||||
|
||||
Using this automatically adds a checksum of the .c files and the
|
||||
local headers in "srcversion".
|
||||
* <version>: The <version> may contain only alphanumerics and the
|
||||
* character `.'. Ordered by numeric sort for numeric parts,
|
||||
* ascii sort for ascii parts (as per RPM or DEB algorithm).
|
||||
|
||||
* <extraversion>: Like <version>, but inserted for local
|
||||
* customizations, eg "rh3" or "rusty1".
|
||||
|
||||
* Using this automatically adds a checksum of the .c files and the
|
||||
* local headers in "srcversion".
|
||||
*/
|
||||
|
||||
#if defined(MODULE) || !defined(CONFIG_SYSFS)
|
||||
|
@ -226,8 +227,7 @@ struct module_ref {
|
|||
unsigned long decs;
|
||||
} __attribute((aligned(2 * sizeof(unsigned long))));
|
||||
|
||||
struct module
|
||||
{
|
||||
struct module {
|
||||
enum module_state state;
|
||||
|
||||
/* Member of list of modules */
|
||||
|
@ -451,7 +451,7 @@ int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *,
|
|||
|
||||
extern void __module_put_and_exit(struct module *mod, long code)
|
||||
__attribute__((noreturn));
|
||||
#define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code);
|
||||
#define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code)
|
||||
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
unsigned long module_refcount(struct module *mod);
|
||||
|
|
|
@ -815,10 +815,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
|
|||
return -EFAULT;
|
||||
name[MODULE_NAME_LEN-1] = '\0';
|
||||
|
||||
if (!(flags & O_NONBLOCK)) {
|
||||
printk(KERN_WARNING
|
||||
"waiting module removal not supported: please upgrade");
|
||||
}
|
||||
if (!(flags & O_NONBLOCK))
|
||||
pr_warn("waiting module removal not supported: please upgrade\n");
|
||||
|
||||
if (mutex_lock_interruptible(&module_mutex) != 0)
|
||||
return -EINTR;
|
||||
|
|
|
@ -227,17 +227,10 @@ int parse_args(const char *doing,
|
|||
}
|
||||
|
||||
/* Lazy bastard, eh? */
|
||||
#define STANDARD_PARAM_DEF(name, type, format, tmptype, strtolfn) \
|
||||
#define STANDARD_PARAM_DEF(name, type, format, strtolfn) \
|
||||
int param_set_##name(const char *val, const struct kernel_param *kp) \
|
||||
{ \
|
||||
tmptype l; \
|
||||
int ret; \
|
||||
\
|
||||
ret = strtolfn(val, 0, &l); \
|
||||
if (ret < 0 || ((type)l != l)) \
|
||||
return ret < 0 ? ret : -EINVAL; \
|
||||
*((type *)kp->arg) = l; \
|
||||
return 0; \
|
||||
return strtolfn(val, 0, (type *)kp->arg); \
|
||||
} \
|
||||
int param_get_##name(char *buffer, const struct kernel_param *kp) \
|
||||
{ \
|
||||
|
@ -253,13 +246,13 @@ int parse_args(const char *doing,
|
|||
EXPORT_SYMBOL(param_ops_##name)
|
||||
|
||||
|
||||
STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", unsigned long, kstrtoul);
|
||||
STANDARD_PARAM_DEF(short, short, "%hi", long, kstrtol);
|
||||
STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", unsigned long, kstrtoul);
|
||||
STANDARD_PARAM_DEF(int, int, "%i", long, kstrtol);
|
||||
STANDARD_PARAM_DEF(uint, unsigned int, "%u", unsigned long, kstrtoul);
|
||||
STANDARD_PARAM_DEF(long, long, "%li", long, kstrtol);
|
||||
STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", unsigned long, kstrtoul);
|
||||
STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", kstrtou8);
|
||||
STANDARD_PARAM_DEF(short, short, "%hi", kstrtos16);
|
||||
STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", kstrtou16);
|
||||
STANDARD_PARAM_DEF(int, int, "%i", kstrtoint);
|
||||
STANDARD_PARAM_DEF(uint, unsigned int, "%u", kstrtouint);
|
||||
STANDARD_PARAM_DEF(long, long, "%li", kstrtol);
|
||||
STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", kstrtoul);
|
||||
|
||||
int param_set_charp(const char *val, const struct kernel_param *kp)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user