Ping.

On Thu, Sep 24, 2026 at 07:01:31 UTC, YuBiao Wang wrote:
> ip_discovery_size_in_kb is in KB but was compared against
> DISCOVERY_TMR_SIZE, a byte count, so the check never fired.
>
> Compare both sides in KB against a new 16KB SR-IOV bound, since 10KB does
> not cover new ASICs which need 0x2840, and drop the duplicate check below.
>
> Signed-off-by: YuBiao Wang <[email protected]>
> Reviewed-by: Lijo Lazar <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h |  1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c      | 11 ++---------
>  2 files changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
> index 6e1d55e78790..94964efa7dac 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
> @@ -28,6 +28,7 @@
>  #include "discovery.h"
>  
>  #define DISCOVERY_TMR_SIZE      (10 << 10)
> +#define DISCOVERY_TMR_SIZE_SRIOV (16 << 10)
>  #define DISCOVERY_TMR_OFFSET    (64 << 10)
>  
>  struct ip_discovery_top;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> index a454c6f12d38..73d9072f0c6c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
> @@ -1115,7 +1115,8 @@ int amdgpu_virt_init_critical_region(struct 
> amdgpu_device *adev)
>       /* Validation and initialization for each table entry */
>       if (IS_SRIOV_CRIT_REGN_ENTRY_VALID(init_data_hdr, 
> AMD_SRIOV_MSG_IPD_TABLE_ID)) {
>               if (!init_data_hdr->ip_discovery_size_in_kb ||
> -                             init_data_hdr->ip_discovery_size_in_kb > 
> DISCOVERY_TMR_SIZE) {
> +                             init_data_hdr->ip_discovery_size_in_kb >
> +                                     (DISCOVERY_TMR_SIZE_SRIOV >> 10)) {
>                       dev_err(adev->dev, "Invalid %s size: 0x%x\n",
>                               
> amdgpu_virt_dynamic_crit_table_name[AMD_SRIOV_MSG_IPD_TABLE_ID],
>                               init_data_hdr->ip_discovery_size_in_kb);
> @@ -1189,14 +1190,6 @@ int amdgpu_virt_init_critical_region(struct 
> amdgpu_device *adev)
>                       init_data_hdr->bad_page_size_in_kb;
>       }
>  
> -     /* Validation for critical region info */
> -     if (adev->virt.crit_regn_tbl[AMD_SRIOV_MSG_IPD_TABLE_ID].size_kb > 
> DISCOVERY_TMR_SIZE) {
> -             dev_err(adev->dev, "Invalid IP discovery size: 0x%x\n",
> -                             
> adev->virt.crit_regn_tbl[AMD_SRIOV_MSG_IPD_TABLE_ID].size_kb);
> -             r = -EINVAL;
> -             goto out;
> -     }
> -
>       /* reserved memory starts from crit region base offset with the size of 
> 5MB */
>       amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_FW_VRAM_USAGE,
>                                 adev->virt.crit_regn.offset,

Reply via email to