Page MenuHomeFreeBSD

ixgbe: Avoid sbuf_trim in sysctl handler
ClosedPublic

Authored by kbowling on Aug 22 2021, 5:05 AM.
Tags
None
Referenced Files
F115928722: D31633.id94014.diff
Wed, Apr 30, 1:07 PM
F115927906: D31633.id94065.diff
Wed, Apr 30, 12:58 PM
F115912808: D31633.diff
Wed, Apr 30, 8:13 AM
Unknown Object (File)
Thu, Apr 24, 8:30 PM
Unknown Object (File)
Thu, Apr 24, 9:41 AM
Unknown Object (File)
Mon, Apr 21, 10:46 AM
Unknown Object (File)
Mon, Apr 14, 4:01 AM
Unknown Object (File)
Feb 19 2025, 4:14 AM
Subscribers

Details

Summary

This was an error, we cannot use sbuf_trim(9) in the ixgbe_get_phy_firmware_version function because it also gets called in the context of sbuf_new_for_sysctl(9). sbuf(9) explains the interaction with drain functions as used by sbuf_new_for_sysctl(9).

MFC after: 1 day
Fixes: 7660e4ea5cb7

Test Plan

Tested on X552.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Suggested approach which I think might be simpler, but the only mandatory thing is the final space that got left in.

sys/dev/ixgbe/if_ix.c
4697

I'd add a const char *space = ""; here

4705

Then add space =" "; here with {}

4709

and use space here instead of this express....

4710

with the same space = " "; here.

4714

and replace this with space.

4718

I think you missed one of the trailing white spaces here.. It would have been trimmed before.

This revision is now accepted and ready to land.Aug 23 2021, 5:17 PM