From patchwork Fri Oct 27 20:30:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 831497 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="HUcQVLcc"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="HUcQVLcc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yNwWh1Tfyz9t3s for ; Sat, 28 Oct 2017 07:31:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932705AbdJ0UbP (ORCPT ); Fri, 27 Oct 2017 16:31:15 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:35726 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932686AbdJ0UbM (ORCPT ); Fri, 27 Oct 2017 16:31:12 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E83716044E; Fri, 27 Oct 2017 20:31:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1509136271; bh=GEL8QtaEi0XHOWw6G8T8F3IgC67IsmOY5G2aovWoZlM=; h=From:To:Cc:Subject:Date:From; b=HUcQVLccPIKBhGF2v0RhbrxQq1mDq3QWT4AP80coWTbZBoKbHgkAr5Q2NE5UfT5I+ s5p984oKcyzkWeo80RXFJpdXnXbr5s01kEqbevUOXwmCl4F+s0bz4vdbXbKxrDTRZf ICKBuKZgYpOHZhXVRkumS/Li5JgFl1rQw+CknevE= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 190F3601DA; Fri, 27 Oct 2017 20:31:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1509136271; bh=GEL8QtaEi0XHOWw6G8T8F3IgC67IsmOY5G2aovWoZlM=; h=From:To:Cc:Subject:Date:From; b=HUcQVLccPIKBhGF2v0RhbrxQq1mDq3QWT4AP80coWTbZBoKbHgkAr5Q2NE5UfT5I+ s5p984oKcyzkWeo80RXFJpdXnXbr5s01kEqbevUOXwmCl4F+s0bz4vdbXbKxrDTRZf ICKBuKZgYpOHZhXVRkumS/Li5JgFl1rQw+CknevE= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 190F3601DA Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next] net: qualcomm: rmnet: Support recycling frames to real device Date: Fri, 27 Oct 2017 14:30:08 -0600 Message-Id: <1509136208-14768-1-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For deaggregation, the real device receives a large linear skb and passes it on to rmnet. rmnet creates new skbs from this large frame. If the real device supports recycling, it does not need to allocate the large skbs during packet reception and can instead reuse them. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 29842cc..7869fcf 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -108,7 +108,10 @@ static void rmnet_set_skb_proto(struct sk_buff *skb) while ((skbn = rmnet_map_deaggregate(skb)) != NULL) __rmnet_map_ingress_handler(skbn, port); - consume_skb(skb); + if (skb->destructor) + skb->destructor(skb); + else + consume_skb(skb); } else { __rmnet_map_ingress_handler(skb, port); }