On Mon, Aug 31, 2015 at 09:18:33AM +0200, Jan Stancek wrote:
> There are couple of situations, where objdump output doesn't
> match "code reading" test expectations:
> 
> 1. gaps in output, objdump skips zero blocks by default
> 
>   ffffffff816704fe <sysret_check+0x4b>:
>   ffffffff816704fe:   7b 34                   jnp    ffffffff81670534  
> <sysret_signal+0x1c>
>         ...
>   ffffffff81670501 <sysret_careful>:
>   ffffffff81670501:   0f ba e2 03             bt     $0x3,%edx
>   ffffffff81670505:   73 11                   jae    ffffffff81670518  
> <sysret_signal>
> 
> This patch adds "-z" to objdump parameters.
> 
> 2. bytes can be repeated in objdump output, test reads it all sequentially
>    assuming each address is represented in output only once.
> 
>   ffffffff8164efb3 <retint_swapgs+0x9>:
>   ffffffff8164efb3:       c1 5d 00 eb             rcrl   $0xeb,0x0(%rbp)
>   ffffffff8164efb7:       00 4c 8b 5c             add    %cl,0x5c(%rbx,%rcx,4)
> 
>   ffffffff8164efb8 <restore_c_regs_and_iret>:
>   ffffffff8164efb8:       4c 8b 5c 24 30          mov    0x30(%rsp),%r11
>   ffffffff8164efbd:       4c 8b 54 24 38          mov    0x38(%rsp),%r10
> 
> This patch stores objdump output to buffer according to address
> on each line.
> 
> 3. objdump output can span across multiple sections
> 
>   Disassembly of section .text:
>     0000000000000008 <crc32c+0x8>:
>        8:     48 89 e5                mov    %rsp,%rbp
>        b:     53                      push   %rbx
>        c:     8b 01                   mov    (%rcx),%eax
>     <snip>
>       6b:     90                      nop
> 
>   Disassembly of section .init.text:
>     0000000000000008 <init_module+0x8>:
>        8:     00 00                   add    %al,(%rax)
>        a:     00 00                   add    %al,(%rax)
>        c:     48 89 e5
> 
> This patch aborts further reading if address starts going backwards,
> assuming we crossed sections.

I would have expected 3 patches, each patch doing exactly one of the
above.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to