@@ -738,11 +738,16 @@ int i915_cmd_parser_init_ring(struct intel_engine_cs *ring)
default:
DRM_ERROR("CMD: cmd_parser_init with unknown ring: %d\n",
ring->id);
- BUG();
+ return -ENODEV;
}
- BUG_ON(!validate_cmds_sorted(ring, cmd_tables, cmd_table_count));
- BUG_ON(!validate_regs_sorted(ring));
+ if (DRM_ERROR_ON(!validate_cmds_sorted(ring, cmd_tables, cmd_table_count),
+ "command parser table is not sorted - required for bisetion searching\n"))
+ return -ENODEV;
+
+ if (DRM_ERROR_ON(!validate_regs_sorted(ring),
+ "register lists are not sorted - required for bisection searching\n"))
+ return -ENODEV;
WARN_ON(!hash_empty(ring->cmd_hash));
No need to break module and system loading due to a programming bug. Remove the BUG_ON and replace with a gentler DRM_ERROR_ON and error return. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/i915_cmd_parser.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)