From patchwork Sun Aug 2 18:56:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 502922 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id A14291402A2 for ; Mon, 3 Aug 2015 04:56:51 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751506AbbHBS4p (ORCPT ); Sun, 2 Aug 2015 14:56:45 -0400 Received: from mail-wi0-f179.google.com ([209.85.212.179]:38148 "EHLO mail-wi0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750972AbbHBS4n (ORCPT ); Sun, 2 Aug 2015 14:56:43 -0400 Received: by wibxm9 with SMTP id xm9so88546377wib.1 for ; Sun, 02 Aug 2015 11:56:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eedtA2uBwcxWYh1o1mQODsZJpaKANGlCo47aSVQ9NwA=; b=lZOuEt1GevU9Oiw3ae++IQ6tcZsk51XCojZCTsXzF9/40fA0mfJVoFkozqzk1o6Jz2 dLdhpSTdR4PZ2vn2A9Ivr1vjCtogKTVkElFdndj573QbULwSxZ/VHXFHtPIVviue4adO +zX5PYrh0Z4s/BuBS0djqSJfxDb0T1MZQOKUDhgfB84YAceCFOhxmFHS3m77Ki/dXohj SodIOGQk8FSs1SDYag+s9TptXQRN5WVS1C7hfqOZmKupg9v+ar2UzaLkjhmS2YGdp7+R ir5n+qkla6nMCZmc9PULYywwSoJhQt4JReaZtT8bLIzGCk22ccHC2udDGUexT2XUjxQx yW8g== X-Gm-Message-State: ALoCoQkz8wtDzIw4W+KerunA3DzrCPHezruSxs/ZnS3dVv6ga30LFskfLa6ItCE8BLH2IX6XRKcX X-Received: by 10.180.211.49 with SMTP id mz17mr27325819wic.69.1438541802186; Sun, 02 Aug 2015 11:56:42 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id w8sm18837804wja.15.2015.08.02.11.56.41 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 02 Aug 2015 11:56:41 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, sfeldma@gmail.com, idosch@mellanox.com Subject: [patch net-next 2/2] rocker: linearize skb in case frags would not fit into tx descriptor Date: Sun, 2 Aug 2015 20:56:38 +0200 Message-Id: <1438541798-1725-2-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1438541798-1725-1-git-send-email-jiri@resnulli.us> References: <1438541798-1725-1-git-send-email-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Suggested-by: Scott Feldman Signed-off-by: Jiri Pirko Acked-by: Scott Feldman --- drivers/net/ethernet/rocker/rocker.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c index 730bdc0..4cd5a71 100644 --- a/drivers/net/ethernet/rocker/rocker.c +++ b/drivers/net/ethernet/rocker/rocker.c @@ -4157,8 +4157,11 @@ static netdev_tx_t rocker_port_xmit(struct sk_buff *skb, struct net_device *dev) skb->data, skb_headlen(skb)); if (err) goto nest_cancel; - if (skb_shinfo(skb)->nr_frags > ROCKER_TX_FRAGS_MAX) - goto nest_cancel; + if (skb_shinfo(skb)->nr_frags > ROCKER_TX_FRAGS_MAX) { + err = skb_linearize(skb); + if (err) + goto unmap_frags; + } for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];