Patch "qed: Don't use attention PTT for configuring BW" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
qed: Don't use attention PTT for configuring BW
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
qed-don-t-use-attention-ptt-for-configuring-bw.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Oct 19 15:04:02 CEST 2017
From: "Mintz, Yuval" <[email protected]>
Date: Mon, 27 Feb 2017 11:06:33 +0200
Subject: qed: Don't use attention PTT for configuring BW
From: "Mintz, Yuval" <[email protected]>
[ Upstream commit 6f437d431930ff86e4a971d29321951faadb97c7 ]
Commit 653d2ffd6405 ("qed*: Fix link indication race") introduced another race - one of the inner functions called from the link-change flow is explicitly using the slowpath context dedicated PTT instead of gaining that PTT from the caller. Since this flow can now be called from a different context as well, we're in risk of the PTT breaking.
--- drivers/net/ethernet/qlogic/qed/qed.h | 4 +++- drivers/net/ethernet/qlogic/qed/qed_dev.c | 6 +++--- drivers/net/ethernet/qlogic/qed/qed_mcp.c | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-)
drivers/net/ethernet/qlogic/qed/qed.h +3 -1
@@ -642,7 +642,9 @@ static inline u8 qed_concrete_to_sw_fid(#define OOO_LB_TC 9int qed_configure_vport_wfq (struct qed_dev *cdev,u16 vp_id,u32 rate); -void qed_configure_vp_wfq_on_link_change (struct qed_dev *cdev,u32 min_pf_rate); +void qed_configure_vp_wfq_on_link_change (struct qed_dev *cdev, +struct qed_ptt *p_ptt, +u32 min_pf_rate);void qed_clean_wfq_db (struct qed_hwfn *p_hwfn,struct qed_ptt *p_ptt);#define QED_LEADING_HWFN (dev) (&dev->hwfns[0])
drivers/net/ethernet/qlogic/qed/qed_dev.c +3 -3
@@ -2732,7 +2732,8 @@ int qed_configure_vport_wfq(struct qed_d }/* API to configure WFQ from mcp link change */ -void qed_configure_vp_wfq_on_link_change (struct qed_dev *cdev,u32 min_pf_rate) +void qed_configure_vp_wfq_on_link_change (struct qed_dev *cdev, +struct qed_ptt *p_ptt,u32 min_pf_rate) {int i;
@@ -2746,8 +2747,7 @@ void qed_configure_vp_wfq_on_link_changefor_each_hwfn (cdev, i) {struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; -__qed_configure_vp_wfq_on_link_change (p_hwfn, - p_hwfn->p_dpc_ptt, +__qed_configure_vp_wfq_on_link_change (p_hwfn, p_ptt, min_pf_rate); } }
drivers/net/ethernet/qlogic/qed/qed_mcp.c +2 -1
@@ -628,7 +628,8 @@ static void qed_mcp_handle_link_change(s/* Min bandwidth configuration */ __qed_configure_pf_min_bandwidth (p_hwfn, p_ptt, p_link, min_bw); -qed_configure_vp_wfq_on_link_change (p_hwfn->cdev, p_link->min_pf_rate); +qed_configure_vp_wfq_on_link_change (p_hwfn->cdev, p_ptt, + p_link->min_pf_rate); p_link->an = !!(status &LINK_STATUS_AUTO_NEGOTIATE_ENABLED ); p_link->an_complete = !!(status &
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/qede-prevent-index-problems-in-loopback-test.patch queue-4.9/qed-reserve-doorbell-bar-space-for-present-cpus.patch queue-4.9/qed-read-queue-state-before-releasing-buffer.patch queue-4.9/qed-don-t-use-attention-ptt-for-configuring-bw.patch