From patchwork Thu Nov 7 12:01:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christian_K=C3=B6nig?= X-Patchwork-Id: 11232711 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 88824139A for ; Thu, 7 Nov 2019 12:01:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 713522187F for ; Thu, 7 Nov 2019 12:01:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 713522187F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BF8DD6F661; Thu, 7 Nov 2019 12:01:23 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id DE2BD6E42E; Thu, 7 Nov 2019 12:01:22 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id 8so2134838wmo.0; Thu, 07 Nov 2019 04:01:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=q4+EM/ycBjNflTXzOlRODNdWrCrYYuuRdS5U+MduEW4=; b=XFdzy6VWpeEGMCh9qLfr2RpVE8YZQnPcb3pGvNtnXjCc4QsKj93nXhVuFVCXqEAng2 B/tFDZgXzPFuh43TLSLk+2aK3EujhtsvWjFK39Ve+OgRCKGpXCrEmDBSAq1Yle26IV1l 0H5RWSuPC55monk589a8orr1ytIxKvOKBBYDpGvPVnL7uvhOEjKExRdfqXwgzAmW/IIE niBhA1bbYMY3PDx4u8B+IqSwvgddVMax/Fma1gGAt8MZsi6+eUwOUJWMFbmPm1jYeTcJ npGXxa5VkqoOcPZ/8XROFgAMq0+XljObchW70MIwg9jJW7jRUNeDQAfCCh2q4dFPRvBk m/eQ== X-Gm-Message-State: APjAAAXqmj/u/aYt7luAGaA/pkGOMjNH6kJk8OyUwr0gwxqkLXgySRr6 k5AabgvVPetUL1bZo1/6zqalB0RQ X-Google-Smtp-Source: APXvYqwwINkA4+zPTno42CTCbHu1w6kFi1txd+6xF/vCCLZqLm3yrbuB2Pe1pGtwiOaIgIsPbahGWg== X-Received: by 2002:a1c:6683:: with SMTP id a125mr2341740wmc.74.1573128081282; Thu, 07 Nov 2019 04:01:21 -0800 (PST) Received: from laptop.fritz.box ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id x6sm60116wrw.34.2019.11.07.04.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Nov 2019 04:01:20 -0800 (PST) From: " =?utf-8?q?Christian_K=C3=B6nig?= " X-Google-Original-From: =?utf-8?q?Christian_K=C3=B6nig?= To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org Subject: [PATCH 2/2] drm/radeon: finally fix the racy VMA setup Date: Thu, 7 Nov 2019 13:01:18 +0100 Message-Id: <20191107120118.2825-2-christian.koenig@amd.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191107120118.2825-1-christian.koenig@amd.com> References: <20191107120118.2825-1-christian.koenig@amd.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=q4+EM/ycBjNflTXzOlRODNdWrCrYYuuRdS5U+MduEW4=; b=oM0jKr49VmU5DSgLM15UONRuMFJR+chFrebFyin5IfI9R82WL6OILs8YXDjX2uDV+Z vIOSsmXEj27gcYJGObKduAO5//roW2Q995f8Zua4MddFtu9aeELUhuiLtFE2upnfxG8X p7MnKAcJlF/ZFJ1ocE1baFqL8Pkp/Jr1GeC/lABnFTkUJ9wSMw+mDxEcGjwNOftlixgU DHIoY0WLejBnHfsZvz7w4OpzhZPN+fKGzljU2JZ4WkBuMeQLMZwHEOnjBD1GyBy6kn7p wCe02/rf6QNkxkoZ4i5dcKVQIT8434SpBqxamCfon+gnT/kDCeoBp+8rQxnk8tFK8bQ2 v/YA== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Christian König Finally clean up the VMA setup for radeon now that TTM exports the necessary functions. No functional change, but only compile tested. Signed-off-by: Christian König Reviewed-by: Huang Rui Acked-by: Alex Deucher --- drivers/gpu/drm/radeon/radeon_ttm.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 098bc9f40b98..91993a233cb0 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -881,9 +881,6 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size) man->size = size >> PAGE_SHIFT; } -static struct vm_operations_struct radeon_ttm_vm_ops; -static const struct vm_operations_struct *ttm_vm_ops = NULL; - static vm_fault_t radeon_ttm_fault(struct vm_fault *vmf) { struct ttm_buffer_object *bo; @@ -891,34 +888,36 @@ static vm_fault_t radeon_ttm_fault(struct vm_fault *vmf) vm_fault_t ret; bo = (struct ttm_buffer_object *)vmf->vma->vm_private_data; - if (bo == NULL) { + if (bo == NULL) return VM_FAULT_NOPAGE; - } + rdev = radeon_get_rdev(bo->bdev); down_read(&rdev->pm.mclk_lock); - ret = ttm_vm_ops->fault(vmf); + ret = ttm_bo_vm_fault(vmf); up_read(&rdev->pm.mclk_lock); return ret; } +static struct vm_operations_struct radeon_ttm_vm_ops = { + .fault = radeon_ttm_fault, + .open = ttm_bo_vm_open, + .close = ttm_bo_vm_close, + .access = ttm_bo_vm_access +}; + int radeon_mmap(struct file *filp, struct vm_area_struct *vma) { int r; struct drm_file *file_priv = filp->private_data; struct radeon_device *rdev = file_priv->minor->dev->dev_private; - if (rdev == NULL) { + if (rdev == NULL) return -EINVAL; - } + r = ttm_bo_mmap(filp, vma, &rdev->mman.bdev); - if (unlikely(r != 0)) { + if (unlikely(r != 0)) return r; - } - if (unlikely(ttm_vm_ops == NULL)) { - ttm_vm_ops = vma->vm_ops; - radeon_ttm_vm_ops = *ttm_vm_ops; - radeon_ttm_vm_ops.fault = &radeon_ttm_fault; - } + vma->vm_ops = &radeon_ttm_vm_ops; return 0; }