lkml.org 
[lkml]   [2010]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] taskstats: Use better ifdef for alignment
     Commit 4be2c95d added a null field to align the taskstats structure but
    the discussion centered around ia64. The issue exists on other platforms
    with inefficient unaligned access and adding them piecemeal would be
    an unmaintainable mess.

    This patch uses Dave Miller's suggestion of using a combination of
    CONFIG_64BIT && !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine
    whether alignment is needed.

    Note that this will cause breakage on those platforms with applications
    like iotop which had hard-coded offsets into the packet to access the
    taskstats structure.

    The message seen on systems without the alignment fixes looks like:
    kernel unaligned access to 0xe000023879dca9bc, ip=0xa000000100133d10

    The addresses may vary but resolve to locations inside __delayacct_add_tsk.

    Reported-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    ---
    kernel/taskstats.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/kernel/taskstats.c
    +++ b/kernel/taskstats.c
    @@ -349,7 +349,7 @@ static int parse(struct nlattr *na, stru
    return ret;
    }

    -#ifdef CONFIG_IA64
    +#if defined(CONFIG_64BIT) && !defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
    #define TASKSTATS_NEEDS_PADDING 1
    #endif


    \
     
     \ /
      Last update: 2010-12-30 01:15    [W:0.018 / U:30.108 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site