--- a/sys/dev/drm/radeon/r600_cs.c +++ b/sys/dev/drm/radeon/r600_cs.c @@ -1600,9 +1600,11 @@ return -EINVAL; } /* using get ib will give us the offset into the mipmap bo */ - if ((mipmap_size + word3) > radeon_bo_size(mipmap)) { - /*dev_warn(p->dev, "mipmap bo too small (%d %d %d %d %d %d -> %d have %ld)\n", - w0, h0, format, blevel, nlevels, word3, mipmap_size, radeon_bo_size(texture));*/ + if (((u64)mipmap_size + word3) > radeon_bo_size(mipmap)) { + dev_warn(p->dev, "mipmap bo too small (%d %d %d %d %d -> %d have %ld)\n", + w0, h0, format, blevel, llevel, word3, mipmap_size, + radeon_bo_size(mipmap)); + return -EINVAL; } return 0; }