From 8a416c1a47b9e43491e9e9e32cdf9d68e230c4b0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 1 May 2018 16:47:50 -0700 Subject: [PATCH] drop 4.16 patch --- ...ate-barriers-on-weakly-ordered-archs.patch | 64 ------------------- queue-4.16/series | 1 - 2 files changed, 65 deletions(-) delete mode 100644 queue-4.16/net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch diff --git a/queue-4.16/net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch b/queue-4.16/net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch deleted file mode 100644 index 95466686635..00000000000 --- a/queue-4.16/net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch +++ /dev/null @@ -1,64 +0,0 @@ -From foo@baz Tue May 1 14:59:17 PDT 2018 -From: Sinan Kaya -Date: Sun, 25 Mar 2018 10:39:19 -0400 -Subject: net: qlge: Eliminate duplicate barriers on weakly-ordered archs - -From: Sinan Kaya - -[ Upstream commit e42d8cee343a545ac2d9557a3b28708bbca2bd31 ] - -Code includes wmb() followed by writel(). writel() already has a barrier on -some architectures like arm64. - -This ends up CPU observing two barriers back to back before executing the -register write. - -Create a new wrapper function with relaxed write operator. Use the new -wrapper when a write is following a wmb(). - -Signed-off-by: Sinan Kaya -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/net/ethernet/qlogic/qlge/qlge.h | 16 ++++++++++++++++ - drivers/net/ethernet/qlogic/qlge/qlge_main.c | 3 ++- - 2 files changed, 18 insertions(+), 1 deletion(-) - ---- a/drivers/net/ethernet/qlogic/qlge/qlge.h -+++ b/drivers/net/ethernet/qlogic/qlge/qlge.h -@@ -2185,6 +2185,22 @@ static inline void ql_write_db_reg(u32 v - } - - /* -+ * Doorbell Registers: -+ * Doorbell registers are virtual registers in the PCI memory space. -+ * The space is allocated by the chip during PCI initialization. The -+ * device driver finds the doorbell address in BAR 3 in PCI config space. -+ * The registers are used to control outbound and inbound queues. For -+ * example, the producer index for an outbound queue. Each queue uses -+ * 1 4k chunk of memory. The lower half of the space is for outbound -+ * queues. The upper half is for inbound queues. -+ * Caller has to guarantee ordering. -+ */ -+static inline void ql_write_db_reg_relaxed(u32 val, void __iomem *addr) -+{ -+ writel_relaxed(val, addr); -+} -+ -+/* - * Shadow Registers: - * Outbound queues have a consumer index that is maintained by the chip. - * Inbound queues have a producer index that is maintained by the chip. ---- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c -+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c -@@ -2700,7 +2700,8 @@ static netdev_tx_t qlge_send(struct sk_b - tx_ring->prod_idx = 0; - wmb(); - -- ql_write_db_reg(tx_ring->prod_idx, tx_ring->prod_idx_db_reg); -+ ql_write_db_reg_relaxed(tx_ring->prod_idx, tx_ring->prod_idx_db_reg); -+ mmiowb(); - netif_printk(qdev, tx_queued, KERN_DEBUG, qdev->ndev, - "tx queued, slot %d, len %d\n", - tx_ring->prod_idx, skb->len); diff --git a/queue-4.16/series b/queue-4.16/series index e4fed7b53f9..55593780b76 100644 --- a/queue-4.16/series +++ b/queue-4.16/series @@ -93,7 +93,6 @@ selftests-print-the-test-we-re-running-to-dev-kmsg.patch i40e-hold-the-rtnl-lock-while-changing-interrupt-schemes.patch net-mlx5-protect-from-command-bit-overflow.patch watchdog-davinci_wdt-fix-error-handling-in-davinci_wdt_probe.patch -net-qlge-eliminate-duplicate-barriers-on-weakly-ordered-archs.patch net-hns3-fix-for-the-wrong-shift-problem-in-hns3_set_txbd_baseinfo.patch net-hns3-fix-for-returning-wrong-value-problem-in-hns3_get_rss_indir_size.patch net-hns3-fix-for-returning-wrong-value-problem-in-hns3_get_rss_key_size.patch -- 2.47.3