[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <fbfii7x7ypvbsowp63zuayzykqmpjpdjvzjdpyswwhfttuwemd@wbs7qxp5zie6>
Date: Mon, 6 Oct 2025 18:01:53 +0200
From: Andi Shyti <andi.shyti@...nel.org>
To: Loïc Molinari <loic.molinari@...labora.com>
Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Jani Nikula <jani.nikula@...ux.intel.com>, Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@...el.com>, Tvrtko Ursulin <tursulin@...ulin.net>,
Boris Brezillon <boris.brezillon@...labora.com>, Rob Herring <robh@...nel.org>,
Steven Price <steven.price@....com>, Liviu Dudau <liviu.dudau@....com>, Melissa Wen <mwen@...lia.com>,
Maíra Canal <mcanal@...lia.com>, Hugh Dickins <hughd@...gle.com>,
Baolin Wang <baolin.wang@...ux.alibaba.com>, Andrew Morton <akpm@...ux-foundation.org>,
Al Viro <viro@...iv.linux.org.uk>, Mikołaj Wasiak <mikolaj.wasiak@...el.com>,
Christian Brauner <brauner@...nel.org>, Nitin Gote <nitin.r.gote@...el.com>,
Andi Shyti <andi.shyti@...ux.intel.com>, Christopher Healy <healych@...zon.com>,
linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org,
linux-mm@...ck.org, kernel@...labora.com, kernel test robot <lkp@...el.com>
Subject: Re: [PATCH v3 01/10] drm/shmem-helper: Add huge page fault handler
Hi Loic,
...
> + unsigned int order)
> {
> struct vm_area_struct *vma = vmf->vma;
> struct drm_gem_object *obj = vma->vm_private_data;
> @@ -582,6 +583,10 @@ static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf)
> vm_fault_t ret;
we could initialize ret to VM_FAULT_FALLBACK and avoid the else's
and the default case.
> struct page *page;
> pgoff_t page_offset;
> + unsigned long pfn;
> +#if defined(CONFIG_ARCH_SUPPORTS_PMD_PFNMAP) || defined(CONFIG_ARCH_SUPPORTS_PUD_PFNMAP)
> + unsigned long paddr;
> +#endif
we could declare paddr inside the switch case in order to avoid
some extra ifdefs.
> /* We don't use vmf->pgoff since that has the fake offset */
> page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
> @@ -592,17 +597,57 @@ static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf)
> drm_WARN_ON_ONCE(obj->dev, !shmem->pages) ||
> shmem->madv < 0) {
> ret = VM_FAULT_SIGBUS;
> - } else {
> - page = shmem->pages[page_offset];
> + goto out;
> + }
>
> - ret = vmf_insert_pfn(vma, vmf->address, page_to_pfn(page));
> + page = shmem->pages[page_offset];
> + pfn = page_to_pfn(page);
> +
> + switch (order) {
> + case 0:
'0' needs to be defined, what does '0' mean? (I know what it
means, but for consistency I think it should have its own name).
Andi
> + ret = vmf_insert_pfn(vma, vmf->address, pfn);
> + break;
Powered by blists - more mailing lists