<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Arial" size="2"><span style="font-size:10pt;">
<div style="padding-right:5pt;padding-left:5pt;"><font color="blue">[AMD Official Use Only - General]<br>
</font></div>
<div style="margin-top:5pt;"><font face="Times New Roman" size="3"><span style="font-size:12pt;"><br>
</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -210,8 +211,10 @@ static void event_interrupt_poison_consumption_v11(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_INTSRC_SQ_INTERRUPT_MSG:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (dev->dqm->ops.reset_queues)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> ret = dev->dqm->ops.reset_queues(dev->dqm, pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__GFX;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC21_INTSRC_SDMA_ECC:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__SDMA;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Hi <a href="mailto:YiPeng.Chai@amd.com"><font color="#2B579A"><span style="background-color:#E1DFDD;">@Chai, Thomas</span></font></a>/<a href="mailto:Zhigang.Luo@amd.com"><font color="#2B579A"><span style="background-color:#E1DFDD;">@Luo,
Zhigang</span></font></a>,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">event_interrupt_poison_consumption_v11 was duplicated from v9 generation. However, the hardware/firmware takes completely different approach to handle poison consumption in gfx11.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">At this stage, let’s just initialize block to AMDGPU_RAS_BLOCK__GFX for all the IQR sources (i.e., gfx 11 poison consumption notification was centralized to RLC). I believe we still need a few
series to correct the v11 implementation.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">With above addressed, the series is</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Regards,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Hawking</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-----Original Message-----</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">From: Luo, Zhigang <<a href="mailto:Zhigang.Luo@amd.com"><font color="#0563C1"><u>Zhigang.Luo@amd.com</u></font></a>> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Sent: Thursday, January 25, 2024 07:22</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">To: <a href="mailto:amd-gfx@lists.freedesktop.org"><font color="#0563C1"><u>amd-gfx@lists.freedesktop.org</u></font></a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Cc: Zhang, Hawking <<a href="mailto:Hawking.Zhang@amd.com"><font color="#0563C1"><u>Hawking.Zhang@amd.com</u></font></a>>; Skvortsov, Victor <<a href="mailto:Victor.Skvortsov@amd.com"><font color="#0563C1"><u>Victor.Skvortsov@amd.com</u></font></a>>;
Saye, Sashank <<a href="mailto:Sashank.Saye@amd.com"><font color="#0563C1"><u>Sashank.Saye@amd.com</u></font></a>>; Chai, Thomas <<a href="mailto:YiPeng.Chai@amd.com"><font color="#0563C1"><u>YiPeng.Chai@amd.com</u></font></a>></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Subject: [PATCH 1/3] drm/amdgpu: Support passing poison consumption ras block to SRIOV</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">From: YiPeng Chai <<a href="mailto:YiPeng.Chai@amd.com"><font color="#0563C1"><u>YiPeng.Chai@amd.com</u></font></a>></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Support passing poison consumption ras blocks to SRIOV.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Signed-off-by: YiPeng Chai <<a href="mailto:YiPeng.Chai@amd.com"><font color="#0563C1"><u>YiPeng.Chai@amd.com</u></font></a>></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">---</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 5 ++--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 5 ++--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 3 ++-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 ++-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c | 2 +-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 3 ++-</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 23 +++++++++++++++----</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> .../gpu/drm/amd/amdkfd/kfd_int_process_v10.c | 7 ++++-- .../gpu/drm/amd/amdkfd/kfd_int_process_v11.c | 7 ++++--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> .../gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 7 ++++--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> 13 files changed, 49 insertions(+), 22 deletions(-)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 77e263660288..dfb93664e866 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -732,9 +732,10 @@ void amdgpu_amdkfd_debug_mem_fence(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> amdgpu_device_flush_hdp(adev, NULL);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-void amdgpu_amdkfd_ras_poison_consumption_handler(struct amdgpu_device *adev, bool reset)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+void amdgpu_amdkfd_ras_poison_consumption_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block, bool reset)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_umc_poison_handler(adev, reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_umc_poison_handler(adev, block, reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int amdgpu_amdkfd_send_close_event_drain_irq(struct amdgpu_device *adev, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 584a0cea5572..50d3e0149032 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -334,7 +334,7 @@ void amdgpu_amdkfd_debug_mem_fence(struct amdgpu_device *adev); int amdgpu_amdkfd_get_tile_config(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct tile_config *config);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> void amdgpu_amdkfd_ras_poison_consumption_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- bool reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block, bool reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> bool amdgpu_amdkfd_bo_mapped_to_dev(struct amdgpu_device *adev, struct kgd_mem *mem); void amdgpu_amdkfd_block_mmu_notifications(void *p); int amdgpu_amdkfd_criu_resume(void *p); diff --git
a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index ebcd1cb60052..79bf6bd428a5 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -2041,7 +2041,7 @@ static void amdgpu_ras_interrupt_poison_consumption_handler(struct ras_manager *</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_umc_poison_handler(adev, false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_umc_poison_handler(adev, obj->head.block, false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (block_obj->hw_ops && block_obj->hw_ops->handle_poison_consumption)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> poison_stat = block_obj->hw_ops->handle_poison_consumption(adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index a6cdb69897f2..20436f81856a 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -246,7 +246,8 @@ int amdgpu_umc_bad_page_polling_timeout(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> return 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-int amdgpu_umc_poison_handler(struct amdgpu_device *adev, bool reset)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int amdgpu_umc_poison_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block, bool reset)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int ret = AMDGPU_RAS_SUCCESS;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -297,7 +298,7 @@ int amdgpu_umc_poison_handler(struct amdgpu_device *adev, bool reset)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (adev->virt.ops && adev->virt.ops->ras_poison_handler)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- adev->virt.ops->ras_poison_handler(adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ adev->virt.ops->ras_poison_handler(adev, block);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> else</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "No ras_poison_handler interface in SRIOV!\n"); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 83199296ed10..26d2ae498daf 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -102,7 +102,8 @@ struct amdgpu_umc {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int amdgpu_umc_ras_sw_init(struct amdgpu_device *adev); int amdgpu_umc_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block); -int amdgpu_umc_poison_handler(struct amdgpu_device
*adev, bool reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+int amdgpu_umc_poison_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block, bool reset);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int amdgpu_umc_process_ecc_irq(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct amdgpu_irq_src *source,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct amdgpu_iv_entry *entry);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index f4963330c772..f300d4a4457d 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -1189,7 +1189,7 @@ int amdgpu_vcn_process_poison_irq(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> amdgpu_ras_interrupt_dispatch(adev, &ih_data);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (adev->virt.ops && adev->virt.ops->ras_poison_handler)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- adev->virt.ops->ras_poison_handler(adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ adev->virt.ops->ras_poison_handler(adev, ras_if->block);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> else</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "No ras_poison_handler interface in SRIOV for VCN!\n"); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 1b49c007ff62..fa7be5f277b9 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -88,7 +88,8 @@ struct amdgpu_virt_ops {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int (*wait_reset)(struct amdgpu_device *adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> void (*trans_msg)(struct amdgpu_device *adev, enum idh_request req,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> u32 data1, u32 data2, u32 data3);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- void (*ras_poison_handler)(struct amdgpu_device *adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ void (*ras_poison_handler)(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> };</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> /*</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 26d6286d86c9..9e7ce1e6bc06 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -69,7 +69,7 @@ static int gfx_v11_0_3_rlc_gc_fed_irq(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> amdgpu_ras_interrupt_dispatch(adev, &ih_data);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (adev->virt.ops && adev->virt.ops->ras_poison_handler)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- adev->virt.ops->ras_poison_handler(adev);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ adev->virt.ops->ras_poison_handler(adev, ras_if->block);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> else</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "No ras_poison_handler interface in SRIOV for %s!\n", ras_if->name); diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 63725b2ebc03..a2bd2c3b1ef9 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -404,7 +404,8 @@ static int xgpu_ai_request_init_data(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> return xgpu_ai_send_access_requests(adev, IDH_REQ_GPU_INIT_DATA); }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-static void xgpu_ai_ras_poison_handler(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+static void xgpu_ai_ras_poison_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> xgpu_ai_send_access_requests(adev, IDH_RAS_POISON); } diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 6a68ee946f1c..d0a018da3c7a 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -152,14 +152,14 @@ static void xgpu_nv_mailbox_trans_msg (struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> xgpu_nv_mailbox_set_valid(adev, false); }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-static int xgpu_nv_send_access_requests(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- enum idh_request req)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+static int xgpu_nv_send_access_requests_with_param(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum idh_request req, u32 data1, u32 data2, u32 data3)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int r, retry = 1;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> enum idh_event event = -1;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> send_request:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- xgpu_nv_mailbox_trans_msg(adev, req, 0, 0, 0);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ xgpu_nv_mailbox_trans_msg(adev, req, data1, data2, data3);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> switch (req) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case IDH_REQ_GPU_INIT_ACCESS:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -206,6 +206,13 @@ static int xgpu_nv_send_access_requests(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> return 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+static int xgpu_nv_send_access_requests(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum idh_request req)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+{</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ return xgpu_nv_send_access_requests_with_param(adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ req, 0, 0, 0);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+}</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> static int xgpu_nv_request_reset(struct amdgpu_device *adev) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int ret, i = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -424,9 +431,15 @@ void xgpu_nv_mailbox_put_irq(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> amdgpu_irq_put(adev, &adev->virt.rcv_irq, 0); }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-static void xgpu_nv_ras_poison_handler(struct amdgpu_device *adev)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+static void xgpu_nv_ras_poison_handler(struct amdgpu_device *adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- xgpu_nv_send_access_requests(adev, IDH_RAS_POISON);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ if (amdgpu_ip_version(adev, UMC_HWIP, 0) < IP_VERSION(12, 0, 0)) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ xgpu_nv_send_access_requests(adev, IDH_RAS_POISON);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ xgpu_nv_send_access_requests_with_param(adev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ IDH_RAS_POISON, block, 0, 0);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> const struct amdgpu_virt_ops xgpu_nv_virt_ops = { diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index a7697ec8188e..9a06c6fb6605 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -132,6 +132,7 @@ enum SQ_INTERRUPT_ERROR_TYPE { static void event_interrupt_poison_consumption(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> uint16_t pasid, uint16_t client_id) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int old_poison, ret = -EINVAL;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct kfd_process *p = kfd_lookup_process_by_pasid(pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -151,12 +152,14 @@ static void event_interrupt_poison_consumption(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SE3SH:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_UTCL2:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> ret = kfd_dqm_evict_pasid(dev->dqm, pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__GFX;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA0:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA1:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA2:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA3:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA4:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__SDMA;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> default:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -171,12 +174,12 @@ static void event_interrupt_poison_consumption(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(dev->adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "RAS poison consumption, unmap queue flow succeeded: client id %d\n",</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> client_id);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(dev->adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "RAS poison consumption, fall back to gpu reset flow: client id %d\n",</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> client_id);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 2a65792fd116..c6d28e37ed46 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -191,6 +191,7 @@ static void print_sq_intr_info_error(uint32_t context_id0, uint32_t context_id1) static void event_interrupt_poison_consumption_v11(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> uint16_t pasid, uint16_t source_id) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int ret = -EINVAL;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct kfd_process *p = kfd_lookup_process_by_pasid(pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -210,8 +211,10 @@ static void event_interrupt_poison_consumption_v11(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_INTSRC_SQ_INTERRUPT_MSG:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (dev->dqm->ops.reset_queues)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> ret = dev->dqm->ops.reset_queues(dev->dqm, pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__GFX;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC21_INTSRC_SDMA_ECC:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__SDMA;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> default:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -221,9 +224,9 @@ static void event_interrupt_poison_consumption_v11(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> /* resetting queue passes, do page retirement without gpu reset</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> resetting queue fails, fallback to gpu reset solution */</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> if (!ret)</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> else</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> static bool event_interrupt_isr_v11(struct kfd_node *dev, diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">index 27cdaea40501..91dd5e045b51 100644</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -143,6 +143,7 @@ enum SQ_INTERRUPT_ERROR_TYPE { static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> uint16_t pasid, uint16_t client_id) {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ enum amdgpu_ras_block block = 0;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> int old_poison, ret = -EINVAL;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> struct kfd_process *p = kfd_lookup_process_by_pasid(pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -162,12 +163,14 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SE3SH:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_UTCL2:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> ret = kfd_dqm_evict_pasid(dev->dqm, pasid);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__GFX;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA0:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA1:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA2:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA3:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> case SOC15_IH_CLIENTID_SDMA4:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ block = AMDGPU_RAS_BLOCK__SDMA;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> default:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> break;</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">@@ -182,12 +185,12 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(dev->adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "RAS poison consumption, unmap queue flow succeeded: client id %d\n",</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> client_id);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+false);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> } else {</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> dev_warn(dev->adev->dev,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> "RAS poison consumption, fall back to gpu reset flow: client id %d\n",</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> client_id);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">- amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">+ amdgpu_amdkfd_ras_poison_consumption_handler(dev->adev, block, true);</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> }</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">2.25.1</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
</span></font>
</body>
</html>