Commit 7b668c064ec3 ("serial: 8250: Fix max baud limit in generic 8250
port") fixed limits of a baud rate setting for a generic 8250 port.
In other words since that commit the baud rate has been permitted to be
within [uartclk / 16 / UART_DIV_MAX; uartclk / 16], which is absolutely
normal for a standard 8250 UART port. But there are custom 8250 ports,
which provide extended baud rate limits. In particular the Mediatek 8250
port can work with baud rates up to "uartclk" speed.
Normally that and any other peculiarity is supposed to be handled in a
custom set_termios() callback implemented in the vendor-specific
8250-port glue-driver. Currently that is how it's done for the most of
the vendor-specific 8250 ports, but for some reason for Mediatek a
solution has been spread out to both the glue-driver and to the generic
8250-port code. Due to that a bug has been introduced, which permitted the
extended baud rate limit for all even for standard 8250-ports. The bug
has been fixed by the commit 7b668c064ec3 ("serial: 8250: Fix max baud
limit in generic 8250 port") by narrowing the baud rates limit back down to
the normal bounds. Unfortunately by doing so we also broke the
Mediatek-specific extended bauds feature.
A fix of the problem described above is twofold. First since we can't get
back the extended baud rate limits feature to the generic set_termios()
function and that method supports only a standard baud rates range, the
requested baud rate must be locally stored before calling it and then
restored back to the new termios structure after the generic set_termios()
finished its magic business. By doing so we still use the
serial8250_do_set_termios() method to set the LCR/MCR/FCR/etc. registers,
while the extended baud rate setting procedure will be performed later in
the custom Mediatek-specific set_termios() callback. Second since a true
baud rate is now fully calculated in the custom set_termios() method we
need to locally update the port timeout by calling the
uart_update_timeout() function. After the fixes described above are
implemented in the 8250_mtk.c driver, the Mediatek 8250-port should
get back to normally working with extended baud rates.
Link: https://lore.kernel.org/linux-serial/20200701211337.3027448-1-danielwinklerβ¦
Fixes: 7b668c064ec3 ("serial: 8250: Fix max baud limit in generic 8250 port")
Reported-by: Daniel Winkler <danielwinkler(a)google.com>
Signed-off-by: Serge Semin <Sergey.Semin(a)baikalelectronics.ru>
---
Folks, sorry for a delay with the problem fix. A solution is turned out to
be a bit more complicated than I originally thought in my comment to the
Daniel revert-patch.
Please also note, that I don't have a Mediatek hardware to test the
solution suggested in the patch. The code is written as on so called
the tip of the pen after digging into the 8250_mtk.c and 8250_port.c
drivers code. So please Daniel or someone with Mediatek 8250-port
available on a board test this patch first and report about the results in
reply to this emailing thread. After that, if your conclusion is positive
and there is no objection against the solution design the patch can be
merged in.
Cc: Alexey Malahov <Alexey.Malahov(a)baikalelectronics.ru>
Cc: Daniel Winkler <danielwinkler(a)google.com>
Cc: Aaron Sierra <asierra(a)xes-inc.com>
Cc: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
Cc: Lukas Wunner <lukas(a)wunner.de>
Cc: Vignesh Raghavendra <vigneshr(a)ti.com>
Cc: linux-serial(a)vger.kernel.org
Cc: linux-mediatek(a)lists.infradead.org
Cc: BlueZ <linux-bluetooth(a)vger.kernel.org>
Cc: chromeos-bluetooth-upstreaming <chromeos-bluetooth-upstreaming(a)chromium.org>
Cc: abhishekpandit(a)chromium.org
Cc: stable(a)vger.kernel.org
---
drivers/tty/serial/8250/8250_mtk.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c
index f839380c2f4c..98b8a3e30733 100644
--- a/drivers/tty/serial/8250/8250_mtk.c
+++ b/drivers/tty/serial/8250/8250_mtk.c
@@ -306,8 +306,21 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
}
#endif
+ /*
+ * Store the requested baud rate before calling the generic 8250
+ * set_termios method. Standard 8250 port expects bauds to be
+ * no higher than (uartclk / 16) so the baud will be clamped if it
+ * gets out of that bound. Mediatek 8250 port supports speed
+ * higher than that, therefore we'll get original baud rate back
+ * after calling the generic set_termios method and recalculate
+ * the speed later in this method.
+ */
+ baud = tty_termios_baud_rate(termios);
+
serial8250_do_set_termios(port, termios, old);
+ tty_termios_encode_baud_rate(termios, baud, baud);
+
/*
* Mediatek UARTs use an extra highspeed register (MTK_UART_HIGHS)
*
@@ -339,6 +352,11 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
*/
spin_lock_irqsave(&port->lock, flags);
+ /*
+ * Update the per-port timeout.
+ */
+ uart_update_timeout(port, termios->c_cflag, baud);
+
/* set DLAB we have cval saved in up->lcr from the call to the core */
serial_port_out(port, UART_LCR, up->lcr | UART_LCR_DLAB);
serial_dl_write(up, quot);
--
2.26.2
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: c2fb28a4b6e4 - Linux 5.7.9-rc1
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: OK
Tests: PANICKED
All kernel binaries, config files, and logs are available for download here:
https://cki-artifacts.s3.us-east-2.amazonaws.com/index.html?prefix=datawareβ¦
One or more kernel tests failed:
s390x:
β Boot test
β Boot test
π₯ Boot test
ppc64le:
β Loopdev Sanity
aarch64:
β Loopdev Sanity
x86_64:
β Loopdev Sanity
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
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
s390x:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
β Boot test
β ACPI table test
β ACPI enabled test
β Podman system integration test - as root
β Podman system integration test - as user
β LTP
β Loopdev Sanity
β Memory function: memfd_create
β AMTU (Abstract Machine Test Utility)
β Networking bridge: sanity
β Ethernet drivers sanity
β Networking socket: fuzz
β Networking: igmp conformance test
β Networking route: pmtu
β Networking route_func - local
β Networking route_func - forward
β Networking TCP: keepalive test
β Networking UDP: socket
β Networking tunnel: geneve basic test
β Networking tunnel: gre basic
β L2TP basic test
β Networking tunnel: vxlan basic
β Networking ipsec: basic netns - transport
β Networking ipsec: basic netns - tunnel
β Libkcapi AF_ALG test
β pciutils: update pci ids test
β ALSA PCM loopback test
β ALSA Control (mixer) Userspace Element test
β storage: SCSI VPD
π§ β CIFS Connectathon
π§ β POSIX pjd-fstest suites
π§ β jvm - DaCapo Benchmark Suite
π§ β jvm - jcstress tests
π§ β Memory function: kaslr
π§ β Networking firewall: basic netfilter test
π§ β audit: audit testsuite test
π§ β trace: ftrace/tracer
π§ β kdump - kexec_boot
Host 2:
β Boot test
β xfstests - ext4
β xfstests - xfs
β selinux-policy: serge-testsuite
β storage: software RAID testing
β stress: stress-ng
π§ β IPMI driver test
π§ β IPMItool loop stress test
π§ β Storage blktests
ppc64le:
Host 1:
β Boot test
β xfstests - ext4
β xfstests - xfs
β selinux-policy: serge-testsuite
β storage: software RAID testing
π§ β IPMI driver test
π§ β IPMItool loop stress test
π§ β Storage blktests
Host 2:
β Boot test
π§ β kdump - sysrq-c
Host 3:
β Boot test
β Podman system integration test - as root
β Podman system integration test - as user
β LTP
β Loopdev Sanity
β Memory function: memfd_create
β AMTU (Abstract Machine Test Utility)
β Networking bridge: sanity
β Ethernet drivers sanity
β Networking socket: fuzz
β Networking route: pmtu
β Networking route_func - local
β Networking route_func - forward
β Networking TCP: keepalive test
β Networking UDP: socket
β Networking tunnel: geneve basic test
β Networking tunnel: gre basic
β L2TP basic test
β Networking tunnel: vxlan basic
β Networking ipsec: basic netns - tunnel
β Libkcapi AF_ALG test
β pciutils: update pci ids test
β ALSA PCM loopback test
β ALSA Control (mixer) Userspace Element test
π§ β CIFS Connectathon
π§ β POSIX pjd-fstest suites
π§ β jvm - DaCapo Benchmark Suite
π§ β jvm - jcstress tests
π§ β Memory function: kaslr
π§ β Networking firewall: basic netfilter test
π§ β audit: audit testsuite test
π§ β trace: ftrace/tracer
s390x:
Host 1:
β Boot test
β‘β‘β‘ selinux-policy: serge-testsuite
β‘β‘β‘ stress: stress-ng
π§ β‘β‘β‘ Storage blktests
Host 2:
β Boot test
π§ β‘β‘β‘ kdump - sysrq-c
π§ β‘β‘β‘ kdump - file-load
Host 3:
β Boot test
β‘β‘β‘ Podman system integration test - as root
β‘β‘β‘ Podman system integration test - as user
β‘β‘β‘ LTP
β‘β‘β‘ Loopdev Sanity
β‘β‘β‘ Memory function: memfd_create
β‘β‘β‘ Networking bridge: sanity
β‘β‘β‘ Ethernet drivers sanity
β‘β‘β‘ Networking route: pmtu
β‘β‘β‘ Networking route_func - local
β‘β‘β‘ Networking route_func - forward
β‘β‘β‘ Networking TCP: keepalive test
β‘β‘β‘ Networking UDP: socket
β‘β‘β‘ Networking tunnel: geneve basic test
β‘β‘β‘ Networking tunnel: gre basic
β‘β‘β‘ L2TP basic test
β‘β‘β‘ Networking tunnel: vxlan basic
β‘β‘β‘ Networking ipsec: basic netns - transport
β‘β‘β‘ Networking ipsec: basic netns - tunnel
β‘β‘β‘ Libkcapi AF_ALG test
π§ β‘β‘β‘ CIFS Connectathon
π§ β‘β‘β‘ POSIX pjd-fstest suites
π§ β‘β‘β‘ jvm - DaCapo Benchmark Suite
π§ β‘β‘β‘ jvm - jcstress tests
π§ β‘β‘β‘ Memory function: kaslr
π§ β‘β‘β‘ Networking firewall: basic netfilter test
π§ β‘β‘β‘ audit: audit testsuite test
π§ β‘β‘β‘ trace: ftrace/tracer
π§ β‘β‘β‘ kdump - kexec_boot
x86_64:
Host 1:
β Boot test
β xfstests - ext4
β xfstests - xfs
β selinux-policy: serge-testsuite
β storage: software RAID testing
β stress: stress-ng
π§ β CPU: Frequency Driver Test
π§ β CPU: Idle Test
π§ β IOMMU boot test
π§ β IPMI driver test
π§ β IPMItool loop stress test
π§ β power-management: cpupower/sanity test
π§ β Storage blktests
Host 2:
β Boot test
β ACPI table test
β Podman system integration test - as root
β Podman system integration test - as user
β LTP
β Loopdev Sanity
β Memory function: memfd_create
β AMTU (Abstract Machine Test Utility)
β Networking bridge: sanity
β Ethernet drivers sanity
β Networking socket: fuzz
β Networking: igmp conformance test
β Networking route: pmtu
β Networking route_func - local
β Networking route_func - forward
β Networking TCP: keepalive test
β Networking UDP: socket
β Networking tunnel: geneve basic test
β Networking tunnel: gre basic
β L2TP basic test
β Networking tunnel: vxlan basic
β Networking ipsec: basic netns - transport
β Networking ipsec: basic netns - tunnel
β Libkcapi AF_ALG test
β pciutils: sanity smoke test
β pciutils: update pci ids test
β ALSA PCM loopback test
β ALSA Control (mixer) Userspace Element test
β storage: SCSI VPD
π§ β CIFS Connectathon
π§ β POSIX pjd-fstest suites
π§ β jvm - DaCapo Benchmark Suite
π§ β jvm - jcstress tests
π§ β Memory function: kaslr
π§ β Networking firewall: basic netfilter test
π§ β audit: audit testsuite test
π§ β trace: ftrace/tracer
π§ β kdump - kexec_boot
Host 3:
β Boot test
π§ β kdump - sysrq-c
π§ β kdump - file-load
Test sources: https://gitlab.com/cki-project/kernel-tests
π Pull requests are welcome for new tests or improvements to existing tests!
Aborted tests
-------------
Tests that didn't complete running successfully are marked with β‘β‘β‘.
If this was caused by an infrastructure issue, we try to mark that
explicitly in the report.
Waived tests
------------
If the test run included waived tests, they are marked with π§. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Testing timeout
---------------
We aim to provide a report within reasonable timeframe. Tests that haven't
finished running yet are marked with β±.
As per spec, the CAPTURE resolution should be automatically set based on
the OTUPUT resolution. This patch properly propagate width/height to the
capture when the OUTPUT format is set and override the user provided
width/height with configured OUTPUT resolution when the CAPTURE fmt is
updated.
This also prevents userspace from selecting a CAPTURE resolution that is
too small, avoiding unwanted page faults.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne(a)collabora.com>
---
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index 16d82309e7b6..a6d6b15adc2e 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -247,6 +247,8 @@ static int cedrus_try_fmt_vid_cap(struct file *file, void *priv,
return -EINVAL;
pix_fmt->pixelformat = fmt->pixelformat;
+ pix_fmt->width = ctx->src_fmt.width;
+ pix_fmt->height = ctx->src_fmt.height;
cedrus_prepare_format(pix_fmt);
return 0;
@@ -319,11 +321,14 @@ static int cedrus_s_fmt_vid_out(struct file *file, void *priv,
break;
}
- /* Propagate colorspace information to capture. */
+ /* Propagate format information to capture. */
ctx->dst_fmt.colorspace = f->fmt.pix.colorspace;
ctx->dst_fmt.xfer_func = f->fmt.pix.xfer_func;
ctx->dst_fmt.ycbcr_enc = f->fmt.pix.ycbcr_enc;
ctx->dst_fmt.quantization = f->fmt.pix.quantization;
+ ctx->dst_fmt.width = ctx->src_fmt.width;
+ ctx->dst_fmt.height = ctx->src_fmt.height;
+ cedrus_prepare_format(&ctx->dst_fmt);
return 0;
}
--
2.26.2
The fid parameter of TCREATE represents the directory that the file
should be created at. The current implementation mistakenly passes a
locally created fid for the file. The correct file fid is usually
retrieved by another WALK call, which does happen right after.
The problem happens when a new created fd is read from (i.e. where
private_data->fid is used), but not write to.
Fixes: 5643135a2846 ("fs/9p: This patch implements TLCREATE for 9p2000.L protocol.")
Signed-off-by: Victor Hsieh <victorhsieh(a)google.com>
Cc: stable(a)vger.kernel.org
---
fs/9p/vfs_inode_dotl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
index 60328b21c5fb..90a7aaea918d 100644
--- a/fs/9p/vfs_inode_dotl.c
+++ b/fs/9p/vfs_inode_dotl.c
@@ -285,7 +285,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry,
err);
goto error;
}
- err = p9_client_create_dotl(ofid, name, v9fs_open_to_dotl_flags(flags),
+ err = p9_client_create_dotl(dfid, name, v9fs_open_to_dotl_flags(flags),
mode, gid, &qid);
if (err < 0) {
p9_debug(P9_DEBUG_VFS, "p9_client_open_dotl failed in creat %d\n",
--
2.27.0.383.g050319c2ae-goog
Backport to 5.4.52-rc1 the following commits in upstream:
commit aee1f9f3c30e1e20e7f74729ced61eac7d74ca68 upstream.
commit d158367682cd822aca811971e988be6a8d8f679f upstream.
If CRYPTO_DEV_ATMEL_AUTHENC is m, CRYPTO_DEV_ATMEL_SHA is m,
but CRYPTO_DEV_ATMEL_AES is y, building will fail:
drivers/crypto/atmel-aes.o: In function `atmel_aes_authenc_init_tfm':
atmel-aes.c:(.text+0x670): undefined reference to `atmel_sha_authenc_get_reqsize'
atmel-aes.c:(.text+0x67a): undefined reference to `atmel_sha_authenc_spawn'
drivers/crypto/atmel-aes.o: In function `atmel_aes_authenc_setkey':
atmel-aes.c:(.text+0x7e5): undefined reference to `atmel_sha_authenc_setkey'
Make CRYPTO_DEV_ATMEL_AUTHENC depend on CRYPTO_DEV_ATMEL_AES,
and select CRYPTO_DEV_ATMEL_SHA and CRYPTO_AUTHENC for it under there.
Reported-by: Hulk Robot <hulkci(a)huawei.com>
Reported-by: kernel test robot <lkp(a)intel.com>
Suggested-by: Herbert Xu <herbert(a)gondor.apana.org.au>
Fixes: 89a82ef87e01 ("crypto: atmel-authenc - add support to...")
Signed-off-by: YueHaibing <yuehaibing(a)huawei.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus(a)microchip.com>
Signed-off-by: Herbert Xu <herbert(a)gondor.apana.org.au>
[tudor.ambarus(a)microchip.com: Backport to 5.4.52-rc1]
Signed-off-by: Tudor Ambarus <tudor.ambarus(a)microchip.com>
---
drivers/crypto/Kconfig | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 06b2b3fa5206..0952f059d967 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -491,11 +491,9 @@ if CRYPTO_DEV_UX500
endif # if CRYPTO_DEV_UX500
config CRYPTO_DEV_ATMEL_AUTHENC
- tristate "Support for Atmel IPSEC/SSL hw accelerator"
+ bool "Support for Atmel IPSEC/SSL hw accelerator"
depends on ARCH_AT91 || COMPILE_TEST
- select CRYPTO_AUTHENC
- select CRYPTO_DEV_ATMEL_AES
- select CRYPTO_DEV_ATMEL_SHA
+ depends on CRYPTO_DEV_ATMEL_AES
help
Some Atmel processors can combine the AES and SHA hw accelerators
to enhance support of IPSEC/SSL.
@@ -508,6 +506,8 @@ config CRYPTO_DEV_ATMEL_AES
select CRYPTO_AES
select CRYPTO_AEAD
select CRYPTO_BLKCIPHER
+ select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
+ select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
help
Some Atmel processors have AES hw accelerator.
Select this if you want to use the Atmel module for
--
2.25.1
If a signal callback releases the sw_sync fence, that will trigger a
deadlock as the timeline_fence_release recurses onto the fence->lock
(used both for signaling and the the timeline tree).
If we always hold a reference for an unsignaled fence held by the
timeline, we no longer need to detach the fence from the timeline upon
release. This is only possible since commit ea4d5a270b57
("dma-buf/sw_sync: force signal all unsignaled fences on dying timeline")
where we introduced decoupling of the fences from the timeline upon release.
Reported-by: Bas Nieuwenhuizen <bas(a)basnieuwenhuizen.nl>
Fixes: d3c6dd1fb30d ("dma-buf/sw_sync: Synchronize signal vs syncpt free")
Signed-off-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Sumit Semwal <sumit.semwal(a)linaro.org>
Cc: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Gustavo Padovan <gustavo(a)padovan.org>
Cc: Christian KΓΆnig <christian.koenig(a)amd.com>
Cc: <stable(a)vger.kernel.org>
---
drivers/dma-buf/sw_sync.c | 32 +++++++-------------------------
1 file changed, 7 insertions(+), 25 deletions(-)
diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c
index 348b3a9170fa..4cc2ac03a84a 100644
--- a/drivers/dma-buf/sw_sync.c
+++ b/drivers/dma-buf/sw_sync.c
@@ -130,16 +130,7 @@ static const char *timeline_fence_get_timeline_name(struct dma_fence *fence)
static void timeline_fence_release(struct dma_fence *fence)
{
- struct sync_pt *pt = dma_fence_to_sync_pt(fence);
struct sync_timeline *parent = dma_fence_parent(fence);
- unsigned long flags;
-
- spin_lock_irqsave(fence->lock, flags);
- if (!list_empty(&pt->link)) {
- list_del(&pt->link);
- rb_erase(&pt->node, &parent->pt_tree);
- }
- spin_unlock_irqrestore(fence->lock, flags);
sync_timeline_put(parent);
dma_fence_free(fence);
@@ -203,18 +194,11 @@ static void sync_timeline_signal(struct sync_timeline *obj, unsigned int inc)
if (!timeline_fence_signaled(&pt->base))
break;
- list_del_init(&pt->link);
+ list_del(&pt->link);
rb_erase(&pt->node, &obj->pt_tree);
- /*
- * A signal callback may release the last reference to this
- * fence, causing it to be freed. That operation has to be
- * last to avoid a use after free inside this loop, and must
- * be after we remove the fence from the timeline in order to
- * prevent deadlocking on timeline->lock inside
- * timeline_fence_release().
- */
dma_fence_signal_locked(&pt->base);
+ dma_fence_put(&pt->base);
}
spin_unlock_irq(&obj->lock);
@@ -261,13 +245,9 @@ static struct sync_pt *sync_pt_create(struct sync_timeline *obj,
} else if (cmp < 0) {
p = &parent->rb_left;
} else {
- if (dma_fence_get_rcu(&other->base)) {
- sync_timeline_put(obj);
- kfree(pt);
- pt = other;
- goto unlock;
- }
- p = &parent->rb_left;
+ dma_fence_put(&pt->base);
+ pt = other;
+ goto unlock;
}
}
rb_link_node(&pt->node, parent, p);
@@ -278,6 +258,7 @@ static struct sync_pt *sync_pt_create(struct sync_timeline *obj,
parent ? &rb_entry(parent, typeof(*pt), node)->link : &obj->pt_list);
}
unlock:
+ dma_fence_get(&pt->base); /* keep a ref for the timeline */
spin_unlock_irq(&obj->lock);
return pt;
@@ -316,6 +297,7 @@ static int sw_sync_debugfs_release(struct inode *inode, struct file *file)
list_for_each_entry_safe(pt, next, &obj->pt_list, link) {
dma_fence_set_error(&pt->base, -ENOENT);
dma_fence_signal_locked(&pt->base);
+ dma_fence_put(&pt->base);
}
spin_unlock_irq(&obj->lock);
--
2.20.1
arm64 build failed on 5.4
make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache
aarch64-linux-gnu-gcc" O=build Image
#
../drivers/clocksource/arm_arch_timer.c:484:4: error: βconst struct
arch_timer_erratum_workaroundβ has no member named
βdisable_compat_vdsoβ
484 | .disable_compat_vdso = true,
| ^~~~~~~~~~~~~~~~~~~
../drivers/clocksource/arm_arch_timer.c:484:26: warning:
initialization of βu32 (*)(void)β {aka βunsigned int (*)(void)β} from
βintβ makes pointer from integer without a cast [-Wint-conversion]
484 | .disable_compat_vdso = true,
| ^~~~
../drivers/clocksource/arm_arch_timer.c:484:26: note: (near
initialization for βool_workarounds[5].read_cntp_tval_el0β)
Could be this patch,
arm64: arch_timer: Disable the compat vdso for cores affected by
ARM64_WORKAROUND_1418040
commit 4b661d6133c5d3a7c9aca0b4ee5a78c7766eff3f upstream.
ARM64_WORKAROUND_1418040 requires that AArch32 EL0 accesses to
the virtual counter register are trapped and emulated by the kernel.
This makes the vdso pretty pointless, and in some cases livelock
prone.
Provide a workaround entry that limits the vdso to 64bit tasks.
Signed-off-by: Marc Zyngier <maz(a)kernel.org>
Acked-by: Mark Rutland <mark.rutland(a)arm.com>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/r/20200706163802.1836732-4-maz@kernel.org
Signed-off-by: Will Deacon <will(a)kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
ref:
https://gitlab.com/Linaro/lkft/kernel-runs/-/jobs/638094006
--
Linaro LKFT
https://lkft.linaro.org