<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/lib/libc/arch, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/lib/libc/arch?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/lib/libc/arch?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-03-13T09:31:24Z</updated>
<entry>
<title>Anthony Steinhauser reports that 32-bit arm cpus have the same speculation</title>
<updated>2020-03-13T09:31:24Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2020-03-13T09:31:24Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f74a2b77455090a00a6234c40c5f02aa52986a5b'/>
<id>urn:sha1:f74a2b77455090a00a6234c40c5f02aa52986a5b</id>
<content type='text'>
problems as 64-bit models.  To resolve the syscall speculation, as a first
step "nop; nop" was added after all occurances of the syscall ("swi 0")
instruction.  Then the kernel was changed to jump over the 2 extra instructions.
In this final step, those pair of nops are converted into the speculation-blocking
sequence ("dsb nsh; isb").
Don't try to build through these multiple steps, use a snapshot instead.
Packages matching the new ABI will be out in a while...
ok kettenis
</content>
</entry>
<entry>
<title>Anthony Steinhauser reports that 32-bit arm cpus have the same speculation</title>
<updated>2020-03-11T12:53:19Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2020-03-11T12:53:19Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f377c7672bd38a70b428cd7751ceff0af609e750'/>
<id>urn:sha1:f377c7672bd38a70b428cd7751ceff0af609e750</id>
<content type='text'>
problems as 64-bit models.  For the syscall instruction issue, add nop;nop
after swi 0, in preparation for jumping over a speculation barrier here later.
ok kettenis
</content>
</entry>
<entry>
<title>Now that the kernel skips the two instructions immediately following</title>
<updated>2020-02-18T12:19:11Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-02-18T12:19:11Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5ecc9681133f1894e81c385eddd09981f78f1193'/>
<id>urn:sha1:5ecc9681133f1894e81c385eddd09981f78f1193</id>
<content type='text'>
a syscall, replace the double nop with a dsb nsh; isb; sequence which
stops the CPU from speculating any further.  This fix was suggested
by Anthony Steinhauser.

ok deraadt@
</content>
</entry>
<entry>
<title>Insert two nop instructions after each svc #0 instruction in userland.</title>
<updated>2020-01-26T02:19:43Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2020-01-26T02:19:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=0c401ffc2a2550c32105ce180746b0a95071123b'/>
<id>urn:sha1:0c401ffc2a2550c32105ce180746b0a95071123b</id>
<content type='text'>
The will be replaced by a speculation barrier as soon as we teach the
kernel to skip over these two instructions when returning from a
system call.

ok patrick@, deraadt@
</content>
</entry>
<entry>
<title>Mark as 'protected' all the routines from the quad/ and softfloat/ subdirs,</title>
<updated>2019-11-10T22:23:28Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-11-10T22:23:28Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=00b6e344ba691d3d76ced8394494ab6d26b6766c'/>
<id>urn:sha1:00b6e344ba691d3d76ced8394494ab6d26b6766c</id>
<content type='text'>
as well as those in arch/arm/gen/divsi3.S.  This cleans up the PLTs on the
32bit archs.

luna88k testing by aoyama@

"looks good" kettenis@, testing and ok deraadt@
</content>
</entry>
<entry>
<title>Mark the _Qp_{mul,div,add,sub} functions as 'protected' to eliminate</title>
<updated>2019-10-27T21:07:13Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-10-27T21:07:13Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=c2f6c1bf3d56ccc4b69356e111e3b83c014e2fe7'/>
<id>urn:sha1:c2f6c1bf3d56ccc4b69356e111e3b83c014e2fe7</id>
<content type='text'>
PLT entries and prevent overriding

ok kettenis@ deraadt@
</content>
</entry>
<entry>
<title>Stop exporting the internal _mcount symbol as that's only referenced</title>
<updated>2019-10-26T18:47:10Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-10-26T18:47:10Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=589b4acdbba65d6ecc6e77d9aac5e27618bc75fb'/>
<id>urn:sha1:589b4acdbba65d6ecc6e77d9aac5e27618bc75fb</id>
<content type='text'>
by the ASM stub, which is also in libc.  The compiler only generates
invocations of the latter.

ok mpi@ deraadt@ kettenis@
</content>
</entry>
<entry>
<title>Unexport __floatundidf.</title>
<updated>2019-10-23T19:33:41Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2019-10-23T19:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=a0cc66ea236f244ba12da80a5560f08fb0318b57'/>
<id>urn:sha1:a0cc66ea236f244ba12da80a5560f08fb0318b57</id>
<content type='text'>
ok deraadt@
</content>
</entry>
<entry>
<title>Unlike gas, clang's assembler complains about duplicate symbol assignments.</title>
<updated>2019-07-14T03:36:37Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2019-07-14T03:36:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b21062f52ee8bbb169b189af297cd24a86cef8d8'/>
<id>urn:sha1:b21062f52ee8bbb169b189af297cd24a86cef8d8</id>
<content type='text'>
Tweak the PSEUDO() macro to avoid that.

problem noted and tested by kettenis@
</content>
</entry>
<entry>
<title>Fix conversions to long double on sparc64</title>
<updated>2019-06-21T17:00:58Z</updated>
<author>
<name>jca</name>
<email>jca@openbsd.org</email>
</author>
<published>2019-06-21T17:00:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=dcaa94fa8333d546e96b49f352c2dd028e96fd9d'/>
<id>urn:sha1:dcaa94fa8333d546e96b49f352c2dd028e96fd9d</id>
<content type='text'>
Bug exposed by erratic sqlite3 behavior used in ports/devel/proj,
as pointed out by landry@.  Richard Hipps (SQLite) pointed at the
culprit (_Qp_div), many thanks.

Adapted from FreeBSD revision 146673 by Stephen Paskaluk and
stefanf@FreeBSD.  FreeBSD commit message:

"""
Fix long (and long long) to long double, unsigned to long double and
unsigned long (and unsigned long long) to long double conversions.
- Add a parameter that specifies the position of the sign bit to the _QP_TTOQ
macro, previously it always looked at bit 31.  Pass a negative number to
disable sign inspection for unsigned types.  This fixes _Qp_xtoq(),
_Qp_uitoq() and _Qp_uxtoq().
- In the functions __fpu_itof() and __fpu_xtof(), look at the sign
bit to decide whether we're doing a conversion from an unsigned type. If so, don't
negate the mantissa if the integer exceeds the biggest signed number.
"""

ok deraadt@
</content>
</entry>
</feed>
