Page MenuHomeFreeBSD

netmap: silence -Wdefault-const-init-field-unsafe warning
ClosedPublic

Authored by arichardson on Sep 16 2025, 5:32 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Dec 28, 6:37 PM
Unknown Object (File)
Wed, Dec 10, 4:59 AM
Unknown Object (File)
Wed, Dec 3, 4:18 PM
Unknown Object (File)
Nov 30 2025, 6:29 PM
Unknown Object (File)
Nov 17 2025, 9:36 PM
Unknown Object (File)
Nov 13 2025, 10:27 AM
Unknown Object (File)
Nov 9 2025, 4:37 PM
Unknown Object (File)
Nov 7 2025, 4:27 PM
Subscribers

Details

Summary

The netmap_ring struct starts with various const members and rencent
clang warns about leaving them uninitialized. Having them const in the
first place is highly suspicious since they are updated with various
macros but using hand-coded __DECONST(). But fixing that is a more
invasive change that I am unable to test.

.../freebsd/sys/dev/netmap/netmap_kloop.c:320:21: error: default initialization of an object of type 'struct netmap_ring' with const member leaves the object uninitialized [-Werror,-Wdefault-const-init-field-unsafe]
  320 |         struct netmap_ring shadow_ring; /* shadow copy of the netmap_ring */
      |                            ^
.../freebsd/sys/net/netmap.h:290:16: note: member 'buf_ofs' declared 'const' here
  290 |         const int64_t   buf_ofs;
      |                         ^
Test Plan

Compiles

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Thanks.

The fields are const because we want to prevent changes after they are initialized. Of course you need to drop the const to initialize them.
They are not meant to be updated.

This revision is now accepted and ready to land.Sep 17 2025, 9:57 PM