| From foo@baz Sun Aug 26 09:13:00 CEST 2018 |
| From: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com> |
| Date: Wed, 18 Jul 2018 22:50:03 -0700 |
| Subject: qed: Fix possible race for the link state value. |
| |
| From: Sudarsana Reddy Kalluru <sudarsana.kalluru@cavium.com> |
| |
| [ Upstream commit 58874c7b246109d8efb2b0099d1aa296d6bfc3fa ] |
| |
| There's a possible race where driver can read link status in mid-transition |
| and see that virtual-link is up yet speed is 0. Since in this |
| mid-transition we're guaranteed to see a mailbox from MFW soon, we can |
| afford to treat this as link down. |
| |
| Fixes: cc875c2e ("qed: Add link support") |
| Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com> |
| Signed-off-by: Ariel Elior <ariel.elior@cavium.com> |
| Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/qlogic/qed/qed_mcp.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c |
| +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c |
| @@ -1182,6 +1182,7 @@ static void qed_mcp_handle_link_change(s |
| break; |
| default: |
| p_link->speed = 0; |
| + p_link->link_up = 0; |
| } |
| |
| if (p_link->link_up && p_link->speed) |