1. 15 Mar, 2011 1 commit
  2. 21 Feb, 2011 1 commit
  3. 18 Feb, 2011 1 commit
    • Linus Torvalds's avatar
      Expand CONFIG_DEBUG_LIST to several other list operations · 3c18d4de
      Linus Torvalds authored
      
      When list debugging is enabled, we aim to readably show list corruption
      errors, and the basic list_add/list_del operations end up having extra
      debugging code in them to do some basic validation of the list entries.
      
      However, "list_del_init()" and "list_move[_tail]()" ended up avoiding
      the debug code due to how they were written. This fixes that.
      
      So the _next_ time we have list_move() problems with stale list entries,
      we'll hopefully have an easier time finding them..
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3c18d4de
  4. 17 Feb, 2011 2 commits
  5. 16 Feb, 2011 1 commit
  6. 15 Feb, 2011 1 commit
  7. 14 Feb, 2011 1 commit
  8. 12 Feb, 2011 2 commits
  9. 11 Feb, 2011 2 commits
  10. 08 Feb, 2011 2 commits
  11. 05 Feb, 2011 1 commit
  12. 04 Feb, 2011 3 commits
  13. 03 Feb, 2011 6 commits
    • Steven Rostedt's avatar
      tracing: Replace syscall_meta_data struct array with pointer array · 3d56e331
      Steven Rostedt authored
      
      Currently the syscall_meta structures for the syscall tracepoints are
      placed in the __syscall_metadata section, and at link time, the linker
      makes one large array of all these syscall metadata structures. On boot
      up, this array is read (much like the initcall sections) and the syscall
      data is processed.
      
      The problem is that there is no guarantee that gcc will place complex
      structures nicely together in an array format. Two structures in the
      same file may be placed awkwardly, because gcc has no clue that they
      are suppose to be in an array.
      
      A hack was used previous to force the alignment to 4, to pack the
      structures together. But this caused alignment issues with other
      architectures (sparc).
      
      Instead of packing the structures into an array, the structures' addresses
      are now put into the __syscall_metadata section. As pointers are always the
      natural alignment, gcc should always pack them tightly together
      (otherwise initcall, extable, etc would also fail).
      
      By having the pointers to the structures in the section, we can still
      iterate the trace_events without causing unnecessary alignment problems
      with other architectures, or depending on the current behaviour of
      gcc that will likely change in the future just to tick us kernel developers
      off a little more.
      
      The __syscall_metadata section is also moved into the .init.data section
      as it is now only needed at boot up.
      Suggested-by: default avatarDavid Miller <davem@davemloft.net>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      3d56e331
    • Mathieu Desnoyers's avatar
      tracepoints: Fix section alignment using pointer array · 65498646
      Mathieu Desnoyers authored
      Make the tracepoints more robust, making them solid enough to handle compiler
      changes by not relying on anything based on compiler-specific behavior with
      respect to structure alignment. Implement an approach proposed by David Miller:
      use an array of const pointers to refer to the individual structures, and export
      this pointer array through the linker script rather than the structures per se.
      It will consume 32 extra bytes per tracepoint (24 for structure padding and 8
      for the pointers), but are less likely to break due to compiler changes.
      
      History:
      
      commit 7e066fb8
      
       tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()
      added the aligned(32) type and variable attribute to the tracepoint structures
      to deal with gcc happily aligning statically defined structures on 32-byte
      multiples.
      
      One attempt was to use a 8-byte alignment for tracepoint structures by applying
      both the variable and type attribute to tracepoint structures definitions and
      declarations. It worked fine with gcc 4.5.1, but broke with gcc 4.4.4 and 4.4.5.
      
      The reason is that the "aligned" attribute only specify the _minimum_ alignment
      for a structure, leaving both the compiler and the linker free to align on
      larger multiples. Because tracepoint.c expects the structures to be placed as an
      array within each section, up-alignment cause NULL-pointer exceptions due to the
      extra unexpected padding.
      
      (this patch applies on top of -tip)
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      LKML-Reference: <20110126222622.GA10794@Krystal>
      CC: Frederic Weisbecker <fweisbec@gmail.com>
      CC: Ingo Molnar <mingo@elte.hu>
      CC: Thomas Gleixner <tglx@linutronix.de>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Peter Zijlstra <peterz@infradead.org>
      CC: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      65498646
    • Steven Rostedt's avatar
      tracing: Replace trace_event struct array with pointer array · e4a9ea5e
      Steven Rostedt authored
      
      Currently the trace_event structures are placed in the _ftrace_events
      section, and at link time, the linker makes one large array of all
      the trace_event structures. On boot up, this array is read (much like
      the initcall sections) and the events are processed.
      
      The problem is that there is no guarantee that gcc will place complex
      structures nicely together in an array format. Two structures in the
      same file may be placed awkwardly, because gcc has no clue that they
      are suppose to be in an array.
      
      A hack was used previous to force the alignment to 4, to pack the
      structures together. But this caused alignment issues with other
      architectures (sparc).
      
      Instead of packing the structures into an array, the structures' addresses
      are now put into the _ftrace_event section. As pointers are always the
      natural alignment, gcc should always pack them tightly together
      (otherwise initcall, extable, etc would also fail).
      
      By having the pointers to the structures in the section, we can still
      iterate the trace_events without causing unnecessary alignment problems
      with other architectures, or depending on the current behaviour of
      gcc that will likely change in the future just to tick us kernel developers
      off a little more.
      
      The _ftrace_event section is also moved into the .init.data section
      as it is now only needed at boot up.
      Suggested-by: default avatarDavid Miller <davem@davemloft.net>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      e4a9ea5e
    • Namhyung Kim's avatar
      vfs: sparse: add __FMODE_EXEC · 3cd90ea4
      Namhyung Kim authored
      
      FMODE_EXEC is a constant type of fmode_t but was used with normal integer
      constants.  This results in following warnings from sparse.  Fix it using
      new macro __FMODE_EXEC.
      
       fs/exec.c:116:58: warning: restricted fmode_t degrades to integer
       fs/exec.c:689:58: warning: restricted fmode_t degrades to integer
       fs/fcntl.c:777:9: warning: restricted fmode_t degrades to integer
      Signed-off-by: default avatarNamhyung Kim <namhyung@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3cd90ea4
    • Namhyung Kim's avatar
      vfs: sparse: remove a warning on OPEN_FMODE() · 1a44bc8c
      Namhyung Kim authored
      
      AND-ing FMODE_* constant with normal integer results in following
      sparse warnings. Fix it.
      
       fs/open.c:662:21: warning: restricted fmode_t degrades to integer
       fs/anon_inodes.c:123:34: warning: restricted fmode_t degrades to integer
      Signed-off-by: default avatarNamhyung Kim <namhyung@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a44bc8c
    • Johannes Weiner's avatar
      memcg: prevent endless loop when charging huge pages to near-limit group · 19942822
      Johannes Weiner authored
      
      If reclaim after a failed charging was unsuccessful, the limits are
      checked again, just in case they settled by means of other tasks.
      
      This is all fine as long as every charge is of size PAGE_SIZE, because in
      that case, being below the limit means having at least PAGE_SIZE bytes
      available.
      
      But with transparent huge pages, we may end up in an endless loop where
      charging and reclaim fail, but we keep going because the limits are not
      yet exceeded, although not allowing for a huge page.
      
      Fix this up by explicitely checking for enough room, not just whether we
      are within limits.
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Reviewed-by: default avatarMinchan Kim <minchan.kim@gmail.com>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      19942822
  14. 02 Feb, 2011 1 commit
  15. 01 Feb, 2011 1 commit
    • Pablo Neira Ayuso's avatar
      netfilter: ecache: always set events bits, filter them later · 3db7e93d
      Pablo Neira Ayuso authored
      
      For the following rule:
      
      iptables -I PREROUTING -t raw -j CT --ctevents assured
      
      The event delivered looks like the following:
      
       [UPDATE] tcp      6 src=192.168.0.2 dst=192.168.1.2 sport=37041 dport=80 src=192.168.1.2 dst=192.168.1.100 sport=80 dport=37041 [ASSURED]
      
      Note that the TCP protocol state is not included. For that reason
      the CT event filtering is not very useful for conntrackd.
      
      To resolve this issue, instead of conditionally setting the CT events
      bits based on the ctmask, we always set them and perform the filtering
      in the late stage, just before the delivery.
      
      Thus, the event delivered looks like the following:
      
       [UPDATE] tcp      6 432000 ESTABLISHED src=192.168.0.2 dst=192.168.1.2 sport=37041 dport=80 src=192.168.1.2 dst=192.168.1.100 sport=80 dport=37041 [ASSURED]
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      3db7e93d
  16. 31 Jan, 2011 2 commits
    • Randy Dunlap's avatar
      kernel.h: fix kernel-doc warning · ffbbf2da
      Randy Dunlap authored
      Fix kernel-doc warning in kernel.h from commit 7ef88ad5
      
      
      ("BUILD_BUG_ON: make it handle more cases"):
      
        Warning(include/linux/kernel.h:605): No description found for parameter 'condition'
        Warning(include/linux/kernel.h:605): Excess function parameter 'cond' description in 'BUILD_BUG_ON'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffbbf2da
    • Chris Wilson's avatar
      drm/i915: Suppress spurious vblank interrupts · 78c6e170
      Chris Wilson authored
      
      Hugh Dickins found that characters in xterm were going missing and oft
      delayed. Being the curious type, he managed to associate this with the
      new high-precision vblank patches; disabling these he found, restored
      the orderliness of his characters.
      
      The oddness begins when one realised that Hugh was not using vblanks at
      all on his system (fvwm and some xterms). Instead, all he had to go on
      were warning of a pipe underrun, curiously enough at around 60Hz. He
      poked and found that in addition to the underrun warning, the hardware
      was flagging the start of a new frame, a vblank, which in turn was
      kicking off the pending vblank processing code.
      
      There is little we can do for the underruns on Hugh's machine, a
      Crestline [965GM], which must have its FIFO watermarks set to 8.
      However, we do not need to process the vblank if we know that they are
      disabled...
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      78c6e170
  17. 30 Jan, 2011 2 commits
  18. 26 Jan, 2011 3 commits
  19. 25 Jan, 2011 4 commits
  20. 24 Jan, 2011 3 commits