Received: by 10.223.185.116 with SMTP id b49csp3304359wrg; Mon, 5 Mar 2018 18:49:30 -0800 (PST) X-Google-Smtp-Source: AG47ELsocdywc/6iheZzxIUkaMHrLjhvSBLbdYmBUZjgxv1yG+soU5ctvPuFAoGhjqOTTU46Q2w/ X-Received: by 10.101.96.142 with SMTP id t14mr13690149pgu.58.1520304570011; Mon, 05 Mar 2018 18:49:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520304569; cv=none; d=google.com; s=arc-20160816; b=RKSamSWvHtqVIjMFWzhzkupgxJxzeP4CTt7BjOqY5Z1/WLrkHDmcal1OJGK+iLSxAv 6Regh+0OgduFuAAc7Ev9c3tC0THqd6uXnkEj07x3xNOusSFeuGulb/iModOPdZvQr6DV /WvBKnYy+3y5JMDnBR7nOTFoPEc/GBJMqIg01pS60ODvMPAjNxKAzfVPqKH3wdnGLcUG YmlodIYmv/y39/CAvcmDYssWHNz42aIRF3eX2NMZX57xHwq9mXqnzz6gyfF67A1OGTKl opcdU/x5A8BWY6VNZ8i8ka3LhwIUpIoPMOq7WDy270bU962xFzFsIzRTS4W9N6ZDbvIv rNKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=+7nSWyVchNhlmoNUYaTXA/j8IFhw1VGuhNCJ6BBT7BA=; b=Ha8etB5X9AuBYYYPHSNlWnuJWJM9L7Xce/EROaYTgfTBb5t3hUjBeCHs/tuRprXEh8 AeKdSInsPWejDpZ0BqfO2yIdtUMtg9TZQ8LxA9+8shi/+bBMtKfXBg1BzlgcEr+xlN4W P26TL0nE8vsEcy2l7SaAvac4rMOlFeVASPHMkCQuD2QzKf59iDG+m5lMNpxIh0Hs0VhW r+1EDbHkKybu1+iOO9rq36RaWVkMnp7p7+oh0M7LLjj9P1ilmaQ05t4wTnWiUNMr8+7L dUxWQlb1+HBFtqT4rXzlvq5XP0GX2K7Tl2ROcl9oNHLWlNpq7FQ+akKchU5ig9pAAc1i NhGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=cmyPrUEK; dkim=pass header.i=@codeaurora.org header.s=default header.b=WtdpWnP1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t8si9166332pgo.118.2018.03.05.18.49.15; Mon, 05 Mar 2018 18:49:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=cmyPrUEK; dkim=pass header.i=@codeaurora.org header.s=default header.b=WtdpWnP1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753232AbeCFCsS (ORCPT + 99 others); Mon, 5 Mar 2018 21:48:18 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:40326 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753181AbeCFCsQ (ORCPT ); Mon, 5 Mar 2018 21:48:16 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 286D660721; Tue, 6 Mar 2018 02:48:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520304496; bh=TazXeD4OB2WDiZ+yaNr5netyu+a2epM3MEHX9VIrPrA=; h=From:To:Cc:Subject:Date:From; b=cmyPrUEKgUYHo1AhIkSpBCGaSs9eBLd/om32DXAUOzcpeW6fO79QjbODhrke8fzH5 4dPocGcV/REY3q/38YLdcO+hlVV7BidHDd6xImnVzSQ+MHv8ucU05qqeXHRf1Mt6Lq OWRdhYVoan2uMv9Upv3QO9SNK2C8NSziH5PQzyF0= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from blr-ubuntu-hpuranik.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.18.19]) (using TLSv1.1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: hpuranik@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 618546022C; Tue, 6 Mar 2018 02:48:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520304495; bh=TazXeD4OB2WDiZ+yaNr5netyu+a2epM3MEHX9VIrPrA=; h=From:To:Cc:Subject:Date:From; b=WtdpWnP1mJ99WqGfuPFp6zDZ5zf54SHFLkUAU/7N6jPB+7stJbJ1dIM/BQtfGBUbe C5zLXdKaRKDC3WqZnH8vm/yb93e0gqiBWHo+KcaEr0R10W+dzY7neQuSt63EHH7j5W xePMK2idxP0qr7QAE3jqxdc/tAIqnZrqInsPkkDw= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 618546022C Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=hpuranik@codeaurora.org From: Hemanth Puranik To: netdev , linux-kernel Cc: Timur Tabi , Hemanth Puranik Subject: [PATCH] net: qcom/emac: Use proper free methods during TX Date: Tue, 6 Mar 2018 08:18:06 +0530 Message-Id: <1520304486-14466-1-git-send-email-hpuranik@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch fixes the warning messages/call traces seen if DMA debug is enabled, In case of fragmented skb's memory was allocated using dma_map_page but freed using dma_unmap_single. This patch modifies buffer allocations in TX path to use dma_map_page in all the places and dma_unmap_page while freeing the buffers. Signed-off-by: Hemanth Puranik --- drivers/net/ethernet/qualcomm/emac/emac-mac.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.c b/drivers/net/ethernet/qualcomm/emac/emac-mac.c index 9cbb2726..d5a32b7 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac-mac.c +++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.c @@ -1194,9 +1194,9 @@ void emac_mac_tx_process(struct emac_adapter *adpt, struct emac_tx_queue *tx_q) while (tx_q->tpd.consume_idx != hw_consume_idx) { tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.consume_idx); if (tpbuf->dma_addr) { - dma_unmap_single(adpt->netdev->dev.parent, - tpbuf->dma_addr, tpbuf->length, - DMA_TO_DEVICE); + dma_unmap_page(adpt->netdev->dev.parent, + tpbuf->dma_addr, tpbuf->length, + DMA_TO_DEVICE); tpbuf->dma_addr = 0; } @@ -1353,9 +1353,11 @@ static void emac_tx_fill_tpd(struct emac_adapter *adpt, tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); tpbuf->length = mapped_len; - tpbuf->dma_addr = dma_map_single(adpt->netdev->dev.parent, - skb->data, tpbuf->length, - DMA_TO_DEVICE); + tpbuf->dma_addr = dma_map_page(adpt->netdev->dev.parent, + virt_to_page(skb->data), + offset_in_page(skb->data), + tpbuf->length, + DMA_TO_DEVICE); ret = dma_mapping_error(adpt->netdev->dev.parent, tpbuf->dma_addr); if (ret) @@ -1371,9 +1373,12 @@ static void emac_tx_fill_tpd(struct emac_adapter *adpt, if (mapped_len < len) { tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); tpbuf->length = len - mapped_len; - tpbuf->dma_addr = dma_map_single(adpt->netdev->dev.parent, - skb->data + mapped_len, - tpbuf->length, DMA_TO_DEVICE); + tpbuf->dma_addr = dma_map_page(adpt->netdev->dev.parent, + virt_to_page(skb->data + + mapped_len), + offset_in_page(skb->data + + mapped_len), + tpbuf->length, DMA_TO_DEVICE); ret = dma_mapping_error(adpt->netdev->dev.parent, tpbuf->dma_addr); if (ret) -- Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.