Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp910037ybl; Thu, 12 Dec 2019 06:50:30 -0800 (PST) X-Google-Smtp-Source: APXvYqzMHLshGW5/s7zJP7QTA2SVcj0X5qEWV1yWRMocNHDSCvufjqvqMr5JkO6Pm+XeGjnHZbbF X-Received: by 2002:aca:4b93:: with SMTP id y141mr5325789oia.132.1576162229971; Thu, 12 Dec 2019 06:50:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576162229; cv=none; d=google.com; s=arc-20160816; b=kSBMchSFcyGFlcfJzuzqoo85mxhyIGrQRdQF49I5Azmj1nkfByTkSb0i/qlj7oAYVB mNbgfi4PFeApr6Iu1lksSlN4La72wx8/Kn5n5Qm6zR2xX49QfCgtSXlYChAouasJR2Ah UYJCBXs/U3Ryxzfu7Oh5UzFl9bSzzEuszOIXHzBkZ+RMthg+BTzcxAnE7lskZ5MO0D6N 1In7ZKO3Lo7YCt7brABYNMP0/VgpVvPMXgN6VA2TjIRBKCwjPKMWZMaQ9I13ULFZdP19 mWLVFFbHgmPcD5p8dayuKWp/zz0AGG//yRyIh/RZiQoa27LiH/g/8zOtYwCnyBuESsib w9gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=baPe5n9/CWpgrrSlK4d2NUaMLedUf+1yukOzkjg3xQA=; b=BnmMVoE8DamAyZ/fEwhj1oyRtZ1cs3KSKQ0gONKyFWz67akqPagNPnhUCVqRU3u2mj BEStftLDDnZALqZb7oe6+rGx8NIagtflY++NJuQupaMTiD54UrDg7ycnqDfvyJAPey49 B1lW81nZao5XfMslu540ouOoYvJja/6c7RNoBYoVgf4Ds2v8B9xcTd0en2VzNRWs3wlf UVNyFKrBa/POZINj8AdagAd686vZV/Cs6AvX9pnR5AFXdAXb5tIaMJsVfr5LJ/BfTcHG WxrHOsySJjGpolBmeOVIDJ42a81hSkB5i/bTpzd5BwQuEAy+YF0LVv8D2KDRKQzjMYYe aV8Q== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j70si3155064oib.219.2019.12.12.06.50.09; Thu, 12 Dec 2019 06:50: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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729817AbfLLOtG convert rfc822-to-8bit (ORCPT + 99 others); Thu, 12 Dec 2019 09:49:06 -0500 Received: from mga01.intel.com ([192.55.52.88]:62440 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729640AbfLLOtG (ORCPT ); Thu, 12 Dec 2019 09:49:06 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2019 06:49:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,306,1571727600"; d="scan'208";a="245748962" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 12 Dec 2019 06:49:05 -0800 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 12 Dec 2019 06:49:05 -0800 Received: from fmsmsx107.amr.corp.intel.com ([169.254.6.96]) by fmsmsx101.amr.corp.intel.com ([169.254.1.124]) with mapi id 14.03.0439.000; Thu, 12 Dec 2019 06:49:05 -0800 From: "Ruhl, Michael J" To: Gerd Hoffmann , "dri-devel@lists.freedesktop.org" CC: David Airlie , open list , "open list:VIRTIO GPU DRIVER" , "gurchetansingh@chromium.org" Subject: RE: [PATCH] drm/virtio: fix mmap page attributes Thread-Topic: [PATCH] drm/virtio: fix mmap page attributes Thread-Index: AQHVrzjyVT6cHGbxNE67i4kUKKmNL6e2l33w Date: Thu, 12 Dec 2019 14:49:04 +0000 Message-ID: <14063C7AD467DE4B82DEDB5C278E8663EE148E5D@fmsmsx107.amr.corp.intel.com> References: <20191210085759.14763-1-kraxel@redhat.com> In-Reply-To: <20191210085759.14763-1-kraxel@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTQxNTkzOTMtMDdjOC00MzQ0LTgyNjMtZjk0NDA5MTY0ZGVmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiS3hMREFEWnJxV3FlRmY4RTd2U0JLaDhpeHlwU29CaHhUTVo0TjNCRU1vVksrM1gxR0pnSHhVZXFBUWx5NjdJaiJ9 dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.1.200.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >-----Original Message----- >From: dri-devel On Behalf Of >Gerd Hoffmann >Sent: Tuesday, December 10, 2019 3:58 AM >To: dri-devel@lists.freedesktop.org >Cc: David Airlie ; open list ; >open list:VIRTIO GPU DRIVER ; >Gerd Hoffmann ; gurchetansingh@chromium.org >Subject: [PATCH] drm/virtio: fix mmap page attributes > >virtio-gpu uses cached mappings. shmem helpers use writecombine though. >So roll our own mmap function, wrapping drm_gem_shmem_mmap(), to >tweak >vm_page_prot accordingly. > >Reported-by: Gurchetan Singh >Signed-off-by: Gerd Hoffmann >--- > drivers/gpu/drm/virtio/virtgpu_object.c | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > >diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c >b/drivers/gpu/drm/virtio/virtgpu_object.c >index 017a9e0fc3bb..158610902054 100644 >--- a/drivers/gpu/drm/virtio/virtgpu_object.c >+++ b/drivers/gpu/drm/virtio/virtgpu_object.c >@@ -75,6 +75,22 @@ static void virtio_gpu_free_object(struct >drm_gem_object *obj) > drm_gem_shmem_free_object(obj); > } > >+static int virtio_gpu_gem_mmap(struct drm_gem_object *obj, struct >vm_area_struct *vma) >+{ >+ pgprot_t prot; >+ int ret; >+ >+ ret = drm_gem_shmem_mmap(obj, vma); >+ if (ret < 0) >+ return ret; >+ >+ /* virtio-gpu needs normal caching, so clear writecombine */ A minor nit. I was looking at this code, trying to see where you were clearing the writecombine bit. Maybe a more clear comment would be: virtio-gpu needs normal caching, re-do protection without writecombine ? Mike >+ prot = vm_get_page_prot(vma->vm_flags); >+ prot = pgprot_decrypted(prot); >+ vma->vm_page_prot = prot; >+ return 0; >+} >+ > static const struct drm_gem_object_funcs virtio_gpu_gem_funcs = { > .free = virtio_gpu_free_object, > .open = virtio_gpu_gem_object_open, >@@ -86,7 +102,7 @@ static const struct drm_gem_object_funcs >virtio_gpu_gem_funcs = { > .get_sg_table = drm_gem_shmem_get_sg_table, > .vmap = drm_gem_shmem_vmap, > .vunmap = drm_gem_shmem_vunmap, >- .mmap = &drm_gem_shmem_mmap, >+ .mmap = &virtio_gpu_gem_mmap, > }; > > struct drm_gem_object *virtio_gpu_create_object(struct drm_device *dev, >-- >2.18.1 > >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel