Skip to content

Commit de8a5c2

Browse files
committed
intel_ggtt.c writes 0 at the end of an allocated buffer now.
1 parent b3b7fad commit de8a5c2

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

sys/external/bsd/drm2/dist/drm/i915/gt/intel_ggtt.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
254254
bus_dmamap_t map = vma->pages->sgl[0].sg_dmamap;
255255
unsigned seg;
256256
unsigned pgno;
257+
unsigned pgextra;
257258
#else
258259
struct sgt_iter sgt_iter;
259260
gen8_pte_t __iomem *gtt_entries;
@@ -269,17 +270,23 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
269270

270271
#ifdef __NetBSD__
271272
pgno = vma->node.start / I915_GTT_PAGE_SIZE;
273+
pgend = pgno + vma->node.size / I915_GTT_PAGE_SIZE;
272274
for (seg = 0; seg < map->dm_nsegs; seg++) {
273275
addr = map->dm_segs[seg].ds_addr;
274276
bus_size_t len = map->dm_segs[seg].ds_len;
275277
KASSERT((addr % I915_GTT_PAGE_SIZE) == 0);
276278
KASSERT((len % I915_GTT_PAGE_SIZE) == 0);
277279
for (;
278280
len >= I915_GTT_PAGE_SIZE;
279-
addr += I915_GTT_PAGE_SIZE, len -= I915_GTT_PAGE_SIZE) {
281+
addr += I915_GTT_PAGE_SIZE, len -= I915_GTT_PAGE_SIZE)
280282
gen8_set_pte(ggtt->gsmt, ggtt->gsmh, pgno++,
281283
pte_encode | addr);
282284
}
285+
/* Fill the allocated but "unused" space beyond the end of the buffer */
286+
for (;pgno<pgend;pgno++,len--)
287+
{
288+
gen8_set_pte(ggtt->gsmt + pgno, vm->scratch[0].encode);
289+
}
283290
KASSERT(len == 0);
284291
}
285292
#else

0 commit comments

Comments
 (0)