From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Subject: [PATCH 5.14 007/162] usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
Date: Mon, 27 Sep 2021 19:00:53 +0200 [thread overview]
Message-ID: <20210927170233.709679556@linuxfoundation.org> (raw)
In-Reply-To: <20210927170233.453060397@linuxfoundation.org>
From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
commit 91bb163e1e4f88092f50dfaa5a816b658753e4b2 upstream.
According USB spec each ISOC transaction should be performed in a
designated for that transaction interval. On bus errors or delays
in operating system scheduling of client software can result in no
packet being transferred for a (micro)frame. An error indication
should be returned as status to the client software in such a case.
Current implementation in case of missed/dropped interval send same
data in next possible interval instead of reporting missed isoc.
This fix complete requests with -ENODATA if interval elapsed.
HSOTG core in BDMA and Slave modes haven't HW support for
(micro)frames tracking, this is why SW should care about tracking
of (micro)frames. Because of that method and consider operating
system scheduling delays, added few additional checking's of elapsed
target (micro)frame:
1. Immediately before enabling EP to start transfer.
2. With any transfer completion interrupt.
3. With incomplete isoc in/out interrupt.
4. With EP disabled interrupt because of incomplete transfer.
5. With OUT token received while EP disabled interrupt (for OUT
transfers).
6. With NAK replied to IN token interrupt (for IN transfers).
As part of ISOC flow, additionally fixed 'current' and 'target' frame
calculation functions. In HS mode SOF limits provided by DSTS register
is 0x3fff, but in non HS mode this limit is 0x7ff.
Tested by internal tool which also using for dwc3 testing.
Signed-off-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/95d1423adf4b0f68187c9894820c4b7e964a3f7f.1631175721.git.Minas.Harutyunyan@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/dwc2/gadget.c | 189 +++++++++++++++++++++++++---------------------
1 file changed, 106 insertions(+), 83 deletions(-)
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -115,10 +115,16 @@ static inline bool using_desc_dma(struct
*/
static inline void dwc2_gadget_incr_frame_num(struct dwc2_hsotg_ep *hs_ep)
{
+ struct dwc2_hsotg *hsotg = hs_ep->parent;
+ u16 limit = DSTS_SOFFN_LIMIT;
+
+ if (hsotg->gadget.speed != USB_SPEED_HIGH)
+ limit >>= 3;
+
hs_ep->target_frame += hs_ep->interval;
- if (hs_ep->target_frame > DSTS_SOFFN_LIMIT) {
+ if (hs_ep->target_frame > limit) {
hs_ep->frame_overrun = true;
- hs_ep->target_frame &= DSTS_SOFFN_LIMIT;
+ hs_ep->target_frame &= limit;
} else {
hs_ep->frame_overrun = false;
}
@@ -136,10 +142,16 @@ static inline void dwc2_gadget_incr_fram
*/
static inline void dwc2_gadget_dec_frame_num_by_one(struct dwc2_hsotg_ep *hs_ep)
{
+ struct dwc2_hsotg *hsotg = hs_ep->parent;
+ u16 limit = DSTS_SOFFN_LIMIT;
+
+ if (hsotg->gadget.speed != USB_SPEED_HIGH)
+ limit >>= 3;
+
if (hs_ep->target_frame)
hs_ep->target_frame -= 1;
else
- hs_ep->target_frame = DSTS_SOFFN_LIMIT;
+ hs_ep->target_frame = limit;
}
/**
@@ -1018,6 +1030,12 @@ static void dwc2_gadget_start_isoc_ddma(
dwc2_writel(hsotg, ctrl, depctl);
}
+static bool dwc2_gadget_target_frame_elapsed(struct dwc2_hsotg_ep *hs_ep);
+static void dwc2_hsotg_complete_request(struct dwc2_hsotg *hsotg,
+ struct dwc2_hsotg_ep *hs_ep,
+ struct dwc2_hsotg_req *hs_req,
+ int result);
+
/**
* dwc2_hsotg_start_req - start a USB request from an endpoint's queue
* @hsotg: The controller state.
@@ -1170,14 +1188,19 @@ static void dwc2_hsotg_start_req(struct
}
}
- if (hs_ep->isochronous && hs_ep->interval == 1) {
- hs_ep->target_frame = dwc2_hsotg_read_frameno(hsotg);
- dwc2_gadget_incr_frame_num(hs_ep);
-
- if (hs_ep->target_frame & 0x1)
- ctrl |= DXEPCTL_SETODDFR;
- else
- ctrl |= DXEPCTL_SETEVENFR;
+ if (hs_ep->isochronous) {
+ if (!dwc2_gadget_target_frame_elapsed(hs_ep)) {
+ if (hs_ep->interval == 1) {
+ if (hs_ep->target_frame & 0x1)
+ ctrl |= DXEPCTL_SETODDFR;
+ else
+ ctrl |= DXEPCTL_SETEVENFR;
+ }
+ ctrl |= DXEPCTL_CNAK;
+ } else {
+ dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, -ENODATA);
+ return;
+ }
}
ctrl |= DXEPCTL_EPENA; /* ensure ep enabled */
@@ -1325,12 +1348,16 @@ static bool dwc2_gadget_target_frame_ela
u32 target_frame = hs_ep->target_frame;
u32 current_frame = hsotg->frame_number;
bool frame_overrun = hs_ep->frame_overrun;
+ u16 limit = DSTS_SOFFN_LIMIT;
+
+ if (hsotg->gadget.speed != USB_SPEED_HIGH)
+ limit >>= 3;
if (!frame_overrun && current_frame >= target_frame)
return true;
if (frame_overrun && current_frame >= target_frame &&
- ((current_frame - target_frame) < DSTS_SOFFN_LIMIT / 2))
+ ((current_frame - target_frame) < limit / 2))
return true;
return false;
@@ -1713,11 +1740,9 @@ static struct dwc2_hsotg_req *get_ep_hea
*/
static void dwc2_gadget_start_next_request(struct dwc2_hsotg_ep *hs_ep)
{
- u32 mask;
struct dwc2_hsotg *hsotg = hs_ep->parent;
int dir_in = hs_ep->dir_in;
struct dwc2_hsotg_req *hs_req;
- u32 epmsk_reg = dir_in ? DIEPMSK : DOEPMSK;
if (!list_empty(&hs_ep->queue)) {
hs_req = get_ep_head(hs_ep);
@@ -1733,9 +1758,6 @@ static void dwc2_gadget_start_next_reque
} else {
dev_dbg(hsotg->dev, "%s: No more ISOC-OUT requests\n",
__func__);
- mask = dwc2_readl(hsotg, epmsk_reg);
- mask |= DOEPMSK_OUTTKNEPDISMSK;
- dwc2_writel(hsotg, mask, epmsk_reg);
}
}
@@ -2305,19 +2327,6 @@ static void dwc2_hsotg_ep0_zlp(struct dw
dwc2_hsotg_program_zlp(hsotg, hsotg->eps_out[0]);
}
-static void dwc2_hsotg_change_ep_iso_parity(struct dwc2_hsotg *hsotg,
- u32 epctl_reg)
-{
- u32 ctrl;
-
- ctrl = dwc2_readl(hsotg, epctl_reg);
- if (ctrl & DXEPCTL_EOFRNUM)
- ctrl |= DXEPCTL_SETEVENFR;
- else
- ctrl |= DXEPCTL_SETODDFR;
- dwc2_writel(hsotg, ctrl, epctl_reg);
-}
-
/*
* dwc2_gadget_get_xfersize_ddma - get transferred bytes amount from desc
* @hs_ep - The endpoint on which transfer went
@@ -2438,20 +2447,11 @@ static void dwc2_hsotg_handle_outdone(st
dwc2_hsotg_ep0_zlp(hsotg, true);
}
- /*
- * Slave mode OUT transfers do not go through XferComplete so
- * adjust the ISOC parity here.
- */
- if (!using_dma(hsotg)) {
- if (hs_ep->isochronous && hs_ep->interval == 1)
- dwc2_hsotg_change_ep_iso_parity(hsotg, DOEPCTL(epnum));
- else if (hs_ep->isochronous && hs_ep->interval > 1)
- dwc2_gadget_incr_frame_num(hs_ep);
- }
-
/* Set actual frame number for completed transfers */
- if (!using_desc_dma(hsotg) && hs_ep->isochronous)
- req->frame_number = hsotg->frame_number;
+ if (!using_desc_dma(hsotg) && hs_ep->isochronous) {
+ req->frame_number = hs_ep->target_frame;
+ dwc2_gadget_incr_frame_num(hs_ep);
+ }
dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, result);
}
@@ -2765,6 +2765,12 @@ static void dwc2_hsotg_complete_in(struc
return;
}
+ /* Set actual frame number for completed transfers */
+ if (!using_desc_dma(hsotg) && hs_ep->isochronous) {
+ hs_req->req.frame_number = hs_ep->target_frame;
+ dwc2_gadget_incr_frame_num(hs_ep);
+ }
+
dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);
}
@@ -2825,23 +2831,18 @@ static void dwc2_gadget_handle_ep_disabl
dwc2_hsotg_txfifo_flush(hsotg, hs_ep->fifo_index);
- if (hs_ep->isochronous) {
- dwc2_hsotg_complete_in(hsotg, hs_ep);
- return;
- }
-
if ((epctl & DXEPCTL_STALL) && (epctl & DXEPCTL_EPTYPE_BULK)) {
int dctl = dwc2_readl(hsotg, DCTL);
dctl |= DCTL_CGNPINNAK;
dwc2_writel(hsotg, dctl, DCTL);
}
- return;
- }
+ } else {
- if (dctl & DCTL_GOUTNAKSTS) {
- dctl |= DCTL_CGOUTNAK;
- dwc2_writel(hsotg, dctl, DCTL);
+ if (dctl & DCTL_GOUTNAKSTS) {
+ dctl |= DCTL_CGOUTNAK;
+ dwc2_writel(hsotg, dctl, DCTL);
+ }
}
if (!hs_ep->isochronous)
@@ -2862,8 +2863,6 @@ static void dwc2_gadget_handle_ep_disabl
/* Update current frame number value. */
hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);
} while (dwc2_gadget_target_frame_elapsed(hs_ep));
-
- dwc2_gadget_start_next_request(hs_ep);
}
/**
@@ -2880,8 +2879,8 @@ static void dwc2_gadget_handle_ep_disabl
static void dwc2_gadget_handle_out_token_ep_disabled(struct dwc2_hsotg_ep *ep)
{
struct dwc2_hsotg *hsotg = ep->parent;
+ struct dwc2_hsotg_req *hs_req;
int dir_in = ep->dir_in;
- u32 doepmsk;
if (dir_in || !ep->isochronous)
return;
@@ -2895,28 +2894,39 @@ static void dwc2_gadget_handle_out_token
return;
}
- if (ep->interval > 1 &&
- ep->target_frame == TARGET_FRAME_INITIAL) {
+ if (ep->target_frame == TARGET_FRAME_INITIAL) {
u32 ctrl;
ep->target_frame = hsotg->frame_number;
- dwc2_gadget_incr_frame_num(ep);
+ if (ep->interval > 1) {
+ ctrl = dwc2_readl(hsotg, DOEPCTL(ep->index));
+ if (ep->target_frame & 0x1)
+ ctrl |= DXEPCTL_SETODDFR;
+ else
+ ctrl |= DXEPCTL_SETEVENFR;
- ctrl = dwc2_readl(hsotg, DOEPCTL(ep->index));
- if (ep->target_frame & 0x1)
- ctrl |= DXEPCTL_SETODDFR;
- else
- ctrl |= DXEPCTL_SETEVENFR;
+ dwc2_writel(hsotg, ctrl, DOEPCTL(ep->index));
+ }
+ }
+
+ while (dwc2_gadget_target_frame_elapsed(ep)) {
+ hs_req = get_ep_head(ep);
+ if (hs_req)
+ dwc2_hsotg_complete_request(hsotg, ep, hs_req, -ENODATA);
- dwc2_writel(hsotg, ctrl, DOEPCTL(ep->index));
+ dwc2_gadget_incr_frame_num(ep);
+ /* Update current frame number value. */
+ hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);
}
- dwc2_gadget_start_next_request(ep);
- doepmsk = dwc2_readl(hsotg, DOEPMSK);
- doepmsk &= ~DOEPMSK_OUTTKNEPDISMSK;
- dwc2_writel(hsotg, doepmsk, DOEPMSK);
+ if (!ep->req)
+ dwc2_gadget_start_next_request(ep);
+
}
+static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg,
+ struct dwc2_hsotg_ep *hs_ep);
+
/**
* dwc2_gadget_handle_nak - handle NAK interrupt
* @hs_ep: The endpoint on which interrupt is asserted.
@@ -2934,7 +2944,9 @@ static void dwc2_gadget_handle_out_token
static void dwc2_gadget_handle_nak(struct dwc2_hsotg_ep *hs_ep)
{
struct dwc2_hsotg *hsotg = hs_ep->parent;
+ struct dwc2_hsotg_req *hs_req;
int dir_in = hs_ep->dir_in;
+ u32 ctrl;
if (!dir_in || !hs_ep->isochronous)
return;
@@ -2976,13 +2988,29 @@ static void dwc2_gadget_handle_nak(struc
dwc2_writel(hsotg, ctrl, DIEPCTL(hs_ep->index));
}
-
- dwc2_hsotg_complete_request(hsotg, hs_ep,
- get_ep_head(hs_ep), 0);
}
- if (!using_desc_dma(hsotg))
+ if (using_desc_dma(hsotg))
+ return;
+
+ ctrl = dwc2_readl(hsotg, DIEPCTL(hs_ep->index));
+ if (ctrl & DXEPCTL_EPENA)
+ dwc2_hsotg_ep_stop_xfr(hsotg, hs_ep);
+ else
+ dwc2_hsotg_txfifo_flush(hsotg, hs_ep->fifo_index);
+
+ while (dwc2_gadget_target_frame_elapsed(hs_ep)) {
+ hs_req = get_ep_head(hs_ep);
+ if (hs_req)
+ dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, -ENODATA);
+
dwc2_gadget_incr_frame_num(hs_ep);
+ /* Update current frame number value. */
+ hsotg->frame_number = dwc2_hsotg_read_frameno(hsotg);
+ }
+
+ if (!hs_ep->req)
+ dwc2_gadget_start_next_request(hs_ep);
}
/**
@@ -3047,12 +3075,8 @@ static void dwc2_hsotg_epint(struct dwc2
* need to look at completing IN requests here
* if operating slave mode
*/
- if (hs_ep->isochronous && hs_ep->interval > 1)
- dwc2_gadget_incr_frame_num(hs_ep);
-
- dwc2_hsotg_complete_in(hsotg, hs_ep);
- if (ints & DXEPINT_NAKINTRPT)
- ints &= ~DXEPINT_NAKINTRPT;
+ if (!hs_ep->isochronous || !(ints & DXEPINT_NAKINTRPT))
+ dwc2_hsotg_complete_in(hsotg, hs_ep);
if (idx == 0 && !hs_ep->req)
dwc2_hsotg_enqueue_setup(hsotg);
@@ -3061,10 +3085,8 @@ static void dwc2_hsotg_epint(struct dwc2
* We're using DMA, we need to fire an OutDone here
* as we ignore the RXFIFO.
*/
- if (hs_ep->isochronous && hs_ep->interval > 1)
- dwc2_gadget_incr_frame_num(hs_ep);
-
- dwc2_hsotg_handle_outdone(hsotg, idx);
+ if (!hs_ep->isochronous || !(ints & DXEPINT_OUTTKNEPDIS))
+ dwc2_hsotg_handle_outdone(hsotg, idx);
}
}
@@ -4083,6 +4105,7 @@ static int dwc2_hsotg_ep_enable(struct u
mask |= DIEPMSK_NAKMSK;
dwc2_writel(hsotg, mask, DIEPMSK);
} else {
+ epctrl |= DXEPCTL_SNAK;
mask = dwc2_readl(hsotg, DOEPMSK);
mask |= DOEPMSK_OUTTKNEPDISMSK;
dwc2_writel(hsotg, mask, DOEPMSK);
next prev parent reply other threads:[~2021-09-27 17:19 UTC|newest]
Thread overview: 171+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-27 17:00 [PATCH 5.14 000/162] 5.14.9-rc1 review Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 001/162] mm, hwpoison: add is_free_buddy_page() in HWPoisonHandlable() Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 002/162] ocfs2: drop acl cache for directories too Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 003/162] mm/debug: sync up MR_CONTIG_RANGE and MR_LONGTERM_PIN Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 004/162] mm: fix uninitialized use in overcommit_policy_handler Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 005/162] usb: gadget: r8a66597: fix a loop in set_feature() Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 006/162] usb: gadget: u_audio: EP-OUT bInterval in fback frequency Greg Kroah-Hartman
2021-09-27 17:00 ` Greg Kroah-Hartman [this message]
2021-09-27 17:00 ` [PATCH 5.14 008/162] usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 009/162] usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned() Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 010/162] cifs: Not to defer close on file when lock is set Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 011/162] cifs: Fix soft lockup during fsstress Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 012/162] cifs: fix incorrect check for null pointer in header_assemble Greg Kroah-Hartman
2021-09-27 17:00 ` [PATCH 5.14 013/162] xen/x86: fix PV trap handling on secondary processors Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 014/162] usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 015/162] USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 016/162] USB: cdc-acm: fix minor-number release Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 017/162] Revert "USB: bcma: Add a check for devm_gpiod_get" Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 018/162] binder: make sure fd closes complete Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 019/162] binder: fix freeze race Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 020/162] staging: greybus: uart: fix tty use after free Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 021/162] usb: isp1760: do not sleep in field register poll Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 022/162] Re-enable UAS for LaCie Rugged USB3-FW with fk quirk Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 023/162] usb: dwc3: core: balance phy init and exit Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 024/162] usb: cdns3: fix race condition before setting doorbell Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 025/162] usb: core: hcd: Add support for deferring roothub registration Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 026/162] USB: serial: mos7840: remove duplicated 0xac24 device ID Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 027/162] USB: serial: option: add Telit LN920 compositions Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 028/162] USB: serial: option: remove duplicate USB device ID Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 029/162] USB: serial: option: add device id for Foxconn T99W265 Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 030/162] misc: bcm-vk: fix tty registration race Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 031/162] misc: genwqe: Fixes DMA mask setting Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 032/162] mcb: fix error handling in mcb_alloc_bus() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 033/162] KVM: rseq: Update rseq when processing NOTIFY_RESUME on xfer to KVM guest Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 034/162] erofs: fix up erofs_lookup tracepoint Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 035/162] nexthop: Fix division by zero while replacing a resilient group Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 036/162] btrfs: prevent __btrfs_dump_space_info() to underflow its free space Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 037/162] xhci: Set HCD flag to defer primary roothub registration Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 038/162] serial: 8250: 8250_omap: Fix RX_LVL register offset Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 039/162] serial: mvebu-uart: fix drivers tx_empty callback Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 040/162] scsi: sd_zbc: Ensure buffer size is aligned to SECTOR_SIZE Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 041/162] drm/amd/pm: Update intermediate power state for SI Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 042/162] net: hso: fix muxed tty registration Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 043/162] platform/x86: amd-pmc: Increase the response register timeout Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 044/162] arm64: Restore forced disabling of KPTI on ThunderX Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 045/162] arm64: Mitigate MTE issues with str{n}cmp() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 046/162] comedi: Fix memory leak in compat_insnlist() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 047/162] regulator: qcom-rpmh-regulator: fix pm8009-1 ldo7 resource name Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 048/162] afs: Fix page leak Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 049/162] afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 050/162] afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 051/162] afs: Fix updating of i_blocks on file/dir extension Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 052/162] platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 053/162] regulator: max14577: Revert "regulator: max14577: Add proper module aliases strings" Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 054/162] NLM: Fix svcxdr_encode_owner() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 055/162] virtio-net: fix pages leaking when building skb in big mode Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 056/162] enetc: Fix illegal access when reading affinity_hint Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 057/162] enetc: Fix uninitialized struct dim_sample field usage Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 058/162] igc: fix build errors for PTP Greg Kroah-Hartman
2021-10-04 4:15 ` Andre Tomt
2021-10-04 10:48 ` Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 059/162] net: dsa: tear down devlink port regions when tearing down the devlink port on error Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 060/162] net: bgmac-bcma: handle deferred probe error due to mac-address Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 061/162] napi: fix race inside napi_enable Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 062/162] bnxt_en: Fix TX timeout when TX ring size is set to the smallest Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 063/162] net: hns3: fix change RSS hfunc ineffective issue Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 064/162] net: hns3: fix inconsistent vf id print Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 065/162] net: hns3: fix misuse vf id and vport id in some logs Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 066/162] net: hns3: check queue id range before using Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 067/162] net: hns3: check vlan id before using it Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 068/162] net: hns3: fix a return value error in hclge_get_reset_status() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 069/162] net/smc: add missing error check in smc_clc_prfx_set() Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 070/162] net/smc: fix workqueue leaked lock in smc_conn_abort_work Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 071/162] net: dsa: fix dsa_tree_setup error path Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 072/162] net: dsa: dont allocate the slave_mii_bus using devres Greg Kroah-Hartman
2021-09-27 17:01 ` [PATCH 5.14 073/162] net: dsa: realtek: register the MDIO bus under devres Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 074/162] platform/x86: dell: fix DELL_WMI_PRIVACY dependencies & build error Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 075/162] kselftest/arm64: signal: Add SVE to the set of features we can check for Greg Kroah-Hartman
2021-09-27 17:16 ` Mark Brown
2021-09-28 4:47 ` Sasha Levin
2021-09-27 17:02 ` [PATCH 5.14 076/162] kselftest/arm64: signal: Skip tests if required features are missing Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 077/162] spi: Revert modalias changes Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 078/162] s390/qeth: fix NULL deref in qeth_clear_working_pool_list() Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 079/162] s390/qeth: fix deadlock during failing recovery Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 080/162] gpiolib: acpi: Make set-debounce-timeout failures non fatal Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 081/162] gpio: uniphier: Fix void functions to remove return value Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 082/162] qed: rdma - dont wait for resources under hw error recovery flow Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 083/162] mptcp: ensure tx skbs always have the MPTCP ext Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 084/162] nexthop: Fix memory leaks in nexthop notification chain listeners Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 085/162] nfc: st-nci: Add SPI ID matching DT compatible Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 086/162] net: ethernet: mtk_eth_soc: avoid creating duplicate offload entries Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 087/162] net: mscc: ocelot: fix forwarding from BLOCKING ports remaining enabled Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 088/162] net/mlx4_en: Dont allow aRFS for encapsulated packets Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 089/162] atlantic: Fix issue in the pm resume flow Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 090/162] drm/amdkfd: map SVM range with correct access permission Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 091/162] drm/amdkfd: fix dma mapping leaking warning Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 092/162] scsi: iscsi: Adjust iface sysfs attr detection Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 093/162] scsi: target: Fix the pgr/alua_support_store functions Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 094/162] tty: synclink_gt: rename a conflicting function name Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 095/162] fpga: machxo2-spi: Return an error on failure Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 096/162] fpga: machxo2-spi: Fix missing error code in machxo2_write_complete() Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 097/162] x86/fault: Fix wrong signal when vsyscall fails with pkey Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 098/162] nvme-tcp: fix incorrect h2cdata pdu offset accounting Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 099/162] nvme: keep ctrl->namespaces ordered Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 100/162] thermal/core: Potential buffer overflow in thermal_build_list_of_policies() Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 101/162] cifs: fix a sign extension bug Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 102/162] scsi: sd_zbc: Support disks with more than 2**32 logical blocks Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 103/162] scsi: ufs: Revert "Utilize Transfer Request List Completion Notification Register" Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 104/162] scsi: ufs: Retry aborted SCSI commands instead of completing these successfully Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 105/162] scsi: ufs: core: Unbreak the reset handler Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 106/162] scsi: qla2xxx: Restore initiator in dual mode Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 107/162] scsi: lpfc: Use correct scnprintf() limit Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 108/162] irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 109/162] irqchip/gic-v3-its: Fix potential VPE leak on error Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 110/162] md: fix a lock order reversal in md_alloc Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 111/162] x86/asm: Fix SETZ size enqcmds() build failure Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 112/162] io_uring: fix race between poll completion and cancel_hash insertion Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 113/162] io_uring: fix missing set of EPOLLONESHOT for CQ ring overflow Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 114/162] io_uring: put provided buffer meta data under memcg accounting Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 115/162] io_uring: dont punt files update to io-wq unconditionally Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 116/162] blktrace: Fix uaf in blk_trace access after removing by sysfs Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 117/162] net: phylink: Update SFP selected interface on advertising changes Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 118/162] net: macb: fix use after free on rmmod Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 119/162] net: stmmac: allow CSR clock of 300MHz Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 120/162] blk-mq: avoid to iterate over stale request Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 121/162] m68k: Double cast io functions to unsigned long Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 122/162] ipv6: delay fib6_sernum increase in fib6_add Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 123/162] dma-debug: prevent an error message from causing runtime problems Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 124/162] cpufreq: intel_pstate: Override parameters if HWP forced by BIOS Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 125/162] bpf: Add oversize check before call kvcalloc() Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 126/162] xen/balloon: use a kernel thread instead a workqueue Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 127/162] nvme-multipath: fix ANA state updates when a namespace is not present Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 128/162] nvme-rdma: destroy cm id before destroy qp to avoid use after free Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 129/162] sparc32: page align size in arch_dma_alloc Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 130/162] amd/display: downgrade validation failure log level Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 131/162] drm/ttm: fix type mismatch error on sparc64 Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 132/162] block: check if a profile is actually registered in blk_integrity_unregister Greg Kroah-Hartman
2021-09-27 17:02 ` [PATCH 5.14 133/162] block: flush the integrity workqueue " Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 134/162] blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 135/162] compiler.h: Introduce absolute_pointer macro Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 136/162] net: i825xx: Use absolute_pointer for memcpy from fixed memory location Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 137/162] sparc: avoid stringop-overread errors Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 138/162] qnx4: " Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 139/162] parisc: Use absolute_pointer() to define PAGE0 Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 140/162] drm/amdkfd: make needs_pcie_atomics FW-version dependent Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 141/162] drm/amd/display: Fix unstable HPCP compliance on Chrome Barcelo Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 142/162] drm/amd/display: Link training retry fix for abort case Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 143/162] amd/display: enable panel orientation quirks Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 144/162] arm64: Mark __stack_chk_guard as __ro_after_init Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 145/162] alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 146/162] net: 6pack: Fix tx timeout and slot time Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 147/162] spi: Fix tegra20 build with CONFIG_PM=n Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 148/162] libperf evsel: Make use of FD robust Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 149/162] Revert drm/vc4 hdmi runtime PM changes Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 150/162] EDAC/synopsys: Fix wrong value type assignment for edac_mode Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 151/162] EDAC/dmc520: Assign the proper type to dimm->edac_mode Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 152/162] x86/setup: Call early_reserve_memory() earlier Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 153/162] thermal/drivers/int340x: Do not set a wrong tcc offset on resume Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 154/162] irqchip/armada-370-xp: Fix ack/eoi breakage Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 155/162] arm64: add MTE supported check to thread switching and syscall entry/exit Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 156/162] USB: serial: cp210x: fix dropped characters with CP2102 Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 157/162] software node: balance refcount for managed software nodes Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 158/162] xen/balloon: fix balloon kthread freezing Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 159/162] qnx4: work around gcc false positive warning bug Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 160/162] nvmet: fix a width vs precision bug in nvmet_subsys_attr_serial_show() Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 161/162] usb: gadget: f_uac2: Add missing companion descriptor for feedback EP Greg Kroah-Hartman
2021-09-27 17:03 ` [PATCH 5.14 162/162] usb: gadget: f_uac2: Populate SS descriptors wBytesPerInterval Greg Kroah-Hartman
2021-09-27 18:23 ` [PATCH 5.14 000/162] 5.14.9-rc1 review Naresh Kamboju
2021-09-27 18:36 ` Florian Fainelli
2021-09-27 20:29 ` Fox Chen
2021-09-27 22:58 ` Shuah Khan
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=20210927170233.709679556@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Minas.Harutyunyan@synopsys.com \
--cc=linux-kernel@vger.kernel.org \
--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