Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'drm-intel-gt-next-2025-10-29' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next

Driver Changes:

Fixes/improvements/new stuff:

- Set O_LARGEFILE in __create_shmem() (Taotao Chen)
- Fix incorrect error handling in shmem_pwrite() (Taotao Chen)
- Skip GuC communication warning on reset in progress [guc] (Zhanjun Dong)
- Fix conversion between clock ticks and nanoseconds [guc] (Umesh Nerlige Ramappa)

Miscellaneous:

- Avoid accessing uninitialized context in emit_rpcs_query() [selftests] (Krzysztof Karas)
- Fix typo in comment (I915_EXEC_NO_RELOC) [gem] (Marlon Henrique Sanches)

Backmerges:

- Merge drm/drm-next into drm-intel-gt-next (Joonas Lahtinen)

Signed-off-by: Simona Vetter <simona.vetter@ffwll.ch>
From: Tvrtko Ursulin <tursulin@igalia.com>
Link: https://patch.msgid.link/aQH994lQI_iVPzTI@linux

+17 -7
+1 -1
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
··· 142 142 * we want to leave the object where it is and for all the existing relocations 143 143 * to match. If the object is given a new address, or if userspace thinks the 144 144 * object is elsewhere, we have to parse all the relocation entries and update 145 - * the addresses. Userspace can set the I915_EXEC_NORELOC flag to hint that 145 + * the addresses. Userspace can set the I915_EXEC_NO_RELOC flag to hint that 146 146 * all the target addresses in all of its objects match the value in the 147 147 * relocation entries and that they all match the presumed offsets given by the 148 148 * list of execbuffer objects. Using this knowledge, we know that if we haven't
+12 -3
drivers/gpu/drm/i915/gem/i915_gem_shmem.c
··· 441 441 written = file->f_op->write_iter(&kiocb, &iter); 442 442 BUG_ON(written == -EIOCBQUEUED); 443 443 444 - if (written != size) 445 - return -EIO; 446 - 444 + /* 445 + * First, check if write_iter returned a negative error. 446 + * If the write failed, return the real error code immediately. 447 + * This prevents it from being overwritten by the short write check below. 448 + */ 447 449 if (written < 0) 448 450 return written; 451 + /* 452 + * Check for a short write (written bytes != requested size). 453 + * Even if some data was written, return -EIO to indicate that the 454 + * write was not fully completed. 455 + */ 456 + if (written != size) 457 + return -EIO; 449 458 450 459 return 0; 451 460 }
+2 -1
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
··· 962 962 if (IS_ERR(rpcs)) 963 963 return PTR_ERR(rpcs); 964 964 965 + i915_gem_ww_ctx_init(&ww, false); 966 + 965 967 batch = i915_vma_instance(rpcs, ce->vm, NULL); 966 968 if (IS_ERR(batch)) { 967 969 err = PTR_ERR(batch); 968 970 goto err_put; 969 971 } 970 972 971 - i915_gem_ww_ctx_init(&ww, false); 972 973 retry: 973 974 err = i915_gem_object_lock(obj, &ww); 974 975 if (!err)
+2 -2
drivers/gpu/drm/i915/gt/intel_gt_clock_utils.c
··· 205 205 206 206 u64 intel_gt_clock_interval_to_ns(const struct intel_gt *gt, u64 count) 207 207 { 208 - return div_u64_roundup(count * NSEC_PER_SEC, gt->clock_frequency); 208 + return mul_u64_u32_div(count, NSEC_PER_SEC, gt->clock_frequency); 209 209 } 210 210 211 211 u64 intel_gt_pm_interval_to_ns(const struct intel_gt *gt, u64 count) ··· 215 215 216 216 u64 intel_gt_ns_to_clock_interval(const struct intel_gt *gt, u64 ns) 217 217 { 218 - return div_u64_roundup(gt->clock_frequency * ns, NSEC_PER_SEC); 218 + return mul_u64_u32_div(ns, gt->clock_frequency, NSEC_PER_SEC); 219 219 } 220 220 221 221 u64 intel_gt_ns_to_pm_interval(const struct intel_gt *gt, u64 ns)