rcu: Expand SRCU ->completed to 64 bits
When rcutorture used only the low-order 32 bits of the grace-period number, it was not a problem for SRCU to use a 32-bit completed field. However, rcutorture now uses the full 64 bits on 64-bit systems, so this commit converts SRCU's ->completed field to unsigned long so as to provide 64 bits on 64-bit systems. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
734d168013
commit
a5c198f4f7
|
@ -45,7 +45,7 @@ struct rcu_batch {
|
||||||
#define RCU_BATCH_INIT(name) { NULL, &(name.head) }
|
#define RCU_BATCH_INIT(name) { NULL, &(name.head) }
|
||||||
|
|
||||||
struct srcu_struct {
|
struct srcu_struct {
|
||||||
unsigned completed;
|
unsigned long completed;
|
||||||
struct srcu_struct_array __percpu *per_cpu_ref;
|
struct srcu_struct_array __percpu *per_cpu_ref;
|
||||||
spinlock_t queue_lock; /* protect ->batch_queue, ->running */
|
spinlock_t queue_lock; /* protect ->batch_queue, ->running */
|
||||||
bool running;
|
bool running;
|
||||||
|
@ -135,7 +135,7 @@ int __srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
|
||||||
void __srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
|
void __srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
|
||||||
void synchronize_srcu(struct srcu_struct *sp);
|
void synchronize_srcu(struct srcu_struct *sp);
|
||||||
void synchronize_srcu_expedited(struct srcu_struct *sp);
|
void synchronize_srcu_expedited(struct srcu_struct *sp);
|
||||||
long srcu_batches_completed(struct srcu_struct *sp);
|
unsigned long srcu_batches_completed(struct srcu_struct *sp);
|
||||||
void srcu_barrier(struct srcu_struct *sp);
|
void srcu_barrier(struct srcu_struct *sp);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||||
|
|
|
@ -546,7 +546,7 @@ EXPORT_SYMBOL_GPL(srcu_barrier);
|
||||||
* Report the number of batches, correlated with, but not necessarily
|
* Report the number of batches, correlated with, but not necessarily
|
||||||
* precisely the same as, the number of grace periods that have elapsed.
|
* precisely the same as, the number of grace periods that have elapsed.
|
||||||
*/
|
*/
|
||||||
long srcu_batches_completed(struct srcu_struct *sp)
|
unsigned long srcu_batches_completed(struct srcu_struct *sp)
|
||||||
{
|
{
|
||||||
return sp->completed;
|
return sp->completed;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue