From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84BDF6F5ED for ; Fri, 23 Jul 2021 17:18:17 +0000 (UTC) Date: Fri, 23 Jul 2021 10:16:49 -0700 Message-ID: <87v9519chq.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" In-Reply-To: <20210723093548.22273-1-vidya.srinivas@intel.com> References: <20210723093548.22273-1-vidya.srinivas@intel.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms: Return false in gem_has_lmem for platforms not having LMEM support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Vidya Srinivas Cc: igt-dev@lists.freedesktop.org, kunal1.joshi@intel.com, Lin Charlton , petri.latvala@intel.com, juha-pekka.heikkila@intel.com List-ID: On Fri, 23 Jul 2021 02:35:48 -0700, Vidya Srinivas wrote: > > Starting commit (tests/kms: Create buffer object from LMEM for discrete) it checks > for LMEM. But this is breaking older kernels like 5.4 without > DRM_I915_QUERY_MEMORY_REGIONS support. This causes > item.length filled from IOCTL to be < 0 and gives segmentation > fault. Another way to fix is check for NULL query in > gem_get_lmem_region_count and return false. > > Patch returns false from gem_has_lmem for obvious platforms > which dont have LMEM support and also adds the check > for NULL query in gem_get_lmem_region_count. > > Signed-off-by: Lin Charlton > Signed-off-by: Vidya Srinivas > --- > lib/i915/intel_memory_region.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/lib/i915/intel_memory_region.c b/lib/i915/intel_memory_region.c > index 144ae12ca7a0..635c21ab3765 100644 > --- a/lib/i915/intel_memory_region.c > +++ b/lib/i915/intel_memory_region.c > @@ -143,6 +143,10 @@ uint8_t gem_get_lmem_region_count(int fd) > uint8_t lmem_regions = 0; > > query_info = gem_get_query_memory_regions(fd); > + > + if (!query_info) > + return 0; >From the code doesn't look like this works. > + > num_regions = query_info->num_regions; > > for (int i = 0; i < num_regions; i++) { > @@ -164,6 +168,9 @@ uint8_t gem_get_lmem_region_count(int fd) > */ > bool gem_has_lmem(int fd) > { > + if (intel_display_ver(intel_get_drm_devid(fd) < 12) || > + IS_ALDERLAKE_P(intel_get_drm_devid(fd)) || IS_TIGERLAKE(intel_get_drm_devid(fd))) > + return false; No platform checks. Check if DRM_I915_QUERY_MEMORY_REGIONS is not supported and in that case return 0 from gem_get_lmem_region_count. > return gem_get_lmem_region_count(fd) > 0; > } _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev