All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Allen Hubbe <allen.hubbe@amd.com>,
	Shannon Nelson <shannon.nelson@amd.com>,
	Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 031/114] ionic: missed doorbell workaround
Date: Mon, 13 Feb 2023 15:47:46 +0100	[thread overview]
Message-ID: <20230213144743.767070253@linuxfoundation.org> (raw)
In-Reply-To: <20230213144742.219399167@linuxfoundation.org>

From: Allen Hubbe <allen.hubbe@amd.com>

[ Upstream commit b69585bfceceeffda940906cabfdaee4b47bde92 ]

In one version of the HW there is a remote possibility that it
will miss the doorbell ring.  This adds a bit of protection to
be sure we don't stall a queue from a missed doorbell.

Fixes: 0f3154e6bcb3 ("ionic: Add Tx and Rx handling")
Signed-off-by: Allen Hubbe <allen.hubbe@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 .../net/ethernet/pensando/ionic/ionic_dev.c   |  9 +-
 .../net/ethernet/pensando/ionic/ionic_dev.h   | 12 +++
 .../net/ethernet/pensando/ionic/ionic_lif.c   | 41 ++++++++-
 .../net/ethernet/pensando/ionic/ionic_lif.h   |  2 +
 .../net/ethernet/pensando/ionic/ionic_main.c  | 29 +++++++
 .../net/ethernet/pensando/ionic/ionic_txrx.c  | 87 ++++++++++++++++++-
 6 files changed, 176 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.c b/drivers/net/ethernet/pensando/ionic/ionic_dev.c
index 9d0514cfeb5c2..344a3924627d4 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_dev.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.c
@@ -694,9 +694,16 @@ void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb,
 		q->lif->index, q->name, q->hw_type, q->hw_index,
 		q->head_idx, ring_doorbell);
 
-	if (ring_doorbell)
+	if (ring_doorbell) {
 		ionic_dbell_ring(lif->kern_dbpage, q->hw_type,
 				 q->dbval | q->head_idx);
+
+		q->dbell_jiffies = jiffies;
+
+		if (q_to_qcq(q)->napi_qcq)
+			mod_timer(&q_to_qcq(q)->napi_qcq->napi_deadline,
+				  jiffies + IONIC_NAPI_DEADLINE);
+	}
 }
 
 static bool ionic_q_is_posted(struct ionic_queue *q, unsigned int pos)
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.h b/drivers/net/ethernet/pensando/ionic/ionic_dev.h
index 563c302eb033d..ad8a2a4453b76 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_dev.h
+++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.h
@@ -25,6 +25,12 @@
 #define IONIC_DEV_INFO_REG_COUNT	32
 #define IONIC_DEV_CMD_REG_COUNT		32
 
+#define IONIC_NAPI_DEADLINE		(HZ / 200)	/* 5ms */
+#define IONIC_ADMIN_DOORBELL_DEADLINE	(HZ / 2)	/* 500ms */
+#define IONIC_TX_DOORBELL_DEADLINE	(HZ / 100)	/* 10ms */
+#define IONIC_RX_MIN_DOORBELL_DEADLINE	(HZ / 100)	/* 10ms */
+#define IONIC_RX_MAX_DOORBELL_DEADLINE	(HZ * 5)	/* 5s */
+
 struct ionic_dev_bar {
 	void __iomem *vaddr;
 	phys_addr_t bus_addr;
@@ -214,6 +220,8 @@ struct ionic_queue {
 	struct ionic_lif *lif;
 	struct ionic_desc_info *info;
 	u64 dbval;
+	unsigned long dbell_deadline;
+	unsigned long dbell_jiffies;
 	u16 head_idx;
 	u16 tail_idx;
 	unsigned int index;
@@ -358,4 +366,8 @@ void ionic_q_service(struct ionic_queue *q, struct ionic_cq_info *cq_info,
 int ionic_heartbeat_check(struct ionic *ionic);
 bool ionic_is_fw_running(struct ionic_dev *idev);
 
+bool ionic_adminq_poke_doorbell(struct ionic_queue *q);
+bool ionic_txq_poke_doorbell(struct ionic_queue *q);
+bool ionic_rxq_poke_doorbell(struct ionic_queue *q);
+
 #endif /* _IONIC_DEV_H_ */
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
index 147e23435c3d1..159bfcc76498c 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
@@ -16,6 +16,7 @@
 
 #include "ionic.h"
 #include "ionic_bus.h"
+#include "ionic_dev.h"
 #include "ionic_lif.h"
 #include "ionic_txrx.h"
 #include "ionic_ethtool.h"
@@ -200,6 +201,13 @@ void ionic_link_status_check_request(struct ionic_lif *lif, bool can_sleep)
 	}
 }
 
+static void ionic_napi_deadline(struct timer_list *timer)
+{
+	struct ionic_qcq *qcq = container_of(timer, struct ionic_qcq, napi_deadline);
+
+	napi_schedule(&qcq->napi);
+}
+
 static irqreturn_t ionic_isr(int irq, void *data)
 {
 	struct napi_struct *napi = data;
@@ -325,6 +333,7 @@ static int ionic_qcq_disable(struct ionic_lif *lif, struct ionic_qcq *qcq, int f
 		synchronize_irq(qcq->intr.vector);
 		irq_set_affinity_hint(qcq->intr.vector, NULL);
 		napi_disable(&qcq->napi);
+		del_timer_sync(&qcq->napi_deadline);
 	}
 
 	/* If there was a previous fw communcation error, don't bother with
@@ -460,6 +469,7 @@ static void ionic_link_qcq_interrupts(struct ionic_qcq *src_qcq,
 
 	n_qcq->intr.vector = src_qcq->intr.vector;
 	n_qcq->intr.index = src_qcq->intr.index;
+	n_qcq->napi_qcq = src_qcq->napi_qcq;
 }
 
 static int ionic_alloc_qcq_interrupt(struct ionic_lif *lif, struct ionic_qcq *qcq)
@@ -782,8 +792,14 @@ static int ionic_lif_txq_init(struct ionic_lif *lif, struct ionic_qcq *qcq)
 	dev_dbg(dev, "txq->hw_type %d\n", q->hw_type);
 	dev_dbg(dev, "txq->hw_index %d\n", q->hw_index);
 
-	if (test_bit(IONIC_LIF_F_SPLIT_INTR, lif->state))
+	q->dbell_deadline = IONIC_TX_DOORBELL_DEADLINE;
+	q->dbell_jiffies = jiffies;
+
+	if (test_bit(IONIC_LIF_F_SPLIT_INTR, lif->state)) {
 		netif_napi_add(lif->netdev, &qcq->napi, ionic_tx_napi);
+		qcq->napi_qcq = qcq;
+		timer_setup(&qcq->napi_deadline, ionic_napi_deadline, 0);
+	}
 
 	qcq->flags |= IONIC_QCQ_F_INITED;
 
@@ -837,11 +853,17 @@ static int ionic_lif_rxq_init(struct ionic_lif *lif, struct ionic_qcq *qcq)
 	dev_dbg(dev, "rxq->hw_type %d\n", q->hw_type);
 	dev_dbg(dev, "rxq->hw_index %d\n", q->hw_index);
 
+	q->dbell_deadline = IONIC_RX_MIN_DOORBELL_DEADLINE;
+	q->dbell_jiffies = jiffies;
+
 	if (test_bit(IONIC_LIF_F_SPLIT_INTR, lif->state))
 		netif_napi_add(lif->netdev, &qcq->napi, ionic_rx_napi);
 	else
 		netif_napi_add(lif->netdev, &qcq->napi, ionic_txrx_napi);
 
+	qcq->napi_qcq = qcq;
+	timer_setup(&qcq->napi_deadline, ionic_napi_deadline, 0);
+
 	qcq->flags |= IONIC_QCQ_F_INITED;
 
 	return 0;
@@ -1159,6 +1181,7 @@ static int ionic_adminq_napi(struct napi_struct *napi, int budget)
 	struct ionic_dev *idev = &lif->ionic->idev;
 	unsigned long irqflags;
 	unsigned int flags = 0;
+	bool resched = false;
 	int rx_work = 0;
 	int tx_work = 0;
 	int n_work = 0;
@@ -1196,6 +1219,16 @@ static int ionic_adminq_napi(struct napi_struct *napi, int budget)
 		ionic_intr_credits(idev->intr_ctrl, intr->index, credits, flags);
 	}
 
+	if (!a_work && ionic_adminq_poke_doorbell(&lif->adminqcq->q))
+		resched = true;
+	if (lif->hwstamp_rxq && !rx_work && ionic_rxq_poke_doorbell(&lif->hwstamp_rxq->q))
+		resched = true;
+	if (lif->hwstamp_txq && !tx_work && ionic_txq_poke_doorbell(&lif->hwstamp_txq->q))
+		resched = true;
+	if (resched)
+		mod_timer(&lif->adminqcq->napi_deadline,
+			  jiffies + IONIC_NAPI_DEADLINE);
+
 	return work_done;
 }
 
@@ -3175,8 +3208,14 @@ static int ionic_lif_adminq_init(struct ionic_lif *lif)
 	dev_dbg(dev, "adminq->hw_type %d\n", q->hw_type);
 	dev_dbg(dev, "adminq->hw_index %d\n", q->hw_index);
 
+	q->dbell_deadline = IONIC_ADMIN_DOORBELL_DEADLINE;
+	q->dbell_jiffies = jiffies;
+
 	netif_napi_add(lif->netdev, &qcq->napi, ionic_adminq_napi);
 
+	qcq->napi_qcq = qcq;
+	timer_setup(&qcq->napi_deadline, ionic_napi_deadline, 0);
+
 	napi_enable(&qcq->napi);
 
 	if (qcq->flags & IONIC_QCQ_F_INTR)
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.h b/drivers/net/ethernet/pensando/ionic/ionic_lif.h
index a53984bf35448..734519895614f 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.h
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.h
@@ -74,8 +74,10 @@ struct ionic_qcq {
 	struct ionic_queue q;
 	struct ionic_cq cq;
 	struct ionic_intr_info intr;
+	struct timer_list napi_deadline;
 	struct napi_struct napi;
 	unsigned int flags;
+	struct ionic_qcq *napi_qcq;
 	struct dentry *dentry;
 };
 
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_main.c b/drivers/net/ethernet/pensando/ionic/ionic_main.c
index 5456c2b15d9bd..79272f5f380c6 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_main.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_main.c
@@ -289,6 +289,35 @@ static void ionic_adminq_cb(struct ionic_queue *q,
 	complete_all(&ctx->work);
 }
 
+bool ionic_adminq_poke_doorbell(struct ionic_queue *q)
+{
+	struct ionic_lif *lif = q->lif;
+	unsigned long now, then, dif;
+	unsigned long irqflags;
+
+	spin_lock_irqsave(&lif->adminq_lock, irqflags);
+
+	if (q->tail_idx == q->head_idx) {
+		spin_unlock_irqrestore(&lif->adminq_lock, irqflags);
+		return false;
+	}
+
+	now = READ_ONCE(jiffies);
+	then = q->dbell_jiffies;
+	dif = now - then;
+
+	if (dif > q->dbell_deadline) {
+		ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type,
+				 q->dbval | q->head_idx);
+
+		q->dbell_jiffies = now;
+	}
+
+	spin_unlock_irqrestore(&lif->adminq_lock, irqflags);
+
+	return true;
+}
+
 int ionic_adminq_post(struct ionic_lif *lif, struct ionic_admin_ctx *ctx)
 {
 	struct ionic_desc_info *desc_info;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_txrx.c b/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
index 7977de4d67b76..f8f5eb1307681 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
@@ -22,6 +22,67 @@ static inline void ionic_rxq_post(struct ionic_queue *q, bool ring_dbell,
 	ionic_q_post(q, ring_dbell, cb_func, cb_arg);
 }
 
+bool ionic_txq_poke_doorbell(struct ionic_queue *q)
+{
+	unsigned long now, then, dif;
+	struct netdev_queue *netdev_txq;
+	struct net_device *netdev;
+
+	netdev = q->lif->netdev;
+	netdev_txq = netdev_get_tx_queue(netdev, q->index);
+
+	HARD_TX_LOCK(netdev, netdev_txq, smp_processor_id());
+
+	if (q->tail_idx == q->head_idx) {
+		HARD_TX_UNLOCK(netdev, netdev_txq);
+		return false;
+	}
+
+	now = READ_ONCE(jiffies);
+	then = q->dbell_jiffies;
+	dif = now - then;
+
+	if (dif > q->dbell_deadline) {
+		ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type,
+				 q->dbval | q->head_idx);
+
+		q->dbell_jiffies = now;
+	}
+
+	HARD_TX_UNLOCK(netdev, netdev_txq);
+
+	return true;
+}
+
+bool ionic_rxq_poke_doorbell(struct ionic_queue *q)
+{
+	unsigned long now, then, dif;
+
+	/* no lock, called from rx napi or txrx napi, nothing else can fill */
+
+	if (q->tail_idx == q->head_idx)
+		return false;
+
+	now = READ_ONCE(jiffies);
+	then = q->dbell_jiffies;
+	dif = now - then;
+
+	if (dif > q->dbell_deadline) {
+		ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type,
+				 q->dbval | q->head_idx);
+
+		q->dbell_jiffies = now;
+
+		dif = 2 * q->dbell_deadline;
+		if (dif > IONIC_RX_MAX_DOORBELL_DEADLINE)
+			dif = IONIC_RX_MAX_DOORBELL_DEADLINE;
+
+		q->dbell_deadline = dif;
+	}
+
+	return true;
+}
+
 static inline struct netdev_queue *q_to_ndq(struct ionic_queue *q)
 {
 	return netdev_get_tx_queue(q->lif->netdev, q->index);
@@ -424,6 +485,12 @@ void ionic_rx_fill(struct ionic_queue *q)
 
 	ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type,
 			 q->dbval | q->head_idx);
