summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/releng/10.3' into RELENG_2_3Renato Botelho2016-03-172-5/+6
|\
| * Merge r296956:glebius2016-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | Due to invalid use of a signed intermediate value in the bounds checking during argument validity verification, unbound zero'ing of the process LDT and adjacent memory can be initiated from usermode. Submitted by: CORE Security Patch by: kib Security: SA-16:15 Approved by: re (implicit)
| * MFC r296908:kib2016-03-161-3/+4
| | | | | | | | | | | | Force the desired alignment of the user save area. Approved by: re (marius)
* | The ixgbe is now built as an amd64 module. Remove the driver from kernel.Luiz Otavio O Souza2016-02-261-1/+0
| |
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-02-0311-322/+758
|\ \ | |/
| * MFC r294311:kib2016-02-021-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clear whole XMM register file instead of only XMM0. Also clear x87 registers. This brings amd64 on par with i386, providing consistent initial FPU state. PR: 206370 MFC r294312: Use ANSI definitions. Wrap long line. MFC r294313: Adjust i386 comment to match amd64 one after r294311. Approved by: re (gjb)
| * MFC r284539, r284630, r284688, r284877, r285217, r285218,grehan2016-02-0110-313/+746
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r286837, r286838, r288470, r288522, r288524, r288826, r289001 Pull in bhyve bug fixes and changes to allow UEFI booting. This provides Windows support. Tested on Intel and AMD with: - Arch Linux i386+amd64 (kernel 4.3.3) - Ubuntu 15.10 server 64-bit - FreeBSD-CURRENT/amd64 20160127 snap - FreeBSD 10.2 i386+amd64 - OpenBSD 5.8 i386+amd64 - SmartOS latest - Windows 10 build 1511' Huge thanks to Yamagi Burmeister who submitted the patch and did the majority of the testing. r284539 - bootrom mem allocation support r284630 - Add SO_REUSEADDR when starting debug port r284688 - Fix a regression in "movs" emulation r284877 - verify_gla() non-zero segment base fix r285217 - Always assert DCD and DSR in the uart r285218 - devmem nodes moved to /dev/vmm.io/ r286837 - Add define for SATA Check-Power-Mode r286838 - Add simple (no-op) SATA cmd emulations r288470 - Increase virtio-blk indirect descs r288522 - Firmware guest query interface r288524 - Fix post-test typo r288826 - Clean up SATA unimplemented cmd msg r289001 - Add -l option to specify userboot path Submitted by: Yamagi Burmeister Approved by: re (kib)
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-274-5/+8
|\ \ | |/
| * MFC r294900:delphij2016-01-272-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Implement AT_SECURE properly. AT_SECURE auxv entry has been added to the Linux 2.5 kernel to pass a boolean flag indicating whether secure mode should be enabled. 1 means that the program has changes its credentials during the execution. Being exported AT_SECURE used by glibc issetugid() call. Submitted by: imp, dchagin Security: FreeBSD-SA-16:10.linux Security: CVE-2016-1883
| * MFC r294620:dchagin2016-01-262-3/+2
| | | | | | | | | | | | | | | | Fix a typo. MFC r294621: Remove obsolete comment.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-2521-691/+703
|\ \ | |/
| * MFC r293045, r293046:ian2016-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the 'env' directive described in config(5) work on all architectures, providing compiled-in static environment data that is used instead of any data passed in from a boot loader. Previously 'env' worked only on i386 and arm xscale systems, because it required the MD startup code to examine the global envmode variable and decide whether to use static_env or an environment obtained from the boot loader, and set the global kern_envp accordingly. Most startup code wasn't doing so. Making things even more complex, some mips startup code uses an alternate scheme that involves calling init_static_kenv() to pass an empty buffer and its size, then uses a series of kern_setenv() calls to populate that buffer. Now all MD startup code calls init_static_kenv(), and that routine provides a single point where envmode is checked and the decision is made whether to use the compiled-in static_kenv or the values provided by the MD code. The routine also continues to serve its original purpose for mips; if a non-zero buffer size is passed the routine installs the empty buffer ready to accept kern_setenv() values. Now if the size is zero, the provided buffer full of existing env data is installed. A NULL pointer can be passed if the boot loader provides no env data; this allows the static env to be installed if envmode is set to do so. Most of the work here is a near-mechanical change to call the init function instead of directly setting kern_envp. A notable exception is in xen/pv.c; that code was originally installing a buffer full of preformatted env data along with its non-zero size (like mips code does), which would have allowed kern_setenv() calls to wipe out the preformatted data. Now it passes a zero for the size so that the buffer of data it installs is treated as non-writeable. Also, revert accidental change that snuck into r293045.
| * Regen for r294368.jhb2016-01-209-612/+612
| |
| * MFC 289769,289822,290143,290144:jhb2016-01-206-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename remaining linux32 symbols from linux_* to linux32_*. 289769: Rename remaining linux32 symbols such as linux_sysent[] and linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with linux64.ko. While here, add support for linux64 binaries to systrace. - Update NOPROTO entries in amd64/linux/syscalls.master to match the main table to fix systrace build. - Add a special case for union l_semun arguments to the systrace generation. - The systrace_linux32 module now only builds the systrace_linux32.ko. module on amd64. - Add a new systrace_linux module that builds on both i386 and amd64. For i386 it builds the existing systrace_linux.ko. For amd64 it builds a systrace_linux.ko for 64-bit binaries. 289822: Fix build for the KTR-enabled kernels. 290143: Fix build with DEBUG defined. 290144: Update for LINUX32 rename. The assembler didn't complain about undefined symbols but just used 0 after the rename.
| * MFC 290728:jhb2016-01-181-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Export various helper variables describing the layout and size of certain kernel structures for use by debuggers. This mostly aids in examining cores from a kernel without debug symbols as a debugger can infer these values if debug symbols are available. One set of variables describes the layout of 'struct linker_file' to walk the list of loaded kernel modules. A second set of variables describes the layout of 'struct proc' and 'struct thread' to walk the list of processes in the kernel and the threads in each process. The 'pcb_size' variable is used to index into the stoppcbs[] array. The 'vm_maxuser_address' is used to distinguish kernel virtual addresses from user addresses. This doesn't have to be perfect, and 'vm_maxuser_address' is a cheap and simple way to differentiate kernel pointers from simple values like TIDs and PIDs. While here, annotate the fields in struct pcb used by kgdb on amd64 and i386 to note that their ABI should be preserved. Annotations for other platforms will be added in the future.
| * MFC r293343: Move amd64 metadata.h to x86 and share with i386emaste2016-01-181-53/+3
| |
| * MFC r281381: Use explicitly sized types in EFI module metadataemaste2016-01-181-5/+5
| | | | | | | | This will allow the same metadata struct to be used on all platforms.
| * MFC r293613:dchagin2016-01-164-1/+59
| | | | | | | | | | Implement vsyscall hack. Prior to 2.13 glibc uses vsyscall instead of vdso. An upcoming linux_base-c6 needs it.
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-143-5/+5
|\ \ | |/
| * o Fix SCTP ICMPv6 error message vulnerability. [SA-16:01.sctp]glebius2016-01-143-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | o Fix Linux compatibility layer incorrect futex handling. [SA-16:03.linux] o Fix Linux compatibility layer setgroups(2) system call. [SA-16:04.linux] o Fix TCP MD5 signature denial of service. [SA-16:05.tcp] o Fix insecure default bsnmpd.conf permissions. [SA-16:06.bsnmpd] Security: FreeBSD-SA-16:01.sctp, CVE-2016-1879 Security: FreeBSD-SA-16:03.linux, CVE-2016-1880 Security: FreeBSD-SA-16:04.linux, CVE-2016-1881 Security: FreeBSD-SA-16:05.tcp, CVE-2016-1882 Security: FreeBSD-SA-16:06.bsnmpd, CVE-2015-5677
* | Merge remote-tracking branch 'origin/stable/10' into develRenato Botelho2016-01-1333-489/+13519
|\ \ | |/
| * MFC r289055 (by mjg@):dchagin2016-01-092-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | linux: fix handling of out-of-bounds syscall attempts Due to an off by one the code would read an entry past the table, as opposed to the last entry which contains the nosys handler. This fixes my fault. MFC r289058 (by cem@): Fix missing semi-colon from r289055. MFC r289768 (by jhb@): Merge r289055 to amd64/linux32: linux: fix handling of out-of-bounds syscall attempts Due to an off by one the code would read an entry past the table, as opposed to the last entry which contains the nosys handler.
| * MFC r284159:dchagin2016-01-091-24/+24
| | | | | | | | | | Futex is an aligned 32-bit integer. Use the proper instruction and operand when dereferencing futex pointer.
| * MFC r283544:dchagin2016-01-091-9/+0
| | | | | | | | | | | | When I merged the lemul branch I missied kib@'s r282708 commit. This is not the final fix as I need properly cleanup thread resources before other threads suicide.
| * Regen for r293592.dchagin2016-01-0910-16/+40
| |
| * MFC r283492:dchagin2016-01-094-4/+2
| | | | | | | | Implement Linux specific syncfs() system call.
| * Regen for r293588.dchagin2016-01-0910-20/+138
| |
| * MFC r283488:dchagin2016-01-094-8/+12
| | | | | | | | Implement recvmmsg() and sendmmsg() system calls.
| * MFC r283487:dchagin2016-01-092-32/+0
| | | | | | | | | | Reduce duplication between MD Linux code by moving msg related struct definitions out into the compat/linux/linux_socket.h
| * Regen for r293585.dchagin2016-01-095-7/+7
| |
| * MFC r283484:dchagin2016-01-093-3/+1
| | | | | | | | Implement epoll_pwait() system call.
| * Regen for r293582.dchagin2016-01-0910-16/+70
| |
| * MFC r283480:dchagin2016-01-094-4/+4
| | | | | | | | Add utimensat() system call.
| * MFC r283479:dchagin2016-01-092-16/+0
| | | | | | | | | | | | | | | | | | The kernel sends signals to the processes via ABI specific sv_sendsig method. Native ABI do not need signal conversion, only emulators may want this. Usually emulators implements its own sv_sendsig method. For now only ibcs2 emulator does not have own sv_sendsig implementation and depends on native sendsig() method. So, remove any extra attempts to convert signal numbers from native sendsig() methods except from i386 where ibsc2 is living.
| * MFC r283474:dchagin2016-01-096-217/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rework signal code to allow using it by other modules, like linprocfs: 1. Linux sigset always 64 bit on all platforms. In order to move Linux sigset code to the linux_common module define it as 64 bit int. Move Linux sigset manipulation routines to the MI path. 2. Move Linux signal number definitions to the MI path. In general, they are the same on all platforms except for a few signals. 3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion tables to avoid conversion errors. 4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside of allowed on Linux signal numbers. PR: 197216
| * MFC r283471:dchagin2016-01-094-53/+0
| | | | | | | | | | | | | | | | | | | | | | | | According to Linux man sigaltstack(3) shall return EINVAL if the ss argument is not a null pointer, and the ss_flags member pointed to by ss contains flags other than SS_DISABLE. However, in fact, Linux also allows SS_ONSTACK flag which is simply ignored. For buggy apps (at least mono) ignore other than SS_DISABLE flags as a Linux do. While here move MI part of sigaltstack code to the appropriate place.
| * Regen for r293569.dchagin2016-01-098-10/+14
| |
| * MFC r283467:dchagin2016-01-094-5/+10
| | | | | | | | | | | | Call nosys in case when the incorrect syscall number is specified. Its my fault, fixed by mjg@ at r289055.
| * Regen for r293567.dchagin2016-01-0910-14/+68
| |
| * MFC r283465:dchagin2016-01-094-5/+4
| | | | | | | | | | Add preliminary fallocate system call implementation to emulate posix_fallocate() function.
| * Regen for r293555.dchagin2016-01-0910-16/+80
| |
| * MFC r283451:dchagin2016-01-094-4/+4
| | | | | | | | Implement ppoll() system call.
| * MFC r283446:dchagin2016-01-091-0/+2
| | | | | | | | | | Include opt_compat.h, so that COMPAT_LINUX32 is defined, and we can access to the semop structs and functions.
| * Regen for r293549.dchagin2016-01-0910-20/+78
| |
| * MFC r283444:dchagin2016-01-094-8/+4
| | | | | | | | Implement eventfd system call.
| * MFC r283443:dchagin2016-01-092-0/+2
| | | | | | | | | | Put the correct value for the abi_nfdbits parameter of kern_select() for all supported Linuxulators.
| * Regen for r293546.dchagin2016-01-0910-38/+258
| |
| * MFC r283441:dchagin2016-01-094-18/+16
| | | | | | | | | | | | | | | | | | | | | | Implement epoll family system calls. This is a tiny wrapper around kqueue() to implement epoll subset of functionality. The kqueue user data are 32bit on i386 which is not enough for epoll user data, so we keep user data in the proc emuldata. Initial patch developed by rdivacky@ in 2007, then extended by Yuri Victorovich @ r255672 and finished by me in collaboration with mjg@ and jillies@.
| * MFC r283437:dchagin2016-01-092-74/+1
| | | | | | | | | | To avoid code duplication move open/fcntl definitions to the MI header file.
| * MFC r283436:dchagin2016-01-091-6/+2
| | | | | | | | | | Use the BSD_TO_LINUX_SIGNAL() wherever there is no need to check the ABI as it is known.
OpenPOWER on IntegriCloud