On 2020-05-23 21:28, Finn Thain wrote: > 2. The get_unaligned_le32() changes produce new pointer offsets in the > assembly code for qla82xx_get_table_desc() and qla82xx_get_data_desc(). > > diff -ru /tmp/unpatched/qla_target.s /tmp/patched/qla_target.s > --- /tmp/unpatched/qla_target.s 2020-05-24 14:02:32.178019380 +1000 > +++ /tmp/patched/qla_target.s 2020-05-24 14:01:43.487947966 +1000 > @@ -12884,10 +12884,10 @@ > .cfi_offset 6, -16 > movq %rsp, %rbp > .cfi_def_cfa_register 6 > - subq $32, %rsp > - movq %rdi, -24(%rbp) > - movq %rsi, -32(%rbp) > - movq -32(%rbp), %rax > + subq $64, %rsp > + movq %rdi, -56(%rbp) > + movq %rsi, -64(%rbp) > + movq -64(%rbp), %rax > movl 52(%rax), %eax > movl %eax, -8(%rbp) > movl $24, -12(%rbp) > @@ -12895,62 +12895,62 @@ > cmpl %eax, -12(%rbp) > cmovbe -12(%rbp), %eax > movl %eax, %edx > - movq -32(%rbp), %rax > + movq -64(%rbp), %rax > movl %edx, 52(%rax) > - movq -24(%rbp), %rax > + movq -56(%rbp), %rax > (and so on.) > > Was this expected? I find it surprising... The functions qla82xx_get_table_desc() and qla82xx_get_data_desc() exist in qla_nx.c. Does the above diff perhaps refer to qla_nx.s instead of qla_target.s? To me the change of "subq $32, %rsp" into "subq $64, %rsp" means that the compiler reserved more space on the stack for local variables. If I compare the assembler output for qla_nx.c then I see that qla82xx_get_table_desc() gets inlined with my patch applied but not without my patch applied. This is something that I had not expected but that explains the above diff IMHO. Bart.