From patchwork Thu Aug 6 14:41:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 504717 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 EC46A1402C7 for ; Fri, 7 Aug 2015 00:42:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754903AbbHFOmQ (ORCPT ); Thu, 6 Aug 2015 10:42:16 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:38134 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754755AbbHFOmM (ORCPT ); Thu, 6 Aug 2015 10:42:12 -0400 Received: by wibxm9 with SMTP id xm9so27415961wib.1 for ; Thu, 06 Aug 2015 07:42:11 -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=BO6nfxkIB8yCpKRSXnTetXh67StflCqWvwkysIuujaI=; b=LRlyG3rF79ek6Vq3YDPodYaBVVvSZScOI6ypfNjpABAS3pQ7W1fHXm0qWHxzp/BLgC ZbRnFu3iAEZARUMaIa9piZmDzU1HxSl80uWCXoghl4t6lnK+AY4sofSAO0dK6JNr6NbR VsCXNkmr+IklV5hDA/Fkq3/1QGlwzWCuSliJA/0J0A6fQScA3Kdt4vOXl6qUArj5fdAI 3cwtZyUDGmhM811AXQzw5M2MtB1jgk0INol+gQDJulRNXhVR4hl0Qtadgn1YvhxBs7y7 KVatZ6LfyxUXcSzKYvaI9M0KLtYbedzI1CZ8db4w1xuVuY8GvtRAwNnTwlfq0kBGYpjU nKMQ== X-Gm-Message-State: ALoCoQnVP0tDTuqwFwjGnaoGqw0xxdvIctM853TKkekXFhFWZ5DmoLWEtC+McUTUEV/+Et9Yw/0U X-Received: by 10.194.97.196 with SMTP id ec4mr4070319wjb.3.1438872131605; Thu, 06 Aug 2015 07:42:11 -0700 (PDT) Received: from localhost (static-cl188134168102.unet.cz. [188.134.168.102]) by smtp.gmail.com with ESMTPSA id bi6sm9848200wjc.25.2015.08.06.07.42.10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Aug 2015 07:42:11 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, idosch@mellanox.com, eladr@mellanox.com, ogerlitz@mellanox.com, Jiri Pirko Subject: [patch net-next 4/7] mlxsw: Strip FCS from incoming packets Date: Thu, 6 Aug 2015 16:41:55 +0200 Message-Id: <1438872118-16869-5-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1438872118-16869-1-git-send-email-jiri@resnulli.us> References: <1438872118-16869-1-git-send-email-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko FCS of incoming packets is already checked by HW. Just strip it out. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 6 +++++- drivers/net/ethernet/mellanox/mlxsw/pci.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 298ead5..3ec52ea 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -667,6 +667,7 @@ static void mlxsw_pci_cqe_rdq_handle(struct mlxsw_pci *mlxsw_pci, char *wqe; struct sk_buff *skb; struct mlxsw_rx_info rx_info; + u16 byte_count; int err; elem_info = mlxsw_pci_queue_elem_info_consumer_get(q); @@ -686,7 +687,10 @@ static void mlxsw_pci_cqe_rdq_handle(struct mlxsw_pci *mlxsw_pci, rx_info.sys_port = mlxsw_pci_cqe_system_port_get(cqe); rx_info.trap_id = mlxsw_pci_cqe_trap_id_get(cqe); - skb_put(skb, mlxsw_pci_cqe_byte_count_get(cqe)); + byte_count = mlxsw_pci_cqe_byte_count_get(cqe); + if (mlxsw_pci_cqe_crc_get(cqe)) + byte_count -= ETH_FCS_LEN; + skb_put(skb, byte_count); mlxsw_core_skb_receive(mlxsw_pci->core, skb, &rx_info); put_new_skb: diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.h b/drivers/net/ethernet/mellanox/mlxsw/pci.h index 887af84..1ef9664 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.h +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.h @@ -155,6 +155,12 @@ MLXSW_ITEM32(pci, cqe, byte_count, 0x04, 0, 14); */ MLXSW_ITEM32(pci, cqe, trap_id, 0x08, 0, 8); +/* pci_cqe_crc + * Length include CRC. Indicates the length field includes + * the packet's CRC. + */ +MLXSW_ITEM32(pci, cqe, crc, 0x0C, 8, 1); + /* pci_cqe_e * CQE with Error. */