bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_integer()

Users should prefer
pldm_bios_table_attr_value_entry_encode_integer_check() which returns an
error code rather than preventing misbehaviour using assert().

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: If7b0290d93d96c893fe3e790ba7738ececc3d4df
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4d34dcd..72821b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -37,6 +37,10 @@
 
    Migrate to pldm_bios_table_attr_value_entry_encode_string_check()
 
+4. bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_integer()
+
+   Migrate to pldm_bios_table_attr_value_entry_encode_integer_check()
+
 ### Removed
 
 1. bios_table: Remove deprecated APIs sanitized by assert():
diff --git a/include/libpldm/bios_table.h b/include/libpldm/bios_table.h
index f69fa71..b042a0e 100644
--- a/include/libpldm/bios_table.h
+++ b/include/libpldm/bios_table.h
@@ -608,7 +608,9 @@
  *  @param[in] attr_type - Type of this attribute in the BIOS Attribute Value
  * Table
  *  @param[in] cv - Current Value
- *  @return pldm_completion_codes
+ *  @return PLDM_SUCCESS on success. PLDM_ERROR_INVALID_DATA if entry is NULL or attr_type is not
+ *  	    PLDM_BIOS_INTEGER. PLDM_ERROR_INVALID_LENGTH if entry_length lacks capacity to encode cv
+ *  	    in entry.
  */
 int pldm_bios_table_attr_value_entry_encode_integer_check(void *entry,
 							  size_t entry_length,
diff --git a/src/bios_table.c b/src/bios_table.c
index c6a2d1f..ff54d40 100644
--- a/src/bios_table.c
+++ b/src/bios_table.c
@@ -796,15 +796,10 @@
 						     uint8_t attr_type,
 						     uint64_t cv)
 {
-	size_t length =
-		pldm_bios_table_attr_value_entry_encode_integer_length();
-	assert(length <= entry_length);
-
-	struct pldm_bios_attr_val_table_entry *table_entry = entry;
-	table_entry->attr_handle = htole16(attr_handle);
-	table_entry->attr_type = attr_type;
-	cv = htole64(cv);
-	memcpy(table_entry->value, &cv, sizeof(uint64_t));
+	int rc = pldm_bios_table_attr_value_entry_encode_integer_check(
+		entry, entry_length, attr_handle, attr_type, cv);
+	(void)rc;
+	assert(rc == PLDM_SUCCESS);
 }
 
 LIBPLDM_ABI_STABLE
@@ -819,8 +814,11 @@
 		pldm_bios_table_attr_value_entry_encode_integer_length();
 	ATTR_TYPE_EXPECT(attr_type, PLDM_BIOS_INTEGER);
 	BUFFER_SIZE_EXPECT(entry_length, length);
-	pldm_bios_table_attr_value_entry_encode_integer(
-		entry, entry_length, attr_handle, attr_type, cv);
+	struct pldm_bios_attr_val_table_entry *table_entry = entry;
+	table_entry->attr_handle = htole16(attr_handle);
+	table_entry->attr_type = attr_type;
+	cv = htole64(cv);
+	memcpy(table_entry->value, &cv, sizeof(uint64_t));
 	return PLDM_SUCCESS;
 }
 
diff --git a/tests/libpldm_bios_table_test.cpp b/tests/libpldm_bios_table_test.cpp
index a7f5677..19204a6 100644
--- a/tests/libpldm_bios_table_test.cpp
+++ b/tests/libpldm_bios_table_test.cpp
@@ -727,7 +727,7 @@
     EXPECT_DEATH(pldm_bios_table_attr_value_entry_encode_integer(
                      encodeEntry.data(), encodeEntry.size() - 1, 0,
                      PLDM_BIOS_INTEGER, 10),
-                 "length <= entry_length");
+                 "rc == PLDM_SUCCESS");
 
     auto rc = pldm_bios_table_attr_value_entry_encode_integer_check(
         encodeEntry.data(), encodeEntry.size(), 0, PLDM_BIOS_INTEGER, 10);