From patchwork Tue Apr 2 23:11:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1075083 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44YlMd4T05z9sST for ; Wed, 3 Apr 2019 10:11:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726760AbfDBXLj (ORCPT ); Tue, 2 Apr 2019 19:11:39 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:50290 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725842AbfDBXLj (ORCPT ); Tue, 2 Apr 2019 19:11:39 -0400 Received: by mail-wm1-f68.google.com with SMTP id z11so5300446wmi.0 for ; Tue, 02 Apr 2019 16:11:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=aQd6OsuO/58fEcRFBnPUvdUY6eeJJPZlMr55h0wQjfE=; b=I+BzBSEfD5s6pVViXarMcD5xHqveaLTe8UzQrSWyosCMCKyOxkBN+3Qdk8MHzyrH8A Obh6UVJLjdJNrgtxnFTgz9vhc6Tm07t74R4v3I2URCg1LHiVt4oPbaHehU1v9FJOxGJF cDj/MiVNeWg/x7myWZtPhGmBuTBXvPyOfh+u3DFiH6gUx76TtCdyjuOnGPsGnuP3wujW Cjmsi4ZKkLZKb77iLzlyfXaFOneXRPx8onda0JN9NuvFlRKj8AiGFIU9YCwLbxgRm80C xJBtAbVKjeU7PEqsG8/SndbuGqdWeDSkwNeija0ErbBT70e2WWAiqrysahVkJ3YrNLoF 2wUw== X-Gm-Message-State: APjAAAWKmP02hWrDeN7+cxzDjBzU6L+BXGZmUYrhKcVUdQtTxpbc0Kfx wBNyKg9z6FBTPwd9Znp9U+O9xEGGPPg= X-Google-Smtp-Source: APXvYqx55OondnNI0sJ1heOX5Jx1ozZ/eEw25KcPIcmbj0PqmAPnVi1eEIqFcO8pK70X8RpDFJGpaA== X-Received: by 2002:a1c:a186:: with SMTP id k128mr5305966wme.54.1554246697621; Tue, 02 Apr 2019 16:11:37 -0700 (PDT) Received: from raver.teknoraver.net (net-93-70-69-135.cust.vodafonedsl.it. [93.70.69.135]) by smtp.gmail.com with ESMTPSA id c10sm18193197wru.83.2019.04.02.16.11.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Apr 2019 16:11:36 -0700 (PDT) From: Matteo Croce To: netdev@vger.kernel.org Cc: Sunil Goutham , Robert Richter , linux-arm-kernel@lists.infradead.org Subject: [PATCH net] net: thunderx: don't allow jumbo frames with XDP Date: Wed, 3 Apr 2019 01:11:36 +0200 Message-Id: <20190402231136.15156-1-mcroce@redhat.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The thunderx driver forbids to load an eBPF program if the MTU is higher than 1500 bytes, but this can be circumvented by first loading the eBPF, and then raising the MTU. XDP assumes that SKBs are linear and fit in a single page, this can lead to undefined behaviours. Fix this by limiting the MTU to 1500 bytes if an eBPF program is loaded. Fixes: 05c773f52b96e ("net: thunderx: Add basic XDP support") Signed-off-by: Matteo Croce --- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c index aa2be4807191..fe1d7513f01d 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c @@ -1578,6 +1578,13 @@ static int nicvf_change_mtu(struct net_device *netdev, int new_mtu) struct nicvf *nic = netdev_priv(netdev); int orig_mtu = netdev->mtu; + /* For now just support only the usual MTU sized frames */ + if (nic->xdp_prog && new_mtu > 1500) { + netdev_warn(netdev, "Jumbo frames not yet supported with XDP, current MTU %d.\n", + netdev->mtu); + return -EOPNOTSUPP; + } + netdev->mtu = new_mtu; if (!netif_running(netdev))