[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250329200656.GA127272@ax162>
Date: Sat, 29 Mar 2025 13:06:56 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: Josh Poimboeuf <jpoimboe@...nel.org>
Cc: kernel test robot <lkp@...el.com>, llvm@...ts.linux.dev,
oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
x86@...nel.org, Ingo Molnar <mingo@...nel.org>
Subject: Re: [tip:objtool/urgent 9/23] vmlinux.o: warning: objtool:
cdns_mrvl_xspi_setup_clock: unexpected end of section
.text.cdns_mrvl_xspi_setup_clock
On Fri, Mar 28, 2025 at 09:46:06PM -0700, Josh Poimboeuf wrote:
> On Fri, Mar 28, 2025 at 04:24:49PM -0700, Nathan Chancellor wrote:
> > vmlinux.o: warning: objtool: synaptics_report_mt_data: unexpected end of section .text.synaptics_report_mt_data
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x33e: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x254: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x1d4: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x1b8: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x156: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x13a: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0xda: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0xbe: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x63: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x48: (branch)
> > vmlinux.o: warning: objtool: synaptics_report_mt_data+0x0: <=== (sym)
> > ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --static-call --uaccess --noinstr --link vmlinux.o.orig -o vmlinux.o
>
> Nice! Can you share the disassembly of the function?
Sure thing!
> objdump -drw -j .text.synaptics_report_mt_data vmlinux.o.orig
0000000000000000 <synaptics_report_mt_data>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 41 57 push %r15
6: 41 56 push %r14
8: 41 55 push %r13
a: 41 54 push %r12
c: 53 push %rbx
d: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
11: 48 83 ec 50 sub $0x50,%rsp
15: 41 89 d3 mov %edx,%r11d
18: 49 89 f7 mov %rsi,%r15
1b: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 22 <synaptics_report_mt_data+0x22> 1e: R_X86_64_PC32 __stack_chk_guard-0x4
22: 48 89 44 24 40 mov %rax,0x40(%rsp)
27: 4c 8b 75 08 mov 0x8(%rbp),%r14
2b: 48 c7 c0 00 00 00 00 mov $0x0,%rax 2e: R_X86_64_32S _text+0x7f000000
32: 49 29 c6 sub %rax,%r14
35: 48 8b 1c 25 00 00 00 00 mov 0x0,%rbx 39: R_X86_64_32S current_task
3d: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # 43 <synaptics_report_mt_data+0x43> 3f: R_X86_64_PC32 __preempt_count-0x4
43: 25 00 01 ff 00 and $0xff0100,%eax
48: 74 10 je 5a <synaptics_report_mt_data+0x5a>
4a: 3d 00 01 00 00 cmp $0x100,%eax
4f: 75 35 jne 86 <synaptics_report_mt_data+0x86>
51: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
58: 74 2c je 86 <synaptics_report_mt_data+0x86>
5a: 8b 83 88 14 00 00 mov 0x1488(%rbx),%eax
60: 83 f8 02 cmp $0x2,%eax
63: 75 21 jne 86 <synaptics_report_mt_data+0x86>
65: 48 8b 83 90 14 00 00 mov 0x1490(%rbx),%rax
6c: 48 8b 08 mov (%rax),%rcx
6f: 48 8d 51 01 lea 0x1(%rcx),%rdx
73: 8b b3 8c 14 00 00 mov 0x148c(%rbx),%esi
79: 48 39 f2 cmp %rsi,%rdx
7c: 73 08 jae 86 <synaptics_report_mt_data+0x86>
7e: 48 89 10 mov %rdx,(%rax)
81: 4c 89 74 c8 08 mov %r14,0x8(%rax,%rcx,8)
86: 48 8b 07 mov (%rdi),%rax
89: 4c 8b 67 08 mov 0x8(%rdi),%r12
8d: 4c 89 7c 24 30 mov %r15,0x30(%rsp)
92: 48 8d 48 54 lea 0x54(%rax),%rcx
96: 48 89 4c 24 38 mov %rcx,0x38(%rsp)
9b: 48 b9 aa aa aa aa aa aa aa aa movabs $0xaaaaaaaaaaaaaaaa,%rcx
a5: 48 89 4c 24 28 mov %rcx,0x28(%rsp)
aa: 48 89 4c 24 20 mov %rcx,0x20(%rsp)
af: 44 89 d9 mov %r11d,%ecx
b2: 8b 15 00 00 00 00 mov 0x0(%rip),%edx # b8 <synaptics_report_mt_data+0xb8> b4: R_X86_64_PC32 __preempt_count-0x4
b8: 81 e2 00 01 ff 00 and $0xff0100,%edx
be: 74 11 je d1 <synaptics_report_mt_data+0xd1>
c0: 81 fa 00 01 00 00 cmp $0x100,%edx
c6: 75 5b jne 123 <synaptics_report_mt_data+0x123>
c8: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
cf: 74 52 je 123 <synaptics_report_mt_data+0x123>
d1: 8b 93 88 14 00 00 mov 0x1488(%rbx),%edx
d7: 83 fa 03 cmp $0x3,%edx
da: 75 47 jne 123 <synaptics_report_mt_data+0x123>
dc: 48 8b 93 90 14 00 00 mov 0x1490(%rbx),%rdx
e3: 44 8b 83 8c 14 00 00 mov 0x148c(%rbx),%r8d
ea: 49 c1 e0 03 shl $0x3,%r8
ee: 4c 8b 12 mov (%rdx),%r10
f1: 4c 89 d6 mov %r10,%rsi
f4: 48 c1 e6 05 shl $0x5,%rsi
f8: 4c 8d 4e 28 lea 0x28(%rsi),%r9
fc: 4d 39 c1 cmp %r8,%r9
ff: 77 22 ja 123 <synaptics_report_mt_data+0x123>
101: 49 ff c2 inc %r10
104: 4c 89 12 mov %r10,(%rdx)
107: 48 c7 44 32 08 05 00 00 00 movq $0x5,0x8(%rdx,%rsi,1)
110: 48 c7 44 32 10 01 00 00 00 movq $0x1,0x10(%rdx,%rsi,1)
119: 48 89 4c 32 18 mov %rcx,0x18(%rdx,%rsi,1)
11e: 4c 89 74 32 20 mov %r14,0x20(%rdx,%rsi,1)
123: 45 31 ed xor %r13d,%r13d
126: 41 83 fb 01 cmp $0x1,%r11d
12a: 41 0f 94 c5 sete %r13b
12e: 8b 15 00 00 00 00 mov 0x0(%rip),%edx # 134 <synaptics_report_mt_data+0x134> 130: R_X86_64_PC32 __preempt_count-0x4
134: 81 e2 00 01 ff 00 and $0xff0100,%edx
13a: 74 11 je 14d <synaptics_report_mt_data+0x14d>
13c: 81 fa 00 01 00 00 cmp $0x100,%edx
142: 75 5b jne 19f <synaptics_report_mt_data+0x19f>
144: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
14b: 74 52 je 19f <synaptics_report_mt_data+0x19f>
14d: 8b 93 88 14 00 00 mov 0x1488(%rbx),%edx
153: 83 fa 03 cmp $0x3,%edx
156: 75 47 jne 19f <synaptics_report_mt_data+0x19f>
158: 48 8b 93 90 14 00 00 mov 0x1490(%rbx),%rdx
15f: 44 8b 83 8c 14 00 00 mov 0x148c(%rbx),%r8d
166: 49 c1 e0 03 shl $0x3,%r8
16a: 4c 8b 12 mov (%rdx),%r10
16d: 4c 89 d6 mov %r10,%rsi
170: 48 c1 e6 05 shl $0x5,%rsi
174: 4c 8d 4e 28 lea 0x28(%rsi),%r9
178: 4d 39 c1 cmp %r8,%r9
17b: 77 22 ja 19f <synaptics_report_mt_data+0x19f>
17d: 49 ff c2 inc %r10
180: 4c 89 12 mov %r10,(%rdx)
183: 48 c7 44 32 08 05 00 00 00 movq $0x5,0x8(%rdx,%rsi,1)
18c: 48 c7 44 32 10 01 00 00 00 movq $0x1,0x10(%rdx,%rsi,1)
195: 48 89 4c 32 18 mov %rcx,0x18(%rdx,%rsi,1)
19a: 4c 89 74 32 20 mov %r14,0x20(%rdx,%rsi,1)
19f: 41 83 fb 02 cmp $0x2,%r11d
1a3: b9 02 00 00 00 mov $0x2,%ecx
1a8: 44 0f 4d e9 cmovge %ecx,%r13d
1ac: 8b 0d 00 00 00 00 mov 0x0(%rip),%ecx # 1b2 <synaptics_report_mt_data+0x1b2> 1ae: R_X86_64_PC32 __preempt_count-0x4
1b2: 81 e1 00 01 ff 00 and $0xff0100,%ecx
1b8: 74 11 je 1cb <synaptics_report_mt_data+0x1cb>
1ba: 81 f9 00 01 00 00 cmp $0x100,%ecx
1c0: 75 5b jne 21d <synaptics_report_mt_data+0x21d>
1c2: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
1c9: 74 52 je 21d <synaptics_report_mt_data+0x21d>
1cb: 8b 8b 88 14 00 00 mov 0x1488(%rbx),%ecx
1d1: 83 f9 03 cmp $0x3,%ecx
1d4: 75 47 jne 21d <synaptics_report_mt_data+0x21d>
1d6: 48 8b 8b 90 14 00 00 mov 0x1490(%rbx),%rcx
1dd: 44 8b 8b 8c 14 00 00 mov 0x148c(%rbx),%r9d
1e4: 49 c1 e1 03 shl $0x3,%r9
1e8: 48 8b 31 mov (%rcx),%rsi
1eb: 48 89 f2 mov %rsi,%rdx
1ee: 48 c1 e2 05 shl $0x5,%rdx
1f2: 4c 8d 42 28 lea 0x28(%rdx),%r8
1f6: 4d 39 c8 cmp %r9,%r8
1f9: 77 22 ja 21d <synaptics_report_mt_data+0x21d>
1fb: 48 ff c6 inc %rsi
1fe: 48 89 31 mov %rsi,(%rcx)
201: 48 c7 44 11 08 05 00 00 00 movq $0x5,0x8(%rcx,%rdx,1)
20a: 48 c7 44 11 10 00 00 00 00 movq $0x0,0x10(%rcx,%rdx,1)
213: 4c 89 6c 11 18 mov %r13,0x18(%rcx,%rdx,1)
218: 4c 89 74 11 20 mov %r14,0x20(%rcx,%rdx,1)
21d: 4d 85 ed test %r13,%r13
220: 48 89 7c 24 18 mov %rdi,0x18(%rsp)
225: 44 89 5c 24 0c mov %r11d,0xc(%rsp)
22a: 0f 84 85 00 00 00 je 2b5 <synaptics_report_mt_data+0x2b5>
230: 41 0f b7 0f movzwl (%r15),%ecx
234: 66 89 4c 24 28 mov %cx,0x28(%rsp)
239: 66 b9 e0 16 mov $0x16e0,%cx
23d: 66 ba e0 16 mov $0x16e0,%dx
241: 66 41 2b 57 04 sub 0x4(%r15),%dx
246: 66 89 54 24 2a mov %dx,0x2a(%rsp)
24b: 41 83 fb 01 cmp $0x1,%r11d
24f: 4c 89 7c 24 10 mov %r15,0x10(%rsp)
254: 0f 85 c8 00 00 00 jne 322 <synaptics_report_mt_data+0x322>
25a: 8b 0d 00 00 00 00 mov 0x0(%rip),%ecx # 260 <synaptics_report_mt_data+0x260> 25c: R_X86_64_PC32 __preempt_count-0x4
260: 81 e1 00 01 ff 00 and $0xff0100,%ecx
266: 74 19 je 281 <synaptics_report_mt_data+0x281>
268: 81 f9 00 01 00 00 cmp $0x100,%ecx
26e: 0f 85 15 01 00 00 jne 389 <synaptics_report_mt_data+0x389>
274: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
27b: 0f 84 08 01 00 00 je 389 <synaptics_report_mt_data+0x389>
281: 8b 8b 88 14 00 00 mov 0x1488(%rbx),%ecx
287: 83 f9 02 cmp $0x2,%ecx
28a: 0f 85 f9 00 00 00 jne 389 <synaptics_report_mt_data+0x389>
290: 48 8b 8b 90 14 00 00 mov 0x1490(%rbx),%rcx
297: 48 8b 11 mov (%rcx),%rdx
29a: 48 8d 72 01 lea 0x1(%rdx),%rsi
29e: 8b bb 8c 14 00 00 mov 0x148c(%rbx),%edi
2a4: 48 39 fe cmp %rdi,%rsi
2a7: 0f 83 dc 00 00 00 jae 389 <synaptics_report_mt_data+0x389>
2ad: 48 89 31 mov %rsi,(%rcx)
2b0: e9 cf 00 00 00 jmp 384 <synaptics_report_mt_data+0x384>
2b5: 8b 0d 00 00 00 00 mov 0x0(%rip),%ecx # 2bb <synaptics_report_mt_data+0x2bb> 2b7: R_X86_64_PC32 __preempt_count-0x4
2bb: 81 e1 00 01 ff 00 and $0xff0100,%ecx
2c1: 74 11 je 2d4 <synaptics_report_mt_data+0x2d4>
2c3: 81 f9 00 01 00 00 cmp $0x100,%ecx
2c9: 75 35 jne 300 <synaptics_report_mt_data+0x300>
2cb: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
2d2: 74 2c je 300 <synaptics_report_mt_data+0x300>
2d4: 8b 8b 88 14 00 00 mov 0x1488(%rbx),%ecx
2da: 83 f9 02 cmp $0x2,%ecx
2dd: 75 21 jne 300 <synaptics_report_mt_data+0x300>
2df: 48 8b 8b 90 14 00 00 mov 0x1490(%rbx),%rcx
2e6: 48 8b 11 mov (%rcx),%rdx
2e9: 48 8d 72 01 lea 0x1(%rdx),%rsi
2ed: 8b bb 8c 14 00 00 mov 0x148c(%rbx),%edi
2f3: 48 39 fe cmp %rdi,%rsi
2f6: 73 08 jae 300 <synaptics_report_mt_data+0x300>
2f8: 48 89 31 mov %rsi,(%rcx)
2fb: 4c 89 74 d1 08 mov %r14,0x8(%rcx,%rdx,8)
300: 8b 40 20 mov 0x20(%rax),%eax
303: 01 c0 add %eax,%eax
305: 44 8d 04 80 lea (%rax,%rax,4),%r8d
309: 48 8d 74 24 20 lea 0x20(%rsp),%rsi
30e: 48 8d 54 24 28 lea 0x28(%rsp),%rdx
313: 4c 89 e7 mov %r12,%rdi
316: 31 c9 xor %ecx,%ecx
318: e8 00 00 00 00 call 31d <synaptics_report_mt_data+0x31d> 319: R_X86_64_PLT32 input_mt_assign_slots-0x4
31d: e9 ae 01 00 00 jmp 4d0 <synaptics_report_mt_data+0x4d0>
322: 0f b7 50 54 movzwl 0x54(%rax),%edx
326: 66 89 54 24 2c mov %dx,0x2c(%rsp)
32b: 66 2b 48 58 sub 0x58(%rax),%cx
32f: 66 89 4c 24 2e mov %cx,0x2e(%rsp)
334: 8b 0d 00 00 00 00 mov 0x0(%rip),%ecx # 33a <synaptics_report_mt_data+0x33a> 336: R_X86_64_PC32 __preempt_count-0x4
33a: 41 83 fb 02 cmp $0x2,%r11d
33e: 0f 8c fd 01 00 00 jl 541 <synaptics_report_mt_data+0x541>
344: 81 e1 00 01 ff 00 and $0xff0100,%ecx
34a: 74 11 je 35d <synaptics_report_mt_data+0x35d>
34c: 81 f9 00 01 00 00 cmp $0x100,%ecx
352: 75 35 jne 389 <synaptics_report_mt_data+0x389>
354: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
35b: 74 2c je 389 <synaptics_report_mt_data+0x389>
35d: 8b 8b 88 14 00 00 mov 0x1488(%rbx),%ecx
363: 83 f9 02 cmp $0x2,%ecx
366: 75 21 jne 389 <synaptics_report_mt_data+0x389>
368: 48 8b 8b 90 14 00 00 mov 0x1490(%rbx),%rcx
36f: 48 8b 11 mov (%rcx),%rdx
372: 48 8d 72 01 lea 0x1(%rdx),%rsi
376: 8b bb 8c 14 00 00 mov 0x148c(%rbx),%edi
37c: 48 39 fe cmp %rdi,%rsi
37f: 73 08 jae 389 <synaptics_report_mt_data+0x389>
381: 48 89 31 mov %rsi,(%rcx)
384: 4c 89 74 d1 08 mov %r14,0x8(%rcx,%rdx,8)
389: 8b 40 20 mov 0x20(%rax),%eax
38c: 01 c0 add %eax,%eax
38e: 44 8d 04 80 lea (%rax,%rax,4),%r8d
392: 48 8d 74 24 20 lea 0x20(%rsp),%rsi
397: 48 8d 54 24 28 lea 0x28(%rsp),%rdx
39c: 4c 89 e7 mov %r12,%rdi
39f: 44 89 e9 mov %r13d,%ecx
3a2: e8 00 00 00 00 call 3a7 <synaptics_report_mt_data+0x3a7> 3a3: R_X86_64_PLT32 input_mt_assign_slots-0x4
3a7: 49 ff cd dec %r13
3aa: 45 31 ff xor %r15d,%r15d
3ad: eb 04 jmp 3b3 <synaptics_report_mt_data+0x3b3>
3af: 90 nop
3b0: 49 ff c7 inc %r15
3b3: 42 8b 4c bc 20 mov 0x20(%rsp,%r15,4),%ecx
3b8: 4c 89 e7 mov %r12,%rdi
3bb: be 03 00 00 00 mov $0x3,%esi
3c0: ba 2f 00 00 00 mov $0x2f,%edx
3c5: e8 00 00 00 00 call 3ca <synaptics_report_mt_data+0x3ca> 3c6: R_X86_64_PLT32 input_event-0x4
3ca: 4c 89 e7 mov %r12,%rdi
3cd: 31 f6 xor %esi,%esi
3cf: ba 01 00 00 00 mov $0x1,%edx
3d4: e8 00 00 00 00 call 3d9 <synaptics_report_mt_data+0x3d9> 3d5: R_X86_64_PLT32 input_mt_report_slot_state-0x4
3d9: 42 0f bf 4c bc 28 movswl 0x28(%rsp,%r15,4),%ecx
3df: 4c 89 e7 mov %r12,%rdi
3e2: be 03 00 00 00 mov $0x3,%esi
3e7: ba 35 00 00 00 mov $0x35,%edx
3ec: e8 00 00 00 00 call 3f1 <synaptics_report_mt_data+0x3f1> 3ed: R_X86_64_PLT32 input_event-0x4
3f1: 42 0f bf 4c bc 2a movswl 0x2a(%rsp,%r15,4),%ecx
3f7: 4c 89 e7 mov %r12,%rdi
3fa: be 03 00 00 00 mov $0x3,%esi
3ff: ba 36 00 00 00 mov $0x36,%edx
404: e8 00 00 00 00 call 409 <synaptics_report_mt_data+0x409> 405: R_X86_64_PLT32 input_event-0x4
409: 4a 8b 44 fc 30 mov 0x30(%rsp,%r15,8),%rax
40e: 8b 48 08 mov 0x8(%rax),%ecx
411: 4c 89 e7 mov %r12,%rdi
414: be 03 00 00 00 mov $0x3,%esi
419: ba 3a 00 00 00 mov $0x3a,%edx
41e: e8 00 00 00 00 call 423 <synaptics_report_mt_data+0x423> 41f: R_X86_64_PLT32 input_event-0x4
423: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # 429 <synaptics_report_mt_data+0x429> 425: R_X86_64_PC32 __preempt_count-0x4
429: 25 00 01 ff 00 and $0xff0100,%eax
42e: 4d 39 fd cmp %r15,%r13
431: 74 58 je 48b <synaptics_report_mt_data+0x48b>
433: 85 c0 test %eax,%eax
435: 74 18 je 44f <synaptics_report_mt_data+0x44f>
437: 3d 00 01 00 00 cmp $0x100,%eax
43c: 0f 85 6e ff ff ff jne 3b0 <synaptics_report_mt_data+0x3b0>
442: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
449: 0f 84 61 ff ff ff je 3b0 <synaptics_report_mt_data+0x3b0>
44f: 8b 83 88 14 00 00 mov 0x1488(%rbx),%eax
455: 83 f8 02 cmp $0x2,%eax
458: 0f 85 52 ff ff ff jne 3b0 <synaptics_report_mt_data+0x3b0>
45e: 48 8b 83 90 14 00 00 mov 0x1490(%rbx),%rax
465: 48 8b 08 mov (%rax),%rcx
468: 48 8d 51 01 lea 0x1(%rcx),%rdx
46c: 8b b3 8c 14 00 00 mov 0x148c(%rbx),%esi
472: 48 39 f2 cmp %rsi,%rdx
475: 0f 83 35 ff ff ff jae 3b0 <synaptics_report_mt_data+0x3b0>
47b: 48 89 10 mov %rdx,(%rax)
47e: 4c 89 74 c8 08 mov %r14,0x8(%rax,%rcx,8)
483: 49 ff c7 inc %r15
486: e9 28 ff ff ff jmp 3b3 <synaptics_report_mt_data+0x3b3>
48b: 85 c0 test %eax,%eax
48d: 4c 8b 7c 24 10 mov 0x10(%rsp),%r15
492: 74 10 je 4a4 <synaptics_report_mt_data+0x4a4>
494: 3d 00 01 00 00 cmp $0x100,%eax
499: 75 35 jne 4d0 <synaptics_report_mt_data+0x4d0>
49b: 83 bb ac 14 00 00 00 cmpl $0x0,0x14ac(%rbx)
4a2: 74 2c je 4d0 <synaptics_report_mt_data+0x4d0>
4a4: 8b 83 88 14 00 00 mov 0x1488(%rbx),%eax
4aa: 83 f8 02 cmp $0x2,%eax
4ad: 75 21 jne 4d0 <synaptics_report_mt_data+0x4d0>
4af: 48 8b 83 90 14 00 00 mov 0x1490(%rbx),%rax
4b6: 48 8b 08 mov (%rax),%rcx
4b9: 48 8d 51 01 lea 0x1(%rcx),%rdx
4bd: 8b b3 8c 14 00 00 mov 0x148c(%rbx),%esi
4c3: 48 39 f2 cmp %rsi,%rdx
4c6: 73 08 jae 4d0 <synaptics_report_mt_data+0x4d0>
4c8: 48 89 10 mov %rdx,(%rax)
4cb: 4c 89 74 c8 08 mov %r14,0x8(%rax,%rcx,8)
4d0: 4c 89 e7 mov %r12,%rdi
4d3: e8 00 00 00 00 call 4d8 <synaptics_report_mt_data+0x4d8> 4d4: R_X86_64_PLT32 input_mt_drop_unused-0x4
4d8: 4c 89 e7 mov %r12,%rdi
4db: 31 f6 xor %esi,%esi
4dd: e8 00 00 00 00 call 4e2 <synaptics_report_mt_data+0x4e2> 4de: R_X86_64_PLT32 input_mt_report_pointer_emulation-0x4
4e2: 4c 89 e7 mov %r12,%rdi
4e5: 8b 74 24 0c mov 0xc(%rsp),%esi
4e9: e8 00 00 00 00 call 4ee <synaptics_report_mt_data+0x4ee> 4ea: R_X86_64_PLT32 input_mt_report_finger_count-0x4
4ee: 48 8b 7c 24 18 mov 0x18(%rsp),%rdi
4f3: 4c 89 fe mov %r15,%rsi
4f6: e8 00 00 00 00 call 4fb <synaptics_report_mt_data+0x4fb> 4f7: R_X86_64_PLT32 .text.synaptics_report_buttons-0x4
4fb: 4c 89 e7 mov %r12,%rdi
4fe: 31 f6 xor %esi,%esi
500: 31 d2 xor %edx,%edx
502: 31 c9 xor %ecx,%ecx
504: e8 00 00 00 00 call 509 <synaptics_report_mt_data+0x509> 505: R_X86_64_PLT32 input_event-0x4
509: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 510 <synaptics_report_mt_data+0x510> 50c: R_X86_64_PC32 __stack_chk_guard-0x4
510: 48 3b 44 24 40 cmp 0x40(%rsp),%rax
515: 75 25 jne 53c <synaptics_report_mt_data+0x53c>
517: 48 8d 65 d8 lea -0x28(%rbp),%rsp
51b: 5b pop %rbx
51c: 41 5c pop %r12
51e: 41 5d pop %r13
520: 41 5e pop %r14
522: 41 5f pop %r15
524: 5d pop %rbp
525: 31 c0 xor %eax,%eax
527: 31 c9 xor %ecx,%ecx
529: 31 ff xor %edi,%edi
52b: 31 d2 xor %edx,%edx
52d: 31 f6 xor %esi,%esi
52f: 45 31 c0 xor %r8d,%r8d
532: 45 31 c9 xor %r9d,%r9d
535: 45 31 d2 xor %r10d,%r10d
538: 45 31 db xor %r11d,%r11d
53b: c3 ret
53c: e8 00 00 00 00 call 541 <synaptics_report_mt_data+0x541> 53d: R_X86_64_PLT32 __stack_chk_fail-0x4
541: 8b 83 88 14 00 00 mov 0x1488(%rbx),%eax
547: 48 8b 83 90 14 00 00 mov 0x1490(%rbx),%rax
54e: 48 ff 00 incq (%rax)
> Also, if you happen to have CONFIG_DEBUG_INFO enabled, the line number
> of that last branch:
>
> addr2line -fpie vmlinux.o.orig -j .text.synaptics_report_mt_data 0x33e
That configuration does have debug info enabled but...
$ addr2line -fpie vmlinux.o.orig -j .text.synaptics_report_mt_data 0x33e
synaptics_report_mt_data at ld-temp.o:?
Unfortunately, I am not sure how well LTO preserves debug info; IIUC,
debug info in LLVM is best effort, optimizations may or may not update
the info throughout their transformations, especially by the time the
LTO pipeline happens.
Cheers,
Nathan
Powered by blists - more mailing lists