On Sun, 2013-01-13 at 16:52 -0500, John David Anglin wrote: > +void purge_tlb_entries(struct mm_struct *mm, unsigned long addr) > +{ > + unsigned long flags, sid; > + > + /* Note: purge_tlb_entries can be called at startup with > + no context. */ > + > + /* Disable preemption while we play with %sr1. */ > + preempt_disable(); > + sid = mfsp(1); > There's no need at all to save and restore %sr1 is there? It's defined to be a volatile register. As long as you make sure nothing gets in to change its value, you never need to restore the previous one. James > > + mtsp(mm->context,1); > + purge_tlb_start(flags); > + pdtlb(addr); > + pitlb(addr); > + purge_tlb_end(flags); > + mtsp(sid,1); > + preempt_enable(); > +} -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html