drm/amdgpu: Increase potential product_name to 64 characters
authorKent Russell <kent.russell@amd.com>
Mon, 13 Dec 2021 18:14:17 +0000 (13:14 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Dec 2021 13:54:43 +0000 (08:54 -0500)
Having seen at least 1 42-character product_name, bump the number up to
64, and put that definition into amdgpu.h to make future adjustments
simpler.

Signed-off-by: Kent Russell <kent.russell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c

index e701ded..8038e90 100644 (file)
@@ -813,6 +813,7 @@ struct amd_powerplay {
 
 #define AMDGPU_RESET_MAGIC_NUM 64
 #define AMDGPU_MAX_DF_PERFMONS 4
+#define AMDGPU_PRODUCT_NAME_LEN 64
 struct amdgpu_device {
        struct device                   *dev;
        struct pci_dev                  *pdev;
@@ -1083,7 +1084,7 @@ struct amdgpu_device {
 
        /* Chip product information */
        char                            product_number[16];
-       char                            product_name[32];
+       char                            product_name[AMDGPU_PRODUCT_NAME_LEN];
        char                            serial[20];
 
        atomic_t                        throttling_logging_enabled;
index 7709cae..fdca0a4 100644 (file)
@@ -88,7 +88,7 @@ static int amdgpu_fru_read_eeprom(struct amdgpu_device *adev, uint32_t addrptr,
 
 int amdgpu_fru_get_product_info(struct amdgpu_device *adev)
 {
-       unsigned char buff[34];
+       unsigned char buff[AMDGPU_PRODUCT_NAME_LEN+2];
        u32 addrptr;
        int size, len;
 
@@ -131,12 +131,10 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev)
        }
 
        len = size;
-       /* Product name should only be 32 characters. Any more,
-        * and something could be wrong. Cap it at 32 to be safe
-        */
-       if (len >= sizeof(adev->product_name)) {
-               DRM_WARN("FRU Product Number is larger than 32 characters. This is likely a mistake");
-               len = sizeof(adev->product_name) - 1;
+       if (len >= AMDGPU_PRODUCT_NAME_LEN) {
+               DRM_WARN("FRU Product Name is larger than %d characters. This is likely a mistake",
+                               AMDGPU_PRODUCT_NAME_LEN);
+               len = AMDGPU_PRODUCT_NAME_LEN - 1;
        }
        /* Start at 2 due to buff using fields 0 and 1 for the address */
        memcpy(adev->product_name, &buff[2], len);