Messages in this thread | | | Date | Tue, 26 Mar 2002 17:42:36 +0100 | From | Andrea Arcangeli <> | Subject | Re: [patch] mmap bug with drivers that adjust vm_start |
| |
On Mon, Mar 25, 2002 at 11:00:47PM -0500, Benjamin LaHaise wrote: > Hello all, > > The patch below fixes a problem whereby a vma which has its vm_start > address changed by the file's mmap operation can result in the vma > being inserted into the wrong location within the vma tree. This > results in page faults not being handled correctly leading to SEGVs, > as well as various BUG()s hitting on exit of the mm. The fix is to > recalculate the insertion point when we know the address has changed. > Comments? Patch is against 2.4.19-pre4.
The patch is obviously safe.
However if the patch is needed it means the ->mmap also must do the do_munmap stuff by hand internally, which is very ugly given we also did our own do_munmap in a completly different region (the one requested by the user). Our do_munmap should not happen if we place the mapping elsewhere. If possible I would prefer to change those drivers to advertise their enforced vm_start with a proper callback, the current way is halfway broken still. BTW, which are those drivers, and why they needs to enforce a certain vm_start (also despite MAP_FIXED that they cannot check within the ->mmap callback)?
Andrea - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |