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
next prev parent reply other threads:[~2023-02-13 14:53 UTC|newest]
Thread overview: 124+ 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 ` [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
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).