<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/amd64/linux32/linux32_sysvec.c, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-08-24T17:06:34Z</updated>
<entry>
<title>MFC r347538 by dchagin:</title>
<updated>2020-08-24T17:06:34Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2020-08-24T17:06:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1400a5d9086e287a91c47aef3f08320562ce3c77'/>
<id>urn:sha1:1400a5d9086e287a91c47aef3f08320562ce3c77</id>
<content type='text'>
Linuxulator depends on a fundamental kernel settings such as SMP. Many
of them listed in opt_global.h which is not generated while building
modules outside of a kernel and such modules never match real cofigured
kernel.

So, we should prevent our users from building obviously defective modules.

Therefore, remove the root cause of the building of modules outside of a
kernel - the possibility of building modules with DEBUG or KTR flags.
And remove all of DEBUG printfs as it is incomplete and in threaded
programms not informative, also a half of system call does not have DEBUG
printf. For debuging Linux programms we have dtrace, ktr and ktrace ability.

PR:		222861
</content>
</entry>
<entry>
<title>MFC r353725 by yuripv:</title>
<updated>2020-08-23T21:48:57Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2020-08-23T21:48:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e97be8305dc65e2b4457f5ea811567dd0f1a778b'/>
<id>urn:sha1:e97be8305dc65e2b4457f5ea811567dd0f1a778b</id>
<content type='text'>
linux: futex_mtx should follow futex_list

Move futex_mtx to linux_common.ko for amd64 and aarch64 along
with respective list/mutex init/destroy.

PR:		240989
Reported by:	Alex S &lt;iwtcex@gmail.com&gt;
</content>
</entry>
<entry>
<title>MFC r355818:</title>
<updated>2020-08-23T20:25:10Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2020-08-23T20:25:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c60baa9537e59c8aa1655def075a8bb11de99f93'/>
<id>urn:sha1:c60baa9537e59c8aa1655def075a8bb11de99f93</id>
<content type='text'>
Add compat.linux.emul_path, so it can be set to something other
than "/compat/linux".  Useful when you have several compat directories
with different Linux versions and you don't want to clash with files
installed by linux-c7 packages.

Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC r344705:</title>
<updated>2019-05-14T19:52:18Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2019-05-14T19:52:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=afae2f438329ce0dd45833165c1a96f5a50a0894'/>
<id>urn:sha1:afae2f438329ce0dd45833165c1a96f5a50a0894</id>
<content type='text'>
Remove sv_pagesize, originally introduced with r100384.

In all of the architectures we have today, we always use PAGE_SIZE.
While in theory one could define different things, none of the
current architectures do, even the ones that have transitioned from
32-bit to 64-bit like i386 and arm. Some ancient mips binaries on
other systems used 8k instead of 4k, but we don't support running
those and likely never will due to their age and obscurity.

Differently from the original commit, the merge leaves the struct
member in place to preserve the ABI.

Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>MFC r340181, r340185:</title>
<updated>2018-11-08T19:56:29Z</updated>
<author>
<name>Tijl Coosemans</name>
<email>tijl@FreeBSD.org</email>
</author>
<published>2018-11-08T19:56:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a14a7bbbc34b29ff85e9836ebd92c511fb39234a'/>
<id>urn:sha1:a14a7bbbc34b29ff85e9836ebd92c511fb39234a</id>
<content type='text'>
On amd64 both Linux compat modules, linux.ko and linux64.ko, provide
linux_ioctl_(un)register_handler that allows other driver modules to
register ioctl handlers.  The ioctl syscall implementation in each Linux
compat module iterates over the list of handlers and forwards the call to
the appropriate driver.  Because the registration functions have the same
name in each module it is not possible for a driver to support both 32 and
64 bit linux compatibility.

Move the list of ioctl handlers to linux_common.ko so it is shared by
both Linux modules and all drivers receive both 32 and 64 bit ioctl calls
with one registration.  These ioctl handlers normally forward the call
to the FreeBSD ioctl handler which can handle both 32 and 64 bit.

Keep the special COMPAT_LINUX32 ioctl handlers in linux.ko in a separate
list for now and let the ioctl syscall iterate over that list first.
Later, COMPAT_LINUX32 support can be added to the 64 bit ioctl handlers
via a runtime check for ILP32 like is done for COMPAT_FREEBSD32 and then
this separate list would disappear again.  That is a much bigger effort
however and this commit is meant to be MFCable.

