Page MenuHomeFreeBSD

kevent32: fix the split of data into data1/data2
ClosedPublic

Authored by kevans on Apr 21 2020, 1:53 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 21, 9:50 PM
Unknown Object (File)
Sat, Apr 20, 1:50 AM
Unknown Object (File)
Fri, Mar 29, 12:30 AM
Unknown Object (File)
Jan 15 2024, 7:26 AM
Unknown Object (File)
Dec 16 2023, 4:13 AM
Unknown Object (File)
Dec 3 2023, 1:25 AM
Unknown Object (File)
Nov 29 2023, 6:16 AM
Unknown Object (File)
Oct 12 2023, 6:22 AM
Subscribers

Details

Summary

The current situation results in intermittent breakage if data gets split up with the sign bit set on the data1 half of it, as PAIR32TO64 will then: data1 | (data2 << 32) -> resulting in data1 getting sign-extended when it's implicitly widened and clobbering the result. AFAICT, there's no compelling reason for these to be signed.

This was most exposed by flakiness in the kqueue timer tests under compat32 after the ABSTIME test got switched over to using a better clock and microseconds.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable