Managing multifunction devices with the auxiliary bus
Managing multifunction devices with the auxiliary bus
Device drivers usually live within a single kernel subsystem. Sometimes, however, developers need to handle functionalities outside of this model. Consider, for example, a network interface card (NIC) exposing both Ethernet and RDMA functionalities. There is one hardware block, but two drivers for the two functions. Those drivers need to work within their respective subsystems, but they must also share access to the same hardware. There is no standard way in current kernels to connect those drivers together, so developers invent ad-hoc methods to handle the interaction between them. Recently, Dave Ertman posted a patch set introducing a new type of a bus, called the "auxiliary bus", to address this problem.