Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 8584aaf1c326 - Linux 5.1.16
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: FAILED
When we attempted to merge the patchset, we received an error:
error: patch failed: arch/arm64/Makefile:51
error: arch/arm64/Makefile: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch
Applying: arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS
Patch failed at 0001 arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 8584aaf1c326 - Linux 5.1.16
We grabbed the d0f506ba82ea commit of the stable queue repository.
We then merged the patchset with `git am`:
arm64-don-t-unconditionally-add-wno-psabi-to-kbuild_cflags.patch
I'm announcing the release of the 4.19.57 kernel.
All users of the 4.19 kernel series must upgrade.
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/robust-futexes.txt | 3
Makefile | 2
arch/arm64/Makefile | 2
arch/arm64/include/asm/futex.h | 4
arch/arm64/include/asm/insn.h | 8
arch/arm64/kernel/insn.c | 40 +
arch/arm64/net/bpf_jit.h | 4
arch/arm64/net/bpf_jit_comp.c | 28
arch/mips/include/asm/mips-gic.h | 30
arch/x86/kernel/cpu/bugs.c | 11
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 35 -
arch/x86/kernel/cpu/microcode/core.c | 15
arch/x86/kvm/mmu.c | 11
drivers/clk/socfpga/clk-s10.c | 4
drivers/infiniband/core/addr.c | 10
drivers/infiniband/hw/hfi1/user_sdma.c | 12
drivers/infiniband/hw/hfi1/user_sdma.h | 1
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 5
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 5
drivers/irqchip/irq-mips-gic.c | 4
drivers/md/dm-log-writes.c | 23
drivers/misc/eeprom/at24.c | 43 -
drivers/net/bonding/bond_main.c | 2
drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 2
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 22
drivers/net/team/team.c | 2
drivers/net/tun.c | 19
drivers/net/usb/qmi_wwan.c | 2
drivers/scsi/vmw_pvscsi.c | 6
drivers/usb/dwc3/core.h | 15
drivers/usb/dwc3/gadget.c | 160 +----
drivers/usb/dwc3/gadget.h | 15
fs/9p/acl.c | 2
fs/binfmt_flat.c | 23
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 2
fs/proc/array.c | 2
include/asm-generic/futex.h | 8
include/linux/bpf-cgroup.h | 8
include/linux/sunrpc/xprt.h | 1
include/net/9p/9p.h | 4
include/net/9p/client.h | 71 --
include/uapi/linux/bpf.h | 6
kernel/bpf/lpm_trie.c | 9
kernel/bpf/syscall.c | 8
kernel/bpf/verifier.c | 12
kernel/cpu.c | 3
kernel/trace/bpf_trace.c | 100 ++-
kernel/trace/trace_branch.c | 4
mm/hugetlb.c | 29
mm/memory-failure.c | 7
mm/mempolicy.c | 2
mm/page_idle.c | 4
net/9p/client.c | 551 +++++++++---------
net/9p/mod.c | 9
net/9p/protocol.c | 12
net/9p/trans_common.c | 1
net/9p/trans_fd.c | 64 +-
net/9p/trans_rdma.c | 37 -
net/9p/trans_virtio.c | 44 +
net/9p/trans_xen.c | 17
net/core/filter.c | 2
net/core/sock.c | 3
net/ipv4/raw.c | 2
net/ipv4/udp.c | 10
net/ipv6/udp.c | 8
net/packet/af_packet.c | 23
net/packet/internal.h | 1
net/sctp/endpointola.c | 8
net/sunrpc/clnt.c | 1
net/sunrpc/xprt.c | 91 +-
net/tipc/core.c | 12
net/tipc/netlink_compat.c | 18
net/tipc/udp_media.c | 8
tools/perf/builtin-help.c | 2
tools/perf/ui/tui/helpline.c | 2
tools/perf/util/header.c | 2
tools/testing/selftests/bpf/test_lpm_map.c | 41 +
77 files changed, 1073 insertions(+), 746 deletions(-)
Adeodato Simó (1):
net/9p: include trans_common.h to fix missing prototype warning.
Alejandro Jimenez (1):
x86/speculation: Allow guests to use SSBD even if host does not
Arnaldo Carvalho de Melo (3):
perf ui helpline: Use strlcpy() as a shorter form of strncpy() + explicit set nul
perf help: Remove needless use of strncpy()
perf header: Fix unchecked usage of strncpy()
Bjørn Mork (1):
qmi_wwan: Fix out-of-bounds read
Colin Ian King (1):
mm/page_idle.c: fix oops because end_pfn is larger than max_pfn
Dan Carpenter (1):
9p: potential NULL dereference
Daniel Borkmann (2):
bpf: fix unconnected udp hooks
bpf, arm64: use more scalable stadd over ldxr / stxr loop in xadd
Dinh Nguyen (1):
clk: socfpga: stratix10: fix divider entry for the emac clocks
Dominique Martinet (9):
9p/xen: fix check for xenbus_read error in front_probe
9p: embed fcall in req to round down buffer allocs
9p: add a per-client fcall kmem_cache
9p/rdma: do not disconnect on down_interruptible EAGAIN
9p: acl: fix uninitialized iattr access
9p/rdma: remove useless check in cm_event_handler
9p: p9dirent_read: check network-provided name length
9p/trans_fd: abort p9_read_work if req status changed
9p/trans_fd: put worker reqs on destroy
Eric Dumazet (1):
net/packet: fix memory leak in packet_set_ring()
Fei Li (1):
tun: wake up waitqueues after IFF_UP is set
Felipe Balbi (7):
usb: dwc3: gadget: combine unaligned and zero flags
usb: dwc3: gadget: track number of TRBs per request
usb: dwc3: gadget: use num_trbs when skipping TRBs on ->dequeue()
usb: dwc3: gadget: extract dwc3_gadget_ep_skip_trbs()
usb: dwc3: gadget: introduce cancelled_list
usb: dwc3: gadget: move requests to cancelled_list
usb: dwc3: gadget: remove wait_end_transfer
Geert Uytterhoeven (1):
cpu/speculation: Warn on unsupported mitigations= parameter
Greg Kroah-Hartman (1):
Linux 4.19.57
Jack Pham (1):
usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup
Jan Kara (1):
scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck()
Jann Horn (1):
fs/binfmt_flat.c: make load_flat_shared_library() work
Jason Gunthorpe (1):
RDMA: Directly cast the sockaddr union to sockaddr
Jean-Philippe Brucker (1):
arm64: insn: Fix ldadd instruction encoding
JingYi Hou (1):
net: remove duplicate fetch in sock_getsockopt
John Ogness (1):
fs/proc/array.c: allow reporting eip/esp for all coredumping threads
John Stultz (1):
Revert "usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup"
Jonathan Lemon (1):
bpf: lpm_trie: check left child of last leftmost node for NULL
Martin KaFai Lau (2):
bpf: udp: Avoid calling reuseport's bpf_prog from udp_gro
bpf: udp: ipv6: Avoid running reuseport's bpf_prog from __udp6_lib_err
Martynas Pumputis (1):
bpf: simplify definition of BPF_FIB_LOOKUP related flags
Matt Mullins (1):
bpf: fix nested bpf tracepoints with per-cpu data
Matthew Wilcox (1):
9p: Use a slab for allocating requests
Mike Marciniszyn (1):
IB/hfi1: Close PSM sdma_progress sleep window
Naoya Horiguchi (2):
mm: soft-offline: return -EBUSY if set_hwpoison_free_buddy_page() fails
mm: hugetlb: soft-offline: dissolve_free_huge_page() return zero on !PageHuge
Nathan Chancellor (1):
arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS
Neil Horman (1):
af_packet: Block execution of tasks waiting for transmit to complete in AF_PACKET
Paul Burton (1):
irqchip/mips-gic: Use the correct local interrupt map registers
Reinette Chatre (1):
x86/resctrl: Prevent possible overrun during bitmap operations
Roland Hii (2):
net: stmmac: fixed new system time seconds value calculation
net: stmmac: set IC bit when transmitting frames with HW timestamp
Sasha Levin (1):
Revert "x86/uaccess, ftrace: Fix ftrace_likely_update() vs. SMAP"
Sean Christopherson (1):
KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT
Stephen Suryaputra (1):
ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop
Thinh Nguyen (1):
usb: dwc3: Reset num_trbs after skipping
Thomas Gleixner (1):
x86/microcode: Fix the microcode load on CPU hotplug for real
Tomas Bortoli (3):
9p: rename p9_free_req() function
9p: Add refcount to p9_req_t
9p: Rename req to rreq in trans_fd
Trond Myklebust (2):
NFS/flexfiles: Use the correct TCP timeout for flexfiles I/O
SUNRPC: Clean up initialisation of the struct rpc_rqst
Wang Xin (1):
eeprom: at24: fix unexpected timeout under high load
Will Deacon (2):
arm64: futex: Avoid copying out uninitialised stack in failed cmpxchg()
futex: Update comments and docs about return values of arch futex code
Xin Long (4):
sctp: change to hold sk after auth shkey is created successfully
tipc: change to use register_pernet_device
tipc: check msg->req data len in tipc_nl_compat_bearer_disable
tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
YueHaibing (2):
bonding: Always enable vlan tx offload
team: Always enable vlan tx offload
zhangyi (F) (1):
dm log writes: make sure super sector log updates are written in order
zhong jiang (1):
mm/mempolicy.c: fix an incorrect rebind node in mpol_rebind_nodemask
I'm announcing the release of the 4.14.132 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/robust-futexes.txt | 3
Makefile | 2
arch/arm64/include/asm/futex.h | 4
arch/arm64/include/asm/insn.h | 8 +
arch/arm64/kernel/insn.c | 40 +++++
arch/arm64/net/bpf_jit.h | 4
arch/arm64/net/bpf_jit_comp.c | 28 ++-
arch/x86/kernel/cpu/bugs.c | 11 +
arch/x86/kernel/cpu/microcode/core.c | 15 +-
block/bio.c | 131 +++++++++++++-----
drivers/infiniband/hw/hfi1/user_sdma.c | 12 -
drivers/infiniband/hw/hfi1/user_sdma.h | 1
drivers/md/dm-log-writes.c | 23 ++-
drivers/misc/eeprom/at24.c | 107 ++++++++++----
drivers/net/bonding/bond_main.c | 2
drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 2
drivers/net/team/team.c | 2
drivers/net/tun.c | 19 +-
drivers/net/usb/qmi_wwan.c | 4
drivers/scsi/vmw_pvscsi.c | 6
fs/9p/acl.c | 2
fs/binfmt_flat.c | 23 ---
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 2
fs/proc/array.c | 2
include/asm-generic/futex.h | 8 -
include/linux/bio.h | 9 +
include/linux/compiler.h | 5
kernel/cpu.c | 3
kernel/trace/trace_branch.c | 4
mm/mempolicy.c | 2
mm/page_idle.c | 4
net/9p/protocol.c | 12 +
net/9p/trans_common.c | 1
net/9p/trans_rdma.c | 7
net/9p/trans_xen.c | 4
net/core/sock.c | 3
net/ipv4/raw.c | 2
net/ipv4/udp.c | 6
net/ipv6/udp.c | 4
net/packet/af_packet.c | 23 ++-
net/packet/internal.h | 1
net/sctp/endpointola.c | 8 -
net/tipc/core.c | 12 -
net/tipc/netlink_compat.c | 18 ++
net/tipc/udp_media.c | 8 -
tools/perf/builtin-help.c | 2
tools/perf/ui/tui/helpline.c | 2
tools/perf/util/header.c | 2
48 files changed, 417 insertions(+), 186 deletions(-)
Adeodato Simó (1):
net/9p: include trans_common.h to fix missing prototype warning.
Alejandro Jimenez (1):
x86/speculation: Allow guests to use SSBD even if host does not
Arnaldo Carvalho de Melo (3):
perf ui helpline: Use strlcpy() as a shorter form of strncpy() + explicit set nul
perf help: Remove needless use of strncpy()
perf header: Fix unchecked usage of strncpy()
Christoph Hellwig (1):
block: add a lower-level bio_add_page interface
Colin Ian King (1):
mm/page_idle.c: fix oops because end_pfn is larger than max_pfn
Daniel Borkmann (1):
bpf, arm64: use more scalable stadd over ldxr / stxr loop in xadd
Dominique Martinet (5):
9p/xen: fix check for xenbus_read error in front_probe
9p/rdma: do not disconnect on down_interruptible EAGAIN
9p: acl: fix uninitialized iattr access
9p/rdma: remove useless check in cm_event_handler
9p: p9dirent_read: check network-provided name length
Eric Dumazet (1):
net/packet: fix memory leak in packet_set_ring()
Fei Li (1):
tun: wake up waitqueues after IFF_UP is set
Geert Uytterhoeven (1):
cpu/speculation: Warn on unsupported mitigations= parameter
Greg Kroah-Hartman (1):
Linux 4.14.132
Jan Kara (1):
scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck()
Jann Horn (1):
fs/binfmt_flat.c: make load_flat_shared_library() work
Jean-Philippe Brucker (1):
arm64: insn: Fix ldadd instruction encoding
JingYi Hou (1):
net: remove duplicate fetch in sock_getsockopt
John Ogness (1):
fs/proc/array.c: allow reporting eip/esp for all coredumping threads
Kristian Evensen (1):
qmi_wwan: Fix out-of-bounds read
Martin KaFai Lau (2):
bpf: udp: Avoid calling reuseport's bpf_prog from udp_gro
bpf: udp: ipv6: Avoid running reuseport's bpf_prog from __udp6_lib_err
Martin Wilck (1):
block: bio_iov_iter_get_pages: pin more pages for multi-segment IOs
Mike Marciniszyn (1):
IB/hfi1: Close PSM sdma_progress sleep window
Neil Horman (1):
af_packet: Block execution of tasks waiting for transmit to complete in AF_PACKET
Roland Hii (1):
net: stmmac: fixed new system time seconds value calculation
Sasha Levin (2):
Revert "x86/uaccess, ftrace: Fix ftrace_likely_update() vs. SMAP"
Revert "compiler.h: update definition of unreachable()"
Stephen Suryaputra (1):
ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop
Thomas Gleixner (1):
x86/microcode: Fix the microcode load on CPU hotplug for real
Trond Myklebust (1):
NFS/flexfiles: Use the correct TCP timeout for flexfiles I/O
Wang Xin (1):
eeprom: at24: fix unexpected timeout under high load
Will Deacon (2):
arm64: futex: Avoid copying out uninitialised stack in failed cmpxchg()
futex: Update comments and docs about return values of arch futex code
Xin Long (4):
sctp: change to hold sk after auth shkey is created successfully
tipc: change to use register_pernet_device
tipc: check msg->req data len in tipc_nl_compat_bearer_disable
tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb
YueHaibing (2):
team: Always enable vlan tx offload
bonding: Always enable vlan tx offload
zhangyi (F) (1):
dm log writes: make sure super sector log updates are written in order
zhong jiang (1):
mm/mempolicy.c: fix an incorrect rebind node in mpol_rebind_nodemask
This is a note to let you know that I've just added the patch titled
usb: renesas_usbhs: add a workaround for a race condition of
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-next branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release
during the merge window.
If you have any questions about this process, please let me know.
>From b2357839c56ab7d06bcd4e866ebc2d0e2b7997f3 Mon Sep 17 00:00:00 2001
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
Date: Wed, 26 Jun 2019 22:06:33 +0900
Subject: usb: renesas_usbhs: add a workaround for a race condition of
workqueue
The old commit 6e4b74e4690d ("usb: renesas: fix scheduling in atomic
context bug") fixed an atomic issue by using workqueue for the shdmac
dmaengine driver. However, this has a potential race condition issue
between the work pending and usbhsg_ep_free_request() in gadget mode.
When usbhsg_ep_free_request() is called while pending the queue,
since the work_struct will be freed and then the work handler is
called, kernel panic happens on process_one_work().
To fix the issue, if we could call cancel_work_sync() at somewhere
before the free request, it could be easy. However,
the usbhsg_ep_free_request() is called on atomic (e.g. f_ncm driver
calls free request via gether_disconnect()).
For now, almost all users are having "USB-DMAC" and the DMAengine
driver can be used on atomic. So, this patch adds a workaround for
a race condition to call the DMAengine APIs without the workqueue.
This means we still have TODO on shdmac environment (SH7724), but
since it doesn't have SMP, the race condition might not happen.
Fixes: ab330cf3888d ("usb: renesas_usbhs: add support for USB-DMAC")
Cc: <stable(a)vger.kernel.org> # v4.1+
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi(a)linux.intel.com>
---
drivers/usb/renesas_usbhs/fifo.c | 34 +++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index e84d2ac2a30a..1a0ab639dd22 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -803,9 +803,8 @@ static int __usbhsf_dma_map_ctrl(struct usbhs_pkt *pkt, int map)
}
static void usbhsf_dma_complete(void *arg);
-static void xfer_work(struct work_struct *work)
+static void usbhsf_dma_xfer_preparing(struct usbhs_pkt *pkt)
{
- struct usbhs_pkt *pkt = container_of(work, struct usbhs_pkt, work);
struct usbhs_pipe *pipe = pkt->pipe;
struct usbhs_fifo *fifo;
struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
@@ -813,12 +812,10 @@ static void xfer_work(struct work_struct *work)
struct dma_chan *chan;
struct device *dev = usbhs_priv_to_dev(priv);
enum dma_transfer_direction dir;
- unsigned long flags;
- usbhs_lock(priv, flags);
fifo = usbhs_pipe_to_fifo(pipe);
if (!fifo)
- goto xfer_work_end;
+ return;
chan = usbhsf_dma_chan_get(fifo, pkt);
dir = usbhs_pipe_is_dir_in(pipe) ? DMA_DEV_TO_MEM : DMA_MEM_TO_DEV;
@@ -827,7 +824,7 @@ static void xfer_work(struct work_struct *work)
pkt->trans, dir,
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
if (!desc)
- goto xfer_work_end;
+ return;
desc->callback = usbhsf_dma_complete;
desc->callback_param = pipe;
@@ -835,7 +832,7 @@ static void xfer_work(struct work_struct *work)
pkt->cookie = dmaengine_submit(desc);
if (pkt->cookie < 0) {
dev_err(dev, "Failed to submit dma descriptor\n");
- goto xfer_work_end;
+ return;
}
dev_dbg(dev, " %s %d (%d/ %d)\n",
@@ -846,8 +843,17 @@ static void xfer_work(struct work_struct *work)
dma_async_issue_pending(chan);
usbhsf_dma_start(pipe, fifo);
usbhs_pipe_enable(pipe);
+}
+
+static void xfer_work(struct work_struct *work)
+{
+ struct usbhs_pkt *pkt = container_of(work, struct usbhs_pkt, work);
+ struct usbhs_pipe *pipe = pkt->pipe;
+ struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
+ unsigned long flags;
-xfer_work_end:
+ usbhs_lock(priv, flags);
+ usbhsf_dma_xfer_preparing(pkt);
usbhs_unlock(priv, flags);
}
@@ -900,8 +906,13 @@ static int usbhsf_dma_prepare_push(struct usbhs_pkt *pkt, int *is_done)
pkt->trans = len;
usbhsf_tx_irq_ctrl(pipe, 0);
- INIT_WORK(&pkt->work, xfer_work);
- schedule_work(&pkt->work);
+ /* FIXME: Workaound for usb dmac that driver can be used in atomic */
+ if (usbhs_get_dparam(priv, has_usb_dmac)) {
+ usbhsf_dma_xfer_preparing(pkt);
+ } else {
+ INIT_WORK(&pkt->work, xfer_work);
+ schedule_work(&pkt->work);
+ }
return 0;
@@ -1007,8 +1018,7 @@ static int usbhsf_dma_prepare_pop_with_usb_dmac(struct usbhs_pkt *pkt,
pkt->trans = pkt->length;
- INIT_WORK(&pkt->work, xfer_work);
- schedule_work(&pkt->work);
+ usbhsf_dma_xfer_preparing(pkt);
return 0;
--
2.22.0
This is a note to let you know that I've just added the patch titled
usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-next branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release
during the merge window.
If you have any questions about this process, please let me know.
>From dfc4fdebc5d62ac4e2fe5428e59b273675515fb2 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl(a)googlemail.com>
Date: Thu, 20 Jun 2019 19:50:22 +0200
Subject: usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
Use a 10000us AHB idle timeout in dwc2_core_reset() and make it
consistent with the other "wait for AHB master IDLE state" ocurrences.
This fixes a problem for me where dwc2 would not want to initialize when
updating to 4.19 on a MIPS Lantiq VRX200 SoC. dwc2 worked fine with
4.14.
Testing on my board shows that it takes 180us until AHB master IDLE
state is signalled. The very old vendor driver for this SoC (ifxhcd)
used a 1 second timeout.
Use the same timeout that is used everywhere when polling for
GRSTCTL_AHBIDLE instead of using a timeout that "works for one board"
(180us in my case) to have consistent behavior across the dwc2 driver.
Cc: linux-stable <stable(a)vger.kernel.org> # 4.19+
Acked-by: Minas Harutyunyan <hminas(a)synopsys.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl(a)googlemail.com>
Signed-off-by: Felipe Balbi <felipe.balbi(a)linux.intel.com>
---
drivers/usb/dwc2/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
index 8b499d643461..8e41d70fd298 100644
--- a/drivers/usb/dwc2/core.c
+++ b/drivers/usb/dwc2/core.c
@@ -531,7 +531,7 @@ int dwc2_core_reset(struct dwc2_hsotg *hsotg, bool skip_wait)
}
/* Wait for AHB master IDLE state */
- if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 50)) {
+ if (dwc2_hsotg_wait_bit_set(hsotg, GRSTCTL, GRSTCTL_AHBIDLE, 10000)) {
dev_warn(hsotg->dev, "%s: HANG! AHB Idle timeout GRSTCTL GRSTCTL_AHBIDLE\n",
__func__);
return -EBUSY;
--
2.22.0
This is a note to let you know that I've just added the patch titled
USB: serial: ftdi_sio: add ID for isodebug v1
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-next branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release
during the merge window.
If you have any questions about this process, please let me know.
>From f8377eff548170e8ea8022c067a1fbdf9e1c46a8 Mon Sep 17 00:00:00 2001
From: Andreas Fritiofson <andreas.fritiofson(a)unjo.com>
Date: Fri, 28 Jun 2019 15:08:34 +0200
Subject: USB: serial: ftdi_sio: add ID for isodebug v1
This adds the vid:pid of the isodebug v1 isolated JTAG/SWD+UART. Only the
second channel is available for use as a serial port.
Signed-off-by: Andreas Fritiofson <andreas.fritiofson(a)unjo.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/serial/ftdi_sio.c | 1 +
drivers/usb/serial/ftdi_sio_ids.h | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 1d8461ae2c34..23669a584bae 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1029,6 +1029,7 @@ static const struct usb_device_id id_table_combined[] = {
{ USB_DEVICE(AIRBUS_DS_VID, AIRBUS_DS_P8GR) },
/* EZPrototypes devices */
{ USB_DEVICE(EZPROTOTYPES_VID, HJELMSLUND_USB485_ISO_PID) },
+ { USB_DEVICE_INTERFACE_NUMBER(UNJO_VID, UNJO_ISODEBUG_V1_PID, 1) },
{ } /* Terminating entry */
};
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
index 5755f0df0025..f12d806220b4 100644
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -1543,3 +1543,9 @@
#define CHETCO_SEASMART_DISPLAY_PID 0xA5AD /* SeaSmart NMEA2000 Display */
#define CHETCO_SEASMART_LITE_PID 0xA5AE /* SeaSmart Lite USB Adapter */
#define CHETCO_SEASMART_ANALOG_PID 0xA5AF /* SeaSmart Analog Adapter */
+
+/*
+ * Unjo AB
+ */
+#define UNJO_VID 0x22B7
+#define UNJO_ISODEBUG_V1_PID 0x150D
--
2.22.0
Hi Greg,
Would you consider to take the following patches for -stable?
e75b3e1c9bc5 netfilter: nf_flow_table: ignore DF bit setting
8437a6209f76 netfilter: nft_flow_offload: set liberal tracking mode for tcp
91a9048f2380 netfilter: nft_flow_offload: don't offload when sequence numbers need adjustment
69aeb538587e netfilter: nft_flow_offload: IPCB is only valid for ipv4 family
Users report this is fixing a connection stall in:
https://bugzilla.kernel.org/show_bug.cgi?id=203671
Thanks.
-----------------------------------------------------------------
This patch is not on mainline and is meant to 4.19 stable *only*.
After the patch description there's a reasoning about that.
-----------------------------------------------------------------
Commit 37f9579f4c31 ("blk-mq: Avoid that submitting a bio concurrently
with device removal triggers a crash") introduced a NULL pointer
dereference in generic_make_request(). The patch sets q to NULL and
enter_succeeded to false; right after, there's an 'if (enter_succeeded)'
which is not taken, and then the 'else' will dereference q in
blk_queue_dying(q).
This patch just moves the 'q = NULL' to a point in which it won't trigger
the oops, although the semantics of this NULLification remains untouched.
A simple test case/reproducer is as follows:
a) Build kernel v4.19.56-stable with CONFIG_BLK_CGROUP=n.
b) Create a raid0 md array with 2 NVMe devices as members, and mount
it with an ext4 filesystem.
c) Run the following oneliner (supposing the raid0 is mounted in /mnt):
(dd of=/mnt/tmp if=/dev/zero bs=1M count=999 &); sleep 0.3;
echo 1 > /sys/block/nvme1n1/device/device/remove
(whereas nvme1n1 is the 2nd array member)
This will trigger the following oops:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000078
PGD 0 P4D 0
Oops: 0000 [#1] SMP PTI
RIP: 0010:generic_make_request+0x32b/0x400
Call Trace:
submit_bio+0x73/0x140
ext4_io_submit+0x4d/0x60
ext4_writepages+0x626/0xe90
do_writepages+0x4b/0xe0
[...]
This patch has no functional changes and preserves the md/raid0 behavior
when a member is removed before kernel v4.17.
----------------------------
Why this is not on mainline?
----------------------------
The patch was originally submitted upstream in linux-raid and
linux-block mailing-lists - it was initially accepted by Song Liu,
but Christoph Hellwig[0] observed that there was a clean-up series
ready to be accepted from Ming Lei[1] that fixed the same issue.
The accepted patches from Ming's series in upstream are: commit
47cdee29ef9d ("block: move blk_exit_queue into __blk_release_queue") and
commit fe2008640ae3 ("block: don't protect generic_make_request_checks
with blk_queue_enter"). Those patches basically do a clean-up in the
block layer involving:
1) Putting back blk_exit_queue() logic into __blk_release_queue(); that
path was changed in the past and the logic from blk_exit_queue() was
added to blk_cleanup_queue().
2) Removing the guard/protection in generic_make_request_checks() with
blk_queue_enter().
The problem with Ming's series for -stable is that it relies in the
legacy request IO path removal. So it's "backport-able" to v5.0+,
but doing that for early versions (like 4.19) would incur in complex
code changes. Hence, it was suggested by Christoph and Song Liu that
this patch was submitted to stable only; otherwise merging it upstream
would add code to fix a path removed in a subsequent commit.
[0] lore.kernel.org/linux-block/20190521172258.GA32702@infradead.org
[1] lore.kernel.org/linux-block/20190515030310.20393-1-ming.lei@redhat.com
Cc: Christoph Hellwig <hch(a)lst.de>
Cc: Jens Axboe <axboe(a)kernel.dk>
Cc: Song Liu <songliubraving(a)fb.com>
Reviewed-by: Bart Van Assche <bvanassche(a)acm.org>
Reviewed-by: Ming Lei <ming.lei(a)redhat.com>
Tested-by: Eric Ren <renzhengeek(a)gmail.com>
Fixes: 37f9579f4c31 ("blk-mq: Avoid that submitting a bio concurrently with device removal triggers a crash")
Signed-off-by: Guilherme G. Piccoli <gpiccoli(a)canonical.com>
---
block/blk-core.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 6eed5d84c2ef..682bc561b77b 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2445,10 +2445,8 @@ blk_qc_t generic_make_request(struct bio *bio)
flags = 0;
if (bio->bi_opf & REQ_NOWAIT)
flags = BLK_MQ_REQ_NOWAIT;
- if (blk_queue_enter(q, flags) < 0) {
+ if (blk_queue_enter(q, flags) < 0)
enter_succeeded = false;
- q = NULL;
- }
}
if (enter_succeeded) {
@@ -2479,6 +2477,7 @@ blk_qc_t generic_make_request(struct bio *bio)
bio_wouldblock_error(bio);
else
bio_io_error(bio);
+ q = NULL;
}
bio = bio_list_pop(&bio_list_on_stack[0]);
} while (bio);
--
2.22.0