+
+	q->dbell_deadline = IONIC_RX_MIN_DOORBELL_DEADLINE;
+	q->dbell_jiffies = jiffies;
+
+	mod_timer(&q_to_qcq(q)->napi_qcq->napi_deadline,
+		  jiffies + IONIC_NAPI_DEADLINE);
 }
 
 void ionic_rx_empty(struct ionic_queue *q)
@@ -511,6 +578,9 @@ int ionic_tx_napi(struct napi_struct *napi, int budget)
 				   work_done, flags);
 	}
 
+	if (!work_done && ionic_txq_poke_doorbell(&qcq->q))
+		mod_timer(&qcq->napi_deadline, jiffies + IONIC_NAPI_DEADLINE);
+
 	return work_done;
 }
 
@@ -544,23 +614,29 @@ int ionic_rx_napi(struct napi_struct *napi, int budget)
 				   work_done, flags);
 	}
 
+	if (!work_done && ionic_rxq_poke_doorbell(&qcq->q))
+		mod_timer(&qcq->napi_deadline, jiffies + IONIC_NAPI_DEADLINE);
+
 	return work_done;
 }
 
 int ionic_txrx_napi(struct napi_struct *napi, int budget)
 {
-	struct ionic_qcq *qcq = napi_to_qcq(napi);
+	struct ionic_qcq *rxqcq = napi_to_qcq(napi);
 	struct ionic_cq *rxcq = napi_to_cq(napi);
 	unsigned int qi = rxcq->bound_q->index;
+	struct ionic_qcq *txqcq;
 	struct ionic_dev *idev;
 	struct ionic_lif *lif;
 	struct ionic_cq *txcq;
+	bool resched = false;
 	u32 rx_work_done = 0;
 	u32 tx_work_done = 0;
 	u32 flags = 0;
 
 	lif = rxcq->bound_q->lif;
 	idev = &lif->ionic->idev;
+	txqcq = lif->txqcqs[qi];
 	txcq = &lif->txqcqs[qi]->cq;
 
 	tx_work_done = ionic_cq_service(txcq, IONIC_TX_BUDGET_DEFAULT,
@@ -572,7 +648,7 @@ int ionic_txrx_napi(struct napi_struct *napi, int budget)
 	ionic_rx_fill(rxcq->bound_q);
 
 	if (rx_work_done < budget && napi_complete_done(napi, rx_work_done)) {
-		ionic_dim_update(qcq, 0);
+		ionic_dim_update(rxqcq, 0);
 		flags |= IONIC_INTR_CRED_UNMASK;
 		rxcq->bound_intr->rearm_count++;
 	}
@@ -583,6 +659,13 @@ int ionic_txrx_napi(struct napi_struct *napi, int budget)
 				   tx_work_done + rx_work_done, flags);
 	}
 
