Skip to content
  • Paul E. McKenney's avatar
    rcu: Stop overflowing signed integers · 20133cfc
    Paul E. McKenney authored
    
    
    The C standard does not specify the result of an operation that
    overflows a signed integer, so such operations need to be
    avoided.  This patch changes the type of several fields from
    "long" to "unsigned long" and adjusts operations as needed.
    ULONG_CMP_GE() and ULONG_CMP_LT() macros are introduced to do
    the modular comparisons that are appropriate given that overflow
    is an expected event.
    
    Acked-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference: <1266887105-1528-17-git-send-email-paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    20133cfc