]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/lmem: Limit block size to 4G
authorVenkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
Mon, 30 Nov 2020 13:47:21 +0000 (13:47 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 30 Nov 2020 18:18:26 +0000 (18:18 +0000)
commit19b2655c9c2c33844e02416ac0d5e6a56021e3ad
tree98a51d23bf8bf9d2fc44bd6116fc5c976ba42c54
parent9730598c3219431927ce513c3ff01a3abb931fbc
drm/i915/lmem: Limit block size to 4G

Block sizes are only limited by the largest power-of-two that will fit
in the region size, but to construct an object we also require feeding
it into an sg list, where the upper limit of the sg entry is at most
UINT_MAX. Therefore to prevent issues with allocating blocks that are
too large, add the flag I915_ALLOC_MAX_SEGMENT_SIZE which should limit
block sizes to the i915_sg_segment_size().

v2: (matt)
  - query the max segment.
  - prefer flag to limit block size to 4G, since it's best not to assume
    the user will feed the blocks into an sg list.
  - simple selftest so we don't have to guess.

Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: CQ Tang <cq.tang@intel.com>
Signed-off-by: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20201130134721.54457-1-matthew.auld@intel.com
drivers/gpu/drm/i915/gem/i915_gem_region.c
drivers/gpu/drm/i915/intel_memory_region.c
drivers/gpu/drm/i915/intel_memory_region.h
drivers/gpu/drm/i915/selftests/intel_memory_region.c