mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
drm/i915: Check if the size is too big while creating shmem file
The __shmem_file_setup() function returns -EINVAL if size is greater than
MAX_LFS_FILESIZE. To handle the same error as other code that returns
-E2BIG when the size is too large, it add a code that returns -E2BIG when
the size is larger than the size that can be handled.
v4: If BITS_PER_LONG is 32, size > MAX_LFS_FILESIZE is always false, so it
checks only when BITS_PER_LONG is 64.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Reported-by: kernel test robot <lkp@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221228192252.917299-5-gwan-gyeong.mun@intel.com
This commit is contained in:
parent
6949aa0ead
commit
662c04e2b8
|
|
@ -541,6 +541,20 @@ static int __create_shmem(struct drm_i915_private *i915,
|
|||
|
||||
drm_gem_private_object_init(&i915->drm, obj, size);
|
||||
|
||||
/* XXX: The __shmem_file_setup() function returns -EINVAL if size is
|
||||
* greater than MAX_LFS_FILESIZE.
|
||||
* To handle the same error as other code that returns -E2BIG when
|
||||
* the size is too large, we add a code that returns -E2BIG when the
|
||||
* size is larger than the size that can be handled.
|
||||
* If BITS_PER_LONG is 32, size > MAX_LFS_FILESIZE is always false,
|
||||
* so we only needs to check when BITS_PER_LONG is 64.
|
||||
* If BITS_PER_LONG is 32, E2BIG checks are processed when
|
||||
* i915_gem_object_size_2big() is called before init_object() callback
|
||||
* is called.
|
||||
*/
|
||||
if (BITS_PER_LONG == 64 && size > MAX_LFS_FILESIZE)
|
||||
return -E2BIG;
|
||||
|
||||
if (i915->mm.gemfs)
|
||||
filp = shmem_file_setup_with_mnt(i915->mm.gemfs, "i915", size,
|
||||
flags);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user