Message ID | 20200206030900.147032-5-leonardo@linux.ibm.com |
---|---|
State | Not Applicable |
Headers | show |
Series | Introduces new functions for tracking lockless pagetable walks | expand |
Le 06/02/2020 à 04:08, Leonardo Bras a écrit : > Applies the new functions used for tracking lockless pgtable walks on > addr_to_pfn(). > > local_irq_{save,restore} is already inside {begin,end}_lockless_pgtbl_walk, > so there is no need to repeat it here. > > Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> > --- > arch/powerpc/kernel/mce_power.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kernel/mce_power.c b/arch/powerpc/kernel/mce_power.c > index 1cbf7f1a4e3d..a9e38ef4e437 100644 > --- a/arch/powerpc/kernel/mce_power.c > +++ b/arch/powerpc/kernel/mce_power.c > @@ -29,7 +29,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) > { > pte_t *ptep; > unsigned int shift; > - unsigned long pfn, flags; > + unsigned long pfn, irq_mask; Why change the name ? flags is a well known historical name. > struct mm_struct *mm; > > if (user_mode(regs)) > @@ -37,7 +37,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) > else > mm = &init_mm; > > - local_irq_save(flags); > + irq_mask = begin_lockless_pgtbl_walk(); > ptep = __find_linux_pte(mm->pgd, addr, NULL, &shift); > > if (!ptep || pte_special(*ptep)) { > @@ -53,7 +53,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) > } > > out: > - local_irq_restore(flags); > + end_lockless_pgtbl_walk(irq_mask); > return pfn; > } > > Christophe
On Thu, 2020-02-06 at 06:48 +0100, Christophe Leroy wrote: > > --- a/arch/powerpc/kernel/mce_power.c > > +++ b/arch/powerpc/kernel/mce_power.c > > @@ -29,7 +29,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) > > { > > pte_t *ptep; > > unsigned int shift; > > - unsigned long pfn, flags; > > + unsigned long pfn, irq_mask; > > Why change the name ? flags is a well known historical name. Oh, this commit missed the reasoning for flags name change. For local_irq_{save,restore} a parameter named flags makes sense, for the reader, as it could only be flags regarding irq. I thougt passing flags to {begin,end}_lockless_pgtbl_walk would lose it's meaning, given that it would only mean "flags for these functions" So, changing it to irq_mask would make the reader more aware of what it does mean. For other commits, I added: "Variable that saves the irq mask was renamed from flags to irq_mask so it doesn't lose meaning now it's not directly passed to local_irq_* functions." I can add it to this commit message. Thanks for the feedback, Leonardo Bras
diff --git a/arch/powerpc/kernel/mce_power.c b/arch/powerpc/kernel/mce_power.c index 1cbf7f1a4e3d..a9e38ef4e437 100644 --- a/arch/powerpc/kernel/mce_power.c +++ b/arch/powerpc/kernel/mce_power.c @@ -29,7 +29,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) { pte_t *ptep; unsigned int shift; - unsigned long pfn, flags; + unsigned long pfn, irq_mask; struct mm_struct *mm; if (user_mode(regs)) @@ -37,7 +37,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) else mm = &init_mm; - local_irq_save(flags); + irq_mask = begin_lockless_pgtbl_walk(); ptep = __find_linux_pte(mm->pgd, addr, NULL, &shift); if (!ptep || pte_special(*ptep)) { @@ -53,7 +53,7 @@ unsigned long addr_to_pfn(struct pt_regs *regs, unsigned long addr) } out: - local_irq_restore(flags); + end_lockless_pgtbl_walk(irq_mask); return pfn; }
Applies the new functions used for tracking lockless pgtable walks on addr_to_pfn(). local_irq_{save,restore} is already inside {begin,end}_lockless_pgtbl_walk, so there is no need to repeat it here. Signed-off-by: Leonardo Bras <leonardo@linux.ibm.com> --- arch/powerpc/kernel/mce_power.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)