mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
104fd0b5e9
Currently pstore record buffers are allocated using kmalloc() which has a maximum size based on page size. If a large "pmsg-size" module parameter is specified, pmsg will fail to copy the contents since memdup_user() is limited to kmalloc() allocation sizes. Since we don't need physically contiguous memory for any of the pstore record buffers, use kvzalloc() to avoid such limitations in the core of pstore and in the ram backend, and explicitly read from userspace using vmemdup_user(). This also means that any other backends that want to (or do already) support larger record sizes will Just Work now. Signed-off-by: Yuxiao Zhang <yuxiaozhang@google.com> Link: https://lore.kernel.org/r/20230627202540.881909-2-yuxiaozhang@google.com Co-developed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Kees Cook <keescook@chromium.org> |
||
---|---|---|
.. | ||
blk.c | ||
ftrace.c | ||
inode.c | ||
internal.h | ||
Kconfig | ||
Makefile | ||
platform.c | ||
pmsg.c | ||
ram_core.c | ||
ram_internal.h | ||
ram.c | ||
zone.c |