Received: by 10.213.65.68 with SMTP id h4csp4238571imn; Tue, 10 Apr 2018 11:28:44 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/922hLL3UTDfmEmQdM8qTHpjZgqmABOfrupdhaTXEZ5+bFsmwn+2E1slo8YLMPgRI/T90g X-Received: by 10.99.66.197 with SMTP id p188mr1077595pga.28.1523384924932; Tue, 10 Apr 2018 11:28:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523384924; cv=none; d=google.com; s=arc-20160816; b=Dh++w0GZ0QClW8LDYSshcZfxwmbk4wL80AdVIXRN00rjvqwXAtU2ZI8aCl0SUF3rde Ocacg28ACzm33H9OD+BXx1ScOgMMVQXyP+1HECzz0FfGUvGpx8x7WH9fXCY0l8lQQm3L OXfXvHipIoz3dUNJpQOgSbQGjO6KdGm52dpIRHZuvHQ3H0L56iNdCHHRsSV3bZfoIofD r0G5/fQe9CDdOkoyndIkfTJHU6jTUBtjM6dMK1PgfvpR3Q7+uyVBRyeKuVjT1v7JLNG+ jw2+weCVDp1BfkH3KVq2hkXl/SdY0q9pFliF43J463AisBUCI09q0vw7wIFOeKQO6tT4 VZBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dmarc-filter:dkim-signature :dkim-signature:arc-authentication-results; bh=cFcAgzmPhIm7vOv4rUwWqrnbz9V3IQXp+WuuC3z53Zw=; b=Vd6r456BtHClpph3aQ9V/CrUX0b7dJzNUaDyRVl5NRqC/hus/d5P3z4/4N0LF7BAgF mGphcCK8IARPRQMC8JTXKK38r3ORDEinDAw6eXS3VHH18fAQkT7eB72TuV6NJb9kkC92 LkKc1cSe84aac3DRqlUX0ELVLYHAHK786PyeRh4XBP6C3dm9sB+GGOVDgGbY0A3XkV2v auLN04cGMHHhFsgt78Opzd4cEtosrHFN3n8fTyDfVYGEmsYaPJyUUa5JgzTZQAFdcev7 GNIeNIRb24QPNPk8H02h+NWwcsf5zF/Li3diH8CPUFfnXAxwHbeeiLPYDlkh0ZyRO/Yv C8Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=E8bwPq+2; dkim=pass header.i=@codeaurora.org header.s=default header.b=msUAvGUS; 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 z2si2066747pgz.328.2018.04.10.11.28.07; Tue, 10 Apr 2018 11:28:44 -0700 (PDT) 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=E8bwPq+2; dkim=pass header.i=@codeaurora.org header.s=default header.b=msUAvGUS; 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 S1751892AbeDJSZP (ORCPT + 99 others); Tue, 10 Apr 2018 14:25:15 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:53542 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751504AbeDJSZN (ORCPT ); Tue, 10 Apr 2018 14:25:13 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 2108160C65; Tue, 10 Apr 2018 18:25:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1523384713; bh=Ua3acgZnryQrtTzTjHqzVYdyxACYdgx2LTupnbkII/A=; h=From:To:Cc:Subject:Date:From; b=E8bwPq+2A8jUOnj2AJdJ9LuZifn1KiUsn6Qv2T5CZJLuHvI0NN/+IY+JuHu+7x2jm 7PoZQHpDs9lGBxbZyTmGcr3ShmbjvIFMFq0f5ndYVRjONdOYTi4SmVyye4sb3pU9MZ Oiv86ezQ7rP/Qj4w443U02VvTwC0O66zvROQpewM= 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 drakthul.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: okaya@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id CF3BA60274; Tue, 10 Apr 2018 18:25:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1523384712; bh=Ua3acgZnryQrtTzTjHqzVYdyxACYdgx2LTupnbkII/A=; h=From:To:Cc:Subject:Date:From; b=msUAvGUSbbtJ69mFaj1Wni/TkIKyZOdvRCvnvm9dMQ/RYBa08vxTBzJui0RMpzpmV 6+iDPhjpJ72XRKCwDaa9A6V0eHth46DuVaFR5rkuVoQV7NKmZ5EquvlkSr+41kFYEU 6HxWcWeYg27Hk+/Q/uTe3lEhV97SV92KQvmUaAxA= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org CF3BA60274 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=okaya@codeaurora.org From: Sinan Kaya To: amd-gfx@lists.freedesktop.org, timur@codeaurora.org, sulrich@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sinan Kaya , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , "David (ChunMing) Zhou" , David Airlie , =?UTF-8?q?Michel=20D=C3=A4nzer?= , Tom St Denis , Felix Kuehling , Roger He , Monk Liu , Harish Kasiviswanathan , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] drm/amdgpu: limit DMA size to PAGE_SIZE for scatter-gather buffers Date: Tue, 10 Apr 2018 14:25:03 -0400 Message-Id: <1523384705-3976-1-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Code is expecing to observe the same number of buffers returned from dma_map_sg() function compared to sg_alloc_table_from_pages(). This doesn't hold true universally especially for systems with IOMMU. IOMMU driver tries to combine buffers into a single DMA address as much as it can. The right thing is to tell the DMA layer how much combining IOMMU can do. Signed-off-by: Sinan Kaya --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index e4bb435..02465cd 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -787,6 +787,8 @@ static int amdgpu_ttm_tt_pin_userptr(struct ttm_tt *ttm) enum dma_data_direction direction = write ? DMA_BIDIRECTIONAL : DMA_TO_DEVICE; + dma_set_max_seg_size(adev->dev, PAGE_SIZE); + r = sg_alloc_table_from_pages(ttm->sg, ttm->pages, ttm->num_pages, 0, ttm->num_pages << PAGE_SHIFT, GFP_KERNEL); -- 2.7.4