Hi, Tejun! 在 2022/11/15 6:07, Tejun Heo 写道:
Any chance I can persuade you into updating match_NUMBER() helpers to not use match_strdup()? They can easily disable irq/preemption and use percpu buffers and we won't need most of this patchset.
Does the following patch match your proposal? diff --git a/lib/parser.c b/lib/parser.c index bcb23484100e..ded652471919 100644 --- a/lib/parser.c +++ b/lib/parser.c @@ -11,6 +11,24 @@ #include <linux/slab.h> #include <linux/string.h> +#define U64_MAX_SIZE 20 + +static DEFINE_PER_CPU(char, buffer[U64_MAX_SIZE]); + +static char *get_buffer(void) +{ + preempt_disable(); + local_irq_disable(); + + return this_cpu_ptr(buffer); +} + +static void put_buffer(void) +{ + local_irq_enable(); + preempt_enable(); +} + Then match_strdup() and kfree() in match_NUMBER() can be replaced with get_buffer() and put_buffer(). Thanks, Kuai
Thanks.