From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH 6.17 073/146] vhost: rewind next_avail_head while discarding descriptors
Date: Wed, 3 Dec 2025 16:27:31 +0100 [thread overview]
Message-ID: <20251203152349.138986657@linuxfoundation.org> (raw)
In-Reply-To: <20251203152346.456176474@linuxfoundation.org>
6.17-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jason Wang <jasowang@redhat.com>
commit 779bcdd4b9ae6566f309043c53c946e8ac0015fd upstream.
When discarding descriptors with IN_ORDER, we should rewind
next_avail_head otherwise it would run out of sync with
last_avail_idx. This would cause driver to report
"id X is not a head".
Fixing this by returning the number of descriptors that is used for
each buffer via vhost_get_vq_desc_n() so caller can use the value
while discarding descriptors.
Fixes: 67a873df0c41 ("vhost: basic in order support")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Link: https://patch.msgid.link/20251120022950.10117-1-jasowang@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/vhost/net.c | 53 ++++++++++++++++++------------
drivers/vhost/vhost.c | 76 +++++++++++++++++++++++++++++++++++--------
drivers/vhost/vhost.h | 10 +++++-
3 files changed, 103 insertions(+), 36 deletions(-)
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 35ded4330431..8f7f50acb6d6 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -592,14 +592,15 @@ static void vhost_net_busy_poll(struct vhost_net *net,
static int vhost_net_tx_get_vq_desc(struct vhost_net *net,
struct vhost_net_virtqueue *tnvq,
unsigned int *out_num, unsigned int *in_num,
- struct msghdr *msghdr, bool *busyloop_intr)
+ struct msghdr *msghdr, bool *busyloop_intr,
+ unsigned int *ndesc)
{
struct vhost_net_virtqueue *rnvq = &net->vqs[VHOST_NET_VQ_RX];
struct vhost_virtqueue *rvq = &rnvq->vq;
struct vhost_virtqueue *tvq = &tnvq->vq;
- int r = vhost_get_vq_desc(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
- out_num, in_num, NULL, NULL);
+ int r = vhost_get_vq_desc_n(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
+ out_num, in_num, NULL, NULL, ndesc);
if (r == tvq->num && tvq->busyloop_timeout) {
/* Flush batched packets first */
@@ -610,8 +611,8 @@ static int vhost_net_tx_get_vq_desc(struct vhost_net *net,
vhost_net_busy_poll(net, rvq, tvq, busyloop_intr, false);
- r = vhost_get_vq_desc(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
- out_num, in_num, NULL, NULL);
+ r = vhost_get_vq_desc_n(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
+ out_num, in_num, NULL, NULL, ndesc);
}
return r;
@@ -642,12 +643,14 @@ static int get_tx_bufs(struct vhost_net *net,
struct vhost_net_virtqueue *nvq,
struct msghdr *msg,
unsigned int *out, unsigned int *in,
- size_t *len, bool *busyloop_intr)
+ size_t *len, bool *busyloop_intr,
+ unsigned int *ndesc)
{
struct vhost_virtqueue *vq = &nvq->vq;
int ret;
- ret = vhost_net_tx_get_vq_desc(net, nvq, out, in, msg, busyloop_intr);
+ ret = vhost_net_tx_get_vq_desc(net, nvq, out, in, msg,
+ busyloop_intr, ndesc);
if (ret < 0 || ret == vq->num)
return ret;
@@ -766,6 +769,7 @@ static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
int sent_pkts = 0;
bool sock_can_batch = (sock->sk->sk_sndbuf == INT_MAX);
bool in_order = vhost_has_feature(vq, VIRTIO_F_IN_ORDER);
+ unsigned int ndesc = 0;
do {
bool busyloop_intr = false;
@@ -774,7 +778,7 @@ static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
vhost_tx_batch(net, nvq, sock, &msg);
head = get_tx_bufs(net, nvq, &msg, &out, &in, &len,
- &busyloop_intr);
+ &busyloop_intr, &ndesc);
/* On error, stop handling until the next kick. */
if (unlikely(head < 0))
break;
@@ -806,7 +810,7 @@ static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
goto done;
} else if (unlikely(err != -ENOSPC)) {
vhost_tx_batch(net, nvq, sock, &msg);
- vhost_discard_vq_desc(vq, 1);
+ vhost_discard_vq_desc(vq, 1, ndesc);
vhost_net_enable_vq(net, vq);
break;
}
@@ -829,7 +833,7 @@ static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
err = sock->ops->sendmsg(sock, &msg, len);
if (unlikely(err < 0)) {
if (err == -EAGAIN || err == -ENOMEM || err == -ENOBUFS) {
- vhost_discard_vq_desc(vq, 1);
+ vhost_discard_vq_desc(vq, 1, ndesc);
vhost_net_enable_vq(net, vq);
break;
}
@@ -868,6 +872,7 @@ static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
int err;
struct vhost_net_ubuf_ref *ubufs;
struct ubuf_info_msgzc *ubuf;
+ unsigned int ndesc = 0;
bool zcopy_used;
int sent_pkts = 0;
@@ -879,7 +884,7 @@ static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
busyloop_intr = false;
head = get_tx_bufs(net, nvq, &msg, &out, &in, &len,
- &busyloop_intr);
+ &busyloop_intr, &ndesc);
/* On error, stop handling until the next kick. */
if (unlikely(head < 0))
break;
@@ -941,7 +946,7 @@ static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN;
}
if (retry) {
- vhost_discard_vq_desc(vq, 1);
+ vhost_discard_vq_desc(vq, 1, ndesc);
vhost_net_enable_vq(net, vq);
break;
}
@@ -1045,11 +1050,12 @@ static int get_rx_bufs(struct vhost_net_virtqueue *nvq,
unsigned *iovcount,
struct vhost_log *log,
unsigned *log_num,
- unsigned int quota)
+ unsigned int quota,
+ unsigned int *ndesc)
{
struct vhost_virtqueue *vq = &nvq->vq;
bool in_order = vhost_has_feature(vq, VIRTIO_F_IN_ORDER);
- unsigned int out, in;
+ unsigned int out, in, desc_num, n = 0;
int seg = 0;
int headcount = 0;
unsigned d;
@@ -1064,9 +1070,9 @@ static int get_rx_bufs(struct vhost_net_virtqueue *nvq,
r = -ENOBUFS;
goto err;
}
- r = vhost_get_vq_desc(vq, vq->iov + seg,
- ARRAY_SIZE(vq->iov) - seg, &out,
- &in, log, log_num);
+ r = vhost_get_vq_desc_n(vq, vq->iov + seg,
+ ARRAY_SIZE(vq->iov) - seg, &out,
+ &in, log, log_num, &desc_num);
if (unlikely(r < 0))
goto err;
@@ -1093,6 +1099,7 @@ static int get_rx_bufs(struct vhost_net_virtqueue *nvq,
++headcount;
datalen -= len;
seg += in;
+ n += desc_num;
}
*iovcount = seg;
@@ -1113,9 +1120,11 @@ static int get_rx_bufs(struct vhost_net_virtqueue *nvq,
nheads[0] = headcount;
}
+ *ndesc = n;
+
return headcount;
err:
- vhost_discard_vq_desc(vq, headcount);
+ vhost_discard_vq_desc(vq, headcount, n);
return r;
}
@@ -1151,6 +1160,7 @@ static void handle_rx(struct vhost_net *net)
struct iov_iter fixup;
__virtio16 num_buffers;
int recv_pkts = 0;
+ unsigned int ndesc;
mutex_lock_nested(&vq->mutex, VHOST_NET_VQ_RX);
sock = vhost_vq_get_backend(vq);
@@ -1182,7 +1192,8 @@ static void handle_rx(struct vhost_net *net)
headcount = get_rx_bufs(nvq, vq->heads + count,
vq->nheads + count,
vhost_len, &in, vq_log, &log,
- likely(mergeable) ? UIO_MAXIOV : 1);
+ likely(mergeable) ? UIO_MAXIOV : 1,
+ &ndesc);
/* On error, stop handling until the next kick. */
if (unlikely(headcount < 0))
goto out;
@@ -1228,7 +1239,7 @@ static void handle_rx(struct vhost_net *net)
if (unlikely(err != sock_len)) {
pr_debug("Discarded rx packet: "
" len %d, expected %zd\n", err, sock_len);
- vhost_discard_vq_desc(vq, headcount);
+ vhost_discard_vq_desc(vq, headcount, ndesc);
continue;
}
/* Supply virtio_net_hdr if VHOST_NET_F_VIRTIO_NET_HDR */
@@ -1252,7 +1263,7 @@ static void handle_rx(struct vhost_net *net)
copy_to_iter(&num_buffers, sizeof num_buffers,
&fixup) != sizeof num_buffers) {
vq_err(vq, "Failed num_buffers write");
- vhost_discard_vq_desc(vq, headcount);
+ vhost_discard_vq_desc(vq, headcount, ndesc);
goto out;
}
nvq->done_idx += headcount;
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 8570fdf2e14a..a78226b37739 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -2792,18 +2792,34 @@ static int get_indirect(struct vhost_virtqueue *vq,
return 0;
}
-/* This looks in the virtqueue and for the first available buffer, and converts
- * it to an iovec for convenient access. Since descriptors consist of some
- * number of output then some number of input descriptors, it's actually two
- * iovecs, but we pack them into one and note how many of each there were.
+/**
+ * vhost_get_vq_desc_n - Fetch the next available descriptor chain and build iovecs
+ * @vq: target virtqueue
+ * @iov: array that receives the scatter/gather segments
+ * @iov_size: capacity of @iov in elements
+ * @out_num: the number of output segments
+ * @in_num: the number of input segments
+ * @log: optional array to record addr/len for each writable segment; NULL if unused
+ * @log_num: optional output; number of entries written to @log when provided
+ * @ndesc: optional output; number of descriptors consumed from the available ring
+ * (useful for rollback via vhost_discard_vq_desc)
*
- * This function returns the descriptor number found, or vq->num (which is
- * never a valid descriptor number) if none was found. A negative code is
- * returned on error. */
-int vhost_get_vq_desc(struct vhost_virtqueue *vq,
- struct iovec iov[], unsigned int iov_size,
- unsigned int *out_num, unsigned int *in_num,
- struct vhost_log *log, unsigned int *log_num)
+ * Extracts one available descriptor chain from @vq and translates guest addresses
+ * into host iovecs.
+ *
+ * On success, advances @vq->last_avail_idx by 1 and @vq->next_avail_head by the
+ * number of descriptors consumed (also stored via @ndesc when non-NULL).
+ *
+ * Return:
+ * - head index in [0, @vq->num) on success;
+ * - @vq->num if no descriptor is currently available;
+ * - negative errno on failure
+ */
+int vhost_get_vq_desc_n(struct vhost_virtqueue *vq,
+ struct iovec iov[], unsigned int iov_size,
+ unsigned int *out_num, unsigned int *in_num,
+ struct vhost_log *log, unsigned int *log_num,
+ unsigned int *ndesc)
{
bool in_order = vhost_has_feature(vq, VIRTIO_F_IN_ORDER);
struct vring_desc desc;
@@ -2921,17 +2937,49 @@ int vhost_get_vq_desc(struct vhost_virtqueue *vq,
vq->last_avail_idx++;
vq->next_avail_head += c;
+ if (ndesc)
+ *ndesc = c;
+
/* Assume notifications from guest are disabled at this point,
* if they aren't we would need to update avail_event index. */
BUG_ON(!(vq->used_flags & VRING_USED_F_NO_NOTIFY));
return head;
}
+EXPORT_SYMBOL_GPL(vhost_get_vq_desc_n);
+
+/* This looks in the virtqueue and for the first available buffer, and converts
+ * it to an iovec for convenient access. Since descriptors consist of some
+ * number of output then some number of input descriptors, it's actually two
+ * iovecs, but we pack them into one and note how many of each there were.
+ *
+ * This function returns the descriptor number found, or vq->num (which is
+ * never a valid descriptor number) if none was found. A negative code is
+ * returned on error.
+ */
+int vhost_get_vq_desc(struct vhost_virtqueue *vq,
+ struct iovec iov[], unsigned int iov_size,
+ unsigned int *out_num, unsigned int *in_num,
+ struct vhost_log *log, unsigned int *log_num)
+{
+ return vhost_get_vq_desc_n(vq, iov, iov_size, out_num, in_num,
+ log, log_num, NULL);
+}
EXPORT_SYMBOL_GPL(vhost_get_vq_desc);
-/* Reverse the effect of vhost_get_vq_desc. Useful for error handling. */
-void vhost_discard_vq_desc(struct vhost_virtqueue *vq, int n)
+/**
+ * vhost_discard_vq_desc - Reverse the effect of vhost_get_vq_desc_n()
+ * @vq: target virtqueue
+ * @nbufs: number of buffers to roll back
+ * @ndesc: number of descriptors to roll back
+ *
+ * Rewinds the internal consumer cursors after a failed attempt to use buffers
+ * returned by vhost_get_vq_desc_n().
+ */
+void vhost_discard_vq_desc(struct vhost_virtqueue *vq, int nbufs,
+ unsigned int ndesc)
{
- vq->last_avail_idx -= n;
+ vq->next_avail_head -= ndesc;
+ vq->last_avail_idx -= nbufs;
}
EXPORT_SYMBOL_GPL(vhost_discard_vq_desc);
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 621a6d9a8791..b49f08e4a1b4 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -230,7 +230,15 @@ int vhost_get_vq_desc(struct vhost_virtqueue *,
struct iovec iov[], unsigned int iov_size,
unsigned int *out_num, unsigned int *in_num,
struct vhost_log *log, unsigned int *log_num);
-void vhost_discard_vq_desc(struct vhost_virtqueue *, int n);
+
+int vhost_get_vq_desc_n(struct vhost_virtqueue *vq,
+ struct iovec iov[], unsigned int iov_size,
+ unsigned int *out_num, unsigned int *in_num,
+ struct vhost_log *log, unsigned int *log_num,
+ unsigned int *ndesc);
+
+void vhost_discard_vq_desc(struct vhost_virtqueue *, int nbuf,
+ unsigned int ndesc);
bool vhost_vq_work_queue(struct vhost_virtqueue *vq, struct vhost_work *work);
bool vhost_vq_has_work(struct vhost_virtqueue *vq);
--
2.52.0
next prev parent reply other threads:[~2025-12-03 15:52 UTC|newest]
Thread overview: 173+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 15:26 [PATCH 6.17 000/146] 6.17.11-rc1 review Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 001/146] can: kvaser_usb: leaf: Fix potential infinite loop in command parsers Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 002/146] can: gs_usb: gs_usb_xmit_callback(): fix handling of failed transmitted URBs Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 003/146] can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before accessing header Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 004/146] can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before accessing data Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 005/146] Bluetooth: btusb: mediatek: Fix kernel crash when releasing mtk iso interface Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 006/146] Bluetooth: hci_core: Fix triggering cmd_timer for HCI_OP_NOP Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 007/146] Bluetooth: hci_sock: Prevent race in socket write iter and sock bind Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 008/146] Bluetooth: hci_core: lookup hci_conn on RX path on protocol side Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 009/146] Bluetooth: SMP: Fix not generating mackey and ltk when repairing Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 010/146] veth: reduce XDP no_direct return section to fix race Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 011/146] drm/bridge: sii902x: Fix HDMI detection with DRM_BRIDGE_ATTACH_NO_CONNECTOR Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 012/146] net: phy: mxl-gpy: fix bogus error on USXGMII and integrated PHY Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 013/146] platform/x86: intel: punit_ipc: fix memory corruption Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 014/146] net: aquantia: Add missing descriptor cache invalidation on ATL2 Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 015/146] net: phy: mxl-gpy: fix link properties on USXGMII and internal PHYs Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 016/146] net: lan966x: Fix the initialization of taprio Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 017/146] drm/xe: Fix conversion from clock ticks to milliseconds Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 018/146] net/mlx5e: Fix validation logic in rate limiting Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 019/146] team: Move team device type change at the end of team_port_add Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 020/146] net: sxgbe: fix potential NULL dereference in sxgbe_rx() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 021/146] xsk: avoid overwriting skb fields for multi-buffer traffic Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 022/146] xsk: avoid data corruption on cq descriptor number Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 023/146] drm/amdgpu: fix cyan_skillfish2 gpu info fw handling Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 024/146] dma-direct: Fix missing sg_dma_len assignment in P2PDMA bus mappings Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 025/146] net: wwan: mhi: Keep modem name match with Foxconn T99W640 Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 026/146] net: dsa: sja1105: fix SGMII linking at 10M or 100M but not passing traffic Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 027/146] eth: fbnic: Fix counter roll-over issue Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 028/146] net: atlantic: fix fragment overflow handling in RX path Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 029/146] net: mctp: unconditionally set skb->dev on dst output Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 030/146] net: fec: cancel perout_timer when PEROUT is disabled Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 031/146] net: fec: do not update PEROUT if it is enabled Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 032/146] net: fec: do not allow enabling PPS and PEROUT simultaneously Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 033/146] net: fec: do not register PPS event for PEROUT Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 034/146] iio: st_lsm6dsx: Fixed calibrated timestamp calculation Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 035/146] usb: gadget: renesas_usbf: Handle devm_pm_runtime_enable() errors Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 036/146] mailbox: mailbox-test: Fix debugfs_create_dir error checking Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 037/146] mailbox: mtk-cmdq: Refine DMA address handling for the command buffer Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 038/146] mailbox: pcc: dont zero error register Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 039/146] spi: spi-cadence-quadspi: Remove duplicate pm_runtime_put_autosuspend() call Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 040/146] spi: spi-cadence-quadspi: Enable pm runtime earlier to avoid imbalance Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 6.17 041/146] fs/namespace: fix reference leak in grab_requested_mnt_ns Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 042/146] afs: Fix delayed allocation of a cells anonymous key Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 043/146] ovl: fail ovl_lock_rename_workdir() if either target is unhashed Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 044/146] riscv: dts: allwinner: d1: fix vlenb property Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 045/146] spi: tegra114: remove Kconfig dependency on TEGRA20_APB_DMA Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 046/146] spi: amlogic-spifc-a1: Handle devm_pm_runtime_enable() errors Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 047/146] spi: spi-nxp-fspi: Add OCT-DTR mode support Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 048/146] spi: nxp-fspi: Propagate fwnode in ACPI case as well Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 049/146] spi: bcm63xx: fix premature CS deassertion on RX-only transactions Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 050/146] afs: Fix uninit var in afs_alloc_anon_key() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 051/146] timekeeping: Fix error code in tk_aux_sysfs_init() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 052/146] Revert "drm/amd/display: Move setup_stream_attribute" Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 053/146] Revert "perf/x86: Always store regs->ip in perf_callchain_kernel()" Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 054/146] iio: buffer-dma: support getting the DMA channel Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 055/146] iio: buffer-dmaengine: enable .get_dma_dev() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 056/146] iio: buffer: support getting dma channel from the buffer Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 057/146] iio: humditiy: hdc3020: fix units for temperature and humidity measurement Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 058/146] iio: humditiy: hdc3020: fix units for thresholds and hysteresis Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 059/146] iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 060/146] iio: pressure: bmp280: correct meas_time_us calculation Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 061/146] iio:common:ssp_sensors: Fix an error handling path ssp_probe() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 062/146] iio: adc: stm32-dfsdm: fix st,adc-alt-channel property handling Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 063/146] iio: accel: bmc150: Fix irq assumption regression Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 064/146] iio: accel: fix ADXL355 startup race condition Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 065/146] iio: adc: ad4030: Fix _scale value for common-mode channels Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 066/146] iio: adc: ad7124: fix temperature channel Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 067/146] iio: adc: ad7280a: fix ad7280_store_balance_timer() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 068/146] iio: adc: ad7380: fix SPI offload trigger rate Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 069/146] iio: adc: rtq6056: Correct the sign bit index Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 070/146] MIPS: mm: Prevent a TLB shutdown on initial uniquification Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 071/146] MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 072/146] virtio-net: avoid unnecessary checksum calculation on guest RX Greg Kroah-Hartman
2025-12-03 15:27 ` Greg Kroah-Hartman [this message]
2025-12-03 15:27 ` [PATCH 6.17 074/146] tracing: Fix WARN_ON in tracing_buffers_mmap_close for split VMAs Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 075/146] ALSA: hda/cirrus fix cs420x MacPro 6,1 inverted jack detection Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 076/146] ALSA: usb-audio: Add DSD quirk for LEAK Stereo 230 Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 077/146] arm64: dts: imx8dxl-ss-conn: swap interrupts number of eqos Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 078/146] arm64: dts: imx8dxl: Correct pcie-ep interrupt number Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 079/146] arm64: dts: imx8qm-mek: fix mux-controller select/enable-gpios polarity Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 080/146] ARM: dts: nxp: imx6ul: correct SAI3 interrupt line Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 081/146] atm/fore200e: Fix possible data race in fore200e_open() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 082/146] Bluetooth: btusb: mediatek: Avoid btusb_mtk_claim_iso_intf() NULL deref Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 083/146] can: rcar_canfd: Fix CAN-FD mode as default Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 084/146] can: sja1000: fix max irq loop handling Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 085/146] can: sun4i_can: sun4i_can_interrupt(): " Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 086/146] ceph: fix crash in process_v2_sparse_read() for encrypted directories Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 087/146] counter: microchip-tcb-capture: Allow shared IRQ for multi-channel TCBs Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 088/146] dm-verity: fix unreliable memory allocation Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 089/146] drivers/usb/dwc3: fix PCI parent check Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 090/146] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 091/146] smb: client: fix memory leak in cifs_construct_tcon() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 092/146] thunderbolt: Add support for Intel Wildcat Lake Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 093/146] slimbus: ngd: Fix reference count leak in qcom_slim_ngd_notify_slaves Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 094/146] nvmem: layouts: fix nvmem_layout_bus_uevent Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 095/146] pmdomain: tegra: Add GENPD_FLAG_NO_STAY_ON flag Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 096/146] r8169: fix RTL8127 hang on suspend/shutdown Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 097/146] regulator: rtq2208: Correct buck group2 phase mapping logic Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 098/146] regulator: rtq2208: Correct LDO2 logic judgment bits Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 099/146] io_uring/net: ensure vectored buffer node import is tied to notification Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 100/146] firmware: stratix10-svc: fix bug in saving controller data Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 6.17 101/146] iommufd/driver: Fix counter initialization for counted_by annotation Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 102/146] mm/huge_memory: fix NULL pointer deference when splitting folio Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 103/146] mm/memfd: fix information leak in hugetlb folios Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 104/146] mmc: sdhci-of-dwcmshc: Promote the th1520 reset handling to ip level Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 105/146] mptcp: clear scheduled subflows on retransmit Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 106/146] mptcp: Initialise rcv_mss before calling tcp_send_active_reset() in mptcp_do_fastclose() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 107/146] serial: 8250: Fix 8250_rsa symbol loop Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 108/146] serial: amba-pl011: prefer dma_mapping_error() over explicit address checking Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 109/146] most: usb: fix double free on late probe failure Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 110/146] usb: cdns3: Fix double resource release in cdns3_pci_probe Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 111/146] usb: gadget: f_eem: Fix memory leak in eem_unwrap Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 112/146] usb: renesas_usbhs: Fix synchronous external abort on unbind Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 113/146] usb: storage: Fix memory leak in USB bulk transport Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 114/146] USB: storage: Remove subclass and protocol overrides from Novatek quirk Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 115/146] usb: storage: sddr55: Reject out-of-bound new_pba Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 116/146] usb: typec: ucsi: psy: Set max current to zero when disconnected Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 117/146] usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 118/146] usb: dwc3: pci: add support for the Intel Nova Lake -S Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 119/146] usb: dwc3: pci: Sort out the Intel device IDs Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 120/146] usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 121/146] xhci: fix stale flag preventig URBs after link state error is cleared Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 122/146] xhci: dbgtty: Fix data corruption when transmitting data form DbC to host Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 123/146] xhci: dbgtty: fix device unregister Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 124/146] USB: serial: ftdi_sio: add support for u-blox EVK-M101 Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 125/146] USB: serial: option: add support for Rolling RW101R-GL Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 126/146] drm: sti: fix device leaks at component probe Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 127/146] drm/i915/psr: Reject async flips when selective fetch is enabled Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 128/146] drm/xe/guc: Fix stack_depot usage Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 129/146] drm/amdgpu: attach tlb fence to the PTs update Greg Kroah-Hartman
2025-12-03 16:03 ` Christian König
2025-12-03 16:24 ` Greg Kroah-Hartman
2025-12-04 8:07 ` Christian König
2025-12-04 16:14 ` Greg Kroah-Hartman
2025-12-03 16:48 ` Deucher, Alexander
2025-12-08 15:31 ` Deucher, Alexander
2025-12-08 23:13 ` Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 130/146] drm/amd/amdgpu: reserve vm invalidation engine for uni_mes Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 131/146] drm/amd/display: Check NULL before accessing Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 132/146] drm/amd/display: Dont change brightness for disabled connectors Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 133/146] drm/amd/display: Increase EDID read retries Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 134/146] net: dsa: microchip: common: Fix checks on irq_find_mapping() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 135/146] net: dsa: microchip: ptp: " Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 136/146] net: dsa: microchip: Dont free uninitialized ksz_irq Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 137/146] net: dsa: microchip: Free previously initialized ports on init failures Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 138/146] net: dsa: microchip: Fix symetry in ksz_ptp_msg_irq_{setup/free}() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 139/146] libceph: fix potential use-after-free in have_mon_and_osd_map() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 140/146] libceph: prevent potential out-of-bounds writes in handle_auth_session_key() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 141/146] libceph: replace BUG_ON with bounds check for map->max_osd Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 142/146] mm: swap: remove duplicate nr_swap_pages decrement in get_swap_page_of_type() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 143/146] usb: udc: Add trace event for usb_gadget_set_state Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 144/146] usb: gadget: udc: fix use-after-free in usb_gadget_state_work Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 145/146] Revert "ACPI: Suppress misleading SPCR console message when SPCR table is absent" Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 6.17 146/146] spi: cadence-quadspi: Fix cqspi_probe() error handling for runtime pm Greg Kroah-Hartman
2025-12-03 17:23 ` [PATCH 6.17 000/146] 6.17.11-rc1 review Ronald Warsow
2025-12-03 19:02 ` Florian Fainelli
2025-12-03 20:36 ` Achill Gilgenast
2025-12-03 20:56 ` Takeshi Ogasawara
2025-12-03 23:43 ` Shuah Khan
2025-12-04 9:08 ` Jeffrin Thalakkottoor
2025-12-04 16:16 ` Greg Kroah-Hartman
2025-12-05 8:20 ` Jeffrin Thalakkottoor
2025-12-05 11:51 ` Jeffrin Thalakkottoor
2025-12-05 12:11 ` Slade Watkins
2025-12-05 16:19 ` Jeffrin Thalakkottoor
2025-12-04 9:50 ` Naresh Kamboju
2025-12-04 9:50 ` Peter Schneider
2025-12-04 10:00 ` Jon Hunter
2025-12-04 10:27 ` Ron Economos
2025-12-04 10:36 ` Dileep malepu
2025-12-04 11:29 ` Mark Brown
2025-12-05 9:35 ` Miguel Ojeda
2025-12-05 10:51 ` Brett A C Sheffield
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=20251203152349.138986657@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jasowang@redhat.com \
--cc=kuba@kernel.org \
--cc=mst@redhat.com \
--cc=patches@lists.linux.dev \
--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