diff options
author | Quanyang Wang <quanyang.wang@windriver.com> | 2019-12-13 14:19:52 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-16 23:25:49 +0000 |
commit | 666616121d4b15a0b0682cfb4bdcaa68a1397dcb (patch) | |
tree | 1ad406d1f278b2effc8d45ba94f79fc708c464ac /meta | |
parent | 44e809c1e66be9420042342805f14dd7abe9fbb6 (diff) | |
download | poky-666616121d4b15a0b0682cfb4bdcaa68a1397dcb.tar.gz |
lttng-modules: fix NULL pointer deference error when testing rpc_task_running
This is a backport from upstream https://github.com/lttng/lttng-modules.git stable-2.10
to fix NULL pointer deference error when running kts testcase lttng_syscall_events.
(From OE-Core rev: a522ccff838ba1577255c90e64d98dd75470fb0a)
Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
5 files changed, 377 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-SUNRPC-Fix-oops-when-trace-sunrpc_task-events-in.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-SUNRPC-Fix-oops-when-trace-sunrpc_task-events-in.patch new file mode 100644 index 0000000000..bdbc4f811e --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-SUNRPC-Fix-oops-when-trace-sunrpc_task-events-in.patch | |||
@@ -0,0 +1,94 @@ | |||
1 | From 1ff7013bcf7f068cf4371d12d758f9c0fd16a619 Mon Sep 17 00:00:00 2001 | ||
2 | From: Quanyang Wang <quanyang.wang@windriver.com> | ||
3 | Date: Thu, 5 Dec 2019 15:35:32 +0800 | ||
4 | Subject: [PATCH 1/4] Fix: SUNRPC: Fix oops when trace sunrpc_task events in | ||
5 | nfs client | ||
6 | |||
7 | See upstream commit : | ||
8 | |||
9 | commit 2ca310fc4160ed0420da65534a21ae77b24326a8 | ||
10 | Author: Ditang Chen <chendt.fnst@cn.fujitsu.com> | ||
11 | Date: Fri, 7 Mar 2014 13:27:57 +0800 | ||
12 | Subject: SUNRPC: Fix oops when trace sunrpc_task events in nfs client | ||
13 | |||
14 | When tracking sunrpc_task events in nfs client, the clnt pointer may be NULL. | ||
15 | |||
16 | [ 139.269266] BUG: unable to handle kernel NULL pointer dereference at 0000000000000004 | ||
17 | [ 139.269915] IP: [<ffffffffa026f216>] ftrace_raw_event_rpc_task_running+0x86/0xf0 [sunrpc] | ||
18 | [ 139.269915] PGD 1d293067 PUD 1d294067 PMD 0 | ||
19 | [ 139.269915] Oops: 0000 [#1] SMP | ||
20 | [ 139.269915] Modules linked in: nfsv4 dns_resolver nfs lockd sunrpc fscache sg ppdev e1000 | ||
21 | serio_raw pcspkr parport_pc parport i2c_piix4 i2c_core microcode xfs libcrc32c sd_mod sr_mod | ||
22 | cdrom ata_generic crc_t10dif crct10dif_common pata_acpi ahci libahci ata_piix libata dm_mirror | ||
23 | dm_region_hash dm_log dm_mod | ||
24 | [ 139.269915] CPU: 0 PID: 59 Comm: kworker/0:2 Not tainted 3.10.0-84.el7.x86_64 #1 | ||
25 | [ 139.269915] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 | ||
26 | [ 139.269915] Workqueue: rpciod rpc_async_schedule [sunrpc] | ||
27 | [ 139.269915] task: ffff88001b598000 ti: ffff88001b632000 task.ti: ffff88001b632000 | ||
28 | [ 139.269915] RIP: 0010:[<ffffffffa026f216>] [<ffffffffa026f216>] ftrace_raw_event_rpc_task_running+0x86/0xf0 [sunrpc] | ||
29 | [ 139.269915] RSP: 0018:ffff88001b633d70 EFLAGS: 00010206 | ||
30 | [ 139.269915] RAX: ffff88001dfc5338 RBX: ffff88001cc37a00 RCX: ffff88001dfc5334 | ||
31 | [ 139.269915] RDX: ffff88001dfc5338 RSI: 0000000000000000 RDI: ffff88001dfc533c | ||
32 | [ 139.269915] RBP: ffff88001b633db0 R08: 000000000000002c R09: 000000000000000a | ||
33 | [ 139.269915] R10: 0000000000062180 R11: 00000020759fb9dc R12: ffffffffa0292c20 | ||
34 | [ 139.269915] R13: ffff88001dfc5334 R14: 0000000000000000 R15: 0000000000000000 | ||
35 | [ 139.269915] FS: 0000000000000000(0000) GS:ffff88001fc00000(0000) knlGS:0000000000000000 | ||
36 | [ 139.269915] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b | ||
37 | [ 139.269915] CR2: 0000000000000004 CR3: 000000001d290000 CR4: 00000000000006f0 | ||
38 | [ 139.269915] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 | ||
39 | [ 139.269915] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 | ||
40 | [ 139.269915] Stack: | ||
41 | [ 139.269915] 000000001b633d98 0000000000000246 ffff88001df1dc00 ffff88001cc37a00 | ||
42 | [ 139.269915] ffff88001bc35e60 0000000000000000 ffff88001ffa0a48 ffff88001bc35ee0 | ||
43 | [ 139.269915] ffff88001b633e08 ffffffffa02704b5 0000000000010000 ffff88001cc37a70 | ||
44 | [ 139.269915] Call Trace: | ||
45 | [ 139.269915] [<ffffffffa02704b5>] __rpc_execute+0x1d5/0x400 [sunrpc] | ||
46 | [ 139.269915] [<ffffffffa0270706>] rpc_async_schedule+0x26/0x30 [sunrpc] | ||
47 | [ 139.269915] [<ffffffff8107867b>] process_one_work+0x17b/0x460 | ||
48 | [ 139.269915] [<ffffffff8107942b>] worker_thread+0x11b/0x400 | ||
49 | [ 139.269915] [<ffffffff81079310>] ? rescuer_thread+0x3e0/0x3e0 | ||
50 | [ 139.269915] [<ffffffff8107fc80>] kthread+0xc0/0xd0 | ||
51 | [ 139.269915] [<ffffffff8107fbc0>] ? kthread_create_on_node+0x110/0x110 | ||
52 | [ 139.269915] [<ffffffff815d122c>] ret_from_fork+0x7c/0xb0 | ||
53 | [ 139.269915] [<ffffffff8107fbc0>] ? kthread_create_on_node+0x110/0x110 | ||
54 | [ 139.269915] Code: 4c 8b 45 c8 48 8d 7d d0 89 4d c4 41 89 c9 b9 28 00 00 00 e8 9d b4 e9 | ||
55 | e0 48 85 c0 49 89 c5 74 a2 48 89 c7 e8 9d 3f e9 e0 48 89 c2 <41> 8b 46 04 48 8b 7d d0 4c | ||
56 | 89 e9 4c 89 e6 89 42 0c 0f b7 83 d4 | ||
57 | [ 139.269915] RIP [<ffffffffa026f216>] ftrace_raw_event_rpc_task_running+0x86/0xf0 [sunrpc] | ||
58 | [ 139.269915] RSP <ffff88001b633d70> | ||
59 | [ 139.269915] CR2: 0000000000000004 | ||
60 | [ 140.946406] ---[ end trace ba486328b98d7622 ]--- | ||
61 | |||
62 | Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/2b228b503cad10bf0c5a99b42a908ca906eab5b9] | ||
63 | |||
64 | Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> | ||
65 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
66 | --- | ||
67 | instrumentation/events/lttng-module/rpc.h | 4 ++-- | ||
68 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
69 | |||
70 | diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h | ||
71 | index 3798e8e..fb13106 100644 | ||
72 | --- a/instrumentation/events/lttng-module/rpc.h | ||
73 | +++ b/instrumentation/events/lttng-module/rpc.h | ||
74 | @@ -139,7 +139,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
75 | |||
76 | TP_FIELDS( | ||
77 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
78 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
79 | + ctf_integer(unsigned int, client_id, task->tk_client ? task->tk_client->cl_clid : -1) | ||
80 | ctf_integer_hex(const void *, action, action) | ||
81 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
82 | ctf_integer(int, status, task->tk_status) | ||
83 | @@ -208,7 +208,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
84 | |||
85 | TP_FIELDS( | ||
86 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
87 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
88 | + ctf_integer(unsigned int, client_id, task->tk_client ? task->tk_client->cl_clid : -1) | ||
89 | ctf_integer_hex(const void *, action, action) | ||
90 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
91 | ctf_integer(int, status, task->tk_status) | ||
92 | -- | ||
93 | 2.17.1 | ||
94 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-sunrpc-null-rpc_clnt-dereference-in-rpc_task_que.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-sunrpc-null-rpc_clnt-dereference-in-rpc_task_que.patch new file mode 100644 index 0000000000..03264bac68 --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-sunrpc-null-rpc_clnt-dereference-in-rpc_task_que.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 032a74d83b263c4faead8e4c25d497fb8ea07b6e Mon Sep 17 00:00:00 2001 | ||
2 | From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
3 | Date: Thu, 12 Dec 2019 10:29:02 -0500 | ||
4 | Subject: [PATCH 2/4] Fix: sunrpc: null rpc_clnt dereference in rpc_task_queued | ||
5 | tracepoint | ||
6 | |||
7 | Based on upstream Linux commit: | ||
8 | |||
9 | commit 0be283f676a1e7b208db0c992283197ef8b52158 | ||
10 | Author: Benjamin Coddington <bcodding@redhat.com> | ||
11 | Date: Tue Jan 23 09:32:35 2018 -0500 | ||
12 | |||
13 | SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint | ||
14 | |||
15 | Backchannel tasks will not have a reference to the rpc_clnt. Return -1 for | ||
16 | cl_clid in that case. | ||
17 | |||
18 | Signed-off-by: Benjamin Coddington <bcodding@redhat.com> | ||
19 | Signed-off-by: Trond Myklebust <trondmy@gmail.com> | ||
20 | |||
21 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
22 | Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/8f83a9103dcdf4f6b73783427fc5ded4869309d5] | ||
23 | Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> | ||
24 | --- | ||
25 | instrumentation/events/lttng-module/rpc.h | 3 ++- | ||
26 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
27 | |||
28 | diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h | ||
29 | index fb13106..68c622c 100644 | ||
30 | --- a/instrumentation/events/lttng-module/rpc.h | ||
31 | +++ b/instrumentation/events/lttng-module/rpc.h | ||
32 | @@ -176,7 +176,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | ||
33 | |||
34 | TP_FIELDS( | ||
35 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
36 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
37 | + ctf_integer(unsigned int, client_id, task->tk_client ? | ||
38 | + task->tk_client->cl_clid : -1) | ||
39 | ctf_integer(unsigned long, timeout, task->tk_timeout) | ||
40 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
41 | ctf_integer(int, status, task->tk_status) | ||
42 | -- | ||
43 | 2.17.1 | ||
44 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-sunrpc-use-signed-integer-for-client-id.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-sunrpc-use-signed-integer-for-client-id.patch new file mode 100644 index 0000000000..c7529f16dd --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-sunrpc-use-signed-integer-for-client-id.patch | |||
@@ -0,0 +1,105 @@ | |||
1 | From 70389e422dd3146161089d454f525367c9046ecd Mon Sep 17 00:00:00 2001 | ||
2 | From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
3 | Date: Thu, 12 Dec 2019 10:29:37 -0500 | ||
4 | Subject: [PATCH 3/4] Fix: sunrpc: use signed integer for client id | ||
5 | |||
6 | Within include/linux/sunrpc/clnt.h:struct rpc_cltn, the cl_clid field | ||
7 | is an unsigned integer, which is the type expected by the tracepoint | ||
8 | signature. | ||
9 | |||
10 | However, looking into net/sunrpc/clnt.c:rpc_alloc_clid(), its allocation | ||
11 | considers negative signed integer as errors. | ||
12 | |||
13 | Therefore, in order to properly show "-1" in the trace output (rather | ||
14 | than MAX_INT) when called with a NULL task->tk_client, move to a | ||
15 | signed integer as backing type for the client_id field. | ||
16 | |||
17 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
18 | Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/cc7bb0aa52cae22255581d67841449bb8ea36fda] | ||
19 | Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> | ||
20 | --- | ||
21 | instrumentation/events/lttng-module/rpc.h | 19 +++++++++++-------- | ||
22 | 1 file changed, 11 insertions(+), 8 deletions(-) | ||
23 | |||
24 | diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h | ||
25 | index 68c622c..2d06e55 100644 | ||
26 | --- a/instrumentation/events/lttng-module/rpc.h | ||
27 | +++ b/instrumentation/events/lttng-module/rpc.h | ||
28 | @@ -18,7 +18,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, | ||
29 | |||
30 | TP_FIELDS( | ||
31 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
32 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
33 | + ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
34 | ctf_integer(int, status, task->tk_status) | ||
35 | ) | ||
36 | ) | ||
37 | @@ -43,7 +43,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, | ||
38 | |||
39 | TP_FIELDS( | ||
40 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
41 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
42 | + ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
43 | ctf_integer(int, status, task->tk_status) | ||
44 | ) | ||
45 | ) | ||
46 | @@ -100,7 +100,7 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status, | ||
47 | |||
48 | TP_FIELDS( | ||
49 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
50 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
51 | + ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
52 | ctf_integer(int, status, task->tk_status) | ||
53 | ) | ||
54 | ) | ||
55 | @@ -112,7 +112,7 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status, | ||
56 | |||
57 | TP_FIELDS( | ||
58 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
59 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
60 | + ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
61 | ctf_integer(int, status, status) | ||
62 | ) | ||
63 | ) | ||
64 | @@ -139,7 +139,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
65 | |||
66 | TP_FIELDS( | ||
67 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
68 | - ctf_integer(unsigned int, client_id, task->tk_client ? task->tk_client->cl_clid : -1) | ||
69 | + ctf_integer(int, client_id, task->tk_client ? | ||
70 | + task->tk_client->cl_clid : -1) | ||
71 | ctf_integer_hex(const void *, action, action) | ||
72 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
73 | ctf_integer(int, status, task->tk_status) | ||
74 | @@ -176,7 +177,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | ||
75 | |||
76 | TP_FIELDS( | ||
77 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
78 | - ctf_integer(unsigned int, client_id, task->tk_client ? | ||
79 | + ctf_integer(int, client_id, task->tk_client ? | ||
80 | task->tk_client->cl_clid : -1) | ||
81 | ctf_integer(unsigned long, timeout, task->tk_timeout) | ||
82 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
83 | @@ -209,7 +210,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
84 | |||
85 | TP_FIELDS( | ||
86 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
87 | - ctf_integer(unsigned int, client_id, task->tk_client ? task->tk_client->cl_clid : -1) | ||
88 | + ctf_integer(int, client_id, task->tk_client ? | ||
89 | + task->tk_client->cl_clid : -1) | ||
90 | ctf_integer_hex(const void *, action, action) | ||
91 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
92 | ctf_integer(int, status, task->tk_status) | ||
93 | @@ -246,7 +248,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | ||
94 | |||
95 | TP_FIELDS( | ||
96 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
97 | - ctf_integer(unsigned int, client_id, task->tk_client->cl_clid) | ||
98 | + ctf_integer(int, client_id, task->tk_client ? | ||
99 | + task->tk_client->cl_clid : -1) | ||
100 | ctf_integer(unsigned long, timeout, task->tk_timeout) | ||
101 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
102 | ctf_integer(int, status, task->tk_status) | ||
103 | -- | ||
104 | 2.17.1 | ||
105 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-sunrpc-introduce-lttng_get_clid-helper.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-sunrpc-introduce-lttng_get_clid-helper.patch new file mode 100644 index 0000000000..4dd726cf2c --- /dev/null +++ b/meta/recipes-kernel/lttng/lttng-modules/0004-sunrpc-introduce-lttng_get_clid-helper.patch | |||
@@ -0,0 +1,130 @@ | |||
1 | From b6903d57e4c3234ec5b1c7f72e232023cdee0fab Mon Sep 17 00:00:00 2001 | ||
2 | From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
3 | Date: Thu, 12 Dec 2019 10:39:38 -0500 | ||
4 | Subject: [PATCH 4/4] sunrpc: introduce lttng_get_clid helper | ||
5 | |||
6 | Introduce the lttng_get_clid helper to always check for NULL pointer | ||
7 | when getting the client id. While not always strictly needed depending | ||
8 | on the tracepoint callsite, prefer robustness of instrumentation and | ||
9 | always check for NULL rather than play whack-a-mole. | ||
10 | |||
11 | Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | ||
12 | Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/1330a091a687a406513c3a326c2fc2a0dbe75536] | ||
13 | Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> | ||
14 | --- | ||
15 | instrumentation/events/lttng-module/rpc.h | 43 ++++++++++++++++------- | ||
16 | 1 file changed, 31 insertions(+), 12 deletions(-) | ||
17 | |||
18 | diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h | ||
19 | index 2d06e55..ceaf9db 100644 | ||
20 | --- a/instrumentation/events/lttng-module/rpc.h | ||
21 | +++ b/instrumentation/events/lttng-module/rpc.h | ||
22 | @@ -9,6 +9,29 @@ | ||
23 | #include <linux/sunrpc/sched.h> | ||
24 | #include <linux/sunrpc/clnt.h> | ||
25 | |||
26 | +#ifndef ONCE_LTTNG_RPC_H | ||
27 | +#define ONCE_LTTNG_RPC_H | ||
28 | + | ||
29 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) | ||
30 | +static inline | ||
31 | +int lttng_get_clid(const struct rpc_task *task) | ||
32 | +{ | ||
33 | + struct rpc_clnt *tk_client; | ||
34 | + | ||
35 | + tk_client = task->tk_client; | ||
36 | + if (!tk_client) | ||
37 | + return -1; | ||
38 | + /* | ||
39 | + * The cl_clid field is always initialized to positive signed | ||
40 | + * integers. Negative signed integer values are treated as | ||
41 | + * errors. | ||
42 | + */ | ||
43 | + return (int) tk_client->cl_clid; | ||
44 | +} | ||
45 | +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ | ||
46 | + | ||
47 | +#endif /* ONCE_LTTNG_RPC_H */ | ||
48 | + | ||
49 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0)) | ||
50 | LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, | ||
51 | |||
52 | @@ -18,7 +41,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, | ||
53 | |||
54 | TP_FIELDS( | ||
55 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
56 | - ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
57 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
58 | ctf_integer(int, status, task->tk_status) | ||
59 | ) | ||
60 | ) | ||
61 | @@ -43,7 +66,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, | ||
62 | |||
63 | TP_FIELDS( | ||
64 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
65 | - ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
66 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
67 | ctf_integer(int, status, task->tk_status) | ||
68 | ) | ||
69 | ) | ||
70 | @@ -100,7 +123,7 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status, | ||
71 | |||
72 | TP_FIELDS( | ||
73 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
74 | - ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
75 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
76 | ctf_integer(int, status, task->tk_status) | ||
77 | ) | ||
78 | ) | ||
79 | @@ -112,7 +135,7 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status, | ||
80 | |||
81 | TP_FIELDS( | ||
82 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
83 | - ctf_integer(int, client_id, task->tk_client->cl_clid) | ||
84 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
85 | ctf_integer(int, status, status) | ||
86 | ) | ||
87 | ) | ||
88 | @@ -139,8 +162,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
89 | |||
90 | TP_FIELDS( | ||
91 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
92 | - ctf_integer(int, client_id, task->tk_client ? | ||
93 | - task->tk_client->cl_clid : -1) | ||
94 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
95 | ctf_integer_hex(const void *, action, action) | ||
96 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
97 | ctf_integer(int, status, task->tk_status) | ||
98 | @@ -177,8 +199,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | ||
99 | |||
100 | TP_FIELDS( | ||
101 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
102 | - ctf_integer(int, client_id, task->tk_client ? | ||
103 | - task->tk_client->cl_clid : -1) | ||
104 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
105 | ctf_integer(unsigned long, timeout, task->tk_timeout) | ||
106 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
107 | ctf_integer(int, status, task->tk_status) | ||
108 | @@ -210,8 +231,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, | ||
109 | |||
110 | TP_FIELDS( | ||
111 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
112 | - ctf_integer(int, client_id, task->tk_client ? | ||
113 | - task->tk_client->cl_clid : -1) | ||
114 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
115 | ctf_integer_hex(const void *, action, action) | ||
116 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
117 | ctf_integer(int, status, task->tk_status) | ||
118 | @@ -248,8 +268,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | ||
119 | |||
120 | TP_FIELDS( | ||
121 | ctf_integer(unsigned int, task_id, task->tk_pid) | ||
122 | - ctf_integer(int, client_id, task->tk_client ? | ||
123 | - task->tk_client->cl_clid : -1) | ||
124 | + ctf_integer(int, client_id, lttng_get_clid(task)) | ||
125 | ctf_integer(unsigned long, timeout, task->tk_timeout) | ||
126 | ctf_integer(unsigned long, runstate, task->tk_runstate) | ||
127 | ctf_integer(int, status, task->tk_status) | ||
128 | -- | ||
129 | 2.17.1 | ||
130 | |||
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb b/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb index 789a3be850..cc4f44519a 100644 --- a/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb +++ b/meta/recipes-kernel/lttng/lttng-modules_2.10.11.bb | |||
@@ -14,6 +14,10 @@ COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' | |||
14 | SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ | 14 | SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ |
15 | file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ | 15 | file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ |
16 | file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ | 16 | file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ |
17 | file://0001-Fix-SUNRPC-Fix-oops-when-trace-sunrpc_task-events-in.patch \ | ||
18 | file://0002-Fix-sunrpc-null-rpc_clnt-dereference-in-rpc_task_que.patch \ | ||
19 | file://0003-Fix-sunrpc-use-signed-integer-for-client-id.patch \ | ||
20 | file://0004-sunrpc-introduce-lttng_get_clid-helper.patch \ | ||
17 | " | 21 | " |
18 | 22 | ||
19 | SRC_URI[md5sum] = "c618fb646514dfc1bf910cfd7cda4256" | 23 | SRC_URI[md5sum] = "c618fb646514dfc1bf910cfd7cda4256" |