mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
kernel/panic: mark init_taint_buf as __initdata and panic instead of warning in alloc_taint_buf()
However there's a convention of assuming that __init-time allocations cannot fail. Because if a kmalloc() were to fail at this time, the kernel is hopelessly messed up anyway. So simply panic() if that kmalloc failed, then make that 350-byte buffer __initdata. Link: https://lkml.kernel.org/r/20260223035914.4033-1-rioo.tsukatsukii@gmail.com Signed-off-by: Rio <rioo.tsukatsukii@gmail.com> Cc: Joel Granados <joel.granados@kernel.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Wang Jinchao <wangjinchao600@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
@@ -865,8 +865,8 @@ static void print_tainted_seq(struct seq_buf *s, bool verbose)
|
||||
*/
|
||||
#define INIT_TAINT_BUF_MAX 350
|
||||
|
||||
static char init_taint_buf[INIT_TAINT_BUF_MAX];
|
||||
static char *taint_buf = init_taint_buf;
|
||||
static char init_taint_buf[INIT_TAINT_BUF_MAX] __initdata;
|
||||
static char *taint_buf __refdata = init_taint_buf;
|
||||
static size_t taint_buf_size = INIT_TAINT_BUF_MAX;
|
||||
|
||||
static __init int alloc_taint_buf(void)
|
||||
@@ -887,11 +887,7 @@ static __init int alloc_taint_buf(void)
|
||||
buf = kmalloc(size, GFP_KERNEL);
|
||||
|
||||
if (!buf) {
|
||||
/* Allocation may fail; this warning explains possibly
|
||||
* truncated taint strings
|
||||
*/
|
||||
pr_warn_once("taint string buffer allocation failed, using fallback buffer\n");
|
||||
return 0;
|
||||
panic("Failed to allocate taint string buffer");
|
||||
}
|
||||
|
||||
taint_buf = buf;
|
||||
|
||||
Reference in New Issue
Block a user