From patchwork Mon Jun 14 16:35:20 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Matyukevich X-Patchwork-Id: 55565 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 28B7C1007D6 for ; Tue, 15 Jun 2010 02:40:19 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756224Ab0FNQjs (ORCPT ); Mon, 14 Jun 2010 12:39:48 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:62513 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756214Ab0FNQjq (ORCPT ); Mon, 14 Jun 2010 12:39:46 -0400 Received: by bwz7 with SMTP id 7so2199702bwz.19 for ; Mon, 14 Jun 2010 09:39:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:in-reply-to:references:organization:x-mailer :mime-version:content-type:content-transfer-encoding; bh=6g0Yd3KqvHbs+ArZ/I9sBZDro8MAtaKUIGR3cfkxosA=; b=o3t95xHNPetcb1La/2s5pp2yknmAP396ZrBHDfJugtCGHUx2JVHFI8z1xyhjg3ARGz VCsCtbOWFxldw27NwgzZ/tl56oexhulPa/yTSu0LHlb2/lf4Vogu+4/hI6tsNfgleWCL 3loorlGv4itig0X/IkL7TUxgNT+s2XnXspR24= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:x-mailer:mime-version:content-type :content-transfer-encoding; b=a81wUd+71ag7PTOpw16pjGmxfOOhpizf8DpHDNDTRreoQIS00MtQ8VDVtuXLYGwpKR RYHy96d1/963r6W7AYuPK45LzyIcTFdKMad8yACC+ehaV8pfCxWbuQap+ae1K/Hw5UEb UgNGnHrwkxPxDuohMstoxyo1QaxBEukkA0gHM= Received: by 10.204.83.25 with SMTP id d25mr4502802bkl.56.1276533584357; Mon, 14 Jun 2010 09:39:44 -0700 (PDT) Received: from realm (pppoe.178-66-96-254.dynamic.avangarddsl.ru [178.66.96.254]) by mx.google.com with ESMTPS id v14sm20185098bkz.14.2010.06.14.09.39.43 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 14 Jun 2010 09:39:43 -0700 (PDT) Date: Mon, 14 Jun 2010 20:35:20 +0400 From: Sergey Matyukevich To: David Miller Cc: netdev@vger.kernel.org, leoli@freescale.com, avorontsov@ru.mvista.com Subject: [PATCH v2] ucc_geth: fix for RX skb buffers recycling Message-ID: <20100614203520.23a02c25@realm> In-Reply-To: <20100609.180240.59675642.davem@davemloft.net> References: <1275935894-30483-1-git-send-email-geomatsi@gmail.com> <1275935894-30483-2-git-send-email-geomatsi@gmail.com> <20100609.180240.59675642.davem@davemloft.net> Organization: home X-Mailer: Claws Mail 3.7.0 (GTK+ 2.16.5; i686-pc-linux-gnu) Mime-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hello David, Could you please consider the second, simplified, version of the patch for ucc_geth driver regarding proper RX error skb buffer recycling. This patch implements a proper modification of RX skb buffers before recycling. Adjusting only skb->data is not enough because after that skb->tail and skb->len become incorrect. Signed-off-by: Sergey Matyukevich --- drivers/net/ucc_geth.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index 4a34833..807470e 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c @@ -3215,6 +3215,8 @@ static int ucc_geth_rx(struct ucc_geth_private *ugeth, u8 rxQ, int rx_work_limit __func__, __LINE__, (u32) skb); if (skb) { skb->data = skb->head + NET_SKB_PAD; + skb->len = 0; + skb_reset_tail_pointer(skb); __skb_queue_head(&ugeth->rx_recycle, skb); }