Compiled code with this patch:
00000000000015b0 <nouveau_pushbuf_reloc>: 15b0: 55 push %rbp 15b1: 48 8b 6f 30 mov 0x30(%rdi),%rbp 15b5: 53 push %rbx 15b6: 48 89 fb mov %rdi,%rbx 15b9: e8 42 ea ff ff callq 0 <pushbuf_krel> 15be: 89 45 00 mov %eax,0x0(%rbp) 15c1: 48 83 43 30 04 addq $0x4,0x30(%rbx) 15c6: 5b pop %rbx 15c7: 5d pop %rbp 15c8: c3 retq
Without: 0000000000001650 <nouveau_pushbuf_reloc>: 1650: 48 89 5c 24 f0 mov %rbx,-0x10(%rsp) 1655: 48 89 6c 24 f8 mov %rbp,-0x8(%rsp) 165a: 48 83 ec 10 sub $0x10,%rsp 165e: 48 8b 6f 30 mov 0x30(%rdi),%rbp 1662: 48 89 fb mov %rdi,%rbx 1665: e8 96 e9 ff ff callq 0 <pushbuf_krel> 166a: 89 45 00 mov %eax,0x0(%rbp) 166d: 48 83 c5 04 add $0x4,%rbp 1671: 48 89 6b 30 mov %rbp,0x30(%rbx) 1675: 48 8b 1c 24 mov (%rsp),%rbx 1679: 48 8b 6c 24 08 mov 0x8(%rsp),%rbp 167e: 48 83 c4 10 add $0x10,%rsp 1682: c3 retq
It seems that the nouveau_pushbuf_reloc difference is harmless. Code is equivalent, except that without the patch applied it uses another temp variable causing less optimal code generation.
Remaining candidates: pushbuf_validate, nouveau_pushbuf_data, nouveau_pushbuf_del.
Compiled code with this patch:
00000000000015b0 <nouveau_ pushbuf_ reloc>:
15b0: 55 push %rbp
15b1: 48 8b 6f 30 mov 0x30(%rdi),%rbp
15b5: 53 push %rbx
15b6: 48 89 fb mov %rdi,%rbx
15b9: e8 42 ea ff ff callq 0 <pushbuf_krel>
15be: 89 45 00 mov %eax,0x0(%rbp)
15c1: 48 83 43 30 04 addq $0x4,0x30(%rbx)
15c6: 5b pop %rbx
15c7: 5d pop %rbp
15c8: c3 retq
Without: pushbuf_ reloc>:
0000000000001650 <nouveau_
1650: 48 89 5c 24 f0 mov %rbx,-0x10(%rsp)
1655: 48 89 6c 24 f8 mov %rbp,-0x8(%rsp)
165a: 48 83 ec 10 sub $0x10,%rsp
165e: 48 8b 6f 30 mov 0x30(%rdi),%rbp
1662: 48 89 fb mov %rdi,%rbx
1665: e8 96 e9 ff ff callq 0 <pushbuf_krel>
166a: 89 45 00 mov %eax,0x0(%rbp)
166d: 48 83 c5 04 add $0x4,%rbp
1671: 48 89 6b 30 mov %rbp,0x30(%rbx)
1675: 48 8b 1c 24 mov (%rsp),%rbx
1679: 48 8b 6c 24 08 mov 0x8(%rsp),%rbp
167e: 48 83 c4 10 add $0x10,%rsp
1682: c3 retq
It seems that the nouveau_ pushbuf_ reloc difference is harmless. Code is equivalent, except that without the patch applied it uses another temp variable causing less optimal code generation.
Remaining candidates: pushbuf_validate, nouveau_ pushbuf_ data, nouveau_ pushbuf_ del.