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)
Fri, Nov 8, 11:50 PM
Unknown Object (File)
Fri, Nov 1, 10:49 AM
Unknown Object (File)
Thu, Oct 31, 3:10 PM
Unknown Object (File)
Tue, Oct 29, 4:37 PM
Unknown Object (File)
Oct 3 2024, 11:41 AM
Unknown Object (File)
Sep 21 2024, 4:39 AM
Unknown Object (File)
Sep 8 2024, 5:15 PM
Unknown Object (File)
Sep 8 2024, 3:52 PM
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 Not Applicable
Unit
Tests Not Applicable

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