mbox series

[net-next,v2,0/4] net: dsa: Setup dsa_netdev_ops

Message ID 20200720034954.66895-1-f.fainelli@gmail.com
Headers show
Series net: dsa: Setup dsa_netdev_ops | expand

Message

Florian Fainelli July 20, 2020, 3:49 a.m. UTC
Hi David, Jakub,

This patch series addresses the overloading of a DSA CPU/management
interface's netdev_ops for the purpose of providing useful information
from the switch side.

Up until now we had duplicated the existing netdev_ops structure and
added specific function pointers to return information of interest. Here
we have a more controlled way of doing this by involving the specific
netdev_ops function pointers that we want to be patched, which is easier
for auditing code in the future. As a byproduct we can now maintain
netdev_ops pointer comparisons which would be failing before (no known
in tree problems because of that though).

Let me know if this approach looks reasonable to you and we might do the
same with our ethtool_ops overloading as well.

Thanks!

Changes in v2:

- use static inline int vs. static int inline (Kbuild robot)
- fixed typos in patch 4 (Andrew)
- avoid using macros (Andrew)

Florian Fainelli (4):
  net: Wrap ndo_do_ioctl() to prepare for DSA stacked ops
  net: dsa: Add wrappers for overloaded ndo_ops
  net: Call into DSA netdevice_ops wrappers
  net: dsa: Setup dsa_netdev_ops

 include/net/dsa.h    | 71 +++++++++++++++++++++++++++++++++++++++++++-
 net/core/dev.c       |  5 ++++
 net/core/dev_ioctl.c | 29 +++++++++++++-----
 net/dsa/master.c     | 52 ++++++++------------------------
 4 files changed, 110 insertions(+), 47 deletions(-)

Comments

David Miller July 20, 2020, 11:49 p.m. UTC | #1
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Sun, 19 Jul 2020 20:49:50 -0700

> This patch series addresses the overloading of a DSA CPU/management
> interface's netdev_ops for the purpose of providing useful information
> from the switch side.
> 
> Up until now we had duplicated the existing netdev_ops structure and
> added specific function pointers to return information of interest. Here
> we have a more controlled way of doing this by involving the specific
> netdev_ops function pointers that we want to be patched, which is easier
> for auditing code in the future. As a byproduct we can now maintain
> netdev_ops pointer comparisons which would be failing before (no known
> in tree problems because of that though).
> 
> Let me know if this approach looks reasonable to you and we might do the
> same with our ethtool_ops overloading as well.

This looks good to me, series applied.

And yes, doing something similar for ethtool_ops is probably a good idea
too.