This enables linux64 support in x11/nvidia-driver*.

PR:		206711
Reviewed by:	kib
Approved by:	re (gjb)
</content>
</entry>
<entry>
<title>Fix the Linux kernel version number calculation</title>
<updated>2018-06-22T00:02:03Z</updated>
<author>
<name>Chuck Tuffli</name>
<email>chuck@FreeBSD.org</email>
</author>
<published>2018-06-22T00:02:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3575504976b2df6dd75e383f19d609d9385490f2'/>
<id>urn:sha1:3575504976b2df6dd75e383f19d609d9385490f2</id>
<content type='text'>
The Linux compatibility code was converting the version number (e.g.
2.6.32) in two different ways and then comparing the results.

The linux_map_osrel() function converted MAJOR.MINOR.PATCH similar to
what FreeBSD does natively. I.e. where major=v0, minor=v1, and patch=v2
    v = v0 * 1000000 + v1 * 1000 + v2;

The LINUX_KERNVER() macro, on the other hand, converted the value with
bit shifts. I.e. where major=a, minor=b, and patch=c
    v = (((a) &lt;&lt; 16) + ((b) &lt;&lt; 8) + (c))

The Linux kernel uses the later format via the KERNEL_VERSION() macro in
include/generated/uapi/linux/version.h

Fix is to use the LINUX_KERNVER() macro in linux_map_osrel() as well as
in the .trans_osrel functions.

PR: 229209
Reviewed by: emaste, cem, imp (mentor)
Approved by: imp (mentor)
Differential Revision: https://reviews.freebsd.org/D15952
</content>
</entry>
<entry>
<title>Fix number of auxargs entries to copy out for 32-bit Linuxulator.</title>
<updated>2018-06-12T22:54:48Z</updated>
<author>
<name>Jung-uk Kim</name>
<email>jkim@FreeBSD.org</email>
</author>
<published>2018-06-12T22:54:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6362b1a6b13a3c6f177771e94023fdacfcd60715'/>
<id>urn:sha1:6362b1a6b13a3c6f177771e94023fdacfcd60715</id>
<content type='text'>
PR:		228790
</content>
</entry>
<entry>
<title>Correct pointer subtraction in KASSERT().</title>
<updated>2018-05-29T20:03:24Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-05-29T20:03:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cbf7e0cba7d47c20c73122e8dbefb98bf89fedad'/>
<id>urn:sha1:cbf7e0cba7d47c20c73122e8dbefb98bf89fedad</id>
<content type='text'>
The assertion would never fire without truly spectacular future
programming errors.

Reported by:	Coverity
CID:		1391370
Sponsored by:	DARPA, AFRL
</content>
</entry>
<entry>
<title>Avoid two suword() calls per auxarg entry.</title>
<updated>2018-05-24T16:25:18Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-05-24T16:25:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5f77b8a88b5e22cb5068f2e8d3ab3518634b1f45'/>
<id>urn:sha1:5f77b8a88b5e22cb5068f2e8d3ab3518634b1f45</id>
<content type='text'>
Instead, construct an auxargs array and copy it out all at once.

Use an array of Elf_Auxinfo rather than pairs of Elf_Addr * to represent
the array. This is the correct type where pairs of words just happend
to work. To reduce the size of the diff, AUXARGS_ENTRY is altered to act
on this array rather than introducing a new macro.

Return errors on copyout() and suword() failures and handle them in the
caller.

Incidentally fixes AT_RANDOM and AT_EXECFN in 32-bit linux on amd64
which incorrectly used AUXARG_ENTRY instead of AUXARGS_ENTRY_32
(now removed due to the use of proper types).

Reviewed by:	kib
Comments from:	emaste, jhb
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D15485
</content>
</entry>
<entry>
<title>Simplify the code to allocate stack for auxv, argv[], and environment vectors.</title>
<updated>2018-04-19T16:00:34Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2018-04-19T16:00:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=73c8686e91350bb6a16ed918886fade28735a1ed'/>
<id>urn:sha1:73c8686e91350bb6a16ed918886fade28735a1ed</id>
<content type='text'>
Remove auxarg_size as it was only used once right after a confusing
assignment in each of the variants of exec_copyout_strings().

Reviewed by:	emaste
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D15123
</content>
</entry>
</feed>
