CVSROOT:        /cvs
Module name:    src
Changes by:     chel...@cvs.openbsd.org 2024/02/24 08:21:39

Modified files:
        sys/dev/ic     : qwx.c qwxvar.h 

Log message:
qwx(4): qwx_dp_rx_tid_del_func: fix dp_reo_cache_flush_elem expiration logic

Tweak a few things in qwx_dp_rx_tid_del_func() to make it behave
correctly on OpenBSD:

- struct dp_reo_cache_flush_elem: make ts a 64-bit count of nanoseconds

Linux uses jiffies to timestamp dp_reo_cache_flush_elem.  Although
OpenBSD has a global jiffies variable, we shouldn't use it outside
of drm(4).  I would rather not use our global ticks variable, either.
We can use getnsecuptime(9), a low-res 64-bit nanosecond timestamp,
as a substitute.

- qwx_dp_rx_tid_del_func: replace gettime(9) with getnsecuptime(9)

- qwx_dp_rx_tid_del_func: convert DP_REO_DESC_FREE_TIMEOUT_MS to nanoseconds

- qwx_dp_rx_tid_del_func: reverse timestamp comparison operator

This comparison is backwards.  Linux uses the time_after() macro to
test whether a given entry has expired, so our ported code needs to
test whether the current uptime is greater than or equal to a given
entry's expiration time.

Joint effort with stsp@.  Tested by stsp@.

ok stsp@

Reply via email to