Prevents infinite loop of 'Large Reference Count' messages in
aslts-bdemo-b286 test.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
        union acpi_operand_object *obj_desc = NULL;
        acpi_status status = AE_OK;
        acpi_native_uint i;
+       u16 index;
+       u16 reference_count;
 
        ACPI_FUNCTION_TRACE(ds_build_internal_package_obj);
 
                                                               package.
                                                               elements[i]);
                }
+
+               if (*obj_desc_ptr) {
+
+                       /* Existing package, get existing reference count */
+
+                       reference_count =
+                           (*obj_desc_ptr)->common.reference_count;
+                       if (reference_count > 1) {
+
+                               /* Make new element ref count match original ref count */
+
+                               for (index = 0; index < (reference_count - 1);
+                                    index++) {
+                                       acpi_ut_add_reference((obj_desc->
+                                                              package.
+                                                              elements[i]));
+                               }
+                       }
+               }
+
                arg = arg->common.next;
        }