HomeFreeBSD

Fix counter reads on platforms where sizeof(uint64_t) != sizeof(uint64_t *).

Description

Fix counter reads on platforms where sizeof(uint64_t) != sizeof(uint64_t *).

In the kernel, structs such as tcpstat are manipulated as an array of
counter_u64_t (uint64_t *), but made visible to userland as an array of
uint64_t. kread_counters() was previously copying the counter array into
user space and sequentially overwriting each counter with its value. This
mostly affects IPsec counters, as other counters are exported via sysctl.

PR: 201700
Tested by: Jason Unovitch
MFC after: 1 week

Details

Provenance
markjAuthored on
Parents
rS285781: Remove checks for a NULL return value from M_WAITOK allocations.
Branches
Unknown
Tags
Unknown