+	if (!rx_work_done && ionic_rxq_poke_doorbell(&rxqcq->q))
+		resched = true;
+	if (!tx_work_done && ionic_txq_poke_doorbell(&txqcq->q))
+		resched = true;
+	if (resched)
+		mod_timer(&rxqcq->napi_deadline, jiffies + IONIC_NAPI_DEADLINE);
+
 	return rx_work_done;
 }
 
-- 
2.39.0




  parent reply	other threads:[~2023-02-13 14:53 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 14:47 [PATCH 6.1 000/114] 6.1.12-rc1 review Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 001/114] hv_netvsc: Allocate memory in netvsc_dma_map() with GFP_ATOMIC Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 002/114] btrfs: limit device extents to the device size Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 003/114] btrfs: zlib: zero-initialize zlib workspace Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 004/114] ALSA: hda/realtek: Add Positivo N14KP6-TG Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 005/114] ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 006/114] ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro 360 Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 007/114] ALSA: hda/realtek: Enable mute/micmute LEDs on HP Elitebook, 645 G9 Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 008/114] ALSA: hda/realtek: Add quirk for ASUS UM3402 using CS35L41 Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 009/114] ALSA: hda/realtek: fix mute/micmute LEDs dont work for a HP platform Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 010/114] Revert "PCI/ASPM: Save L1 PM Substates Capability for suspend/resume" Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 011/114] Revert "PCI/ASPM: Refactor L1 PM Substates Control Register programming" Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 012/114] tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 013/114] of/address: Return an error when no valid dma-ranges are found Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 014/114] can: j1939: do not wait 250 ms if the same addr was already claimed Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 015/114] HID: logitech: Disable hi-res scrolling on USB Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 016/114] xfrm: compat: change expression for switch in xfrm_xlate64 Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 017/114] IB/hfi1: Restore allocated resources on failed copyout Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 018/114] xfrm/compat: prevent potential spectre v1 gadget in xfrm_xlate32_attr() Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 019/114] IB/IPoIB: Fix legacy IPoIB due to wrong number of queues Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 020/114] xfrm: annotate data-race around use_time Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 021/114] RDMA/irdma: Fix potential NULL-ptr-dereference Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 022/114] RDMA/usnic: use iommu_map_atomic() under spin_lock() Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 023/114] xfrm: fix bug with DSCP copy to v6 from v4 tunnel Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 024/114] of: Make OF framebuffer device names unique Greg Kroah-Hartman
