File tree Expand file tree Collapse file tree 1 file changed +18
-12
lines changed Expand file tree Collapse file tree 1 file changed +18
-12
lines changed Original file line number Diff line number Diff line change @@ -5795,26 +5795,29 @@ static int indirect_ctx_bb_check(struct intel_context *ce)
57955795static int __live_lrc_indirect_ctx_bb (struct intel_engine_cs * engine )
57965796{
57975797 struct intel_context * a , * b ;
5798- int err = 0 ;
5798+ int err ;
57995799
58005800 a = intel_context_create (engine );
5801- b = intel_context_create ( engine );
5802-
5801+ if ( IS_ERR ( a ))
5802+ return PTR_ERR ( a );
58035803 err = intel_context_pin (a );
58045804 if (err )
5805- return err ;
5805+ goto put_a ;
58065806
5807- err = intel_context_pin ( b );
5808- if (err ) {
5809- intel_context_put ( a );
5810- return err ;
5807+ b = intel_context_create ( engine );
5808+ if (IS_ERR ( b ) ) {
5809+ err = PTR_ERR ( b );
5810+ goto unpin_a ;
58115811 }
5812+ err = intel_context_pin (b );
5813+ if (err )
5814+ goto put_b ;
58125815
58135816 /* We use the already reserved extra page in context state */
58145817 if (!a -> wa_bb_page ) {
58155818 GEM_BUG_ON (b -> wa_bb_page );
58165819 GEM_BUG_ON (INTEL_GEN (engine -> i915 ) == 12 );
5817- goto out ;
5820+ goto unpin_b ;
58185821 }
58195822
58205823 /*
@@ -5829,14 +5832,17 @@ static int __live_lrc_indirect_ctx_bb(struct intel_engine_cs *engine)
58295832
58305833 err = indirect_ctx_bb_check (a );
58315834 if (err )
5832- goto out ;
5835+ goto unpin_b ;
58335836
58345837 err = indirect_ctx_bb_check (b );
5835- out :
5838+
5839+ unpin_b :
58365840 intel_context_unpin (b );
5841+ put_b :
58375842 intel_context_put (b );
5838-
5843+ unpin_a :
58395844 intel_context_unpin (a );
5845+ put_a :
58405846 intel_context_put (a );
58415847
58425848 return err ;
You can’t perform that action at this time.
0 commit comments