diff options
author | Luiz Otavio O Souza <luiz@netgate.com> | 2016-05-23 11:48:19 -0500 |
---|---|---|
committer | Luiz Otavio O Souza <luiz@netgate.com> | 2016-05-23 11:48:19 -0500 |
commit | 7c13e534963f01a3ec0074109ae707100f158fe4 (patch) | |
tree | 20c7c81dd79965212110f593e841132551191f56 /sys/amd64 | |
parent | df341104755e5b8933b69aae30ad8c2307998526 (diff) | |
parent | 50658bb171fa22e6b22c709dc656302c22721c1e (diff) | |
download | FreeBSD-src-7c13e534963f01a3ec0074109ae707100f158fe4.zip FreeBSD-src-7c13e534963f01a3ec0074109ae707100f158fe4.tar.gz |
Merge remote-tracking branch 'origin/stable/10' into devel
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/sys_machdep.c | 6 | ||||
-rw-r--r-- | sys/amd64/linux/linux_locore.s | 32 |
2 files changed, 36 insertions, 2 deletions
diff --git a/sys/amd64/amd64/sys_machdep.c b/sys/amd64/amd64/sys_machdep.c index ff3bd3e..77abfe8 100644 --- a/sys/amd64/amd64/sys_machdep.c +++ b/sys/amd64/amd64/sys_machdep.c @@ -334,18 +334,20 @@ amd64_set_ioperm(td, uap) struct thread *td; struct i386_ioperm_args *uap; { - int i, error; char *iomap; struct amd64tss *tssp; struct system_segment_descriptor *tss_sd; u_long *addr; struct pcb *pcb; + u_int i; + int error; if ((error = priv_check(td, PRIV_IO)) != 0) return (error); if ((error = securelevel_gt(td->td_ucred, 0)) != 0) return (error); - if (uap->start + uap->length > IOPAGES * PAGE_SIZE * NBBY) + if (uap->start > uap->start + uap->length || + uap->start + uap->length > IOPAGES * PAGE_SIZE * NBBY) return (EINVAL); /* diff --git a/sys/amd64/linux/linux_locore.s b/sys/amd64/linux/linux_locore.s index 5dcc09a..1bcf05b 100644 --- a/sys/amd64/linux/linux_locore.s +++ b/sys/amd64/linux/linux_locore.s @@ -29,6 +29,7 @@ NON_GPROF_ENTRY(linux_rt_sigcode) movq $LINUX_SYS_linux_rt_sigreturn,%rax /* linux_rt_sigreturn() */ syscall /* enter kernel with args */ hlt +.endrtsigcode: 0: jmp 0b NON_GPROF_ENTRY(__vdso_clock_gettime) @@ -74,3 +75,34 @@ NON_GPROF_ENTRY(__vdso_getcpu) .balign 4 .previous #endif + + .section .eh_frame,"a",@progbits +.LSTARTFRAMEDLSI0: + .long .LENDCIEDLSI0-.LSTARTCIEDLSI0 +.LSTARTCIEDLSI0: + .long 0 /* CIE ID */ + .byte 1 /* Version number */ + .string "zR" /* NULL-terminated + * augmentation string + */ + .uleb128 1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 8 /* Return address register column */ + .uleb128 1 /* Augmentation value length */ + .byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ + .byte 0x0c /* DW_CFA_def_cfa */ + .uleb128 4 + .uleb128 4 + .byte 0x88 /* DW_CFA_offset, column 0x8 */ + .uleb128 1 + .align 4 +.LENDCIEDLSI0: + .long .LENDFDEDLSI0-.LSTARTFDEDLSI0 /* Length FDE */ +.LSTARTFDEDLSI0: + .long .LSTARTFDEDLSI0-.LSTARTFRAMEDLSI0 /* CIE pointer */ + .long .startrtsigcode-. /* PC-relative start address */ + .long .endrtsigcode-.startrtsigcode + .uleb128 0 + .align 4 +.LENDFDEDLSI0: + .previous |