diff --git a/drivers/gpu/drm/imagination/pvr_queue.c b/drivers/gpu/drm/imagination/pvr_queue.c
index c1e7bc57eface18ed2fca83342706885aa27d477..d72fd8d715a773a43974b481929809d7a8b982fe 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -1152,6 +1152,9 @@ static void init_fw_context(struct pvr_queue *queue, void *fw_ctx_map)
  */
 static int pvr_queue_cleanup_fw_context(struct pvr_queue *queue)
 {
+	if (!queue->ctx->fw_obj)
+		return 0;
+
 	return pvr_fw_structure_cleanup(queue->ctx->pvr_dev,
 					ROGUE_FWIF_CLEANUP_FWCOMMONCONTEXT,
 					queue->ctx->fw_obj, queue->ctx_offset);