diff --git a/sys/dev/drm/radeon/radeon_sa.c b/sys/dev/drm/radeon/radeon_sa.c index 1111111..2222222 100644 --- a/sys/dev/drm/radeon/radeon_sa.c +++ b/sys/dev/drm/radeon/radeon_sa.c @@ -318,8 +318,12 @@ unsigned tries[RADEON_NUM_RINGS]; int i, r; - BUG_ON(align > sa_manager->align); - BUG_ON(size > sa_manager->size); + if (align > sa_manager->align || size > sa_manager->size) { + DRM_ERROR("radeon_sa_bo_new: invalid align=%u or size=%u " + "(sa_manager align=%u size=%u)\n", align, size, + sa_manager->align, sa_manager->size); + return -EINVAL; + } *sa_bo = kmalloc(sizeof(struct radeon_sa_bo), M_DRM, GFP_KERNEL); if ((*sa_bo) == NULL) {