[Intel-wired-lan] [PATCH] i40e: Add error message when MTU on device is out of the range
Paul Menzel
pmenzel at molgen.mpg.de
Wed Jan 6 09:36:23 UTC 2021
Dear Eryk,
Am 18.12.20 um 17:52 schrieb Eryk Rybak:
Maybe a shorter summary:
> i40e: Log error for oversized MTU on device
> When attempting to link XDP prog with MTU larger than supported,
> user is not informed why XDP linking fails. Adding proper
Nit: Imperative mood could be used instead: Add proper …
> error message.
Personally, when adding new log message, I find it nice to see them in
the commit message too.
> Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski at intel.com>
> Signed-off-by: Eryk Rybak <eryk.roch.rybak at intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
> index 630258e..4fdef00 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
> @@ -12933,9 +12933,10 @@ static netdev_features_t i40e_features_check(struct sk_buff *skb,
> * i40e_xdp_setup - add/remove an XDP program
> * @vsi: VSI to changed
> * @prog: XDP program
> + * @extack: netlink extended ack
> **/
> -static int i40e_xdp_setup(struct i40e_vsi *vsi,
> - struct bpf_prog *prog)
> +static int i40e_xdp_setup(struct i40e_vsi *vsi, struct bpf_prog *prog,
> + struct netlink_ext_ack *extack)
> {
> int frame_size = vsi->netdev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
> struct i40e_pf *pf = vsi->back;
> @@ -12944,8 +12945,10 @@ static int i40e_xdp_setup(struct i40e_vsi *vsi,
> int i;
>
> /* Don't allow frames that span over multiple buffers */
> - if (frame_size > vsi->rx_buf_len)
> + if (frame_size > vsi->rx_buf_len) {
> + NL_SET_ERR_MSG_MOD(extack, "MTU too large to enable XDP");
Could you please also print out both values? Maybe (unsure about the units):
MTU of %u bytes(?) too large to enable XDP (maximum: %u bytes)
Kind regards,
Paul
> return -EINVAL;
> + }
>
> /* When turning XDP on->off/off->on we reset and rebuild the rings. */
> need_reset = (i40e_enabled_xdp_vsi(vsi) != !!prog);
> @@ -13254,7 +13257,7 @@ static int i40e_xdp(struct net_device *dev,
>
> switch (xdp->command) {
> case XDP_SETUP_PROG:
> - return i40e_xdp_setup(vsi, xdp->prog);
> + return i40e_xdp_setup(vsi, xdp->prog, xdp->extack);
> case XDP_SETUP_XSK_POOL:
> return i40e_xsk_pool_setup(vsi, xdp->xsk.pool,
> xdp->xsk.queue_id);
>
> base-commit: d2c2bbad93b818020657a82121a147e9ace1230d
More information about the Intel-wired-lan
mailing list