2023-02-13 14:47   ` Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 025/114] net: phylink: move phy_device_free() to correctly release phy device Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 026/114] bonding: fix error checking in bond_debug_reregister() Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 027/114] net: macb: Perform zynqmp dynamic configuration only for SGMII interface Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 028/114] net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 029/114] ionic: clean interrupt before enabling queue to avoid credit race Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 030/114] ionic: refactor use of ionic_rx_fill() Greg Kroah-Hartman
2023-02-13 14:47 ` Greg Kroah-Hartman [this message]
2023-02-13 14:47 ` [PATCH 6.1 032/114] cpufreq: qcom-hw: Fix cpufreq_driver->get() for non-LMH systems Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 033/114] uapi: add missing ip/ipv6 header dependencies for linux/stddef.h Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 034/114] net: microchip: sparx5: fix PTP init/deinit not checking all ports Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 035/114] HID: amd_sfh: if no sensors are enabled, clean up Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 036/114] drm/i915: Dont do the WM0->WM1 copy w/a if WM1 is already enabled Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 037/114] drm/virtio: exbuf->fence_fd unmodified on interrupted wait Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 038/114] cpuset: Call set_cpus_allowed_ptr() with appropriate mask for task Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 039/114] nvidiafb: detect the hardware support before removing console Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 040/114] ice: Do not use WQ_MEM_RECLAIM flag for workqueue Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 041/114] ice: Fix disabling Rx VLAN filtering with port VLAN enabled Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 042/114] ice: switch: fix potential memleak in ice_add_adv_recipe() Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 043/114] net: dsa: mt7530: dont change PVC_EG_TAG when CPU port becomes VLAN-aware Greg Kroah-Hartman
2023-02-13 14:47 ` [PATCH 6.1 044/114] net: mscc: ocelot: fix VCAP filters not matching on MAC with "protocol 802.1Q" Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 045/114] net/mlx5e: Update rx ring hw mtu upon each rx-fcs flag change Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 046/114] net/mlx5: Bridge, fix ageing of peer FDB entries Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 047/114] net/mlx5e: Fix crash unsetting rx-vlan-filter in switchdev mode Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 048/114] net/mlx5e: IPoIB, Show unknown speed instead of error Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 049/114] net/mlx5: Store page counters in a single array Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 050/114] net/mlx5: Expose SF firmware pages counter Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 051/114] net/mlx5: fw_tracer, Clear load bit when freeing string DBs buffers Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 052/114] net/mlx5: fw_tracer, Zero consumer index when reloading the tracer Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 053/114] net/mlx5: Serialize module cleanup with reload and remove Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 054/114] igc: Add ndo_tx_timeout support Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 055/114] net: ethernet: mtk_eth_soc: fix wrong parameters order in __xdp_rxq_info_reg() Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 056/114] txhash: fix sk->sk_txrehash default Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 057/114] selftests: Fix failing VXLAN VNI filtering test Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 058/114] rds: rds_rm_zerocopy_callback() use list_first_entry() Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 059/114] net: mscc: ocelot: fix all IPv6 getting trapped to CPU when PTP timestamping is used Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 060/114] selftests: forwarding: lib: quote the sysctl values Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 061/114] arm64: dts: rockchip: fix input enable pinconf on rk3399 Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 062/114] arm64: dts: rockchip: set sdmmc0 speed to sd-uhs-sdr50 on rock-3a Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 063/114] ALSA: pci: lx6464es: fix a debug loop Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 064/114] riscv: stacktrace: Fix missing the first frame Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 065/114] arm64: dts: mediatek: mt8195: Fix vdosys* compatible strings Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 066/114] ASoC: tas5805m: rework to avoid scheduling while atomic Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 067/114] ASoC: tas5805m: add missing page switch Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 068/114] ASoC: fsl_sai: fix getting version from VERID Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 069/114] ASoC: topology: Return -ENOMEM on memory allocation failure Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 070/114] clk: microchip: mpfs-ccc: Use devm_kasprintf() for allocating formatted strings Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 071/114] pinctrl: mediatek: Fix the drive register definition of some Pins Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 072/114] pinctrl: aspeed: Fix confusing types in return value Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 073/114] pinctrl: single: fix potential NULL dereference Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 074/114] spi: dw: Fix wrong FIFO level setting for long xfers Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 075/114] pinctrl: aspeed: Revert "Force to disable the functions signal" Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 076/114] pinctrl: intel: Restore the pins that used to be in Direct IRQ mode Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 077/114] cifs: Fix use-after-free in rdata->read_into_pages() Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 078/114] net: USB: Fix wrong-direction WARNING in plusb.c Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 079/114] mptcp: do not wait for bare sockets timeout Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 080/114] mptcp: be careful on subflow status propagation on errors Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 081/114] selftests: mptcp: allow more slack for slow test-case Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 082/114] selftests: mptcp: stop tests earlier Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 083/114] btrfs: simplify update of last_dir_index_offset when logging a directory Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 084/114] btrfs: free device in btrfs_close_devices for a single device filesystem Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 085/114] usb: core: add quirk for Alcor Link AK9563 smartcard reader Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 086/114] usb: typec: altmodes/displayport: Fix probe pin assign check Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 087/114] cxl/region: Fix null pointer dereference for resetting decoder Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 088/114] cxl/region: Fix passthrough-decoder detection Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 089/114] clk: ingenic: jz4760: Update M/N/OD calculation algorithm Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 090/114] pinctrl: qcom: sm8450-lpass-lpi: correct swr_rx_data group Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 091/114] drm/amd/pm: add SMU 13.0.7 missing GetPptLimit message mapping Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 092/114] ceph: flush cap releases when the session is flushed Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 093/114] nvdimm: Support sizeof(struct page) > MAX_STRUCT_PAGE_SIZE Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 094/114] riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 095/114] riscv: kprobe: Fixup misaligned load text Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 096/114] powerpc/64s/interrupt: Fix interrupt exit race with security mitigation switch Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 097/114] drm/amdgpu: Use the TGID for trace_amdgpu_vm_update_ptes Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 098/114] tracing: Fix TASK_COMM_LEN in trace event format file Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 099/114] rtmutex: Ensure that the top waiter is always woken up Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 100/114] arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 101/114] arm64: dts: meson-g12-common: " Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 102/114] arm64: dts: meson-axg: " Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 103/114] Fix page corruption caused by racy check in __free_pages Greg Kroah-Hartman
2023-02-13 14:48 ` [PATCH 6.1 104/114] arm64: efi: Force the use of SetVirtualAddressMap() on eMAG and Altra Max machines Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 105/114] drm/amd/pm: bump SMU 13.0.0 driver_if header version Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 106/114] drm/amdgpu: Add unique_id support for GC 11.0.1/2 Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 107/114] drm/amd/pm: bump SMU 13.0.7 driver_if header version Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 108/114] drm/amdgpu/fence: Fix oops due to non-matching drm_sched init/fini Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 109/114] drm/amdgpu/smu: skip pptable init under sriov Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 110/114] drm/amd/display: properly handling AGP aperture in vm setup Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 111/114] drm/amd/display: fix cursor offset on rotation 180 Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 112/114] drm/i915: Move fd_install after last use of fence Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 113/114] drm/i915: Initialize the obj flags for shmem objects Greg Kroah-Hartman
2023-02-13 14:49 ` [PATCH 6.1 114/114] drm/i915: Fix VBT DSI DVO port handling Greg Kroah-Hartman
2023-02-13 20:57 ` [PATCH 6.1 000/114] 6.1.12-rc1 review Florian Fainelli
2023-02-13 21:18 ` Conor Dooley
2023-02-13 22:06 ` Allen Pais
2023-02-13 22:37 ` Justin Forbes
2023-02-13 23:29 ` Shuah Khan
2023-02-14  3:04 ` Bagas Sanjaya
2023-02-14  4:34 ` Ron Economos
2023-02-14  7:59 ` Naresh Kamboju
2023-02-14 10:52 ` Sudip Mukherjee
2023-02-14 13:10 ` Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230213144743.767070253@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=allen.hubbe@amd.com \
    --cc=kuba@kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=shannon.nelson@amd.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.