amd64: Properly re-merge r334537 into SMAP-ified copyin(9) and copyout(9).

Also this fixes the eflags.ac leak from copyin_smap() when the copied
data length is multiple of eight bytes.

Sponsored by:	The FreeBSD Foundation
Approved by:	re (gjb)
This commit is contained in:
Konstantin Belousov 2018-09-04 19:27:53 +00:00
parent e21c5abc2a
commit 20df4f456d

View File

@ -312,9 +312,10 @@ ENTRY(copyout_smap)
movsq
movb %dl,%cl
andb $7,%cl
je 1f
rep
movsb
clac
1: clac
done_copyout:
xorl %eax,%eax
@ -361,6 +362,7 @@ ENTRY(copyin_nosmap)
movsq
movb %al,%cl
andb $7,%cl /* copy remaining bytes */
je done_copyin
rep
movsb
@ -393,10 +395,10 @@ ENTRY(copyin_smap)
movsq
movb %al,%cl
andb $7,%cl /* copy remaining bytes */
je done_copyin
je 1f
rep
movsb
clac
1: clac
done_copyin:
xorl %eax,%eax