diff options
author | hselasky <hselasky@FreeBSD.org> | 2016-05-12 11:38:28 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2016-05-12 11:38:28 +0000 |
commit | 2ddabeabf71853844d04868ed54d3464271dbdd2 (patch) | |
tree | 04f7e04df6406ff7a834fe475d053f0db4925dfc /sys/sys/param.h | |
parent | 38e8840f4092f38d069f10e0098d0b3ef7b553d3 (diff) | |
download | FreeBSD-src-2ddabeabf71853844d04868ed54d3464271dbdd2.zip FreeBSD-src-2ddabeabf71853844d04868ed54d3464271dbdd2.tar.gz |
Fix handling of IOCTLs in the LinuxKPI.
Linux requires that all IOCTL data resides in userspace. FreeBSD
always moves the main IOCTL structure into a kernel buffer before
invoking the IOCTL handler and then copies it back into userspace,
before returning. Hide this difference in the "linux_copyin()" and
"linux_copyout()" functions by remapping userspace addresses in the
range from 0x10000 to 0x20000, to the kernel IOCTL data buffer.
It is assumed that the userspace code, data and stack segments starts
no lower than memory address 0x400000, which is also stated by "man 1
ld", which means any valid userspace pointer can be passed to regular
LinuxKPI handled IOCTLs.
Bump the FreeBSD version to force recompilation of all kernel modules.
Discussed with: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
Diffstat (limited to 'sys/sys/param.h')
-rw-r--r-- | sys/sys/param.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sys/param.h b/sys/sys/param.h index 6c64074..5074c5a 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100107 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100108 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, |