Commit 52424f9
i40e: Fix VF hang when reset is triggered on another VF
When a reset was triggered on one VF with i40e_reset_vf
global PF state __I40E_VF_DISABLE was set on a PF until
the reset finished. If immediately after triggering reset
on one VF there is a request to reset on another
it will cause a hang on VF side because VF will be notified
of incoming reset but the reset will never happen because
of this global state, we will get such error message:
[ +4.890195] iavf 0000:86:02.1: Never saw reset
and VF will hang waiting for the reset to be triggered.
Fix this by introducing new VF state I40E_VF_STATE_RESETTING
that will be set on a VF if it is currently resetting instead of
the global __I40E_VF_DISABLE PF state.
Fixes: 3ba9bcb ("i40e: add locking around VF reset")
Signed-off-by: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20221024100526.1874914-2-jacob.e.keller@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>1 parent 54b5af5 commit 52424f9
File tree
2 files changed
+33
-11
lines changed- drivers/net/ethernet/intel/i40e
2 files changed
+33
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1536 | 1536 | | |
1537 | 1537 | | |
1538 | 1538 | | |
1539 | | - | |
1540 | | - | |
1541 | | - | |
1542 | | - | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
1543 | 1545 | | |
1544 | 1546 | | |
1545 | 1547 | | |
| |||
1576 | 1578 | | |
1577 | 1579 | | |
1578 | 1580 | | |
1579 | | - | |
| 1581 | + | |
1580 | 1582 | | |
1581 | 1583 | | |
1582 | 1584 | | |
| |||
1609 | 1611 | | |
1610 | 1612 | | |
1611 | 1613 | | |
1612 | | - | |
1613 | | - | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
1614 | 1620 | | |
1615 | 1621 | | |
1616 | 1622 | | |
| |||
1626 | 1632 | | |
1627 | 1633 | | |
1628 | 1634 | | |
1629 | | - | |
1630 | | - | |
1631 | | - | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
1632 | 1640 | | |
1633 | 1641 | | |
1634 | 1642 | | |
| |||
1656 | 1664 | | |
1657 | 1665 | | |
1658 | 1666 | | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
1659 | 1671 | | |
1660 | 1672 | | |
1661 | 1673 | | |
| |||
1667 | 1679 | | |
1668 | 1680 | | |
1669 | 1681 | | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
1670 | 1686 | | |
1671 | 1687 | | |
1672 | 1688 | | |
| |||
1676 | 1692 | | |
1677 | 1693 | | |
1678 | 1694 | | |
1679 | | - | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
1680 | 1700 | | |
| 1701 | + | |
1681 | 1702 | | |
1682 | 1703 | | |
1683 | 1704 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
0 commit comments