File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -668,6 +668,8 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
668668	union  acpi_parse_object  * arguments [ACPI_OBJ_NUM_OPERANDS ];
669669	u32  arg_count  =  0 ;
670670	u32  index  =  walk_state -> num_operands ;
671+ 	u32  prev_num_operands  =  walk_state -> num_operands ;
672+ 	u32  new_num_operands ;
671673	u32  i ;
672674
673675	ACPI_FUNCTION_TRACE_PTR (ds_create_operands , first_arg );
@@ -696,6 +698,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
696698
697699	/* Create the interpreter arguments, in reverse order */ 
698700
701+ 	new_num_operands  =  index ;
699702	index -- ;
700703	for  (i  =  0 ; i  <  arg_count ; i ++ ) {
701704		arg  =  arguments [index ];
@@ -720,7 +723,11 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
720723	 * pop everything off of the operand stack and delete those 
721724	 * objects 
722725	 */ 
723- 	acpi_ds_obj_stack_pop_and_delete (arg_count , walk_state );
726+ 	walk_state -> num_operands  =  i ;
727+ 	acpi_ds_obj_stack_pop_and_delete (new_num_operands , walk_state );
728+ 
729+ 	/* Restore operand count */ 
730+ 	walk_state -> num_operands  =  prev_num_operands ;
724731
725732	ACPI_EXCEPTION ((AE_INFO , status , "While creating Arg %u" , index ));
726733	return_ACPI_STATUS (status );
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments