| From 0fec33788526dc20d63a10627849be601a46ef45 Mon Sep 17 00:00:00 2001 |
| From: Sven Schnelle <svens@linux.ibm.com> |
| Date: Wed, 18 Dec 2019 08:44:26 +0100 |
| Subject: [PATCH] samples/trace_printk: Wait for IRQ work to finish |
| |
| commit 01f36a554e3ef32f9fc4b81a4437cf08fd0e4742 upstream. |
| |
| trace_printk schedules work via irq_work_queue(), but doesn't |
| wait until it was processed. The kprobe_module.tc testcase does: |
| |
| :;: "Load module again, which means the event1 should be recorded";: |
| modprobe trace-printk |
| grep "event1:" trace |
| |
| so the grep which checks the trace file might run before the irq work |
| was processed. Fix this by adding a irq_work_sync(). |
| |
| Link: http://lore.kernel.org/linux-trace-devel/20191218074427.96184-3-svens@linux.ibm.com |
| |
| Cc: stable@vger.kernel.org |
| Fixes: af2a0750f3749 ("selftests/ftrace: Improve kprobe on module testcase to load/unload module") |
| Signed-off-by: Sven Schnelle <svens@linux.ibm.com> |
| Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/samples/trace_printk/trace-printk.c b/samples/trace_printk/trace-printk.c |
| index 7affc3b50b61..cfc159580263 100644 |
| --- a/samples/trace_printk/trace-printk.c |
| +++ b/samples/trace_printk/trace-printk.c |
| @@ -36,6 +36,7 @@ static int __init trace_printk_init(void) |
| |
| /* Kick off printing in irq context */ |
| irq_work_queue(&irqwork); |
| + irq_work_sync(&irqwork); |
| |
| trace_printk("This is a %s that will use trace_bprintk()\n", |
| "static string"); |
| -- |
| 2.7.4 |
| |