rcu: Make rcu_implicit_dynticks_qs() locals be correct size
When the ->dynticks field in the rcu_dynticks structure changed to an atomic_t, its size on 64-bit systems changed from 64 bits to 32 bits. The local variables in rcu_implicit_dynticks_qs() need to change as well, hence this commit. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
@@ -488,11 +488,11 @@ static int dyntick_save_progress_counter(struct rcu_data *rdp)
|
|||||||
*/
|
*/
|
||||||
static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
|
static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
|
||||||
{
|
{
|
||||||
unsigned long curr;
|
unsigned int curr;
|
||||||
unsigned long snap;
|
unsigned int snap;
|
||||||
|
|
||||||
curr = (unsigned long)atomic_add_return(0, &rdp->dynticks->dynticks);
|
curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
|
||||||
snap = (unsigned long)rdp->dynticks_snap;
|
snap = (unsigned int)rdp->dynticks_snap;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the CPU passed through or entered a dynticks idle phase with
|
* If the CPU passed through or entered a dynticks idle phase with
|
||||||
@@ -502,7 +502,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
|
|||||||
* read-side critical section that started before the beginning
|
* read-side critical section that started before the beginning
|
||||||
* of the current RCU grace period.
|
* of the current RCU grace period.
|
||||||
*/
|
*/
|
||||||
if ((curr & 0x1) == 0 || ULONG_CMP_GE(curr, snap + 2)) {
|
if ((curr & 0x1) == 0 || UINT_CMP_GE(curr, snap + 2)) {
|
||||||
trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, "dti");
|
trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, "dti");
|
||||||
rdp->dynticks_fqs++;
|
rdp->dynticks_fqs++;
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user