On Fri, Aug 31, 2018 at 7:46 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Thu, Aug 30, 2018 at 8:37 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > On Thu, Aug 30, 2018 at 7:27 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > On Tue, Aug 28, 2018 at 3:23 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > > > On Tue, Aug 28, 2018 at 6:22 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > > On Tue, Aug 28, 2018 at 2:48 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > > > Any PCI device here irrespective in what domain (kernel or userspace) > > > > they are in > > > > use common mailbox communication. Which is > > > > # Write a mailbox msg (format is agreed between all parties) into > > > > shared (between AF and other PF/VFs) > > > > memory region and trigger a interrupt to admin function. > > > > # Admin function processes the msg and puts reply in the same memory > > > > region and trigger > > > > IRQ to the requesting device. If the device has a driver instance > > > > in kernel then it uses > > > > IRQ and userspace applications does polling on the IRQ status bit. > > > > > > What is the purpose of the exported interface then? Is this > > > just an abstraction so each of the drivers can talk to its own > > > mailbox using a set of common helper functions? > > > > > > > Yes, that's correct. > > > > In kernel there will be a minimum of 3 drivers which will use this > > mailbox communication. > > So instead of duplicating APIs and structures in every driver, we > > thought of adding them in this AF driver and export them to ethernet > > and crypto drivers. > > Ok. My feeling is then that the API is fine, but that it should not > be part of the AF module but rather be a standalone module. > > My comment about the generic mailbox API no longer applies > here: you don't have a single shared mailbox hardware interface, > but each device has its own mailbox register set, so there > is no point in setting up a separate device for it, but I see > no need for creating an artificial dependency on the AF > driver. E.g. in a virtual machine that only has one ethernet > interface, you otherwise wouldn't load that driver, right? > > Arnd Good point, thanks for catching this. Will look into this and post a v2 series. Thanks, Sunil.