forked from Minki/linux
ixgbevf: cleanup redundant mailbox read failure check
Since we are already checking for read failure in check_link we don't need to do it here. Instead just make sure the watchdog task gets scheduled, if we are up, and it can be done there. This will better follow igbvf method of handling a mailbox event and message timeout. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fa07f10d9d
commit
c7bb417dbb
@ -756,37 +756,12 @@ static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector)
|
||||
static irqreturn_t ixgbevf_msix_other(int irq, void *data)
|
||||
{
|
||||
struct ixgbevf_adapter *adapter = data;
|
||||
struct pci_dev *pdev = adapter->pdev;
|
||||
struct ixgbe_hw *hw = &adapter->hw;
|
||||
u32 msg;
|
||||
bool got_ack = false;
|
||||
|
||||
hw->mac.get_link_status = 1;
|
||||
if (!hw->mbx.ops.check_for_ack(hw))
|
||||
got_ack = true;
|
||||
|
||||
if (!hw->mbx.ops.check_for_msg(hw)) {
|
||||
hw->mbx.ops.read(hw, &msg, 1);
|
||||
|
||||
if ((msg & IXGBE_MBVFICR_VFREQ_MASK) == IXGBE_PF_CONTROL_MSG) {
|
||||
mod_timer(&adapter->watchdog_timer,
|
||||
round_jiffies(jiffies + 1));
|
||||
adapter->link_up = false;
|
||||
}
|
||||
|
||||
if (msg & IXGBE_VT_MSGTYPE_NACK)
|
||||
dev_info(&pdev->dev,
|
||||
"Last Request of type %2.2x to PF Nacked\n",
|
||||
msg & 0xFF);
|
||||
hw->mbx.v2p_mailbox |= IXGBE_VFMAILBOX_PFSTS;
|
||||
}
|
||||
|
||||
/* checking for the ack clears the PFACK bit. Place
|
||||
* it back in the v2p_mailbox cache so that anyone
|
||||
* polling for an ack will not miss it
|
||||
*/
|
||||
if (got_ack)
|
||||
hw->mbx.v2p_mailbox |= IXGBE_VFMAILBOX_PFACK;
|
||||
if (!test_bit(__IXGBEVF_DOWN, &adapter->state))
|
||||
mod_timer(&adapter->watchdog_timer, jiffies);
|
||||
|
||||
IXGBE_WRITE_REG(hw, IXGBE_VTEIMS, adapter->eims_other);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user