On Thu, 26 Jul 2018 14:21:08 -0700, Jakub Kicinski wrote: > On Thu, 26 Jul 2018 10:40:45 -0700, Jeff Kirsher wrote: > > From: Tony Nguyen <anthony.l.ngu...@intel.com> > > > > XDP does not support jumbo frames or LRO. These checks are being made > > outside the driver when an XDP program is loaded, however, there is > > nothing preventing these from changing after an XDP program is loaded. > > Add the checks so that while an XDP program is loaded, do not allow MTU > > to be changed or LRO to be enabled. > > > > Signed-off-by: Tony Nguyen <anthony.l.ngu...@intel.com> > > Tested-by: Andrew Bowers <andrewx.bow...@intel.com> > > Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com> > > --- > > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > index 5a6600f7b382..c42256e91997 100644 > > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > @@ -6469,6 +6469,11 @@ static int ixgbe_change_mtu(struct net_device > > *netdev, int new_mtu) > > { > > struct ixgbe_adapter *adapter = netdev_priv(netdev); > > > > + if (adapter->xdp_prog) { > > + e_warn(probe, "MTU cannot be changed while XDP program is > > loaded\n"); > > + return -EPERM; > > EPERM looks wrong, EINVAL is common. Also most drivers will just check > the bounds like you do in ixgbe_xdp_setup(), allowing the change if new > MTU still fits constraints. > > FWIW are the IXGBE_FLAG_SRIOV_ENABLED and IXGBE_FLAG_DCB_ENABLED flag > changes also covered while xdp is enabled? Quick grep doesn't reveal > them being checked against xdp_prog other than in ixgbe_xdp_setup().
Ah, I didn't make the review in time :) Could you follow up?