Page MenuHomeFreeBSD

Fix compilation of kernels with usb and fdt enabled, but no miibus
ClosedPublic

Authored by stevek on Aug 16 2019, 5:13 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 4, 4:24 AM
Unknown Object (File)
Jan 19 2024, 1:54 PM
Unknown Object (File)
Jan 5 2024, 12:06 PM
Unknown Object (File)
Jan 5 2024, 12:06 PM
Unknown Object (File)
Jan 5 2024, 12:05 PM
Unknown Object (File)
Jan 5 2024, 11:53 AM
Unknown Object (File)
Nov 15 2023, 2:57 AM
Unknown Object (File)
Nov 12 2023, 8:36 AM
Subscribers

Details

Summary

usb_ethernet.h includes a number of mii headers, but only does so in
order to have struct mii_data available. However, it only really needs
a forward declaration of struct mii_data for use in pointer form for
the return type of a function prototype.

Custom kernel configuration that have usb and fdt enabled, but no miibus,
end up with compilation failures because miibus_if.h will not get
generated.

Due to the above, the following changes have been made to usb_ethernet.h:

  • remove the inclusion of mii headers
  • forward-declare struct mii_data
  • include net/ifq.h to satify the need for complete struct ifqueue
Test Plan

Built "kernels" successfully

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 25919
Build 24483: arc lint + arc unit

Event Timeline

looks fine as far as it goes, but what's including this? usb_ethernet.c certainly needs miibus too compile...

Ah, I see where it's used now. There are several alternatives, but this is the least bad one that comes to mind.
We have a little bit of dead code vs having #ifdefs for FDT in usb_ethernet.c.
It's more modular to have it like this, so I'm cool with it.

This revision is now accepted and ready to land.Aug 16 2019, 5:39 PM