#
2f5de0fa |
| 07-Jul-2022 |
rin <rin@NetBSD.org> |
Convert CTASSERT(9) for PAGE_{SIZE,MASK} into KASSERT(9).
They are not compile-time constants for sparc.
|
#
813ac315 |
| 06-Jul-2022 |
riastradh <riastradh@NetBSD.org> |
uvm(9): fo_mmap caller guarantees positive size.
No functional change intended, just sprinkling assertions to make it clearer.
|
#
18c4c681 |
| 06-Jul-2022 |
riastradh <riastradh@NetBSD.org> |
mmap(2): Assert size != 0 in non-anonymous case.
This is guaranteed by a test earlier; adding the assertion just makes it clearer that it applies to the branch where we call fo_mmap -- no functional
mmap(2): Assert size != 0 in non-anonymous case.
This is guaranteed by a test earlier; adding the assertion just makes it clearer that it applies to the branch where we call fo_mmap -- no functional change intended.
show more ...
|
#
ec80b2f0 |
| 06-Jul-2022 |
riastradh <riastradh@NetBSD.org> |
mmap(2): Avoid overflow in rounding and checking size.
|
#
43e0710e |
| 04-Jun-2022 |
riastradh <riastradh@NetBSD.org> |
mmap(2): If we fail with a hint, try again without it.
`Hint' here means nonzero addr, but no MAP_FIXED or MAP_TRYFIXED.
This is suboptimal -- we could teach uvm_mmap to do a fancier search using t
mmap(2): If we fail with a hint, try again without it.
`Hint' here means nonzero addr, but no MAP_FIXED or MAP_TRYFIXED.
This is suboptimal -- we could teach uvm_mmap to do a fancier search using the address as a hint. But this should do for now.
Candidate fix for PR kern/55533.
show more ...
|
#
d2452b9c |
| 19-Apr-2022 |
riastradh <riastradh@NetBSD.org> |
Revert "mmap(2): If we fail with a hint, try again without it."
This doesn't work, because uvm_mmap releases the uobj when it fails. Should factor this more coherently, but let's just revert for now
Revert "mmap(2): If we fail with a hint, try again without it."
This doesn't work, because uvm_mmap releases the uobj when it fails. Should factor this more coherently, but let's just revert for now.
Reported-by: syzbot+d347c8951821b236117a@syzkaller.appspotmail.com Reported-by: syzbot+7643d1b769fdfa18c3b2@syzkaller.appspotmail.com Reported-by: syzbot+44f4b39671dd580cba5c@syzkaller.appspotmail.com Reported-by: syzbot+b5a422299ca4ffe8570c@syzkaller.appspotmail.com Reported-by: syzbot+22681822db67b6e90cfb@syzkaller.appspotmail.com Reported-by: syzbot+e59f493ceef72b925a17@syzkaller.appspotmail.com Reported-by: syzbot+666f3fe8364f47e8641b@syzkaller.appspotmail.com Reported-by: syzbot+511d4572f52f1fd9b5cc@syzkaller.appspotmail.com
show more ...
|
#
7bd32981 |
| 19-Apr-2022 |
riastradh <riastradh@NetBSD.org> |
mmap(2): If we fail with a hint, try again without it.
`Hint' here means nonzero addr, but no MAP_FIXED or MAP_TRYFIXED.
This is suboptimal -- we could teach uvm_mmap to do a fancier search using t
mmap(2): If we fail with a hint, try again without it.
`Hint' here means nonzero addr, but no MAP_FIXED or MAP_TRYFIXED.
This is suboptimal -- we could teach uvm_mmap to do a fancier search using the address as a hint. But this should do for now.
Candidate fix for PR kern/55533.
ok chs@
show more ...
|
#
77838db5 |
| 27-Mar-2022 |
hannken <hannken@NetBSD.org> |
Make mmap() with "len == 0" an error if not MAP_ANON. We should return an error for MAP_ANON too but unfortunately our /libexec/ld.elf_so sometimes creates an empty anon mapping for the bss of a sha
Make mmap() with "len == 0" an error if not MAP_ANON. We should return an error for MAP_ANON too but unfortunately our /libexec/ld.elf_so sometimes creates an empty anon mapping for the bss of a shared library.
At least FreeBSD and Solaris return this error too and according to POSIX "If len is zero, mmap() shall fail and no mapping shall be established".
Fixes PR pkg/56338 Installing qt5-qtdeclarative leaves a dangling reference
The dangling reference here originates from vn_mmap() taking a vnode reference for this empty mapping that will never be released.
show more ...
|
#
007c1f91 |
| 21-Jul-2021 |
skrll <skrll@NetBSD.org> |
need <sys/param.h> for COHERENCY_UNIT
Minor KNF along the way.
|
#
b4dac182 |
| 23-Feb-2020 |
ad <ad@NetBSD.org> |
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial PV list locking in the x86 pmap. Others to follow later.
show more ...
|
#
83b9c08c |
| 04-Oct-2019 |
kamil <kamil@NetBSD.org> |
Avoid left shift changing the signedness flag
Reviewed by <mrg>
Reported-by: syzbot+25ac03024cedf27f3368@syzkaller.appspotmail.com
|
#
837350b2 |
| 06-Aug-2019 |
maxv <maxv@NetBSD.org> |
Change 'npgs' from int to size_t. Otherwise the 64bit->32bit conversion could lead to npgs=0, which is not expected. It later triggers a panic in uvm_vsunlock().
Found by TriforceAFL (Akul Pillai).
|
#
e3f92458 |
| 06-Apr-2019 |
thorpej <thorpej@NetBSD.org> |
Overhaul the API used to fetch and store individual memory cells in userspace. The old fetch(9) and store(9) APIs (fubyte(), fuword(), subyte(), suword(), etc.) are retired and replaced with new ufe
Overhaul the API used to fetch and store individual memory cells in userspace. The old fetch(9) and store(9) APIs (fubyte(), fuword(), subyte(), suword(), etc.) are retired and replaced with new ufetch(9) and ustore(9) APIs that can return proper error codes, etc. and are implemented consistently across all platforms. The interrupt-safe variants are no longer supported (and several of the existing attempts at fuswintr(), etc. were buggy and not actually interrupt-safe).
Also augmement the ucas(9) API, making it consistently available on all plaforms, supporting uniprocessor and multiprocessor systems, even those that do not have CAS or LL/SC primitives.
Welcome to NetBSD 8.99.37.
show more ...
|
#
5d6ce0ab |
| 14-Mar-2019 |
christos <christos@NetBSD.org> |
unify rounding and range checking.
|
#
882dc14e |
| 14-Mar-2019 |
kre <kre@NetBSD.org> |
Avoid a panic from the sequence
mlock(buf, 0); munlock(buf, 0); mlock(buf, page); munlock(buf, page);
where buf is page aligned, and page is actually anything > 0 (but not too big) which will g
Avoid a panic from the sequence
mlock(buf, 0); munlock(buf, 0); mlock(buf, page); munlock(buf, page);
where buf is page aligned, and page is actually anything > 0 (but not too big) which will get rounded up to the next multiple of the page size.
In that sequence, it is possible that the 1st munlock() is optional.
Add a KASSERT() (or two) to detect the first effects of the problem (without that, or in !DIAGNOSTIC kernels) the problem eventually causes some kind of problem or other (most often still a panic.)
After this, mlock(anything, 0) (or munlock) validates "anything" but is otherwise a no-op (regardless of the alignment of anything).
Also, don't treat mlock(buf, verybig) as equivalent to mlock(buf, 0) which is (more or less) what we had been doing.
XXX pullup -8 (maybe -7 as well, need to check).
show more ...
|
#
f32d5daa |
| 19-Dec-2017 |
kamil <kamil@NetBSD.org> |
Drop SYS_sbrk
sbrk - change data segment size
This syscall is dummy since the inception of the project.
Sponsored by <The NetBSD Foundation>
|
#
e8155e2e |
| 19-Dec-2017 |
kamil <kamil@NetBSD.org> |
Drop the sstk(2) syscall stub
sstk - change stack section size
This functionality has never been implemented and is a remnant from 16-bit UNIX. This stub appeared with the first NetBSD commit.
Spo
Drop the sstk(2) syscall stub
sstk - change stack section size
This functionality has never been implemented and is a remnant from 16-bit UNIX. This stub appeared with the first NetBSD commit.
Sponsored by <The NetBSD Foundation>
show more ...
|
#
dc89af93 |
| 27-Oct-2017 |
utkarsh009 <utkarsh009@NetBSD.org> |
[syzkaller] Fix for PR #52658 as suggested by riastradh@
The bug was found by Dmitry Vyukov (dvyukov@google.com) using syzkaller and was tested by me on a VM running 8.99.5
|
#
84c96328 |
| 20-May-2017 |
chs <chs@NetBSD.org> |
MAP_FIXED means something different for mremap() than it does for mmap(), so we cannot use UVM_FLAG_FIXED to specify both behaviors. keep UVM_FLAG_FIXED with its earlier meaning (prior to my previous
MAP_FIXED means something different for mremap() than it does for mmap(), so we cannot use UVM_FLAG_FIXED to specify both behaviors. keep UVM_FLAG_FIXED with its earlier meaning (prior to my previous change) of whether to use uvm_map_findspace() to locate space for the new mapping or to use the hint address that the caller passed in, and add a new flag UVM_FLAG_UNMAP to indicate that any existing entries in the range should be unmapped as part of creating the new mapping. the new UVM_FLAG_UNMAP flag may only be used if UVM_FLAG_FIXED is also specified.
show more ...
|
#
6bfe9bdb |
| 19-May-2017 |
chs <chs@NetBSD.org> |
make MAP_FIXED mapping operations atomic. fixes PR 52239. previously, unmapping any entries being replaced was done separately from entering the new mapping, which allowed another thread doing a non-
make MAP_FIXED mapping operations atomic. fixes PR 52239. previously, unmapping any entries being replaced was done separately from entering the new mapping, which allowed another thread doing a non-MAP_FIXED mapping to allocate the range out from under the MAP_FIXED thread.
show more ...
|
#
65da29f5 |
| 06-May-2017 |
joerg <joerg@NetBSD.org> |
Extend the mmap(2) interface to allow requesting protections for later use with mprotect(2), but without enabling them immediately.
Extend the mremap(2) interface to allow duplicating mappings, i.e.
Extend the mmap(2) interface to allow requesting protections for later use with mprotect(2), but without enabling them immediately.
Extend the mremap(2) interface to allow duplicating mappings, i.e. create a second range of virtual addresses references the same physical pages. Duplicated mappings can have different effective protections.
Adjust PAX mprotect logic to disallow effective protections of W&X, but allow one mapping W and another X protections. This obsoletes using temporary files for purposes like JIT.
Adjust PAX logic for mmap(2) and mprotect(2) to fail if W&X is requested and not silently drop the X protection.
Improve test cases to ensure correct operation of the changed interfaces.
show more ...
|
#
64a293af |
| 29-Apr-2017 |
christos <christos@NetBSD.org> |
MAP_COPY is handled in compat
|
#
a85f3827 |
| 09-Aug-2016 |
kre <kre@NetBSD.org> |
The only error that can occur from munlock() on NetBSD is ENOMEM. Make it be that way.
|
#
779c9410 |
| 07-Aug-2016 |
maxv <maxv@NetBSD.org> |
KNF a little.
|
#
d442ae61 |
| 07-Aug-2016 |
maxv <maxv@NetBSD.org> |
Explicitly return syscall-specific error codes, instead of the ones given by range_test. This fixes msync, mlock and munlock, which all return EINVAL instead of ENOMEM if the address is not in the va
Explicitly return syscall-specific error codes, instead of the ones given by range_test. This fixes msync, mlock and munlock, which all return EINVAL instead of ENOMEM if the address is not in the va space.
It should also fix the recent ATF failures.
show more ...
|