aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40e/i40e_main.c
diff options
context:
space:
mode:
authorMitch Williams <mitch.a.williams@intel.com>2014-10-16 23:14:53 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-11-03 07:35:35 -0500
commit2089ad03b200fca3b2193a2f6f9779c38f62f9d6 (patch)
treee141bb7b640add8b698d634ec9aedd449f98b041 /drivers/net/ethernet/intel/i40e/i40e_main.c
parent7a28d8857ddc3986b62ae1a41dc551453718b4b3 (diff)
i40e: properly parse MDET registers
Fix a few problems with our parsing of the MDET registers: * Queue IDs are longer than 8 bits * Queue IDs are absolute for the device and the base queue must be subtracted out. * VF IDs are longer than 8 bits * Use the MASK define to mask the event value, instead of the SHIFT define. Change-ID: I3dc7237f480c02e1192a2a8ea782f8a02ab2a8b7 Reported-by: Marc Neustadter <marc.neustadter@intel.com> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Patrick Lu <patrick.lu@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/i40e/i40e_main.c')
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 1b0c437dae21..1a98e2384b3b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6174,12 +6174,13 @@ static void i40e_handle_mdd_event(struct i40e_pf *pf)
6174 if (reg & I40E_GL_MDET_TX_VALID_MASK) { 6174 if (reg & I40E_GL_MDET_TX_VALID_MASK) {
6175 u8 pf_num = (reg & I40E_GL_MDET_TX_PF_NUM_MASK) >> 6175 u8 pf_num = (reg & I40E_GL_MDET_TX_PF_NUM_MASK) >>
6176 I40E_GL_MDET_TX_PF_NUM_SHIFT; 6176 I40E_GL_MDET_TX_PF_NUM_SHIFT;
6177 u8 vf_num = (reg & I40E_GL_MDET_TX_VF_NUM_MASK) >> 6177 u16 vf_num = (reg & I40E_GL_MDET_TX_VF_NUM_MASK) >>
6178 I40E_GL_MDET_TX_VF_NUM_SHIFT; 6178 I40E_GL_MDET_TX_VF_NUM_SHIFT;
6179 u8 event = (reg & I40E_GL_MDET_TX_EVENT_MASK) >> 6179 u8 event = (reg & I40E_GL_MDET_TX_EVENT_MASK) >>
6180 I40E_GL_MDET_TX_EVENT_SHIFT; 6180 I40E_GL_MDET_TX_EVENT_SHIFT;
6181 u8 queue = (reg & I40E_GL_MDET_TX_QUEUE_MASK) >> 6181 u16 queue = ((reg & I40E_GL_MDET_TX_QUEUE_MASK) >>
6182 I40E_GL_MDET_TX_QUEUE_SHIFT; 6182 I40E_GL_MDET_TX_QUEUE_SHIFT) -
6183 pf->hw.func_caps.base_queue;
6183 if (netif_msg_tx_err(pf)) 6184 if (netif_msg_tx_err(pf))
6184 dev_info(&pf->pdev->dev, "Malicious Driver Detection event 0x%02x on TX queue %d pf number 0x%02x vf number 0x%02x\n", 6185 dev_info(&pf->pdev->dev, "Malicious Driver Detection event 0x%02x on TX queue %d pf number 0x%02x vf number 0x%02x\n",
6185 event, queue, pf_num, vf_num); 6186 event, queue, pf_num, vf_num);
@@ -6192,8 +6193,9 @@ static void i40e_handle_mdd_event(struct i40e_pf *pf)
6192 I40E_GL_MDET_RX_FUNCTION_SHIFT; 6193 I40E_GL_MDET_RX_FUNCTION_SHIFT;
6193 u8 event = (reg & I40E_GL_MDET_RX_EVENT_MASK) >> 6194 u8 event = (reg & I40E_GL_MDET_RX_EVENT_MASK) >>
6194 I40E_GL_MDET_RX_EVENT_SHIFT; 6195 I40E_GL_MDET_RX_EVENT_SHIFT;
6195 u8 queue = (reg & I40E_GL_MDET_RX_QUEUE_MASK) >> 6196 u16 queue = ((reg & I40E_GL_MDET_RX_QUEUE_MASK) >>
6196 I40E_GL_MDET_RX_QUEUE_SHIFT; 6197 I40E_GL_MDET_RX_QUEUE_SHIFT) -
6198 pf->hw.func_caps.base_queue;
6197 if (netif_msg_rx_err(pf)) 6199 if (netif_msg_rx_err(pf))
6198 dev_info(&pf->pdev->dev, "Malicious Driver Detection event 0x%02x on RX queue %d of function 0x%02x\n", 6200 dev_info(&pf->pdev->dev, "Malicious Driver Detection event 0x%02x on RX queue %d of function 0x%02x\n",
6199 event, queue, func); 6201 event, queue, func);