The original patch seems missing the following change for 32bit.

Thanks,
-Aubrey

diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index 9fbb10383434..78de28ebc45d 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -111,7 +111,7 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int 
cpu,
        /*
         * Take rq->lock to make 64-bit read safe on 32-bit platforms.
         */
-       raw_spin_lock_irq(&cpu_rq(cpu)->lock);
+       raw_spin_lock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
 
        if (index == CPUACCT_STAT_NSTATS) {
@@ -125,7 +125,7 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int 
cpu,
        }
 
 #ifndef CONFIG_64BIT
-       raw_spin_unlock_irq(&cpu_rq(cpu)->lock);
+       raw_spin_unlock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
 
        return data;
@@ -140,14 +140,14 @@ static void cpuacct_cpuusage_write(struct cpuacct *ca, 
int cpu, u64 val)
        /*
         * Take rq->lock to make 64-bit write safe on 32-bit platforms.
         */
-       raw_spin_lock_irq(&cpu_rq(cpu)->lock);
+       raw_spin_lock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
 
        for (i = 0; i < CPUACCT_STAT_NSTATS; i++)
                cpuusage->usages[i] = val;
 
 #ifndef CONFIG_64BIT
-       raw_spin_unlock_irq(&cpu_rq(cpu)->lock);
+       raw_spin_unlock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
 }
 
@@ -252,13 +252,13 @@ static int cpuacct_all_seq_show(struct seq_file *m, void 
*V)
                         * Take rq->lock to make 64-bit read safe on 32-bit
                         * platforms.
                         */
-                       raw_spin_lock_irq(&cpu_rq(cpu)->lock);
+                       raw_spin_lock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
 
                        seq_printf(m, " %llu", cpuusage->usages[index]);
 
 #ifndef CONFIG_64BIT
-                       raw_spin_unlock_irq(&cpu_rq(cpu)->lock);
+                       raw_spin_unlock_irq(rq_lockp(cpu_rq(cpu)));
 #endif
                }
                seq_puts(m, "\n");

Reply via email to