lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <64040015-2840-4210-8019-a39e605d87a0@collabora.com>
Date: Wed, 22 Oct 2025 10:28:04 +0200
From: Loïc Molinari <loic.molinari@...labora.com>
To: Boris Brezillon <boris.brezillon@...labora.com>,
 kernel test robot <lkp@...el.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 <bbrezillon@...nel.org>,
 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>, Christian Brauner <brauner@...nel.org>,
 Nitin Gote <nitin.r.gote@...el.com>, Andi Shyti
 <andi.shyti@...ux.intel.com>, Jonathan Corbet <corbet@....net>,
 Christopher Healy <healych@...zon.com>, Matthew Wilcox
 <willy@...radead.org>, Bagas Sanjaya <bagasdotme@...il.com>,
 oe-kbuild-all@...ts.linux.dev,
 Linux Memory Management List <linux-mm@...ck.org>,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH v5 06/12] drm/i915: Use huge tmpfs mountpoint helpers

Hi Boris,

On 22/10/2025 10:05, Boris Brezillon wrote:
> On Wed, 22 Oct 2025 11:25:10 +0800
> kernel test robot <lkp@...el.com> wrote:
> 
>> Hi Loïc,
>>
>> kernel test robot noticed the following build errors:
>>
>> [auto build test ERROR on next-20251021]
>> [also build test ERROR on v6.18-rc2]
>> [cannot apply to akpm-mm/mm-everything drm-misc/drm-misc-next linus/master v6.18-rc2 v6.18-rc1 v6.17]
>> [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>>
>> url:    https://github.com/intel-lab-lkp/linux/commits/Lo-c-Molinari/drm-shmem-helper-Simplify-page-offset-calculation-in-fault-handler/20251021-193355
>> base:   next-20251021
>> patch link:    https://lore.kernel.org/r/20251021113049.17242-7-loic.molinari%40collabora.com
>> patch subject: [PATCH v5 06/12] drm/i915: Use huge tmpfs mountpoint helpers
>> config: x86_64-randconfig-003-20251022 (https://download.01.org/0day-ci/archive/20251022/202510221301.wU3TSqMg-lkp@intel.com/config)
>> compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251022/202510221301.wU3TSqMg-lkp@intel.com/reproduce)
>>
>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>> the same patch/commit), kindly add following tags
>> | Reported-by: kernel test robot <lkp@...el.com>
>> | Closes: https://lore.kernel.org/oe-kbuild-all/202510221301.wU3TSqMg-lkp@intel.com/
>>
>> All errors (new ones prefixed by >>):
>>
>>     drivers/gpu/drm/i915/gem/i915_gem_shmem.c: In function '__create_shmem':
>>>> drivers/gpu/drm/i915/gem/i915_gem_shmem.c:511:59: error: 'struct drm_device' has no member named 'huge_mnt'
>>       511 |                 filp = shmem_file_setup_with_mnt(i915->drm.huge_mnt, "i915",
>>           |                                                           ^
>>
>>
>> vim +511 drivers/gpu/drm/i915/gem/i915_gem_shmem.c
>>
>>     486	
>>     487	static int __create_shmem(struct drm_i915_private *i915,
>>     488				  struct drm_gem_object *obj,
>>     489				  resource_size_t size)
>>     490	{
>>     491		unsigned long flags = VM_NORESERVE;
>>     492		struct file *filp;
>>     493	
>>     494		drm_gem_private_object_init(&i915->drm, obj, size);
>>     495	
>>     496		/* XXX: The __shmem_file_setup() function returns -EINVAL if size is
>>     497		 * greater than MAX_LFS_FILESIZE.
>>     498		 * To handle the same error as other code that returns -E2BIG when
>>     499		 * the size is too large, we add a code that returns -E2BIG when the
>>     500		 * size is larger than the size that can be handled.
>>     501		 * If BITS_PER_LONG is 32, size > MAX_LFS_FILESIZE is always false,
>>     502		 * so we only needs to check when BITS_PER_LONG is 64.
>>     503		 * If BITS_PER_LONG is 32, E2BIG checks are processed when
>>     504		 * i915_gem_object_size_2big() is called before init_object() callback
>>     505		 * is called.
>>     506		 */
>>     507		if (BITS_PER_LONG == 64 && size > MAX_LFS_FILESIZE)
>>     508			return -E2BIG;
>>     509	
>>     510		if (drm_gem_has_huge_mnt(&i915->drm))
>>   > 511			filp = shmem_file_setup_with_mnt(i915->drm.huge_mnt, "i915",
>>     512							 size, flags);
> 
> Maybe instead of this drm_gem_has_huge_mnt() (or in addition to), we
> should have a drm_gem_get_huge_mnt() helper, so we don't have drivers
> dereferencing drm_device::huge_mnt directly and we can get rid of it on
> non THP configs.

Yes, drm_gem_get_huge_mnt() should be enough. This would prevent build 
errors like that for builds with CONFIG_TRANSPARENT_PAGE=n without 
having to insert ifdefs and would also just compile to a single 
shmem_file_setup() here. The few places which actually need a boolean 
value can simply do !!drm_gem_get_huge_mnt(dev).

> 
>>     513		else
>>     514			filp = shmem_file_setup("i915", size, flags);
>>     515		if (IS_ERR(filp))
>>     516			return PTR_ERR(filp);
>>     517	
>>     518		/*
>>     519		 * Prevent -EFBIG by allowing large writes beyond MAX_NON_LFS on shmem
>>     520		 * objects by setting O_LARGEFILE.
>>     521		 */
>>     522		if (force_o_largefile())
>>     523			filp->f_flags |= O_LARGEFILE;
>>     524	
>>     525		obj->filp = filp;
>>     526		return 0;
>>     527	}
>>     528	
>>
> 

Regards,
Loïc

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