[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/