Current-Users archive

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

Re: Some fixes in MI code regarding PAE



On Fri, Jan 08, 2010 at 01:41:40AM +0100, Jean-Yves Migeon wrote:
> Hi,
> 
> Jeremy kindly posted [1] different patches to enable PAE, as well as the 
> NX bit, when possible.
> 
> I just finished porting Jeremy's patches to current, and I'd like to 
> commit a tiny fraction of it: mainly fixes in UVM code where there is a 
> risk of unwanted (but IMHO harmless) overflows when shifting bits from 
> frame numbers to addresses.
> 
> Patch is attached, or available here [2].
> 
> It was compile tested for amd64, and compile+boot tested for i386.
> 
> Explanations:
> - printfs using PRIxADDR instead of hardcoding long types in format
> - ptoa() => ctob() + cast to uint64_t (when necessary) for integer 
> values that could be higher than 1M, risking truncation when casted to 
> vaddr_t via ptoa().

I think the rlimit part is still wrong. rlim_cur is a int, so storing a
64bit value, possibly larger than 4Gb in a 32bit int will cause trouble.
In this case the overflow needs to be detected and a sensible value
needs to be used instead. Otherwise, you may end up with a very low RSS
limit preventing userland from running.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index