From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio Estevam Subject: Re: commit-3ac72b7b63d5 breaks networking on iMX28 Date: Fri, 21 Oct 2016 08:55:36 -0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Eric Nelson , Fugang Duan , "netdev@vger.kernel.org" To: Henri Roosen Return-path: Received: from mail-vk0-f44.google.com ([209.85.213.44]:33077 "EHLO mail-vk0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754253AbcJUKzi (ORCPT ); Fri, 21 Oct 2016 06:55:38 -0400 Received: by mail-vk0-f44.google.com with SMTP id 83so110853673vkd.0 for ; Fri, 21 Oct 2016 03:55:37 -0700 (PDT) In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: Hi Henri, 2016-10-21 7:19 GMT-02:00 Henri Roosen : > Hi, > > Unfortunately commit-3ac72b7b63d5 "net: fec: align IP header in > hardware" breaks networking on an iMX28 system. > > The commit seems valid for iMX6, where it is tested okay and solves the > unaligned accesses. > > On iMX28 I still see unaligned accesses and networking is broken. Can > anyone confirm this? Does this fix the problem? diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 4ce8179..d1cefe1 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1430,14 +1430,15 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id) skb_put(skb, pkt_len - 4); data = skb->data; + if (!is_copybreak && need_swap) + swap_buffer(data, pkt_len); + + #if !defined(CONFIG_M5272) if (fep->quirks & FEC_QUIRK_HAS_RACC) data = skb_pull_inline(skb, 2); #endif - if (!is_copybreak && need_swap) - swap_buffer(data, pkt_len); - /* Extract the enhanced buffer descriptor */ ebdp = NULL; if (fep->bufdesc_ex)