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
F156536759: D21293.id61026.diff
Thu, May 14, 12:31 PM
Unknown Object (File)
Wed, May 6, 10:30 PM
Unknown Object (File)
Mon, May 4, 3:23 PM
Unknown Object (File)
Fri, May 1, 9:17 AM
Unknown Object (File)
Thu, Apr 30, 3:15 PM
Unknown Object (File)
Sat, Apr 25, 8:10 AM
Unknown Object (File)
Tue, Apr 21, 11:23 AM
Unknown Object (File)
Tue, Apr 21, 6:20 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