Re: [PATCH 0/3] mm/arch: Fix a few collide definition on private use of VM_FAULT_*

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 06, 2023 at 05:09:57AM +0000, Matthew Wilcox wrote:
> On Sun, Feb 05, 2023 at 10:18:30PM -0500, Peter Xu wrote:
> > On Mon, Feb 06, 2023 at 02:51:18AM +0000, Matthew Wilcox wrote:
> > > That wasn't what I meant.  I meant putting VM_FAULT_BADMAP and
> > > VM_FAULT_SIGSEGV in mm_types.h.  Not having "Here is a range of reserved
> > > arch private ones".
> > 
> > VM_FAULT_SIGSEGV is there already; I assume you meant adding them all
> > directly into vm_fault_reason.
> > 
> > Then I don't think it's a good idea..
> > 
> > Currently vm_fault_reason is a clear interface for handle_mm_fault() for
> > not only arch pffault handlers but also soft faults like GUP.
> > 
> > If handle_mm_fault() doesn't return VM_FAULT_BADMAP at all, I don't think
> > we should have it as public API at all.  When arch1 people reading the
> > VM_FAULT_ documents, it shouldn't care about some fault reason that only
> > happens with arch2.  Gup shouldn't care about it either.
> > 
> > Logically a new page fault handler should handle all the retval of
> > vm_fault_reason afaiu.  That shouldn't include e.g. VM_FAULT_BADMAP either.
> 
> Hmm, right.  Looking specifically at how s390 uses VM_FAULT_BADMAP,
> it just seems to be a badly structured fault.c.  Seems to me that
> do_fault_error() should take an extra si_code argument, and
> instead of returning VM_FAULT_BADACCESS / VM_FAULT_BADMAP from
> various functions, those functions should call do_fault_error()
> directly, passing it VM_FAULT_SIGSEGV and the appropriate si_code.
> 
> But this is all on the s390 people to fix; I don't want to break their
> arch by trying it myself.

Yes, will take a look at it. For now I will apply Peter's patch in order to
get rid of the collision.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux