From patchwork Tue May 9 13:40:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 760127 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 3wMgWX339Jz9s65 for ; Tue, 9 May 2017 23:41:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754224AbdEINlS (ORCPT ); Tue, 9 May 2017 09:41:18 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:62578 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753992AbdEINlQ (ORCPT ); Tue, 9 May 2017 09:41:16 -0400 Received: from duckbill-v2-sdk.fritz.box ([109.104.45.1]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MLWss-1d8dLh3BWk-000ddz; Tue, 09 May 2017 15:41:03 +0200 From: Stefan Wahren To: "David S. Miller" Cc: Greg Kroah-Hartman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Wahren Subject: [PATCH] net: qca_spi: Fix alignment issues in rx path Date: Tue, 9 May 2017 15:40:38 +0200 Message-Id: <1494337238-1699-1-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.1.4 X-Provags-ID: V03:K0:7zlBUXMNedI9dFGQQTo/qRMOJ55X4Cy302IdicTUHfhQru9Odkz ykym0NImXB8wd/D6IMgBFQ0pYQlWmeXg5Rr8hZytHtW1eHb9kazcRMDpnFoGiPm85Pa3Aq0 1oRvS4BQ7l7/YvCUSBILk9+DzQbWCSNoMPHI/NSZLUIcmAL+hlSp7H0JZY2QR/5BVuM0CBI bIq780TAWZjCSqwVRdVew== X-UI-Out-Filterresults: notjunk:1; V01:K0:uxB02d9+rnM=:qtxgBZn3qhcfV7EQnE67vW dJk5SR9foYbNvWLUEaqC40sPgcna3UU4TY844/VcINvsBrq1RTTb2zV+ll4X/WfCmgLPSNUIt RfEWgGKdv3RjBHTg4LxOnp3AL0+YBqFmvXRQuoIlj0Vc6WYSp60vYvJNIdy77jri06dd92nAx qL90XtFiB4riNTn+5GhV7KNjVCNV8nNm1jcYjnkyLyr6rQx1lobea9FC7BKdCMTIoAdBqNS8Y BGUk6Sc1W9W/3aLg4Fn7dx4GyJ3ot5ljW/YoWid4rCLnhY2hNQGwSmp8ECmLt3/rnTO1Mt9aj A+VtxF/SUoFkOqch3vy4mAD+kuyoBEJsAJfMcNXqLZs3+Jrmuph12TWyC2mE7lQthRvKl9EfZ 8l3zGVT0+l90XED/ZDLpyOkVVoGSDYHjD2PJ5u0nBa0YSSTqYO2dLk1zzihoEFq6TVdHN14ZS xM23fPQo6ijLWnUs+WKtCRg/NIBgIYOD5iVM/Bx3TvBiTBxv3EBgvz9gA7HrmLvcYGrdTnvXE TR2sWPlp31/YwHrcyl8de+ctxit2Zrz9guTsIHMX9t46EomQ+41QuX9BlE3x68+UCc6ShhIfu iHx7YwnwHMzQ03gRQfc9bO784XqcFtJmEfsFb+/hUbEy0TPvwaJ8CFM2uMVIYaKGkDhoCoa20 wKd15IdbxnpzbvQMMRcYfZbZTIbUDt2hZNps6qLW3V6GCSFKuICuNlMRq2+/7xN4QUzI= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The qca_spi driver causes alignment issues on ARM devices. So fix this by using netdev_alloc_skb_ip_align(). Signed-off-by: Stefan Wahren Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000") --- drivers/net/ethernet/qualcomm/qca_spi.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c index 513e6c7..24ca7df 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.c +++ b/drivers/net/ethernet/qualcomm/qca_spi.c @@ -296,8 +296,9 @@ qcaspi_receive(struct qcaspi *qca) /* Allocate rx SKB if we don't have one available. */ if (!qca->rx_skb) { - qca->rx_skb = netdev_alloc_skb(net_dev, - net_dev->mtu + VLAN_ETH_HLEN); + qca->rx_skb = netdev_alloc_skb_ip_align(net_dev, + net_dev->mtu + + VLAN_ETH_HLEN); if (!qca->rx_skb) { netdev_dbg(net_dev, "out of RX resources\n"); qca->stats.out_of_mem++; @@ -377,7 +378,7 @@ qcaspi_receive(struct qcaspi *qca) qca->rx_skb, qca->rx_skb->dev); qca->rx_skb->ip_summed = CHECKSUM_UNNECESSARY; netif_rx_ni(qca->rx_skb); - qca->rx_skb = netdev_alloc_skb(net_dev, + qca->rx_skb = netdev_alloc_skb_ip_align(net_dev, net_dev->mtu + VLAN_ETH_HLEN); if (!qca->rx_skb) { netdev_dbg(net_dev, "out of RX resources\n"); @@ -759,7 +760,8 @@ qcaspi_netdev_init(struct net_device *dev) if (!qca->rx_buffer) return -ENOBUFS; - qca->rx_skb = netdev_alloc_skb(dev, qca->net_dev->mtu + VLAN_ETH_HLEN); + qca->rx_skb = netdev_alloc_skb_ip_align(dev, qca->net_dev->mtu + + VLAN_ETH_HLEN); if (!qca->rx_skb) { kfree(qca->rx_buffer); netdev_info(qca->net_dev, "Failed to allocate RX sk_buff.\n");