Commit 21e80f38 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull modules updates from Luis Chamberlain:
 "The only thing worth highligthing is that gzip moves to use vmalloc()
  instead of kmalloc just as we had a fix for this for zstd on v6.6-rc1.

  The rest is regular house keeping, keeping things neat, tidy, and
  boring"

[ The kmalloc -> vmalloc conversion is not the right approach.

  Unless you know you need huge areas or know you need to use virtual
  mappings for some reason (playing with protection bits or whatever),
  you should use kvmalloc()/kvfree, which automatically picks the right
  allocation model    - Linus ]

* tag 'modules-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
  module: Annotate struct module_notes_attrs with __counted_by
  module: Fix comment typo
  module: Make is_valid_name() return bool
  module: Make is_mapping_symbol() return bool
  module/decompress: use vmalloc() for gzip decompression workspace
  MAINTAINERS: add include/linux/module*.h to modules
  module: Clarify documentation of module_param_call()
parents 426ee519 ea0b0bce
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -14527,7 +14527,7 @@ L: linux-kernel@vger.kernel.org
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
F:	include/linux/kmod.h
F:	include/linux/module.h
F:	include/linux/module*.h
F:	kernel/module/
F:	lib/test_kmod.c
F:	scripts/module*
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#define _LINUX_MODULE_SYMBOL_H

/* This ignores the intensely annoying "mapping symbols" found in ELF files. */
static inline int is_mapping_symbol(const char *str)
static inline bool is_mapping_symbol(const char *str)
{
	if (str[0] == '.' && str[1] == 'L')
		return true;
+5 −1
Original line number Diff line number Diff line
@@ -293,7 +293,11 @@ struct kparam_array
	= { __param_str_##name, THIS_MODULE, ops,			\
	    VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } }

/* Obsolete - use module_param_cb() */
/*
 * Useful for describing a set/get pair used only once (i.e. for this
 * parameter). For repeated set/get pairs (i.e. the same struct
 * kernel_param_ops), use module_param_cb() instead.
 */
#define module_param_call(name, _set, _get, arg, perm)			\
	static const struct kernel_param_ops __param_ops_##name =	\
		{ .flags = 0, .set = _set, .get = _get };		\
+2 −2
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ static ssize_t module_gzip_decompress(struct load_info *info,
	s.next_in = buf + gzip_hdr_len;
	s.avail_in = size - gzip_hdr_len;

	s.workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL);
	s.workspace = vmalloc(zlib_inflate_workspacesize());
	if (!s.workspace)
		return -ENOMEM;

@@ -138,7 +138,7 @@ static ssize_t module_gzip_decompress(struct load_info *info,
out_inflate_end:
	zlib_inflateEnd(&s);
out:
	kfree(s.workspace);
	vfree(s.workspace);
	return retval;
}
#elif defined(CONFIG_MODULE_COMPRESS_XZ)
+1 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ static LIST_HEAD(dup_failed_modules);
 *     These typically should not happen unless your system is under memory
 *     pressure.
 *   * invalid_becoming_bytes: total number of bytes allocated and freed used
 *     used to read the kernel module userspace wants us to read before we
 *     to read the kernel module userspace wants us to read before we
 *     promote it to be processed to be added to our @modules linked list. These
 *     failures can happen if we had a check in between a successful kernel_read_file_from_fd()
 *     call and right before we allocate the our private memory for the module
Loading