lkml.org 
[lkml]   [2010]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH][GIT PULL][for 2.6.35] tracing: Add alignment to syscall metadata declarations
    From
    Date
    On Fri, 2010-07-09 at 22:33 +0200, Sam Ravnborg wrote:
    > On Fri, Jul 09, 2010 at 03:56:42PM -0400, Steven Rostedt wrote:

    > This looks like a fix that just hide the real bug.
    > If I remember the original report correct the problem is
    > that the symbol:
    >
    > __start_syscalls_metadata
    >
    > Does not point to a valid syscall entry.
    >
    > The symbol is assigned in vmlinux.lds.h like this:
    > #define TRACE_SYSCALLS() VMLINUX_SYMBOL(__start_syscalls_metadata) = .; \
    > *(__syscalls_metadata) \
    > VMLINUX_SYMBOL(__stop_syscalls_metadata) = .;
    >
    > Now consider what is happening if we have the following scanario:
    >
    > . equals 0x1004 so __start_syscalls_metadata is set to 0x1004
    > But __syscall_metadata require 8 byte alignment so it starts at 0x1008.


    I did not know that the linker could start a section at a half a word
    size. That seems to me to be a linker bug.

    If a word for a box is 8 bytes than the linker had better start sections
    on 8 byte boundaries. Otherwise I would think other things may break.

    For 4 byte word boxes, this should be safe anyway.

    -- Steve





    \
     
     \ /
      Last update: 2010-07-09 22:49    [W:2.113 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site