On Wed, Apr 06, 2016 at 08:32:19PM +1000, Anton Blanchard wrote: > Hi, > > > > > void cpuacct_charge(struct task_struct *tsk, u64 cputime) > > > > { > > > > struct cpuacct *ca; > > > > + int index; > > > > + > > > > + if (user_mode(task_pt_regs(tsk))) > > > > + index = CPUACCT_USAGE_USER; > > > > + else > > > > + index = CPUACCT_USAGE_SYSTEM; > > This is oopsing because PowerPC task_pt_regs() returns NULL for > kernel threads.
Ah, so sometihng like: struct pt_regs *regs = task_pt_regs(); int index = CPUACCT_USAGE_SYSTEM; if (regs && user_mode(regs)) index = CPUACCT_USAGE_USER; should work, right?