All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@us.ibm.com>
To: Josh Triplett <josht@us.ibm.com>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>,
	Dipkanar Sarma <dipankar@in.ibm.com>
Subject: Re: [PATCH] rcu: Fix sign bug making rcu_random always return the same sequence
Date: Fri, 18 Aug 2006 17:50:46 -0700	[thread overview]
Message-ID: <20060819005045.GE1317@us.ibm.com> (raw)
In-Reply-To: <1155947717.5337.9.camel@josh-work.beaverton.ibm.com>

On Fri, Aug 18, 2006 at 05:35:17PM -0700, Josh Triplett wrote:
> rcu_random uses a counter rrs_count to occasionally mix data from
> get_random_bytes into the state of its pseudorandom generator.  However, the
> rrs_counter gets declared as an unsigned long, and rcu_random checks for
> --rrs_count < 0, so this code will never mix any real random data into the
> state, and will thus always return the same sequence of random numbers.
> 
> Also, change the return value of rcu_random from long to unsigned long, to
> avoid potential issues caused by the use of the % operator, which can return
> negative values for negative left operands.

Acked-by: Paul E. McKenney <paulmck@us.ibm.com>
> Signed-off-by: Josh Triplett <josh@freedesktop.org>
> ---
>  kernel/rcutorture.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
> index 8b09c95..ef6a124 100644
> --- a/kernel/rcutorture.c
> +++ b/kernel/rcutorture.c
> @@ -146,7 +146,7 @@ rcu_torture_free(struct rcu_torture *p)
>  
>  struct rcu_random_state {
>  	unsigned long rrs_state;
> -	unsigned long rrs_count;
> +	long rrs_count;
>  };
>  
>  #define RCU_RANDOM_MULT 39916801  /* prime */
> @@ -159,7 +159,7 @@ #define DEFINE_RCU_RANDOM(name) struct r
>   * Crude but fast random-number generator.  Uses a linear congruential
>   * generator, with occasional help from get_random_bytes().
>   */
> -static long
> +static unsigned long
>  rcu_random(struct rcu_random_state *rrsp)
>  {
>  	long refresh;
> -- 
> 1.4.1.1
> 
> 

      reply	other threads:[~2006-08-19  0:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-19  0:35 [PATCH] rcu: Fix sign bug making rcu_random always return the same sequence Josh Triplett
2006-08-19  0:50 ` Paul E. McKenney [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060819005045.GE1317@us.ibm.com \
    --to=paulmck@us.ibm.com \
    --cc=akpm@osdl.org \
    --cc=dipankar@in.ibm.com \
    --cc=josht@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.