From patchwork Wed Apr 3 14:00:55 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Ott X-Patchwork-Id: 233485 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 7D6AA2C00A7 for ; Thu, 4 Apr 2013 01:01:17 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762032Ab3DCOBM (ORCPT ); Wed, 3 Apr 2013 10:01:12 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:58747 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758194Ab3DCOBI (ORCPT ); Wed, 3 Apr 2013 10:01:08 -0400 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id A31852111E; Wed, 3 Apr 2013 10:01:07 -0400 (EDT) Received: from frontend2.nyi.mail.srv.osa ([10.202.2.161]) by compute2.internal (MEProxy); Wed, 03 Apr 2013 10:01:07 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=signal11.us; h= from:to:cc:subject:date:message-id:in-reply-to:references; s= mesmtp; bh=ZpJHE7TeFICsDF0yT73TYmUxp0c=; b=kUZlgg1xTX99npX1kF4vO bHRUEa/FXgdyufNTy6ydXd+gLEPX1BSGF8QeR7TN/MXWbPISYeCKil3E+6BoSWsS AbDDzCRL9ml09EXd6NfzY6aDRSZy3vVo0CWlc34gdpiAzGDpVi2uud+Ss+05G6pV 5zEykR4bbSEMPVyZaYpq0U= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :in-reply-to:references; s=smtpout; bh=ZpJHE7TeFICsDF0yT73TYmUxp 0c=; b=MAwrkhGdspRh/WkoswMMqNqqzLszpcq1Fs6pmQ/FPdKqxfml0VEdDEAr8 8jaWYJeU73IRdDdEx23PUcT869A5B5c40AzGBf0Povpg5VK2Td+KACIuJGZLwhgs 4wrG/L3zaPcqvIl8sIxbqrrqIjsDAPwQTf3oCr9V6zuS0AJp8s= X-Sasl-enc: mGwEaavf9nwQXZBLtUZLFlMe9OIIS4KY+jx2VUFJcjMx 1364997667 Received: from ato.hsd1.fl.comcast.net. (unknown [68.62.254.211]) by mail.messagingengine.com (Postfix) with ESMTPA id F03A12000FA; Wed, 3 Apr 2013 10:01:06 -0400 (EDT) From: Alan Ott To: Alexander Smirnov , Dmitry Eremin-Solenikov , "David S. Miller" Cc: linux-zigbee-devel@lists.sourceforge.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Alan Ott Subject: [PATCH v2 1/4] mac802154: Do not try to resend failed packets Date: Wed, 3 Apr 2013 10:00:55 -0400 Message-Id: <1364997658-16498-2-git-send-email-alan@signal11.us> X-Mailer: git-send-email 1.7.11.2 In-Reply-To: <1364997658-16498-1-git-send-email-alan@signal11.us> References: <1364928481-1813-1-git-send-email-alan@signal11.us> <1364997658-16498-1-git-send-email-alan@signal11.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When ops->xmit() fails, drop the packet. Devices which support hardware ack and retry (which include all devices currently supported by mainline), will automatically retry sending the packet (in the hardware) up to 3 times, per the 802.15.4 spec. There is no need, and it is incorrect to try to do it in mac802154. Signed-off-by: Alan Ott --- net/mac802154/mac802154.h | 2 -- net/mac802154/tx.c | 12 ++---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/net/mac802154/mac802154.h b/net/mac802154/mac802154.h index 21fa386..5c9e021 100644 --- a/net/mac802154/mac802154.h +++ b/net/mac802154/mac802154.h @@ -88,8 +88,6 @@ struct mac802154_sub_if_data { #define mac802154_to_priv(_hw) container_of(_hw, struct mac802154_priv, hw) -#define MAC802154_MAX_XMIT_ATTEMPTS 3 - #define MAC802154_CHAN_NONE (~(u8)0) /* No channel is assigned */ extern struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced; diff --git a/net/mac802154/tx.c b/net/mac802154/tx.c index 4e09d07..7264874 100644 --- a/net/mac802154/tx.c +++ b/net/mac802154/tx.c @@ -39,7 +39,6 @@ struct xmit_work { struct mac802154_priv *priv; u8 chan; u8 page; - u8 xmit_attempts; }; static void mac802154_xmit_worker(struct work_struct *work) @@ -60,18 +59,12 @@ static void mac802154_xmit_worker(struct work_struct *work) } res = xw->priv->ops->xmit(&xw->priv->hw, xw->skb); + if (res) + pr_debug("transmission failed\n"); out: mutex_unlock(&xw->priv->phy->pib_lock); - if (res) { - if (xw->xmit_attempts++ < MAC802154_MAX_XMIT_ATTEMPTS) { - queue_work(xw->priv->dev_workqueue, &xw->work); - return; - } else - pr_debug("transmission failed for %d times", - MAC802154_MAX_XMIT_ATTEMPTS); - } dev_kfree_skb(xw->skb); @@ -114,7 +107,6 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb, work->priv = priv; work->page = page; work->chan = chan; - work->xmit_attempts = 0; queue_work(priv->dev_workqueue, &work->work);