* [Intel-wired-lan] [syzbot] kernel BUG in pskb_expand_head
From: Marc Kleine-Budde @ 2022-01-05 14:04 UTC (permalink / raw)
To: intel-wired-lan
In-Reply-To: <CANn89i+LbcWn3xoYU-eMjjmQPz0x1pSAat2OpF=i0+RByc-h4w@mail.gmail.com>
On 05.01.2022 05:59:35, Eric Dumazet wrote:
> On Wed, Jan 5, 2022 at 3:20 AM syzbot
> <syzbot+4c63f36709a642f801c5@syzkaller.appspotmail.com> wrote:
> >
> > syzbot has found a reproducer for the following issue on:
> >
> > HEAD commit: c9e6606c7fe9 Linux 5.16-rc8
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=148351c3b00000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=32f9fa260d7413b4
> > dashboard link: https://syzkaller.appspot.com/bug?extid=4c63f36709a642f801c5
> > compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15435e2bb00000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12f4508db00000
> >
>
> This C repro looks legit, bug should be in CAN layer.
ACK - it's bug in CAN's ISOTP
> > The issue was bisected to:
> >
> > commit e4b8954074f6d0db01c8c97d338a67f9389c042f
> > Author: Eric Dumazet <edumazet@google.com>
> > Date: Tue Dec 7 01:30:37 2021 +0000
> >
> > netlink: add net device refcount tracker to struct ethnl_req_info
>
> Ignore this bisection, an unrelated commit whent in its way.
ACK - We have a RFC fix for this:
https://lore.kernel.org/all/20220105132429.1170627-1-mkl at pengutronix.de
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20220105/1a7af409/attachment.asc>
^ permalink raw reply
* [GIT PULL] gpio: fixes for v5.16
From: Bartosz Golaszewski @ 2022-01-05 14:04 UTC (permalink / raw)
To: Linus Torvalds
Cc: Andy Shevchenko, Linus Walleij, linux-gpio, linux-kernel,
Bartosz Golaszewski
Linus,
Here are two last fixes for this release cycle from the GPIO subsystem.
Best regards,
Bartosz Golaszewski
The following changes since commit c9e6606c7fe92b50a02ce51dda82586ebdf99b48:
Linux 5.16-rc8 (2022-01-02 14:23:25 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-fixes-for-v5.16
for you to fetch changes up to 32e246b02f53b2fdaa81ea9f2ca6ff068c017fcb:
MAINTAINERS: update gpio-brcmstb maintainers (2022-01-03 10:53:02 +0100)
----------------------------------------------------------------
gpio fixes for v5.16
- fix irq offset calculation in gpio-aspeed-sgpio
- update the MAINTAINERS entry for gpio-brcmstb
----------------------------------------------------------------
Gregory Fong (1):
MAINTAINERS: update gpio-brcmstb maintainers
Steven Lee (1):
gpio: gpio-aspeed-sgpio: Fix wrong hwirq base in irq handler
MAINTAINERS | 3 ++-
drivers/gpio/gpio-aspeed-sgpio.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
^ permalink raw reply
* [PATCH v1 09/34] tests/docker: auto-generate fedora.docker with lcitool
From: Alex Bennée @ 2022-01-05 13:49 UTC (permalink / raw)
To: qemu-devel
Cc: fam, Thomas Huth, berrange, Beraldo Leal, Alex Bennée, f4bug,
Wainer dos Santos Moschetta, stefanha, crosa, pbonzini,
Philippe Mathieu-Daudé, aurelien
In-Reply-To: <20220105135009.1584676-1-alex.bennee@linaro.org>
From: Daniel P. Berrangé <berrange@redhat.com>
This commit is best examined using the "-b" option to diff.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20211215141949.3512719-10-berrange@redhat.com>
---
tests/docker/dockerfiles/fedora.docker | 260 ++++++++++++++-----------
tests/lcitool/refresh | 1 +
2 files changed, 146 insertions(+), 115 deletions(-)
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 855aefaac5..6784878b56 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -1,118 +1,148 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile fedora-35 qemu
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
FROM registry.fedoraproject.org/fedora:35
-# Please keep this list sorted alphabetically
-ENV PACKAGES \
- SDL2-devel \
- SDL2_image-devel \
- alsa-lib-devel \
- bc \
- brlapi-devel \
- bzip2 \
- bzip2-devel \
- ca-certificates \
- capstone-devel \
- ccache \
- clang \
- ctags \
- cyrus-sasl-devel \
- daxctl-devel \
- dbus-daemon \
- device-mapper-multipath-devel \
- diffutils \
- findutils \
- gcc \
- gcc-c++ \
- gcovr \
- genisoimage \
- gettext \
- git \
- glib2-devel \
- glibc-langpack-en \
- glibc-static \
- glusterfs-api-devel \
- gnutls-devel \
- gtk3-devel \
- hostname \
- jemalloc-devel \
- libaio-devel \
- libasan \
- libattr-devel \
- libbpf-devel \
- libcacard-devel \
- libcap-ng-devel \
- libcurl-devel \
- libdrm-devel \
- libepoxy-devel \
- libfdt-devel \
- libffi-devel \
- libgcrypt-devel \
- libiscsi-devel \
- libjpeg-devel \
- libnfs-devel \
- libpmem-devel \
- libpng-devel \
- librbd-devel \
- libseccomp-devel \
- libselinux-devel \
- libslirp-devel \
- libssh-devel \
- libtasn1-devel \
- libubsan \
- libudev-devel \
- liburing-devel \
- libusbx-devel \
- libxml2-devel \
- libzstd-devel \
- llvm \
- lttng-ust-devel \
- lzo-devel \
- make \
- mesa-libgbm-devel \
- meson \
- ncurses-devel \
- nettle-devel \
- ninja-build \
- nmap-ncat \
- numactl-devel \
- openssh-clients \
- pam-devel \
- perl-Test-Harness \
- perl-base \
- pixman-devel \
- pkgconfig \
- pulseaudio-libs-devel \
- python3 \
- python3-PyYAML \
- python3-numpy \
- python3-opencv \
- python3-pillow \
- python3-pip \
- python3-sphinx \
- python3-sphinx_rtd_theme \
- python3-virtualenv \
- rdma-core-devel \
- rpm \
- sed \
- snappy-devel \
- sparse \
- spice-protocol \
- spice-server-devel \
- systemd-devel \
- systemtap-sdt-devel \
- tar \
- tesseract \
- tesseract-langpack-eng \
- texinfo \
- usbredir-devel \
- util-linux \
- virglrenderer-devel \
- vte291-devel \
- which \
- xen-devel \
- xfsprogs-devel \
- zlib-devel
-ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3
+RUN dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ SDL2-devel \
+ SDL2_image-devel \
+ alsa-lib-devel \
+ bash \
+ bc \
+ brlapi-devel \
+ bzip2 \
+ bzip2-devel \
+ ca-certificates \
+ capstone-devel \
+ ccache \
+ clang \
+ ctags \
+ cyrus-sasl-devel \
+ daxctl-devel \
+ dbus-daemon \
+ device-mapper-multipath-devel \
+ diffutils \
+ findutils \
+ gcc \
+ gcc-c++ \
+ gcovr \
+ genisoimage \
+ gettext \
+ git \
+ glib2-devel \
+ glib2-static \
+ glibc-langpack-en \
+ glibc-static \
+ glusterfs-api-devel \
+ gnutls-devel \
+ gtk3-devel \
+ hostname \
+ jemalloc-devel \
+ libaio-devel \
+ libasan \
+ libattr-devel \
+ libbpf-devel \
+ libcacard-devel \
+ libcap-ng-devel \
+ libcurl-devel \
+ libdrm-devel \
+ libepoxy-devel \
+ libfdt-devel \
+ libffi-devel \
+ libgcrypt-devel \
+ libiscsi-devel \
+ libjpeg-devel \
+ libnfs-devel \
+ libpmem-devel \
+ libpng-devel \
+ librbd-devel \
+ libseccomp-devel \
+ libselinux-devel \
+ libslirp-devel \
+ libssh-devel \
+ libtasn1-devel \
+ libubsan \
+ libudev-devel \
+ liburing-devel \
+ libusbx-devel \
+ libxml2-devel \
+ libzstd-devel \
+ llvm \
+ lttng-ust-devel \
+ lzo-devel \
+ make \
+ mesa-libgbm-devel \
+ meson \
+ ncurses-devel \
+ nettle-devel \
+ ninja-build \
+ nmap-ncat \
+ numactl-devel \
+ openssh-clients \
+ pam-devel \
+ pcre-static \
+ perl-Test-Harness \
+ perl-base \
+ pixman-devel \
+ pkgconfig \
+ pulseaudio-libs-devel \
+ python3 \
+ python3-PyYAML \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-sphinx \
+ python3-sphinx_rtd_theme \
+ python3-virtualenv \
+ rdma-core-devel \
+ rpm \
+ sed \
+ snappy-devel \
+ sparse \
+ spice-protocol \
+ spice-server-devel \
+ systemd-devel \
+ systemtap-sdt-devel \
+ tar \
+ tesseract \
+ tesseract-langpack-eng \
+ texinfo \
+ usbredir-devel \
+ util-linux \
+ virglrenderer-devel \
+ vte291-devel \
+ which \
+ xen-devel \
+ xfsprogs-devel \
+ zlib-devel \
+ zlib-static && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-RUN dnf install -y $PACKAGES
-RUN rpm -q $PACKAGES | sort > /packages.txt
-ENV PATH $PATH:/usr/libexec/python3-sphinx/
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 824b1c0ef2..d79d2b8c06 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -62,6 +62,7 @@ def generate_dockerfile(host, target, cross=None, trailer=None):
try:
generate_dockerfile("centos8", "centos-8")
+ generate_dockerfile("fedora", "fedora-35")
sys.exit(0)
except Exception as ex:
--
2.30.2
^ permalink raw reply related
* [PATCH v1 28/34] tests/tcg/multiarch: Read fp flags before printf
From: Alex Bennée @ 2022-01-05 13:50 UTC (permalink / raw)
To: qemu-devel
Cc: fam, berrange, Richard Henderson, f4bug, Taylor Simpson, stefanha,
crosa, pbonzini, Alex Bennée, aurelien
In-Reply-To: <20220105135009.1584676-1-alex.bennee@linaro.org>
From: Richard Henderson <richard.henderson@linaro.org>
We need to read the floating-point flags before printf may do
other floating-point operations which may affect the flags.
Hexagon reference files regenerated by Taylor Simpson.
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Message-Id: <1639510781-3790-1-git-send-email-tsimpson@quicinc.com>
Message-Id: <20211224035541.2159966-2-richard.henderson@linaro.org>
---
tests/tcg/multiarch/float_convs.c | 2 +-
tests/tcg/multiarch/float_madds.c | 2 +-
tests/tcg/hexagon/float_convs.ref | 152 +++++++++++++++---------------
tests/tcg/hexagon/float_madds.ref | 48 +++++-----
4 files changed, 102 insertions(+), 102 deletions(-)
diff --git a/tests/tcg/multiarch/float_convs.c b/tests/tcg/multiarch/float_convs.c
index e9be75c2d5..2e4fa55324 100644
--- a/tests/tcg/multiarch/float_convs.c
+++ b/tests/tcg/multiarch/float_convs.c
@@ -51,8 +51,8 @@ static void convert_single_to_double(float input)
output = input;
- out_fmt = fmt_f64(output);
flag_fmt = fmt_flags();
+ out_fmt = fmt_f64(output);
printf(" to double: %s (%s)\n", out_fmt, flag_fmt);
free(out_fmt);
free(flag_fmt);
diff --git a/tests/tcg/multiarch/float_madds.c b/tests/tcg/multiarch/float_madds.c
index e422608ccd..4888f8641f 100644
--- a/tests/tcg/multiarch/float_madds.c
+++ b/tests/tcg/multiarch/float_madds.c
@@ -54,8 +54,8 @@ static void print_result(float r, int j, int k)
{
char *r_fmt, *flag_fmt;
- r_fmt = fmt_f32(r);
flag_fmt = fmt_flags();
+ r_fmt = fmt_f32(r);
printf("res: %s flags=%s (%d/%d)\n", r_fmt, flag_fmt, j, k);
diff --git a/tests/tcg/hexagon/float_convs.ref b/tests/tcg/hexagon/float_convs.ref
index 9ec9ffc08d..a5505c337b 100644
--- a/tests/tcg/hexagon/float_convs.ref
+++ b/tests/tcg/hexagon/float_convs.ref
@@ -18,31 +18,31 @@ from single: f32(-inf:0xff800000)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
- to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
+ to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
- to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
+ to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
- to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
+ to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
- to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
+ to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
- to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
+ to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
@@ -72,19 +72,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
- to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
+ to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
- to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
+ to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
- to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
+ to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
@@ -96,7 +96,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
to uint32: 1 (OK)
to uint64: 1 (OK)
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
- to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
+ to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
to int32: 1 (INEXACT )
to int64: 1 (INEXACT )
to uint32: 1 (INEXACT )
@@ -108,61 +108,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
to uint32: 2 (OK)
to uint64: 2 (OK)
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
- to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
+ to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
to int32: 2 (INEXACT )
to int64: 2 (INEXACT )
to uint32: 2 (INEXACT )
to uint64: 2 (INEXACT )
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
- to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
+ to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
to int32: 3 (INEXACT )
to int64: 3 (INEXACT )
to uint32: 3 (INEXACT )
to uint64: 3 (INEXACT )
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
- to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
+ to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
to int32: 65503 (OK)
to int64: 65503 (OK)
to uint32: 65503 (OK)
to uint64: 65503 (OK)
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
- to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
to int32: 65504 (OK)
to int64: 65504 (OK)
to uint32: 65504 (OK)
to uint64: 65504 (OK)
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
- to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
+ to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
to int32: 65505 (OK)
to int64: 65505 (OK)
to uint32: 65505 (OK)
to uint64: 65505 (OK)
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
- to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
+ to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
to int32: 131007 (OK)
to int64: 131007 (OK)
to uint32: 131007 (OK)
to uint64: 131007 (OK)
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
- to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
to int32: 131008 (OK)
to int64: 131008 (OK)
to uint32: 131008 (OK)
to uint64: 131008 (OK)
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
- to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
+ to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
to int32: 131009 (OK)
to int64: 131009 (OK)
to uint32: 131009 (OK)
to uint64: 131009 (OK)
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
- to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
+ to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
to uint64: -1 (INVALID)
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
- to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
+ to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
@@ -205,31 +205,31 @@ from single: f32(-inf:0xff800000)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
- to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
+ to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
- to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
+ to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
- to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
+ to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
- to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
+ to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
- to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
+ to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
@@ -259,19 +259,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
- to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
+ to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
- to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
+ to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
- to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
+ to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
@@ -283,7 +283,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
to uint32: 1 (OK)
to uint64: 1 (OK)
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
- to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
+ to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
to int32: 1 (INEXACT )
to int64: 1 (INEXACT )
to uint32: 1 (INEXACT )
@@ -295,61 +295,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
to uint32: 2 (OK)
to uint64: 2 (OK)
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
- to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
+ to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
to int32: 2 (INEXACT )
to int64: 2 (INEXACT )
to uint32: 2 (INEXACT )
to uint64: 2 (INEXACT )
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
- to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
+ to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
to int32: 3 (INEXACT )
to int64: 3 (INEXACT )
to uint32: 3 (INEXACT )
to uint64: 3 (INEXACT )
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
- to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
+ to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
to int32: 65503 (OK)
to int64: 65503 (OK)
to uint32: 65503 (OK)
to uint64: 65503 (OK)
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
- to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
to int32: 65504 (OK)
to int64: 65504 (OK)
to uint32: 65504 (OK)
to uint64: 65504 (OK)
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
- to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
+ to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
to int32: 65505 (OK)
to int64: 65505 (OK)
to uint32: 65505 (OK)
to uint64: 65505 (OK)
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
- to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
+ to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
to int32: 131007 (OK)
to int64: 131007 (OK)
to uint32: 131007 (OK)
to uint64: 131007 (OK)
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
- to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
to int32: 131008 (OK)
to int64: 131008 (OK)
to uint32: 131008 (OK)
to uint64: 131008 (OK)
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
- to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
+ to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
to int32: 131009 (OK)
to int64: 131009 (OK)
to uint32: 131009 (OK)
to uint64: 131009 (OK)
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
- to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
+ to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
to uint64: -1 (INVALID)
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
- to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
+ to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
@@ -392,31 +392,31 @@ from single: f32(-inf:0xff800000)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
- to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
+ to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
- to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
+ to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
- to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
+ to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
- to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
+ to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
- to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
+ to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
@@ -446,19 +446,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
- to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
+ to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
- to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
+ to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
- to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
+ to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
@@ -470,7 +470,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
to uint32: 1 (OK)
to uint64: 1 (OK)
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
- to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
+ to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
to int32: 1 (INEXACT )
to int64: 1 (INEXACT )
to uint32: 1 (INEXACT )
@@ -482,61 +482,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
to uint32: 2 (OK)
to uint64: 2 (OK)
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
- to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
+ to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
to int32: 2 (INEXACT )
to int64: 2 (INEXACT )
to uint32: 2 (INEXACT )
to uint64: 2 (INEXACT )
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
- to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
+ to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
to int32: 3 (INEXACT )
to int64: 3 (INEXACT )
to uint32: 3 (INEXACT )
to uint64: 3 (INEXACT )
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
- to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
+ to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
to int32: 65503 (OK)
to int64: 65503 (OK)
to uint32: 65503 (OK)
to uint64: 65503 (OK)
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
- to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
to int32: 65504 (OK)
to int64: 65504 (OK)
to uint32: 65504 (OK)
to uint64: 65504 (OK)
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
- to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
+ to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
to int32: 65505 (OK)
to int64: 65505 (OK)
to uint32: 65505 (OK)
to uint64: 65505 (OK)
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
- to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
+ to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
to int32: 131007 (OK)
to int64: 131007 (OK)
to uint32: 131007 (OK)
to uint64: 131007 (OK)
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
- to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
to int32: 131008 (OK)
to int64: 131008 (OK)
to uint32: 131008 (OK)
to uint64: 131008 (OK)
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
- to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
+ to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
to int32: 131009 (OK)
to int64: 131009 (OK)
to uint32: 131009 (OK)
to uint64: 131009 (OK)
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
- to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
+ to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
to uint64: -1 (INVALID)
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
- to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
+ to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
@@ -579,31 +579,31 @@ from single: f32(-inf:0xff800000)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
- to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
+ to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
- to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
+ to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
- to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
+ to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
to int32: -2147483648 (INVALID)
to int64: -9223372036854775808 (INVALID)
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
- to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
+ to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
to uint64: 0 (INVALID)
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
- to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
+ to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INVALID)
@@ -633,19 +633,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
- to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
+ to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
- to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
+ to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
to uint64: 0 (INEXACT )
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
- to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
+ to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
to int32: 0 (INEXACT )
to int64: 0 (INEXACT )
to uint32: 0 (INEXACT )
@@ -657,7 +657,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
to uint32: 1 (OK)
to uint64: 1 (OK)
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
- to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
+ to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
to int32: 1 (INEXACT )
to int64: 1 (INEXACT )
to uint32: 1 (INEXACT )
@@ -669,61 +669,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
to uint32: 2 (OK)
to uint64: 2 (OK)
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
- to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
+ to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
to int32: 2 (INEXACT )
to int64: 2 (INEXACT )
to uint32: 2 (INEXACT )
to uint64: 2 (INEXACT )
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
- to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
+ to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
to int32: 3 (INEXACT )
to int64: 3 (INEXACT )
to uint32: 3 (INEXACT )
to uint64: 3 (INEXACT )
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
- to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
+ to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
to int32: 65503 (OK)
to int64: 65503 (OK)
to uint32: 65503 (OK)
to uint64: 65503 (OK)
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
- to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
to int32: 65504 (OK)
to int64: 65504 (OK)
to uint32: 65504 (OK)
to uint64: 65504 (OK)
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
- to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
+ to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
to int32: 65505 (OK)
to int64: 65505 (OK)
to uint32: 65505 (OK)
to uint64: 65505 (OK)
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
- to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
+ to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
to int32: 131007 (OK)
to int64: 131007 (OK)
to uint32: 131007 (OK)
to uint64: 131007 (OK)
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
- to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
+ to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
to int32: 131008 (OK)
to int64: 131008 (OK)
to uint32: 131008 (OK)
to uint64: 131008 (OK)
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
- to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
+ to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
to int32: 131009 (OK)
to int64: 131009 (OK)
to uint32: 131009 (OK)
to uint64: 131009 (OK)
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
- to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
+ to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
to uint64: -1 (INVALID)
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
- to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
+ to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
to int32: 2147483647 (INVALID)
to int64: 9223372036854775807 (INVALID)
to uint32: -1 (INVALID)
diff --git a/tests/tcg/hexagon/float_madds.ref b/tests/tcg/hexagon/float_madds.ref
index ceed3bbbfb..a08c616057 100644
--- a/tests/tcg/hexagon/float_madds.ref
+++ b/tests/tcg/hexagon/float_madds.ref
@@ -44,7 +44,7 @@ res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
-res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
+res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
@@ -90,15 +90,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
-res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
+res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
-res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
+res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
+res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
@@ -236,7 +236,7 @@ res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (7/0)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
-res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
+res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
@@ -282,15 +282,15 @@ res: f32(0x1.00440200000000000000p+0:0x3f802201) flags=INEXACT (14/1)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
-res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
+res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
-res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
+res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
+res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
res: f32(0x1.2e23d400000000000000p+2:0x409711ea) flags=INEXACT (16/2)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
@@ -428,7 +428,7 @@ res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
-res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
+res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
@@ -474,15 +474,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
-res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
+res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
-res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
+res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
+res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
@@ -620,7 +620,7 @@ res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
-res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
+res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
@@ -666,15 +666,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
-res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
+res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
+res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
-res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
+res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
-res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
+res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
--
2.30.2
^ permalink raw reply related
* Re: [syzbot] kernel BUG in pskb_expand_head
From: Marc Kleine-Budde @ 2022-01-05 14:04 UTC (permalink / raw)
To: Eric Dumazet
Cc: syzbot, anthony.l.nguyen, changbin.du, Christian Brauner,
David Miller, Eric Dumazet, Jesper Dangaard Brouer,
Heiner Kallweit, intel-wired-lan-owner, intel-wired-lan,
Jesse Brandeburg, Jakub Kicinski, linux-can, LKML, netdev,
Oliver Hartkopp, syzkaller-bugs, Yajun Deng
In-Reply-To: <CANn89i+LbcWn3xoYU-eMjjmQPz0x1pSAat2OpF=i0+RByc-h4w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1633 bytes --]
On 05.01.2022 05:59:35, Eric Dumazet wrote:
> On Wed, Jan 5, 2022 at 3:20 AM syzbot
> <syzbot+4c63f36709a642f801c5@syzkaller.appspotmail.com> wrote:
> >
> > syzbot has found a reproducer for the following issue on:
> >
> > HEAD commit: c9e6606c7fe9 Linux 5.16-rc8
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=148351c3b00000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=32f9fa260d7413b4
> > dashboard link: https://syzkaller.appspot.com/bug?extid=4c63f36709a642f801c5
> > compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15435e2bb00000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12f4508db00000
> >
>
> This C repro looks legit, bug should be in CAN layer.
ACK - it's bug in CAN's ISOTP
> > The issue was bisected to:
> >
> > commit e4b8954074f6d0db01c8c97d338a67f9389c042f
> > Author: Eric Dumazet <edumazet@google.com>
> > Date: Tue Dec 7 01:30:37 2021 +0000
> >
> > netlink: add net device refcount tracker to struct ethnl_req_info
>
> Ignore this bisection, an unrelated commit whent in its way.
ACK - We have a RFC fix for this:
https://lore.kernel.org/all/20220105132429.1170627-1-mkl@pengutronix.de
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply
* Re: [PATCH v2 03/11] usb: gadget: f_uac2: Support multiple sampling rates
From: Pavel Hofman @ 2022-01-05 14:05 UTC (permalink / raw)
To: John Keeping
Cc: linux-usb, Ruslan Bilovol, Felipe Balbi, Jerome Brunet,
Julian Scheel, Greg Kroah-Hartman
In-Reply-To: <YdWSpo3D5I61rsMI@donbot>
Dne 05. 01. 22 v 13:44 John Keeping napsal(a):
> On Wed, Jan 05, 2022 at 01:20:01PM +0100, Pavel Hofman wrote:
>> Dne 04. 01. 22 v 16:33 John Keeping napsal(a):
>>> On Wed, Dec 22, 2021 at 11:01:16AM +0100, Pavel Hofman wrote:
>>>>
>>>> Dne 21. 12. 21 v 12:59 John Keeping napsal(a):
>>>>> On Mon, Dec 20, 2021 at 10:11:22PM +0100, Pavel Hofman wrote:
>>>>>> From: Julian Scheel <julian@jusst.de>
>>>>>>
>>>>>> A list of sampling rates can be specified via configfs. All enabled
>>>>>> sampling rates are sent to the USB host on request. When the host
>>>>>> selects a sampling rate the internal active rate is updated.
>>>>>>
>>>>>> Config strings with single value stay compatible with the previous version.
>>>>>>
>>>>>> Multiple samplerates passed as configuration arrays to g_audio module
>>>>>> when built for f_uac2.
>>>>>>
>>>>>> Signed-off-by: Julian Scheel <julian@jusst.de>
>>>>>> Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
>>>>>> ---
>>> [snip]
>>>>>> };
>>>>>> static inline struct f_uac2 *func_to_uac2(struct usb_function *f)
>>>>>> @@ -166,7 +167,7 @@ static struct uac_clock_source_descriptor in_clk_src_desc = {
>>>>>> .bDescriptorSubtype = UAC2_CLOCK_SOURCE,
>>>>>> /* .bClockID = DYNAMIC */
>>>>>> .bmAttributes = UAC_CLOCK_SOURCE_TYPE_INT_FIXED,
>>>>>> - .bmControls = (CONTROL_RDONLY << CLK_FREQ_CTRL),
>>>>>> + .bmControls = (CONTROL_RDWR << CLK_FREQ_CTRL),
>>>>>> .bAssocTerminal = 0,
>>>>>> };
>>>>>> @@ -178,7 +179,7 @@ static struct uac_clock_source_descriptor out_clk_src_desc = {
>>>>>> .bDescriptorSubtype = UAC2_CLOCK_SOURCE,
>>>>>> /* .bClockID = DYNAMIC */
>>>>>> .bmAttributes = UAC_CLOCK_SOURCE_TYPE_INT_FIXED,
>>>>>> - .bmControls = (CONTROL_RDONLY << CLK_FREQ_CTRL),
>>>>>> + .bmControls = (CONTROL_RDWR << CLK_FREQ_CTRL),
>>>>>> .bAssocTerminal = 0,
>>>>>> };
>>>>>> @@ -635,12 +636,32 @@ struct cntrl_cur_lay3 {
>>>>>> };
>>>>>> struct cntrl_range_lay3 {
>>>>>> - __le16 wNumSubRanges;
>>>>>> __le32 dMIN;
>>>>>> __le32 dMAX;
>>>>>> __le32 dRES;
>>>>>> } __packed;
>>>>>> +#define ranges_size(c) (sizeof(c.wNumSubRanges) + c.wNumSubRanges \
>>>>>> + * sizeof(struct cntrl_ranges_lay3))
>>>>>> +
>>>>>> +struct cntrl_ranges_lay3 {
>>>>>> + __u16 wNumSubRanges;
>>>>>> + struct cntrl_range_lay3 r[UAC_MAX_RATES];
>>>>>> +} __packed;
>>>>>
>>>>> These structures are now inconsistent between cntrl_range_lay2 and
>>>>> cntrl_range_lay3. Would it be better to make these flex arrays? I
>>>>> guess that will make the code that uses it more complicated, but at the
>>>>> moment it looks like these are trying to be generic while in reality
>>>>> being quite specific to the one place that uses them at the moment.
>>>>
>>>> I am afraid I do not know exactly how to do that. Please can you post an
>>>> example? The rate control requires u32 (u16 is too small). Thanks a lot.
>>>
>>> After the change in this patch, we end up with:
>>>
>>> struct cntrl_range_lay2 {
>>> __le16 wNumSubRanges;
>>> __le16 wMIN;
>>> __le16 wMAX;
>>> __le16 wRES;
>>> } __packed;
>>>
>>> struct cntrl_range_lay3 {
>>> __le32 dMIN;
>>> __le32 dMAX;
>>> __le32 dRES;
>>> } __packed;
>>>
>>> so there are two structures with similar names but totally different
>>> structure, which I think risks confusion in the future.
>>>
>>> I wonder if DECLARE_UAC2_FEATURE_UNIT_DESCRIPTOR in linux/usb/audio-v2.h
>>> provides inspiration here, so potentially something like:
>>>
>>> #define DECLARE_UAC2_CNTRL_RANGE_LAY3(n) \
>>> struct uac2_cntrl_range_lay3_##n { \
>>> __le16 wNumSubRanges; \
>>> struct cntrl_range_le32 r[n]; \
>>> } __packed;
>>>
>>> DECLARE_UAC2_CNTRL_RANGE_LAY3(UAC_MAX_RATES);
>>
>> Thanks, I will try to follow your suggestion in the next patchset version.
>>
>>>
>>>>>> +static int get_max_srate(const int *srates)
>>>>>> +{
>>>>>> + int i, max_srate = 0;
>>>>>> +
>>>>>> + for (i = 0; i < UAC_MAX_RATES; i++) {
>>>>>> + if (srates[i] == 0)
>>>>>> + break;
>>>>>> + if (srates[i] > max_srate)
>>>>>> + max_srate = srates[i];
>>>>>> + }
>>>>>> + return max_srate;
>>>>>> +}
>>>>>> +
>>>>>> static int set_ep_max_packet_size(const struct f_uac2_opts *uac2_opts,
>>>>>> struct usb_endpoint_descriptor *ep_desc,
>>>>>> enum usb_device_speed speed, bool is_playback)
>>>>>> @@ -667,11 +688,11 @@ static int set_ep_max_packet_size(const struct f_uac2_opts *uac2_opts,
>>>>>> if (is_playback) {
>>>>>> chmask = uac2_opts->p_chmask;
>>>>>> - srate = uac2_opts->p_srate;
>>>>>> + srate = get_max_srate(uac2_opts->p_srates);
>>>>>> ssize = uac2_opts->p_ssize;
>>>>>> } else {
>>>>>> chmask = uac2_opts->c_chmask;
>>>>>> - srate = uac2_opts->c_srate;
>>>>>> + srate = get_max_srate(uac2_opts->c_srates);
>>>>>> ssize = uac2_opts->c_ssize;
>>>>>> }
>>>>>> @@ -912,10 +933,10 @@ static int afunc_validate_opts(struct g_audio *agdev, struct device *dev)
>>>>>> } else if ((opts->c_ssize < 1) || (opts->c_ssize > 4)) {
>>>>>> dev_err(dev, "Error: incorrect capture sample size\n");
>>>>>> return -EINVAL;
>>>>>> - } else if (!opts->p_srate) {
>>>>>> + } else if (!opts->p_srates[0]) {
>>>>>> dev_err(dev, "Error: incorrect playback sampling rate\n");
>>>>>> return -EINVAL;
>>>>>> - } else if (!opts->c_srate) {
>>>>>> + } else if (!opts->c_srates[0]) {
>>>>>> dev_err(dev, "Error: incorrect capture sampling rate\n");
>>>>>> return -EINVAL;
>>>>>> }
>>>>>> @@ -1210,7 +1231,8 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
>>>>>> agdev->params.p_chmask = uac2_opts->p_chmask;
>>>>>> agdev->params.p_srate = uac2_opts->p_srate;
>>>>>> - agdev->params.p_srates[0] = uac2_opts->p_srate;
>>>>>> + memcpy(agdev->params.p_srates, uac2_opts->p_srates,
>>>>>> + sizeof(agdev->params.p_srates));
>>>>>> agdev->params.p_ssize = uac2_opts->p_ssize;
>>>>>> if (FUIN_EN(uac2_opts)) {
>>>>>> agdev->params.p_fu.id = USB_IN_FU_ID;
>>>>>> @@ -1222,7 +1244,8 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
>>>>>> }
>>>>>> agdev->params.c_chmask = uac2_opts->c_chmask;
>>>>>> agdev->params.c_srate = uac2_opts->c_srate;
>>>>>> - agdev->params.c_srates[0] = uac2_opts->c_srate;
>>>>>> + memcpy(agdev->params.c_srates, uac2_opts->c_srates,
>>>>>> + sizeof(agdev->params.c_srates));
>>>>>> agdev->params.c_ssize = uac2_opts->c_ssize;
>>>>>> if (FUOUT_EN(uac2_opts)) {
>>>>>> agdev->params.c_fu.id = USB_OUT_FU_ID;
>>>>>> @@ -1502,28 +1525,39 @@ in_rq_range(struct usb_function *fn, const struct usb_ctrlrequest *cr)
>>>>>> u8 entity_id = (w_index >> 8) & 0xff;
>>>>>> u8 control_selector = w_value >> 8;
>>>>>> int value = -EOPNOTSUPP;
>>>>>> - int p_srate, c_srate;
>>>>>> -
>>>>>> - p_srate = opts->p_srate;
>>>>>> - c_srate = opts->c_srate;
>>>>>> if ((entity_id == USB_IN_CLK_ID) || (entity_id == USB_OUT_CLK_ID)) {
>>>>>> if (control_selector == UAC2_CS_CONTROL_SAM_FREQ) {
>>>>>> - struct cntrl_range_lay3 r;
>>>>>> + struct cntrl_ranges_lay3 rs;
>>>>>> + int i;
>>>>>> + int wNumSubRanges = 0;
>>>>>> + int srate;
>>>>>> + int *srates;
>>>>>> if (entity_id == USB_IN_CLK_ID)
>>>>>> - r.dMIN = cpu_to_le32(p_srate);
>>>>>> + srates = opts->p_srates;
>>>>>> else if (entity_id == USB_OUT_CLK_ID)
>>>>>> - r.dMIN = cpu_to_le32(c_srate);
>>>>>> + srates = opts->c_srates;
>>>>>> else
>>>>>> return -EOPNOTSUPP;
>>>>>> -
>>>>>> - r.dMAX = r.dMIN;
>>>>>> - r.dRES = 0;
>>>>>> - r.wNumSubRanges = cpu_to_le16(1);
>>>>>> -
>>>>>> - value = min_t(unsigned int, w_length, sizeof(r));
>>>>>> - memcpy(req->buf, &r, value);
>>>>>> + for (i = 0; i < UAC_MAX_RATES; i++) {
>>>>>> + srate = srates[i];
>>>>>> + if (srate == 0)
>>>>>> + break;
>>>>>> +
>>>>>> + rs.r[wNumSubRanges].dMIN = cpu_to_le32(srate);
>>>>>> + rs.r[wNumSubRanges].dMAX = cpu_to_le32(srate);
>>>>>> + rs.r[wNumSubRanges].dRES = 0;
>>>>>> + wNumSubRanges++;
>>>>>> + dev_dbg(&agdev->gadget->dev,
>>>>>> + "%s(): clk %d: rate ID %d: %d\n",
>>>>>> + __func__, entity_id, wNumSubRanges, srate);
>>>>>> + }
>>>>>> + rs.wNumSubRanges = cpu_to_le16(wNumSubRanges);
>>>>>> + value = min_t(unsigned int, w_length, ranges_size(rs));
>>>>>> + dev_dbg(&agdev->gadget->dev, "%s(): sending %d rates, size %d\n",
>>>>>> + __func__, rs.wNumSubRanges, value);
>>>>>> + memcpy(req->buf, &rs, value);
>>>>>> } else {
>>>>>> dev_err(&agdev->gadget->dev,
>>>>>> "%s:%d control_selector=%d TODO!\n",
>>>>>> @@ -1582,6 +1616,28 @@ ac_rq_in(struct usb_function *fn, const struct usb_ctrlrequest *cr)
>>>>>> return -EOPNOTSUPP;
>>>>>> }
>>>>>> +static void uac2_cs_control_sam_freq(struct usb_ep *ep, struct usb_request *req)
>>>>>> +{
>>>>>> + struct usb_function *fn = ep->driver_data;
>>>>>> + struct g_audio *agdev = func_to_g_audio(fn);
>>>>>> + struct f_uac2 *uac2 = func_to_uac2(fn);
>>>>>> + struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev);
>>>>>> + u32 val;
>>>>>> +
>>>>>> + if (req->actual != 4)
>>>>>> + return;
>>>>>> +
>>>>>> + val = le32_to_cpu(*((u32 *)req->buf));
>>>>>> + dev_dbg(&agdev->gadget->dev, "%s val: %d.\n", __func__, val);
>>>>>> + if (uac2->ctl_id == USB_IN_CLK_ID) {
>>>>>> + opts->p_srate = val;
>>>>>
>>>>> Don't you need to hold opts->lock to change this?
>>>>> I'm not sure opts should be changed here though - that's the setup phase
>>>>> and this is "current state", so shouldn't it move to struct f_uac2?
>>>>
>>>> OK. I moved the current p_srate/c_srate from struct opts to f_uac2,
>>>> initialized with first value of opts->p_srates/c_srates[0] in afunc_bind.
>>>> The struct f_uac2 has no lock yet. Should I add the lock mutex to f_uac2 and
>>>> be locking f_uac2 access here in uac2_cs_control_sam_freq?
>>>
>>> Could we move this into struct uac_rtd_params and use the existing lock
>>> there to guard it?
>>>
>>> It would need accessor functions as that structure's local to u_audio.c,
>>> but there's already u_audio_set_playback_srate() so that isn't a big
>>> change.
>>
>> I have already moved p_/c_srate from uac_params to uac_rtd_params in
>> u_audio.c in the next version of the patchset. But IIUC the currently
>> selected playback/capture rate is required within f_uac2 too, in in_rq_cur()
>> in:
>>
>> if (control_selector == UAC2_CS_CONTROL_SAM_FREQ) {
>> ...
>> if (entity_id == USB_IN_CLK_ID)
>> c.dCUR = cpu_to_le32(p_srate);
>> else if (entity_id == USB_OUT_CLK_ID)
>> c.dCUR = cpu_to_le32(c_srate);
>> ...
>> }
>
> Can this can be u_audio_get_playback_srate(agdev) (and equivalent for
> capture)?
>
We certainly can add the rate getter API call. But I do not know whether
master should store and query slave for data required for proper
operation of the master. IMO f_uac2 should be in control of the params
requested by the real master - the USB host.
Currently the gadget-side app can open the gadget alsa device at the
last-used rate (or channel count if/when multiple channels config is
implemented) at any time, without knowing what params the user will
actually request. IMO in some use cases the gadget alsa device should
not allow opening before the host starts playback/capture, i.e. before
the user actually requests what params to use. This would require more
patches, nothing critical now and not in my pipeline. I (will) handle
this issue with the side-channel gaudio_ctl application controller which
receives the currently required params (srate as of now) via ctl
notifications.
The question is whether it's correct for f_uac2 to ask u_audio about
current rate at any time, even when u_audio is inactive and the only
party doing something with the rate is actually f_uac2.
Maybe the ultimate data flow should be the other way round. But IIUC
u_audio currently does not have any hooks back to f_uac1/2. The USB
functions store all the params to uac_param for u_audio to use.
But I can add the u_audio_get_playback/capture_srate API method (in a
separate patch, I guess) to avoid keeping the same values in two places,
if found convenient.
I think we all should discuss our use cases in order to delineate the
path along which the audio gadget should evolve.
Thanks,
Pavel.
^ permalink raw reply
* Re: [PATCH v2 1/2] sparse-checkout: custom tab completion tests
From: Lessley Dennington @ 2022-01-05 14:05 UTC (permalink / raw)
To: Elijah Newren
Cc: Junio C Hamano, Lessley Dennington via GitGitGadget,
Git Mailing List, Derrick Stolee, johannes.schindelin
In-Reply-To: <CABPp-BGSVzEwk83EzhPn3+5jOt5q6=CQ2W_Uz6GfUR=2=AhgNg@mail.gmail.com>
On 1/4/22 2:25 PM, Elijah Newren wrote:
> On Tue, Jan 4, 2022 at 11:26 AM Lessley Dennington
> <lessleydennington@gmail.com> wrote:
>>
>>
>>
>> On 12/31/21 4:20 PM, Junio C Hamano wrote:
>>> Elijah Newren <newren@gmail.com> writes:
>>>
>>>> Second, and this item is unrelated to your series but your comment
>>>> made me realize it....sparse-checkout unfortunately ignores prefix and
>>>> creates a bad .git/info/sparse-checkout file. For example:
>>>> ...
>>>> I think the loss of the current working directory will be fixed by the
>>>> en/keep-cwd directory (currently in next and marked for merging to
>>>> master), but the fact that the wrong paths end up in the
>>>> sparse-checkout file is unfortunate. It basically means that the
>>>> `set` and `add` subcommands of `sparse-checkout` can only be safely
>>>> run from the toplevel directory.
>>>
>>> You made it sound as if this is a fundamental limitation, but it
>>> sounds more like a bug that needs to be fixed (outside the
>>> completion series, of course) to me.
>>>
>> I can file a bug report if that's the correct way to proceed.
>
> We don't really have a bug tracker.
>
> We often just file an email, and add additional searchable strings
> (e.g. #leftoverbits, though that doesn't apply here), and then search
> via https://lore.kernel.org/git/.
>
> There is 'git bugreport', but it just generates an email to send to
> the mailing list...but we already have the emails in this thread.
>
> There is https://bugs.chromium.org/p/git/issues/list, which is used by
> a few folks, but I suspect I'm the only one who has looked at it that
> touches sparse-checkout related stuff.
>
> There is https://github.com/git-for-windows/git/issues, but this isn't
> Windows specific. (Sometimes they'll track stuff that isn't windows
> specific, but I've seen Dscho close out issues after being reported to
> this list.)
>
> I've also kept private files with lists of things to work on. Doesn't
> help anyone else track it. (Which is why I'll sometimes use one of
> the two above trackers instead.)
>
> ...not sure if that helps, but that's the basic state of our "bug tracking".
This is actually great context - thanks for providing! I'll go with the
email strategy for visibility and will base my format off [1].
[1]:
https://lore.kernel.org/git/CABceR4bZmtC4rCwgxZ1BBYZP69VOUca1f_moJoP989vTUZWu9Q@mail.gmail.com/
^ permalink raw reply
* Re: [PATCH] riscv: sifive: Fix OF_BOARD boot failure
From: Simon Glass @ 2022-01-05 14:03 UTC (permalink / raw)
To: Bin Meng
Cc: Ilias Apalodimas, Leo Yu-Chi Liang, Rick Chen, Tom Rini,
U-Boot Mailing List
In-Reply-To: <20220105010757.750589-1-bmeng.cn@gmail.com>
On Tue, 4 Jan 2022 at 18:08, Bin Meng <bmeng.cn@gmail.com> wrote:
>
> When using QEMU to have a quick test of booting U-Boot S-mode payload
> directly without the needs of preparing the SPI flash or SD card images
> for SiFive Unleashed board, as per the instructions [1], it currently
> does not boot any more.
>
> This was caused by the OF_PRIOR_STAGE removal, as gd->fdt_blob no longer
> points to a valid DTB. OF_BOARD is supposed to replace OF_PRIOR_STAGE,
> hence we need to add the OF_BOARD logic in board_fdt_blob_setup().
>
> [1] https://qemu.readthedocs.io/en/latest/system/riscv/sifive_u.html#running-u-boot
>
> Fixes: 2e8d2f88439d ("riscv: Remove OF_PRIOR_STAGE from RISC-V boards")
> Fixes: d6f8ab30a2af ("treewide: Remove OF_PRIOR_STAGE")
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
> board/sifive/unleashed/unleashed.c | 2 +-
> board/sifive/unmatched/unmatched.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply
* [PATCH v8] usb: f_fs: Fix use-after-free for epfile
From: Udipto Goswami @ 2022-01-05 14:05 UTC (permalink / raw)
To: Felipe Balbi, Greg Kroah-Hartman, John Keeping
Cc: Udipto Goswami, linux-usb, Pratham Pratap, Pavankumar Kondeti,
Jack Pham
Consider a case where ffs_func_eps_disable is called from
ffs_func_disable as part of composition switch and at the
same time ffs_epfile_release get called from userspace.
ffs_epfile_release will free up the read buffer and call
ffs_data_closed which in turn destroys ffs->epfiles and
mark it as NULL. While this was happening the driver has
already initialized the local epfile in ffs_func_eps_disable
which is now freed and waiting to acquire the spinlock. Once
spinlock is acquired the driver proceeds with the stale value
of epfile and tries to free the already freed read buffer
causing use-after-free.
Following is the illustration of the race:
CPU1 CPU2
ffs_func_eps_disable
epfiles (local copy)
ffs_epfile_release
ffs_data_closed
if (last file closed)
ffs_data_reset
ffs_data_clear
ffs_epfiles_destroy
spin_lock
dereference epfiles
Fix this races by taking epfiles local copy & assigning it under
spinlock and if epfiles(local) is null then update it in ffs->epfiles
then finally destroy it.
Extending the scope further from the race, protecting the ep related
structures, and concurrent accesses.
Fixes: a9e6f83c2df (usb: gadget: f_fs: stop sleeping in
ffs_func_eps_disable)
Reviewed-by: John Keeping <john@metanate.com>
Signed-off-by: Pratham Pratap <quic_ppratap@quicinc.com>
Co-developed-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
---
v8: Fixed compilation errors from previous version.
drivers/usb/gadget/function/f_fs.c | 60 ++++++++++++++++++++++++++++----------
1 file changed, 45 insertions(+), 15 deletions(-)
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 3c584da..541a4af 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1711,16 +1711,24 @@ static void ffs_data_put(struct ffs_data *ffs)
static void ffs_data_closed(struct ffs_data *ffs)
{
+ struct ffs_epfile *epfiles;
+ unsigned long flags;
+
ENTER();
if (atomic_dec_and_test(&ffs->opened)) {
if (ffs->no_disconnect) {
ffs->state = FFS_DEACTIVATED;
- if (ffs->epfiles) {
- ffs_epfiles_destroy(ffs->epfiles,
- ffs->eps_count);
- ffs->epfiles = NULL;
- }
+ spin_lock_irqsave(&ffs->eps_lock, flags);
+ epfiles = ffs->epfiles;
+ ffs->epfiles = NULL;
+ spin_unlock_irqrestore(&ffs->eps_lock,
+ flags);
+
+ if (epfiles)
+ ffs_epfiles_destroy(epfiles,
+ ffs->eps_count);
+
if (ffs->setup_state == FFS_SETUP_PENDING)
__ffs_ep0_stall(ffs);
} else {
@@ -1767,14 +1775,27 @@ static struct ffs_data *ffs_data_new(const char *dev_name)
static void ffs_data_clear(struct ffs_data *ffs)
{
+ struct ffs_epfile *epfiles;
+ unsigned long flags;
+
ENTER();
ffs_closed(ffs);
BUG_ON(ffs->gadget);
- if (ffs->epfiles)
- ffs_epfiles_destroy(ffs->epfiles, ffs->eps_count);
+ spin_lock_irqsave(&ffs->eps_lock, flags);
+ epfiles = ffs->epfiles;
+ ffs->epfiles = NULL;
+ spin_unlock_irqrestore(&ffs->eps_lock, flags);
+
+ /*
+ * potential race possible between ffs_func_eps_disable
+ * & ffs_epfile_release therefore maintaining a local
+ * copy of epfile will save us from use-after-free.
+ */
+ if (epfiles)
+ ffs_epfiles_destroy(epfiles, ffs->eps_count);
if (ffs->ffs_eventfd)
eventfd_ctx_put(ffs->ffs_eventfd);
@@ -1790,7 +1811,6 @@ static void ffs_data_reset(struct ffs_data *ffs)
ffs_data_clear(ffs);
- ffs->epfiles = NULL;
ffs->raw_descs_data = NULL;
ffs->raw_descs = NULL;
ffs->raw_strings = NULL;
@@ -1870,6 +1890,7 @@ static int ffs_epfiles_create(struct ffs_data *ffs)
{
struct ffs_epfile *epfile, *epfiles;
unsigned i, count;
+ unsigned long flags;
ENTER();
@@ -1895,7 +1916,9 @@ static int ffs_epfiles_create(struct ffs_data *ffs)
}
}
+ spin_lock_irqsave(&ffs->eps_lock, flags);
ffs->epfiles = epfiles;
+ spin_unlock_irqrestore(&ffs->eps_lock, flags);
return 0;
}
@@ -1919,12 +1942,15 @@ static void ffs_epfiles_destroy(struct ffs_epfile *epfiles, unsigned count)
static void ffs_func_eps_disable(struct ffs_function *func)
{
- struct ffs_ep *ep = func->eps;
- struct ffs_epfile *epfile = func->ffs->epfiles;
- unsigned count = func->ffs->eps_count;
+ struct ffs_ep *ep;
+ struct ffs_epfile *epfile;
+ unsigned short count;
unsigned long flags;
spin_lock_irqsave(&func->ffs->eps_lock, flags);
+ count = func->ffs->eps_count;
+ epfile = func->ffs->epfiles;
+ ep = func->eps;
while (count--) {
/* pending requests get nuked */
if (ep->ep)
@@ -1942,14 +1968,18 @@ static void ffs_func_eps_disable(struct ffs_function *func)
static int ffs_func_eps_enable(struct ffs_function *func)
{
- struct ffs_data *ffs = func->ffs;
- struct ffs_ep *ep = func->eps;
- struct ffs_epfile *epfile = ffs->epfiles;
- unsigned count = ffs->eps_count;
+ struct ffs_data *ffs;
+ struct ffs_ep *ep;
+ struct ffs_epfile *epfile;
+ unsigned short count;
unsigned long flags;
int ret = 0;
spin_lock_irqsave(&func->ffs->eps_lock, flags);
+ ffs = func->ffs;
+ ep = func->eps;
+ epfile = ffs->epfiles;
+ count = ffs->eps_count;
while(count--) {
ep->ep->driver_data = ep;
--
2.7.4
^ permalink raw reply related
* Re: [PATCH] lib: Kconfig: fix PHANDLE_CHECK_SEQ position outside of menu
From: Simon Glass @ 2022-01-05 14:03 UTC (permalink / raw)
To: Eugen Hristev; +Cc: Aswath Govindraju, U-Boot Mailing List
In-Reply-To: <20220104162019.306117-1-eugen.hristev@microchip.com>
On Tue, 4 Jan 2022 at 09:20, Eugen Hristev <eugen.hristev@microchip.com> wrote:
>
> CONFIG_PHANDLE_CHECK_SEQ is outside of the menu 'Library routines'
> thus it's invisible in menuconfig and cannot be selected.
> Fix this by moving the 'endmenu' after the PHANDLE_CHECK_SEQ definition
>
> Fixes: c589132a1d ("fdt: Use phandle to distinguish DT nodes with same name")
> Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
> ---
> lib/Kconfig | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply
* Re: [RFC Patch v2] binman: add support for creating dummy files for external blobs
From: Simon Glass @ 2022-01-05 14:03 UTC (permalink / raw)
To: Heiko Thiery
Cc: U-Boot Mailing List, Stefano Babic, Fabio Estevam, Michael Walle,
Tom Rini, Wolfgang Denk
In-Reply-To: <CAEyMn7ZoQZuGqinf6zs5je5pyULiU7-soLkF4yCdiFHPhHL1Bg@mail.gmail.com>
Hi Heiko,
On Tue, 4 Jan 2022 at 07:22, Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> Hi Simon,
>
>
> Am So., 2. Jan. 2022 um 18:15 Uhr schrieb Simon Glass <sjg@chromium.org>:
> >
> > Hi Heiko,
> >
> > On Thu, 2 Dec 2021 at 19:53, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Heiko,
> > >
> > > On Mon, 29 Nov 2021 at 02:48, Heiko Thiery <heiko.thiery@gmail.com> wrote:
> > > >
> > > > While converting to binman for an imx8mq board, it has been found that
> > > > building in the u-boot CI fails. This is because an imx8mq requires an
> > > > external binary (signed_hdmi_imx8m.bin). If this file cannot be found
> > > > mkimage fails.
> > > > To be able to build this board in the u-boot CI a binman option
> > > > (--fake-ext-blobs) is introduced that can be switched on via the u-boot
> > > > makefile option BINMAN_FAKE_EXT_BLOBS. With that the needed dummy files are
> > > > created.
> > > >
> > > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > > > ---
> > > > v2:
> > > > - pass allow_fake_blobs to ProcessImage()
> > > > - set AllowAllowFakeBlob() to images/entries
> > > > - create fake blob in Entry_blot.ObtainContents() when file is missing and
> > > > creation is allowed
> > > >
> > > > still missing:
> > > > - unittest
> > > > - option to set BINMAN_FAKE_EXT_BLOBS in Makefile via environment
> > > > variable. With that we could simply set this env variable in the CI
> > > > (gitlab-ci.yml) with adding support to buildman.
> > > >
> > > > Makefile | 1 +
> > > > tools/binman/cmdline.py | 2 ++
> > > > tools/binman/control.py | 9 +++++++--
> > > > tools/binman/entry.py | 11 +++++++++++
> > > > tools/binman/etype/blob.py | 7 +++++++
> > > > tools/binman/etype/blob_ext.py | 8 ++++++++
> > > > tools/binman/etype/mkimage.py | 9 +++++++++
> > > > tools/binman/etype/section.py | 9 +++++++++
> > > > 8 files changed, 54 insertions(+), 2 deletions(-)
> > >
> > > This looks good to me! The only thing is that instead of the warning
> > > you should just print a single line at the end saying which blobs were
> > > faked. See missing_list in ProcessImage() for how that could work. You
> > > can set self.fake_blob in your blob.ObtainContents() and then have a
> > > similar thing to CheckMissing() to actually collect the list of
> > > entries which were faked.
> > >
> > > Also, for the real version can you please add a test (so 'binman test
> > > -T' stays at 100% test coverage) and some docs in binman.rst ? You can
> > > use testMissingBlob() as a template.
> >
> > Any word on this? I'd like to get this feature in and take a look at
> > missing vendor tools, too.
>
> I have a new version available with your comments included. But the
> tests are still missing. In the past days I had no motivation to work
> on that. I will try to do this in the next days.
OK thanks. If you need help with the test-coverage part, let me know.
>
> > Also I think your feature should be on by default.
Regards,
Simon
^ permalink raw reply
* Re: [PATCH v2] rockchip: timer: add OF_PLATDATA support for dw-apb-timer
From: Simon Glass @ 2022-01-05 14:03 UTC (permalink / raw)
To: Johan Jonker
Cc: Kever Yang, Philipp Tomsich, Marek Vasut, U-Boot Mailing List
In-Reply-To: <20220105021533.21838-1-jbx6244@gmail.com>
Hi Johan,
On Tue, 4 Jan 2022 at 19:15, Johan Jonker <jbx6244@gmail.com> wrote:
>
> The Rockchip rk3066 SoC has 3 dw-apb-timer nodes.
> U-boot is compiled with OF_PLATDATA TPL/SPL options,
> so add OF_PLATDATA support for the dw-apb-timer.
> Also change driver name to be able to compile with
> U-boot scripts. No reset OF_PLATDATA support was added,
> because the rk3066 nodes don't need/have them.
>
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> ---
>
> Changed V2:
> replace if (IS_ENABLED(OF_REAL)) by #if CONFIG_IS_ENABLED(OF_REAL)
> ---
> drivers/timer/dw-apb-timer.c | 30 +++++++++++++++++++++++++-----
> 1 file changed, 25 insertions(+), 5 deletions(-)
>
This seems OK but you have included unrelated changes (whitespace)
which should go in a separate patch.
Can you use if() instead of #if for the CONFIG_IS_ENABLED(OF_REAL) ?
Regards,
Simon
^ permalink raw reply
* [linux-next:master 10467/10864] drivers/ntb/hw/idt/ntb_hw_idt.c:2735:12: warning: stack frame size (1320) exceeds limit (1280) in 'idt_pci_probe'
From: kernel test robot @ 2022-01-05 14:06 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 13120 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 7a769a3922d81cfc74ab4d90a9cc69485f260976
commit: ab434f1b66e63e7946bf42b70306f7efd90fba9a [10467/10864] IDT: Fix Build warnings on some 32bit architectures.
config: s390-buildonly-randconfig-r001-20220105 (https://download.01.org/0day-ci/archive/20220105/202201052106.oAp1xqJt-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ab434f1b66e63e7946bf42b70306f7efd90fba9a
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout ab434f1b66e63e7946bf42b70306f7efd90fba9a
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash drivers/ntb/hw/idt/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53:
In file included from include/linux/pci.h:39:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:75:
include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:36:59: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
^
include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
#define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
^
In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53:
In file included from include/linux/pci.h:39:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:75:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
In file included from drivers/ntb/hw/idt/ntb_hw_idt.c:53:
In file included from include/linux/pci.h:39:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:75:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:617:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:625:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:634:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:643:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
drivers/ntb/hw/idt/ntb_hw_idt.c:2409:28: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat]
"\t%hhu-%hhu.\t", idx, idx + cnt - 1);
~~~~ ^~~~~~~~~~~~~
%d
drivers/ntb/hw/idt/ntb_hw_idt.c:2438:29: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat]
"\t%hhu-%hhu.\t", idx, idx + cnt - 1);
~~~~ ^~~~~~~~~~~~~
%d
drivers/ntb/hw/idt/ntb_hw_idt.c:2484:15: warning: format specifies type 'unsigned char' but the argument has type 'int' [-Wformat]
idx, data, src, ndev->peers[src].port);
^~~
>> drivers/ntb/hw/idt/ntb_hw_idt.c:2735:12: warning: stack frame size (1320) exceeds limit (1280) in 'idt_pci_probe' [-Wframe-larger-than]
static int idt_pci_probe(struct pci_dev *pdev,
^
16 warnings generated.
vim +/idt_pci_probe +2735 drivers/ntb/hw/idt/ntb_hw_idt.c
bf2a952d31d2cd Serge Semin 2017-04-12 2722
bf2a952d31d2cd Serge Semin 2017-04-12 2723 /*===========================================================================
bf2a952d31d2cd Serge Semin 2017-04-12 2724 * 12. PCI bus callback functions
bf2a952d31d2cd Serge Semin 2017-04-12 2725 *===========================================================================
bf2a952d31d2cd Serge Semin 2017-04-12 2726 */
bf2a952d31d2cd Serge Semin 2017-04-12 2727
bf2a952d31d2cd Serge Semin 2017-04-12 2728 /*
bf2a952d31d2cd Serge Semin 2017-04-12 2729 * idt_pci_probe() - PCI device probe callback
bf2a952d31d2cd Serge Semin 2017-04-12 2730 * @pdev: Pointer to PCI device structure
bf2a952d31d2cd Serge Semin 2017-04-12 2731 * @id: PCIe device custom descriptor
bf2a952d31d2cd Serge Semin 2017-04-12 2732 *
bf2a952d31d2cd Serge Semin 2017-04-12 2733 * Return: zero on success, otherwise negative error number
bf2a952d31d2cd Serge Semin 2017-04-12 2734 */
bf2a952d31d2cd Serge Semin 2017-04-12 @2735 static int idt_pci_probe(struct pci_dev *pdev,
bf2a952d31d2cd Serge Semin 2017-04-12 2736 const struct pci_device_id *id)
bf2a952d31d2cd Serge Semin 2017-04-12 2737 {
bf2a952d31d2cd Serge Semin 2017-04-12 2738 struct idt_ntb_dev *ndev;
bf2a952d31d2cd Serge Semin 2017-04-12 2739 int ret;
bf2a952d31d2cd Serge Semin 2017-04-12 2740
bf2a952d31d2cd Serge Semin 2017-04-12 2741 /* Check whether IDT PCIe-switch is properly pre-initialized */
bf2a952d31d2cd Serge Semin 2017-04-12 2742 ret = idt_check_setup(pdev);
bf2a952d31d2cd Serge Semin 2017-04-12 2743 if (ret != 0)
bf2a952d31d2cd Serge Semin 2017-04-12 2744 return ret;
bf2a952d31d2cd Serge Semin 2017-04-12 2745
bf2a952d31d2cd Serge Semin 2017-04-12 2746 /* Allocate the memory for IDT NTB device data */
bf2a952d31d2cd Serge Semin 2017-04-12 2747 ndev = idt_create_dev(pdev, id);
91b8246de8590b Wang Qing 2020-11-06 2748 if (IS_ERR(ndev))
bf2a952d31d2cd Serge Semin 2017-04-12 2749 return PTR_ERR(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2750
bf2a952d31d2cd Serge Semin 2017-04-12 2751 /* Initialize the basic PCI subsystem of the device */
bf2a952d31d2cd Serge Semin 2017-04-12 2752 ret = idt_init_pci(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2753 if (ret != 0)
bf2a952d31d2cd Serge Semin 2017-04-12 2754 return ret;
bf2a952d31d2cd Serge Semin 2017-04-12 2755
bf2a952d31d2cd Serge Semin 2017-04-12 2756 /* Scan ports of the IDT PCIe-switch */
bf2a952d31d2cd Serge Semin 2017-04-12 2757 (void)idt_scan_ports(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2758
bf2a952d31d2cd Serge Semin 2017-04-12 2759 /* Initialize NTB link events subsystem */
bf2a952d31d2cd Serge Semin 2017-04-12 2760 idt_init_link(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2761
bf2a952d31d2cd Serge Semin 2017-04-12 2762 /* Initialize MWs subsystem */
bf2a952d31d2cd Serge Semin 2017-04-12 2763 ret = idt_init_mws(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2764 if (ret != 0)
bf2a952d31d2cd Serge Semin 2017-04-12 2765 goto err_deinit_link;
bf2a952d31d2cd Serge Semin 2017-04-12 2766
bf2a952d31d2cd Serge Semin 2017-04-12 2767 /* Initialize Messaging subsystem */
bf2a952d31d2cd Serge Semin 2017-04-12 2768 idt_init_msg(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2769
aed1b7b31154bd Serge Semin 2018-07-17 2770 /* Initialize hwmon interface */
aed1b7b31154bd Serge Semin 2018-07-17 2771 idt_init_temp(ndev);
aed1b7b31154bd Serge Semin 2018-07-17 2772
bf2a952d31d2cd Serge Semin 2017-04-12 2773 /* Initialize IDT interrupts handler */
bf2a952d31d2cd Serge Semin 2017-04-12 2774 ret = idt_init_isr(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2775 if (ret != 0)
bf2a952d31d2cd Serge Semin 2017-04-12 2776 goto err_deinit_link;
bf2a952d31d2cd Serge Semin 2017-04-12 2777
bf2a952d31d2cd Serge Semin 2017-04-12 2778 /* Register IDT NTB devices on the NTB bus */
bf2a952d31d2cd Serge Semin 2017-04-12 2779 ret = idt_register_device(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2780 if (ret != 0)
bf2a952d31d2cd Serge Semin 2017-04-12 2781 goto err_deinit_isr;
bf2a952d31d2cd Serge Semin 2017-04-12 2782
bf2a952d31d2cd Serge Semin 2017-04-12 2783 /* Initialize DebugFS info node */
bf2a952d31d2cd Serge Semin 2017-04-12 2784 (void)idt_init_dbgfs(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2785
bf2a952d31d2cd Serge Semin 2017-04-12 2786 /* IDT PCIe-switch NTB driver is finally initialized */
bf2a952d31d2cd Serge Semin 2017-04-12 2787 dev_info(&pdev->dev, "IDT NTB device is ready");
bf2a952d31d2cd Serge Semin 2017-04-12 2788
bf2a952d31d2cd Serge Semin 2017-04-12 2789 /* May the force be with us... */
bf2a952d31d2cd Serge Semin 2017-04-12 2790 return 0;
bf2a952d31d2cd Serge Semin 2017-04-12 2791
bf2a952d31d2cd Serge Semin 2017-04-12 2792 err_deinit_isr:
bf2a952d31d2cd Serge Semin 2017-04-12 2793 idt_deinit_isr(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2794 err_deinit_link:
bf2a952d31d2cd Serge Semin 2017-04-12 2795 idt_deinit_link(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2796 idt_deinit_pci(ndev);
bf2a952d31d2cd Serge Semin 2017-04-12 2797
bf2a952d31d2cd Serge Semin 2017-04-12 2798 return ret;
bf2a952d31d2cd Serge Semin 2017-04-12 2799 }
bf2a952d31d2cd Serge Semin 2017-04-12 2800
:::::: The code at line 2735 was first introduced by commit
:::::: bf2a952d31d2cd28bb3454f15645a76fda70addd NTB: Add IDT 89HPESxNTx PCIe-switches support
:::::: TO: Serge Semin <fancer.lancer@gmail.com>
:::::: CC: Jon Mason <jdmason@kudzu.us>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply
* Re: [PATCH] ide: Explicitly poll for BHs on cancel
From: Hanna Reitz @ 2022-01-05 13:53 UTC (permalink / raw)
To: qemu-block; +Cc: John Snow, qemu-devel
In-Reply-To: <20220105111337.10366-1-hreitz@redhat.com>
On 05.01.22 12:13, Hanna Reitz wrote:
[...]
> Perhaps for a lack of being aware of all the kinds of tests we have, I
> found it impossible to write a reproducer in any of our current test
> frameworks: From how I understand the issue, to reproduce it, you need
> to issue a TRIM request and immediately cancel it, before
> ide_trim_bh_cb() (scheduled as a BH) can run.
>
> I wanted to do this via qtest, but that does not work, because every
> port I/O operation is done via a qtest command, and QEMU will happily
> poll the main context between each qtest command, which means that you
> cannot cancel an ongoing IDE request before a BH scheduled by it is run.
>
> Therefore, I wrote an x86 boot sector that sets up a no-op TRIM request
> (i.e. one where all TRIM ranges have length 0) and immediately cancels
> it by setting SRST.
I just realized we could, if we really wanted to, add this to the
iotests’ sample_images directory, and then run it from an iotest...
Hanna
^ permalink raw reply
* Re: Memory clearing in swiotlb_update_mem_attributes()
From: Tom Lendacky via iommu @ 2022-01-05 14:06 UTC (permalink / raw)
To: Kirill A. Shutemov; +Cc: Christoph Hellwig, iommu
In-Reply-To: <20220104224939.yhpceiuzqqhb72ql@box.shutemov.name>
On 1/4/22 4:49 PM, Kirill A. Shutemov wrote:
> Hi Tom,
>
> For larger TDX VM, memset() after set_memory_decrypted() in
> swiotlb_update_mem_attributes() takes substantial portion of boot time.
>
> It makes me wounder why do we need it there? Malicious VMM can mess with
> decrypted/shared buffer at any point and for normal use it will be
> populated with real data anyway.
>
> Can we drop it?
Probably more a question for Christoph. Does SWIOTLB need to be
initialized to zeroes? If it does, then the memset after the
set_memory_decrypted() is required, otherwise it will appear as ciphertext
to SWIOTLB.
If I get some time over the next couple of days, I can also try and test
to see what happens.
Thanks,
Tom
>
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply
* Re: [PATCH v3] PCI: mt7621: Convert driver into 'bool'
From: Sergio Paracuellos @ 2022-01-05 14:06 UTC (permalink / raw)
To: Lorenzo Pieralisi
Cc: linux-pci, Thomas Bogendoerfer, Bjorn Helgaas, Arnd Bergmann,
Guenter Roeck, linux-kernel
In-Reply-To: <20220105140132.GA7208@lpieralisi>
Hi Lorenzo,
On Wed, Jan 5, 2022 at 3:01 PM Lorenzo Pieralisi
<lorenzo.pieralisi@arm.com> wrote:
>
> On Fri, Dec 03, 2021 at 08:24:54PM +0100, Sergio Paracuellos wrote:
> > Driver is not ready yet to be compiled as a module since it depends on some
> > MIPS not exported symbols. We have the following current problems:
> >
> > Building mips:allmodconfig ... failed
> > --------------
> > Error log:
> > ERROR: modpost: missing MODULE_LICENSE() in drivers/pci/controller/pcie-mt7621.o
> > ERROR: modpost: "mips_cm_unlock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > ERROR: modpost: "mips_cpc_base" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > ERROR: modpost: "mips_cm_lock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > ERROR: modpost: "mips_cm_is64" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> > ERROR: modpost: "mips_gcr_base" [drivers/pci/controller/pcie-mt7621.ko] undefined!
> >
> > Temporarily move from 'tristate' to 'bool' until a better solution is ready.
> >
> > Also RALINK is redundant because SOC_MT7621 already depends on it. Hence,
> > simplify condition.
> >
> > Fixes: 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host controller driver").
> > Reviewed-and-tested-by: Guenter Roeck <linux@roeck-us.net>
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> > Changes in v3:
> > - Adjust subject to follow convention:
> > s/PCI: mt7621: Kconfig:/PCI: mt7621:/
> > Changes in v2:
> > - Add Guenter's 'Reviewed-and-tested-by'.
> > - s/after/until
> > drivers/pci/controller/Kconfig | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> > index 93b141110537..7fc5135ffbbf 100644
> > --- a/drivers/pci/controller/Kconfig
> > +++ b/drivers/pci/controller/Kconfig
> > @@ -332,8 +332,8 @@ config PCIE_APPLE
> > If unsure, say Y if you have an Apple Silicon system.
> >
> > config PCIE_MT7621
> > - tristate "MediaTek MT7621 PCIe Controller"
> > - depends on (RALINK && SOC_MT7621) || (MIPS && COMPILE_TEST)
> > + bool "MediaTek MT7621 PCIe Controller"
> > + depends on SOC_MT7621 || (MIPS && COMPILE_TEST)
> > select PHY_MT7621_PCI
> > default SOC_MT7621
> > help
> > --
> > 2.33.0
> >
>
> Hi Sergio,
>
> I believe this is still to be pulled in some tree, just asking for
> confirmation, please let me know and I will queue it.
This is already in Linus'tree [0].
>
> Thanks,
> Lorenzo
Best regards,
Sergio Paracuellos
[0]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/pci/controller?id=aa50faff4416c869b52dff68a937c84d29e12f4b
^ permalink raw reply
* [PATCH 0/7] y2038: cond_wait_prologue64 and related fixes
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
Hi all,
this is the last missing POSIX related y2038 affected syscall in
Xenomai. With this applied we have two Xenomai specific syscalls
missing:
- sc_cobalt_thread_setschedparam_ex
- sc_cobalt_thread_getschedparam_ex
While adding tests for the introduced cond_wait_prologue64 I hit a
kernel OOPS due to insuficient validation of user provided pointers.
That has been addressed as well.
This series has been tested against all Xenomai 3.3 supported
architectures / kernels. ipipe based kernels were out of scope (which
should not make any difference).
Best regards,
Florian
Florian Bezdeka (7):
y2038: cobalt/posix/cond: Adding cond_wait_prologue64
cobalt: posix/cond: Add missing __user annotation to user provided ptr
y2038: lib/cobalt: Dispatch cond_wait_prologue
cobalt: posix/cond: Add missing input validations
y2038: testsuite/smokey/y2038: Adding tests for cond_wait_prologue64
y2038: testsuite/smokey/y2038: Add a missing error handling path
cobalt: Protect __xn_get_user() by access_ok()
include/cobalt/uapi/syscall.h | 1 +
kernel/cobalt/posix/cond.c | 54 ++++++++++---
kernel/cobalt/posix/cond.h | 17 ++++-
kernel/cobalt/posix/internal.h | 4 +
kernel/cobalt/posix/nsem.c | 3 +-
kernel/cobalt/posix/syscall32.c | 15 +++-
kernel/cobalt/posix/syscall32.h | 9 ++-
kernel/cobalt/trace/cobalt-posix.h | 3 +-
lib/cobalt/cond.c | 21 +++++-
testsuite/smokey/y2038/syscall-tests.c | 100 ++++++++++++++++++++++++-
10 files changed, 206 insertions(+), 21 deletions(-)
--
2.30.2
^ permalink raw reply
* [PATCH 1/7] y2038: cobalt/posix/cond: Adding cond_wait_prologue64
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
Add a syscall specific for cond_wait_prologue64 with 64bit time_t.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
include/cobalt/uapi/syscall.h | 1 +
kernel/cobalt/posix/cond.c | 26 ++++++++++++++++++++++++++
kernel/cobalt/posix/cond.h | 13 +++++++++++++
kernel/cobalt/posix/syscall32.c | 10 ++++++++++
kernel/cobalt/posix/syscall32.h | 7 +++++++
kernel/cobalt/trace/cobalt-posix.h | 3 ++-
6 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/include/cobalt/uapi/syscall.h b/include/cobalt/uapi/syscall.h
index 1523ddd2d..9646a0d97 100644
--- a/include/cobalt/uapi/syscall.h
+++ b/include/cobalt/uapi/syscall.h
@@ -135,6 +135,7 @@
#define sc_cobalt_monitor_wait64 112
#define sc_cobalt_event_wait64 113
#define sc_cobalt_recvmmsg64 114
+#define sc_cobalt_cond_wait_prologue64 115
#define __NR_COBALT_SYSCALLS 128 /* Power of 2 */
diff --git a/kernel/cobalt/posix/cond.c b/kernel/cobalt/posix/cond.c
index bb18fe316..28400505f 100644
--- a/kernel/cobalt/posix/cond.c
+++ b/kernel/cobalt/posix/cond.c
@@ -21,6 +21,7 @@
#include "mutex.h"
#include "cond.h"
#include "clock.h"
+#include <cobalt/kernel/time.h>
#include <trace/events/cobalt-posix.h>
static inline int
@@ -276,6 +277,12 @@ static inline int cond_fetch_timeout(struct timespec64 *ts,
return u_ts == NULL ? -EFAULT : cobalt_get_u_timespec(ts, u_ts);
}
+static inline int cond_fetch_timeout64(struct timespec64 *ts,
+ const void __user *u_ts)
+{
+ return u_ts == NULL ? -EFAULT : cobalt_get_timespec64(ts, u_ts);
+}
+
int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
int *u_err,
@@ -342,6 +349,15 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
return err == 0 ? perr : err;
}
+int __cobalt_cond_wait_prologue64(struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err, unsigned int timed,
+ void __user *u_ts)
+{
+ return __cobalt_cond_wait_prologue(u_cnd, u_mx, u_err, u_ts,
+ timed ? cond_fetch_timeout64 : NULL);
+}
+
/* pthread_cond_wait_prologue(cond, mutex, count_ptr, timed, timeout) */
COBALT_SYSCALL(cond_wait_prologue, nonrestartable,
(struct cobalt_cond_shadow __user *u_cnd,
@@ -354,6 +370,16 @@ COBALT_SYSCALL(cond_wait_prologue, nonrestartable,
timed ? cond_fetch_timeout : NULL);
}
+COBALT_SYSCALL(cond_wait_prologue64, nonrestartable,
+ (struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err,
+ unsigned int timed,
+ struct __kernel_timespec __user *u_ts))
+{
+ return __cobalt_cond_wait_prologue64(u_cnd, u_mx, u_err, timed, u_ts);
+}
+
COBALT_SYSCALL(cond_wait_epilogue, primary,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx))
diff --git a/kernel/cobalt/posix/cond.h b/kernel/cobalt/posix/cond.h
index 7bec2a649..b087b189e 100644
--- a/kernel/cobalt/posix/cond.h
+++ b/kernel/cobalt/posix/cond.h
@@ -45,6 +45,12 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
void __user *u_ts,
int (*fetch_timeout)(struct timespec64 *ts,
const void __user *u_ts));
+
+int __cobalt_cond_wait_prologue64(struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err, unsigned int timed,
+ void __user *u_ts);
+
COBALT_SYSCALL_DECL(cond_init,
(struct cobalt_cond_shadow __user *u_cnd,
const struct cobalt_condattr __user *u_attr));
@@ -59,6 +65,13 @@ COBALT_SYSCALL_DECL(cond_wait_prologue,
unsigned int timed,
struct __user_old_timespec __user *u_ts));
+COBALT_SYSCALL_DECL(cond_wait_prologue64,
+ (struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err,
+ unsigned int timed,
+ struct __kernel_timespec __user *u_ts));
+
COBALT_SYSCALL_DECL(cond_wait_epilogue,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx));
diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
index 266789611..fbd2b7f79 100644
--- a/kernel/cobalt/posix/syscall32.c
+++ b/kernel/cobalt/posix/syscall32.c
@@ -286,6 +286,16 @@ COBALT_SYSCALL32emu(cond_wait_prologue, nonrestartable,
timed ? sys32_fetch_timeout : NULL);
}
+COBALT_SYSCALL32emu(cond_wait_prologue64, nonrestartable,
+ (struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err,
+ unsigned int timed,
+ struct __kernel_timespec __user *u_ts))
+{
+ return __cobalt_cond_wait_prologue64(u_cnd, u_mx, u_err, timed, u_ts);
+}
+
COBALT_SYSCALL32emu(mq_open, lostage,
(const char __user *u_name, int oflags,
mode_t mode, struct compat_mq_attr __user *u_attr))
diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
index 72e32f4f8..cdaa903ea 100644
--- a/kernel/cobalt/posix/syscall32.h
+++ b/kernel/cobalt/posix/syscall32.h
@@ -109,6 +109,13 @@ COBALT_SYSCALL32emu_DECL(cond_wait_prologue,
unsigned int timed,
struct old_timespec32 __user *u_ts));
+COBALT_SYSCALL32emu_DECL(cond_wait_prologue64,
+ (struct cobalt_cond_shadow __user *u_cnd,
+ struct cobalt_mutex_shadow __user *u_mx,
+ int *u_err,
+ unsigned int timed,
+ struct __kernel_timespec __user *u_ts));
+
COBALT_SYSCALL32emu_DECL(mq_open,
(const char __user *u_name, int oflags,
mode_t mode, struct compat_mq_attr __user *u_attr));
diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h
index 2bc004dab..c7eef7fba 100644
--- a/kernel/cobalt/trace/cobalt-posix.h
+++ b/kernel/cobalt/trace/cobalt-posix.h
@@ -167,7 +167,8 @@
__cobalt_symbolic_syscall(sigtimedwait64), \
__cobalt_symbolic_syscall(monitor_wait64), \
__cobalt_symbolic_syscall(event_wait64), \
- __cobalt_symbolic_syscall(recvmmsg64))
+ __cobalt_symbolic_syscall(recvmmsg64), \
+ __cobalt_symbolic_syscall(cond_wait_prologue64))
DECLARE_EVENT_CLASS(cobalt_syscall_entry,
TP_PROTO(unsigned int nr),
--
2.30.2
^ permalink raw reply related
* [PATCH 2/7] cobalt: posix/cond: Add missing __user annotation to user provided ptr
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
Like all other pointers in the cond_wait_prologue interface the error
pointer is user-provided and should be annotated accordingly.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
kernel/cobalt/posix/cond.c | 8 ++++----
kernel/cobalt/posix/cond.h | 8 ++++----
kernel/cobalt/posix/syscall32.c | 4 ++--
kernel/cobalt/posix/syscall32.h | 4 ++--
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/kernel/cobalt/posix/cond.c b/kernel/cobalt/posix/cond.c
index 28400505f..e3a95ff83 100644
--- a/kernel/cobalt/posix/cond.c
+++ b/kernel/cobalt/posix/cond.c
@@ -285,7 +285,7 @@ static inline int cond_fetch_timeout64(struct timespec64 *ts,
int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
void __user *u_ts,
int (*fetch_timeout)(struct timespec64 *ts,
const void __user *u_ts))
@@ -351,7 +351,7 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
int __cobalt_cond_wait_prologue64(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err, unsigned int timed,
+ int __user *u_err, unsigned int timed,
void __user *u_ts)
{
return __cobalt_cond_wait_prologue(u_cnd, u_mx, u_err, u_ts,
@@ -362,7 +362,7 @@ int __cobalt_cond_wait_prologue64(struct cobalt_cond_shadow __user *u_cnd,
COBALT_SYSCALL(cond_wait_prologue, nonrestartable,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __user_old_timespec __user *u_ts))
{
@@ -373,7 +373,7 @@ COBALT_SYSCALL(cond_wait_prologue, nonrestartable,
COBALT_SYSCALL(cond_wait_prologue64, nonrestartable,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __kernel_timespec __user *u_ts))
{
diff --git a/kernel/cobalt/posix/cond.h b/kernel/cobalt/posix/cond.h
index b087b189e..1fd4256ce 100644
--- a/kernel/cobalt/posix/cond.h
+++ b/kernel/cobalt/posix/cond.h
@@ -41,14 +41,14 @@ struct cobalt_cond {
int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
void __user *u_ts,
int (*fetch_timeout)(struct timespec64 *ts,
const void __user *u_ts));
int __cobalt_cond_wait_prologue64(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err, unsigned int timed,
+ int __user *u_err, unsigned int timed,
void __user *u_ts);
COBALT_SYSCALL_DECL(cond_init,
@@ -61,14 +61,14 @@ COBALT_SYSCALL_DECL(cond_destroy,
COBALT_SYSCALL_DECL(cond_wait_prologue,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __user_old_timespec __user *u_ts));
COBALT_SYSCALL_DECL(cond_wait_prologue64,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __kernel_timespec __user *u_ts));
diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
index fbd2b7f79..a6cf218ea 100644
--- a/kernel/cobalt/posix/syscall32.c
+++ b/kernel/cobalt/posix/syscall32.c
@@ -278,7 +278,7 @@ COBALT_SYSCALL32emu(mutex_timedlock64, primary,
COBALT_SYSCALL32emu(cond_wait_prologue, nonrestartable,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct old_timespec32 __user *u_ts))
{
@@ -289,7 +289,7 @@ COBALT_SYSCALL32emu(cond_wait_prologue, nonrestartable,
COBALT_SYSCALL32emu(cond_wait_prologue64, nonrestartable,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __kernel_timespec __user *u_ts))
{
diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
index cdaa903ea..a64d100e7 100644
--- a/kernel/cobalt/posix/syscall32.h
+++ b/kernel/cobalt/posix/syscall32.h
@@ -105,14 +105,14 @@ COBALT_SYSCALL32emu_DECL(mutex_timedlock64,
COBALT_SYSCALL32emu_DECL(cond_wait_prologue,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct old_timespec32 __user *u_ts));
COBALT_SYSCALL32emu_DECL(cond_wait_prologue64,
(struct cobalt_cond_shadow __user *u_cnd,
struct cobalt_mutex_shadow __user *u_mx,
- int *u_err,
+ int __user *u_err,
unsigned int timed,
struct __kernel_timespec __user *u_ts));
--
2.30.2
^ permalink raw reply related
* [PATCH 3/7] y2038: lib/cobalt: Dispatch cond_wait_prologue
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
It libc reports time64_t support, cond_wait_prologue is now dispatched
to the time64_t based syscall.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
lib/cobalt/cond.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/lib/cobalt/cond.c b/lib/cobalt/cond.c
index 1bf5c74b3..35b367a73 100644
--- a/lib/cobalt/cond.c
+++ b/lib/cobalt/cond.c
@@ -227,6 +227,20 @@ static void __pthread_cond_cleanup(void *data)
c->mutex->lockcnt = c->count;
}
+static inline int do_sc_cond_wait_prologue(struct cobalt_cond_shadow *cnd,
+ struct cobalt_mutex_shadow *mx,
+ int *err, int timed,
+ const struct timespec *abstime)
+{
+#ifdef __USE_TIME_BITS64
+ long sc_nr = sc_cobalt_cond_wait_prologue64;
+#else
+ long sc_nr = sc_cobalt_cond_wait_prologue;
+#endif
+
+ return XENOMAI_SYSCALL5(sc_nr, cnd, mx, err, timed, abstime);
+}
+
/**
* Wait on a condition variable.
*
@@ -310,8 +324,7 @@ COBALT_IMPL(int, pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mute
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype);
- err = XENOMAI_SYSCALL5(sc_cobalt_cond_wait_prologue,
- _cnd, _mx, &c.err, 0, NULL);
+ err = do_sc_cond_wait_prologue(_cnd, _mx, &c.err, 0, NULL);
pthread_setcanceltype(oldtype, NULL);
@@ -399,8 +412,8 @@ COBALT_IMPL(int, pthread_cond_timedwait, (pthread_cond_t *cond,
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype);
- err = XENOMAI_SYSCALL5(sc_cobalt_cond_wait_prologue,
- _cnd, _mx, &c.err, 1, abstime);
+ err = do_sc_cond_wait_prologue(_cnd, _mx, &c.err, 1, abstime);
+
pthread_setcanceltype(oldtype, NULL);
pthread_cleanup_pop(0);
--
2.30.2
^ permalink raw reply related
* [PATCH 4/7] cobalt: posix/cond: Add missing input validations
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
The following validation issues have been addressed:
- __cobalt_cond_wait_prologue() missed validating the supplied
pointers after the registry lookup which could fail. That triggered
the kernel OOPS dumped below
- The check removed from cobalt_cond_timedwait_prologue() is now
already done in __cobalt_cond_wait_prologue()
- The entry point for the cond_wait_epilogue syscall missed the same
validations
- __cobalt_cond_wait_prologue() missed the validation for the
supplied timeout
[ 21.254929] BUG: kernel NULL pointer dereference, address: 0000000000000078
[ 21.254930] #PF: supervisor read access in kernel mode
[ 21.254931] #PF: error_code(0x0000) - not-present page
[ 21.254932] PGD 0 P4D 0
[ 21.254933] Oops: 0000 [#1] SMP NOPTI IRQ_PIPELINE
[ 21.254934] CPU: 1 PID: 271 Comm: smokey Not tainted 5.10.76+ #54
[ 21.254935] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
[ 21.254935] IRQ stage: Linux
[ 21.254936] RIP: 0010:__cobalt_cond_wait_prologue+0x28c/0x430
[ 21.254937] Code: 48 d1 e8 83 e0 01 49 39 c5 0f 85 10 01 00 00 48 83 7b 78 00 45 89 f8 44 89 f8 45 89 e7 0f 85 ed 00 00 00b
[ 21.254937] RSP: 0018:ffffc90000843e30 EFLAGS: 00010246
[ 21.254938] RAX: fffffffffffffff2 RBX: 0000000000000000 RCX: 0000000000000000
[ 21.254938] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[ 21.254938] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 21.254939] R10: 0000000000019000 R11: 0000000000000000 R12: ffffc9000061c408
[ 21.254939] R13: 0000000000000000 R14: 0000000000000000 R15: ffffffff8118f400
[ 21.254939] FS: 00007fdfe9f79680(0000) GS:ffff88803e880000(0000) knlGS:0000000000000000
[ 21.254939] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 21.254940] CR2: 0000000000000078 CR3: 0000000004108000 CR4: 00000000003506e0
[ 21.254940] Call Trace:
[ 21.254940] ? dovetail_leave_inband+0xdc/0x120
[ 21.254940] ? CoBaLt_cond_wait_prologue+0x30/0x30
[ 21.254941] CoBaLt_cond_wait_prologue64+0x1e/0x30
[ 21.254941] handle_root_syscall+0xe0/0x2d0
[ 21.254941] __pipeline_syscall+0xb3/0x230
[ 21.254941] ? vfs_write+0x14d/0x270
[ 21.254942] pipeline_syscall+0x33/0xe0
[ 21.254942] syscall_enter_from_user_mode+0x23/0x80
[ 21.254942] do_syscall_64+0xf/0x50
[ 21.254942] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 21.254943] RIP: 0033:0x5617e786b83d
[ 21.254943] Code: 00 00 00 00 48 c7 45 c8 00 00 00 00 4c 8b 45 e8 4c 8b 55 e0 48 8b 55 d8 48 8b 75 d0 48 8b 7d c8 8b 45 f05
[ 21.254943] RSP: 002b:00007ffd22b84db0 EFLAGS: 00000202 ORIG_RAX: 0000000010000073
[ 21.254944] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00005617e786b83d
[ 21.254944] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[ 21.254945] RBP: 00007ffd22b84f40 R08: 0000000000000000 R09: 0000000000000001
[ 21.254945] R10: 0000000000000000 R11: 0000000000000202 R12: 00005617e7848e60
[ 21.254945] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 21.254946] Modules linked in:
[ 21.254946] CR2: 0000000000000078
[ 21.254946] ---[ end trace 4f2931a73a5a875d ]---
[ 21.254946] RIP: 0010:__cobalt_cond_wait_prologue+0x28c/0x430
[ 21.254947] Code: 48 d1 e8 83 e0 01 49 39 c5 0f 85 10 01 00 00 48 83 7b 78 00 45 89 f8 44 89 f8 45 89 e7 0f 85 ed 00 00 00b
[ 21.254947] RSP: 0018:ffffc90000843e30 EFLAGS: 00010246
[ 21.254948] RAX: fffffffffffffff2 RBX: 0000000000000000 RCX: 0000000000000000
[ 21.254948] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[ 21.254948] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 21.254949] R10: 0000000000019000 R11: 0000000000000000 R12: ffffc9000061c408
[ 21.254949] R13: 0000000000000000 R14: 0000000000000000 R15: ffffffff8118f400
[ 21.254949] FS: 00007fdfe9f79680(0000) GS:ffff88803e880000(0000) knlGS:0000000000000000
[ 21.254950] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 21.254950] CR2: 0000000000000078 CR3: 0000000004108000 CR4: 00000000003506e0
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
kernel/cobalt/posix/cond.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/kernel/cobalt/posix/cond.c b/kernel/cobalt/posix/cond.c
index e3a95ff83..95d1e75bc 100644
--- a/kernel/cobalt/posix/cond.c
+++ b/kernel/cobalt/posix/cond.c
@@ -134,8 +134,7 @@ static inline int cobalt_cond_timedwait_prologue(struct xnthread *cur,
xnlock_get_irqsave(&nklock, s);
/* If another thread waiting for cond does not use the same mutex */
- if (!cobalt_obj_active(cond, COBALT_COND_MAGIC, struct cobalt_cond)
- || (cond->mutex && cond->mutex != mutex)) {
+ if ((cond->mutex && cond->mutex != mutex)) {
err = -EINVAL;
goto unlock_and_return;
}
@@ -301,9 +300,13 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
handle = cobalt_get_handle_from_user(&u_cnd->handle);
cond = xnregistry_lookup(handle, NULL);
+ if (!cobalt_obj_active(cond, COBALT_COND_MAGIC, typeof(*cond)))
+ return -EINVAL;
handle = cobalt_get_handle_from_user(&u_mx->handle);
mx = xnregistry_lookup(handle, NULL);
+ if (!cobalt_obj_active(mx, COBALT_MUTEX_MAGIC, typeof(*mx)))
+ return -EINVAL;
if (cond->mutex == NULL) {
__xn_get_user(offset, &u_mx->state_offset);
@@ -313,9 +316,12 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
if (fetch_timeout) {
err = fetch_timeout(&ts, u_ts);
if (err == 0) {
- trace_cobalt_cond_timedwait(u_cnd, u_mx, &ts);
- err = cobalt_cond_timedwait_prologue(cur, cond, mx,
- ts2ns(&ts) + 1);
+ if (timespec64_valid(&ts)) {
+ trace_cobalt_cond_timedwait(u_cnd, u_mx, &ts);
+ err = cobalt_cond_timedwait_prologue(
+ cur, cond, mx, ts2ns(&ts) + 1);
+ } else
+ err = -EINVAL;
}
} else {
trace_cobalt_cond_wait(u_cnd, u_mx);
@@ -334,9 +340,8 @@ int __cobalt_cond_wait_prologue(struct cobalt_cond_shadow __user *u_cnd,
d.err = 0; /* epilogue should return 0. */
break;
+ case -EINVAL:
default:
- /* Please gcc and handle the case which will never
- happen */
d.err = EINVAL;
}
@@ -392,9 +397,14 @@ COBALT_SYSCALL(cond_wait_epilogue, primary,
handle = cobalt_get_handle_from_user(&u_cnd->handle);
cond = xnregistry_lookup(handle, NULL);
+ if (!cobalt_obj_active(cond, COBALT_COND_MAGIC, typeof(*cond)))
+ return -EINVAL;
handle = cobalt_get_handle_from_user(&u_mx->handle);
mx = xnregistry_lookup(handle, NULL);
+ if (!cobalt_obj_active(mx, COBALT_MUTEX_MAGIC, typeof(*mx)))
+ return -EINVAL;
+
err = cobalt_cond_timedwait_epilogue(cur, cond, mx);
if (cond->mutex == NULL)
--
2.30.2
^ permalink raw reply related
* [PATCH 5/7] y2038: testsuite/smokey/y2038: Adding tests for cond_wait_prologue64
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
Extending the smokey testsuite to do some tests for the recently added
cond_wait_prologue64 syscall.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
testsuite/smokey/y2038/syscall-tests.c | 97 ++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
diff --git a/testsuite/smokey/y2038/syscall-tests.c b/testsuite/smokey/y2038/syscall-tests.c
index a1a5d12f6..874decc2a 100644
--- a/testsuite/smokey/y2038/syscall-tests.c
+++ b/testsuite/smokey/y2038/syscall-tests.c
@@ -1116,6 +1116,99 @@ out:
return ret;
}
+static int test_sc_cobalt_cond_wait_prologue(void)
+{
+ int ret = 0;
+ int err = 0;
+ int sc_nr = sc_cobalt_cond_wait_prologue64;
+ pthread_mutex_t m;
+ pthread_cond_t c;
+ pthread_condattr_t attr;
+ struct xn_timespec64 t1, t2;
+ struct timespec ts_nat;
+
+ if (!__T(ret, pthread_mutex_init(&m, NULL)))
+ return ret;
+
+ if (!__T(ret, pthread_condattr_init(&attr)))
+ goto out_mutex;
+
+ if (!__T(ret, pthread_cond_init(&c, &attr)))
+ goto out_cond_attr;
+
+ /* Make sure we don't crash because of NULL pointers */
+ ret = XENOMAI_SYSCALL5(sc_nr, NULL, NULL, NULL, NULL, NULL);
+ if (ret == -ENOSYS) {
+ smokey_note(
+ "cond_wait_prologue64: skipped. (no kernel support)");
+ return 0; // Not implemented, nothing to test, success
+ }
+ if (!smokey_assert(ret == -EINVAL))
+ return ret ? ret : -EINVAL;
+
+ /* Timed, but no timeout supplied, should deliver EFAULT */
+ ret = XENOMAI_SYSCALL5(sc_nr, &c, &m, &err, 1 /* timed */, NULL);
+ if (!smokey_assert(ret == -EFAULT)) {
+ ret = ret ? ret : -EINVAL;
+ goto out;
+ }
+
+ /* Timed and invalid timeout supplied, should deliver EINVAL */
+ t1.tv_sec = -1;
+ t1.tv_nsec = 0;
+ ret = XENOMAI_SYSCALL5(sc_nr, &c, &m, &err, 1 /* timed */, &t1);
+ if (!smokey_assert(ret == -EINVAL)) {
+ ret = ret ? ret : -EINVAL;
+ goto out;
+ }
+
+ /*
+ * Providing a valid timeout, waiting for it to time out and check
+ * that we didn't come back to early.
+ */
+ ret = smokey_check_errno(clock_gettime(CLOCK_MONOTONIC, &ts_nat));
+ if (ret)
+ goto out;
+
+ t1.tv_sec = 0;
+ t1.tv_nsec = 500000;
+
+ if (!__T(ret, pthread_mutex_lock(&m)))
+ goto out;
+
+ ret = XENOMAI_SYSCALL5(sc_nr, &c, &m, &err, 1 /* timed */, &t1);
+ if (!smokey_assert(ret == -ETIMEDOUT)) {
+ ret = ret ? ret : -EINVAL;
+ goto out;
+ }
+
+ t1.tv_sec = ts_nat.tv_sec;
+ t1.tv_nsec = ts_nat.tv_nsec;
+
+ ret = smokey_check_errno(clock_gettime(CLOCK_MONOTONIC, &ts_nat));
+ if (ret)
+ goto out;
+
+ t2.tv_sec = ts_nat.tv_sec;
+ t2.tv_nsec = ts_nat.tv_nsec;
+
+ if (ts_less(&t2, &t1))
+ smokey_warning("cond_wait_prologue64 returned to early!\n"
+ "Expected wakeup at: %lld sec %lld nsec\n"
+ "Back at : %lld sec %lld nsec\n",
+ t1.tv_sec, t1.tv_nsec, t2.tv_sec, t2.tv_nsec);
+
+ pthread_mutex_unlock(&m);
+
+out:
+ pthread_cond_destroy(&c);
+out_cond_attr:
+ pthread_condattr_destroy(&attr);
+out_mutex:
+ pthread_mutex_destroy(&m);
+
+ return ret;
+}
static int check_kernel_version(void)
{
@@ -1199,5 +1292,9 @@ static int run_y2038(struct smokey_test *t, int argc, char *const argv[])
if (ret)
return ret;
+ ret = test_sc_cobalt_cond_wait_prologue();
+ if (ret)
+ return ret;
+
return 0;
}
--
2.30.2
^ permalink raw reply related
* [PATCH 6/7] y2038: testsuite/smokey/y2038: Add a missing error handling path
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
Initialization of the mutex used for mutex_timedlock64 tests could fail.
We have to abort the test in this case.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
testsuite/smokey/y2038/syscall-tests.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/testsuite/smokey/y2038/syscall-tests.c b/testsuite/smokey/y2038/syscall-tests.c
index 874decc2a..2f4041e51 100644
--- a/testsuite/smokey/y2038/syscall-tests.c
+++ b/testsuite/smokey/y2038/syscall-tests.c
@@ -489,7 +489,8 @@ static int test_sc_cobalt_mutex_timedlock64(void)
struct xn_timespec64 ts64;
struct thread_context ctx = {0};
- ret = pthread_mutex_init(&mutex, NULL);
+ if (!__T(ret, pthread_mutex_init(&mutex, NULL)))
+ return ret;
/* Make sure we don't crash because of NULL pointers */
ret = XENOMAI_SYSCALL2(sc_nr, NULL, NULL);
--
2.30.2
^ permalink raw reply related
* [PATCH 7/7] cobalt: Protect __xn_get_user() by access_ok()
From: Florian Bezdeka @ 2022-01-05 14:06 UTC (permalink / raw)
To: xenomai
In-Reply-To: <20220105140650.1033850-1-florian.bezdeka@siemens.com>
According to the doctype provided by __get_user (which is used by the
__xn_get_user() macro) each call should be protected by access_ok().
We missed such a protection at some places.
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
kernel/cobalt/posix/internal.h | 4 ++++
kernel/cobalt/posix/nsem.c | 3 ++-
kernel/cobalt/posix/syscall32.c | 3 ++-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/kernel/cobalt/posix/internal.h b/kernel/cobalt/posix/internal.h
index 8b134d0a7..36fbc9eb5 100644
--- a/kernel/cobalt/posix/internal.h
+++ b/kernel/cobalt/posix/internal.h
@@ -52,6 +52,10 @@ extern struct xnptree posix_ptree;
static inline xnhandle_t cobalt_get_handle_from_user(xnhandle_t *u_h)
{
xnhandle_t handle;
+
+ if (unlikely(!access_ok(u_h, sizeof(*u_h))))
+ return 0;
+
return __xn_get_user(handle, u_h) ? 0 : handle;
}
diff --git a/kernel/cobalt/posix/nsem.c b/kernel/cobalt/posix/nsem.c
index 89cf62b6f..a6481c092 100644
--- a/kernel/cobalt/posix/nsem.c
+++ b/kernel/cobalt/posix/nsem.c
@@ -222,7 +222,8 @@ COBALT_SYSCALL(sem_open, lostage,
{
struct cobalt_sem_shadow __user *usm;
- if (__xn_get_user(usm, u_addrp))
+ if (!access_ok(u_addrp, sizeof(*u_addrp)) ||
+ __xn_get_user(usm, u_addrp))
return -EFAULT;
usm = __cobalt_sem_open(usm, u_name, oflags, mode, value);
diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
index a6cf218ea..0c3f50a81 100644
--- a/kernel/cobalt/posix/syscall32.c
+++ b/kernel/cobalt/posix/syscall32.c
@@ -113,7 +113,8 @@ COBALT_SYSCALL32emu(sem_open, lostage,
struct cobalt_sem_shadow __user *usm;
compat_uptr_t cusm;
- if (__xn_get_user(cusm, u_addrp))
+ if (!access_ok(u_addrp, sizeof(*u_addrp)) ||
+ __xn_get_user(cusm, u_addrp))
return -EFAULT;
usm = __cobalt_sem_open(compat_ptr(cusm), u_name, oflags, mode, value);
--
2.30.2
^ permalink raw reply related
* stable/linux-4.9.y build: 188 builds: 3 failed, 185 passed, 2 errors, 34 warnings (v4.9.296)
From: kernelci.org bot @ 2022-01-05 14:07 UTC (permalink / raw)
To: stable, kernel-build-reports, kernelci-results
stable/linux-4.9.y build: 188 builds: 3 failed, 185 passed, 2 errors, 34 warnings (v4.9.296)
Full Build Summary: https://kernelci.org/build/stable/branch/linux-4.9.y/kernel/v4.9.296/
Tree: stable
Branch: linux-4.9.y
Git Describe: v4.9.296
Git Commit: 710bf39c7aec32641ea63f6593db1df8c3e4a4d7
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Built: 6 unique architectures
Build Failures Detected:
arm:
rpc_defconfig: (gcc-10) FAIL
mips:
ip27_defconfig: (gcc-10) FAIL
ip28_defconfig: (gcc-10) FAIL
Errors and Warnings Detected:
arc:
arm64:
arm:
mini2440_defconfig (gcc-10): 1 warning
omap1_defconfig (gcc-10): 1 warning
rpc_defconfig (gcc-10): 2 errors
s3c2410_defconfig (gcc-10): 1 warning
i386:
allnoconfig (gcc-10): 3 warnings
i386_defconfig (gcc-10): 3 warnings
tinyconfig (gcc-10): 3 warnings
mips:
mtx1_defconfig (gcc-10): 3 warnings
x86_64:
allnoconfig (gcc-10): 5 warnings
tinyconfig (gcc-10): 4 warnings
x86_64_defconfig (gcc-10): 5 warnings
x86_64_defconfig+x86-chromebook (gcc-10): 5 warnings
Errors summary:
1 arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv3
1 arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
Warnings summary:
7 ld: warning: creating DT_TEXTREL in a PIE
7 arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
4 ld: arch/x86/boot/compressed/head_64.o: warning: relocation in read-only section `.head.text'
4 arch/x86/entry/entry_64.S:1565: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'
3 ld: arch/x86/boot/compressed/head_32.o: warning: relocation in read-only section `.head.text'
3 arch/x86/entry/entry_32.S:452: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
2 sound/pci/echoaudio/echoaudio_dsp.c:647:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
2 drivers/tty/serial/samsung.c:1786:34: warning: array ‘s3c24xx_uart_dt_match’ assumed to have one element
1 sound/pci/echoaudio/echoaudio_dsp.c:658:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
1 drivers/gpio/gpio-omap.c:1135:34: warning: array ‘omap_gpio_match’ assumed to have one element
Section mismatches summary:
2 WARNING: modpost: Found 1 section mismatch(es).
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (i386, gcc-10) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_32.S:452: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_32.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
allnoconfig (x86_64, gcc-10) — PASS, 0 errors, 5 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_64.S:1565: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_64.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
allnoconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ar7_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
aspeed_g4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
aspeed_g5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
assabet_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
at91_dt_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ath25_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ath79_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axs103_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axs103_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
badge4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm2835_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bigsur_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bmips_be_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
Section mismatches:
WARNING: modpost: Found 1 section mismatch(es).
--------------------------------------------------------------------------------
bmips_stb_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
Section mismatches:
WARNING: modpost: Found 1 section mismatch(es).
--------------------------------------------------------------------------------
capcella_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ci20_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cm_x300_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cobalt_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
collie_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
corgi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
davinci_all_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
db1xxx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig+arm64-chromebook (arm64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
dove_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
e55_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
efm32_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
em_x270_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ep93xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
exynos_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ezx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
footbridge_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h5000_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
hackkit_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
hisi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
i386_defconfig (i386, gcc-10) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_32.S:452: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_32.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
imote2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
integrator_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
iop13xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
iop32x_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
iop33x_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip22_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips, gcc-10) — FAIL, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips, gcc-10) — FAIL, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jazz_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
keystone_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ks8695_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lart_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lasat_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson1b_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson1c_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc18xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpd270_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
magician_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mainstone_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_qemu_32r6_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_xpa_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mini2440_defconfig (arm, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/tty/serial/samsung.c:1786:34: warning: array ‘s3c24xx_uart_dt_match’ assumed to have one element
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mpc30x_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mps2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msp71xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips, gcc-10) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
sound/pci/echoaudio/echoaudio_dsp.c:647:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
sound/pci/echoaudio/echoaudio_dsp.c:658:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
sound/pci/echoaudio/echoaudio_dsp.c:647:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
--------------------------------------------------------------------------------
multi_v4t_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mxs_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
neponset_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
netwinder_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
netx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nhk8815_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsim_hs_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsim_hs_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsimosci_hs_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsimosci_hs_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc910_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc950_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc960_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omap1_defconfig (arm, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/gpio/gpio-omap.c:1135:34: warning: array ‘omap_gpio_match’ assumed to have one element
--------------------------------------------------------------------------------
omap2plus_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
orion5x_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
palmz72_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pcm027_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pic32mzda_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pleb_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa168_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa910_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
qcom_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rb532_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rm200_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm, gcc-10) — FAIL, 2 errors, 0 warnings, 0 section mismatches
Errors:
arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv3
arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
--------------------------------------------------------------------------------
rt305x_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/tty/serial/samsung.c:1786:34: warning: array ‘s3c24xx_uart_dt_match’ assumed to have one element
--------------------------------------------------------------------------------
s3c6400_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s5pv210_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sama5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shmobile_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
simpad_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
socfpga_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear13xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear3xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear6xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spitz_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
stm32_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sunxi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0219_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tegra_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (i386, gcc-10) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_32.S:452: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_32.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
tinyconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (x86_64, gcc-10) — PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_64.S:1565: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_64.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
tinyconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
trizeps4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
u300_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
u8500_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vdk_hs38_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vdk_hs38_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
versatile_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vexpress_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vf610m4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
viper_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
workpad_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-10) — PASS, 0 errors, 5 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_64.S:1565: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_64.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
x86_64_defconfig+x86-chromebook (x86_64, gcc-10) — PASS, 0 errors, 5 warnings, 0 section mismatches
Warnings:
arch/x86/entry/entry_64.S:1565: Warning: no instruction mnemonic suffix given and no register operands; using default for `sysret'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
arch/x86/kernel/process.c:460: Warning: no instruction mnemonic suffix given and no register operands; using default for `btr'
ld: arch/x86/boot/compressed/head_64.o: warning: relocation in read-only section `.head.text'
ld: warning: creating DT_TEXTREL in a PIE
--------------------------------------------------------------------------------
xcep_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
xilfpga_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zebu_hs_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zebu_hs_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
---
For more info write to <info@kernelci.org>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.