At the moment, if the driver sets an incorrect Tx descriptor, the HW
will raise a MDD event reported as:
ice_interrupt_handler(): OICR: MDD event

Add some debug info for this case.

Signed-off-by: David Marchand <david.march...@redhat.com>
---
Changes since v2:
- dropped VF index from logs,

---
 drivers/net/ice/ice_ethdev.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 87385d2649..16a6caf555 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -1455,6 +1455,20 @@ ice_interrupt_handler(void *param)
                                    "%d by TCLAN on TX queue %d PF# %d",
                                    event, queue, pf_num);
                }
+
+               reg = ICE_READ_REG(hw, GL_MDET_TX_TDPU);
+               if (reg & GL_MDET_TX_TDPU_VALID_M) {
+                       pf_num = (reg & GL_MDET_TX_TDPU_PF_NUM_M) >>
+                                GL_MDET_TX_TDPU_PF_NUM_S;
+                       event = (reg & GL_MDET_TX_TDPU_MAL_TYPE_M) >>
+                               GL_MDET_TX_TDPU_MAL_TYPE_S;
+                       queue = (reg & GL_MDET_TX_TDPU_QNUM_M) >>
+                               GL_MDET_TX_TDPU_QNUM_S;
+
+                       PMD_DRV_LOG(WARNING, "Malicious Driver Detection event "
+                                   "%d by TDPU on TX queue %d PF# %d",
+                                   event, queue, pf_num);
+               }
        }
 done:
        /* Enable interrupt */
-- 
2.44.0

Reply via email to