Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 81584694bb70 - Linux 5.3.10
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: OK
Tests: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/279045
One or more kernel tests failed:
ppc64le:
❌ selinux-policy: serge-testsuite
aarch64:
❌ selinux-policy: serge-testsuite
x86_64:
❌ selinux-policy: serge-testsuite
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 81584694bb70 - Linux 5.3.10
We grabbed the e75cacbf5fed commit of the stable queue repository.
We then merged the patchset with `git am`:
bonding-fix-state-transition-issue-in-link-monitoring.patch
cdc-ncm-handle-incomplete-transfer-of-mtu.patch
ipv4-fix-table-id-reference-in-fib_sync_down_addr.patch
net-ethernet-octeon_mgmt-account-for-second-possible-vlan-header.patch
net-fix-data-race-in-neigh_event_send.patch
net-qualcomm-rmnet-fix-potential-uaf-when-unregistering.patch
net-tls-fix-sk_msg-trim-on-fallback-to-copy-mode.patch
net-usb-qmi_wwan-add-support-for-dw5821e-with-esim-support.patch
nfc-fdp-fix-incorrect-free-object.patch
nfc-netlink-fix-double-device-reference-drop.patch
nfc-st21nfca-fix-double-free.patch
qede-fix-null-pointer-deref-in-__qede_remove.patch
net-mscc-ocelot-don-t-handle-netdev-events-for-other-netdevs.patch
net-mscc-ocelot-fix-null-pointer-on-lag-slave-removal.patch
net-tls-don-t-pay-attention-to-sk_write_pending-when-pushing-partial-records.patch
net-tls-add-a-tx-lock.patch
selftests-tls-add-test-for-concurrent-recv-and-send.patch
ipv6-fixes-rt6_probe-and-fib6_nh-last_probe-init.patch
net-hns-fix-the-stray-netpoll-locks-causing-deadlock-in-napi-path.patch
net-prevent-load-store-tearing-on-sk-sk_stamp.patch
net-sched-prevent-duplicate-flower-rules-from-tcf_proto-destroy-race.patch
net-smc-fix-ethernet-interface-refcounting.patch
vsock-virtio-fix-sock-refcnt-holding-during-the-shutdown.patch
r8169-fix-page-read-in-r8168g_mdio_read.patch
alsa-timer-fix-incorrectly-assigned-timer-instance.patch
alsa-bebob-fix-to-detect-configured-source-of-sampling-clock-for-focusrite-saffire-pro-i-o-series.patch
alsa-hda-ca0132-fix-possible-workqueue-stall.patch
mm-memcontrol-fix-null-ptr-deref-in-percpu-stats-flush.patch
mm-memcontrol-fix-network-errors-from-failing-__gfp_atomic-charges.patch
mm-meminit-recalculate-pcpu-batch-and-high-limits-after-init-completes.patch
mm-thp-handle-page-cache-thp-correctly-in-pagetranscompoundmap.patch
mm-vmstat-hide-proc-pagetypeinfo-from-normal-users.patch
dump_stack-avoid-the-livelock-of-the-dump_lock.patch
mm-slab-make-page_cgroup_ino-to-recognize-non-compound-slab-pages-properly.patch
btrfs-consider-system-chunk-array-size-for-new-system-chunks.patch
btrfs-tree-checker-fix-wrong-check-on-max-devid.patch
btrfs-save-i_size-to-avoid-double-evaluation-of-i_size_read-in-compress_file_range.patch
tools-gpio-use-building_out_of_srctree-to-determine-srctree.patch
pinctrl-intel-avoid-potential-glitches-if-pin-is-in-gpio-mode.patch
perf-tools-fix-time-sorting.patch
perf-map-use-zalloc-for-map_groups.patch
drm-radeon-fix-si_enable_smc_cac-failed-issue.patch
hid-wacom-generic-treat-serial-number-and-related-fields-as-unsigned.patch
mm-khugepaged-fix-might_sleep-warn-with-config_highpte-y.patch
soundwire-depend-on-acpi.patch
soundwire-depend-on-acpi-of.patch
soundwire-bus-set-initial-value-to-port_status.patch
blkcg-make-blkcg_print_stat-print-stats-only-for-online-blkgs.patch
arm64-do-not-mask-out-pte_rdonly-in-pte_same.patch
asoc-rsnd-dma-fix-ssi9-4-5-6-7-busif-dma-address.patch
ceph-fix-use-after-free-in-__ceph_remove_cap.patch
ceph-fix-rcu-case-handling-in-ceph_d_revalidate.patch
ceph-add-missing-check-in-d_revalidate-snapdir-handling.patch
ceph-don-t-try-to-handle-hashed-dentries-in-non-o_creat-atomic_open.patch
ceph-don-t-allow-copy_file_range-when-stripe_count-1.patch
iio-adc-stm32-adc-fix-stopping-dma.patch
iio-imu-adis16480-make-sure-provided-frequency-is-positive.patch
iio-imu-inv_mpu6050-fix-no-data-on-mpu6050.patch
iio-srf04-fix-wrong-limitation-in-distance-measuring.patch
arm-sunxi-fix-cpu-powerdown-on-a83t.patch
arm-dts-imx6-logicpd-re-enable-snvs-power-key.patch
cpufreq-intel_pstate-fix-invalid-epb-setting.patch
clone3-validate-stack-arguments.patch
netfilter-nf_tables-align-nft_expr-private-data-to-64-bit.patch
netfilter-ipset-fix-an-error-code-in-ip_set_sockfn_get.patch
intel_th-gth-fix-the-window-switching-sequence.patch
intel_th-pci-add-comet-lake-pch-support.patch
intel_th-pci-add-jasper-lake-pch-support.patch
x86-dumpstack-64-don-t-evaluate-exception-stacks-before-setup.patch
x86-apic-32-avoid-bogus-ldr-warnings.patch
smb3-fix-persistent-handles-reconnect.patch
can-usb_8dev-fix-use-after-free-on-disconnect.patch
can-flexcan-disable-completely-the-ecc-mechanism.patch
can-c_can-c_can_poll-only-read-status-register-after-status-irq.patch
can-peak_usb-fix-a-potential-out-of-sync-while-decoding-packets.patch
can-rx-offload-can_rx_offload_queue_sorted-fix-error-handling-avoid-skb-mem-leak.patch
can-gs_usb-gs_can_open-prevent-memory-leak.patch
can-dev-add-missing-of_node_put-after-calling-of_get_child_by_name.patch
can-mcba_usb-fix-use-after-free-on-disconnect.patch
can-peak_usb-fix-slab-info-leak.patch
configfs-fix-a-deadlock-in-configfs_symlink.patch
alsa-usb-audio-more-validations-of-descriptor-units.patch
alsa-usb-audio-simplify-parse_audio_unit.patch
alsa-usb-audio-unify-the-release-of-usb_mixer_elem_info-objects.patch
alsa-usb-audio-remove-superfluous-blength-checks.patch
alsa-usb-audio-clean-up-check_input_term.patch
alsa-usb-audio-fix-possible-null-dereference-at-create_yamaha_midi_quirk.patch
alsa-usb-audio-remove-some-dead-code.patch
alsa-usb-audio-fix-copy-paste-error-in-the-validator.patch
usbip-implement-sg-support-to-vhci-hcd-and-stub-driver.patch
hid-google-add-magnemite-masterball-usb-ids.patch
dmaengine-sprd-fix-the-link-list-pointer-register-co.patch
bpf-lwtunnel-fix-reroute-supplying-invalid-dst.patch
dmaengine-xilinx_dma-fix-64-bit-simple-axidma-transf.patch
dmaengine-xilinx_dma-fix-control-reg-update-in-vdma_.patch
dmaengine-sprd-fix-the-possible-memory-leak-issue.patch
hid-intel-ish-hid-fix-wrong-error-handling-in-ishtp_.patch
powerpc-32s-fix-allow-prevent_user_access-when-cross.patch
rdma-mlx5-clear-old-rate-limit-when-closing-qp.patch
iw_cxgb4-fix-ecn-check-on-the-passive-accept.patch
rdma-siw-free-siw_base_qp-in-kref-release-routine.patch
rdma-qedr-fix-reported-firmware-version.patch
ib-core-use-rdma_read_gid_l2_fields-to-compare-gid-l.patch
net-mlx5e-tx-fix-assumption-of-single-wqebb-of-nop-i.patch
net-mlx5e-ktls-release-reference-on-dumped-fragments.patch
net-mlx5e-tx-fix-consumer-index-of-error-cqe-dump.patch
net-mlx5-prevent-memory-leak-in-mlx5_fpga_conn_creat.patch
net-mlx5-fix-memory-leak-in-mlx5_fw_fatal_reporter_d.patch
selftests-bpf-more-compatible-nc-options-in-test_tc_.patch
scsi-qla2xxx-fixup-incorrect-usage-of-host_byte.patch
scsi-lpfc-check-queue-pointer-before-use.patch
scsi-ufs-bsg-wake-the-device-before-sending-raw-upiu.patch
arc-plat-hsdk-enable-on-board-spi-nor-flash-ic.patch
rdma-uverbs-prevent-potential-underflow.patch
bpf-fix-use-after-free-in-subprog-s-jited-symbol-rem.patch
net-stmmac-fix-the-problem-of-tso_xmit.patch
net-openvswitch-free-vport-unless-register_netdevice.patch
scsi-lpfc-honor-module-parameter-lpfc_use_adisc.patch
scsi-qla2xxx-initialized-mailbox-to-prevent-driver-l.patch
bpf-fix-use-after-free-in-bpf_get_prog_name.patch
iwlwifi-pcie-fix-pci-id-0x2720-configs-that-should-b.patch
iwlwifi-pcie-fix-all-9460-entries-for-qnj.patch
iwlwifi-pcie-0x2720-is-qu-and-0x30dc-is-not.patch
netfilter-nf_flow_table-set-timeout-before-insertion.patch
drm-v3d-fix-memory-leak-in-v3d_submit_cl_ioctl.patch
xsk-fix-registration-of-rx-only-sockets.patch
net-phy-smsc-lan8740-add-phy_rst_after_clk_en-flag.patch
ipvs-don-t-ignore-errors-in-case-refcounting-ip_vs-m.patch
ipvs-move-old_secure_tcp-into-struct-netns_ipvs.patch
netfilter-nft_payload-fix-missing-check-for-matching.patch
rdma-nldev-skip-counter-if-port-doesn-t-match.patch
bonding-fix-unexpected-iff_bonding-bit-unset.patch
bonding-use-dynamic-lockdep-key-instead-of-subclass.patch
macsec-fix-refcnt-leak-in-module-exit-routine.patch
virt_wifi-fix-refcnt-leak-in-module-exit-routine.patch
scsi-sd-define-variable-dif-as-unsigned-int-instead-.patch
usb-dwc3-select-config_regmap_mmio.patch
usb-fsl-check-memory-resource-before-releasing-it.patch
usb-gadget-udc-atmel-fix-interrupt-storm-in-fifo-mod.patch
usb-gadget-composite-fix-possible-double-free-memory.patch
usb-dwc3-pci-prevent-memory-leak-in-dwc3_pci_probe.patch
usb-gadget-configfs-fix-concurrent-issue-between-com.patch
usb-dwc3-remove-the-call-trace-of-usbx_gfladj.patch
perf-x86-amd-ibs-fix-reading-of-the-ibs-opdata-regis.patch
perf-x86-amd-ibs-handle-erratum-420-only-on-the-affe.patch
perf-x86-uncore-fix-event-group-support.patch
usb-skip-endpoints-with-0-maxpacket-length.patch
usb-ldusb-use-unsigned-size-format-specifiers.patch
usbip-tools-fix-read_usb_vudc_device-error-path-hand.patch
rdma-iw_cxgb4-avoid-freeing-skb-twice-in-arp-failure.patch
rdma-hns-prevent-memory-leaks-of-eq-buf_list.patch
hwmon-ina3221-fix-read-timeout-issue.patch
scsi-qla2xxx-stop-timer-in-shutdown-path.patch
sched-topology-don-t-try-to-build-empty-sched-domain.patch
sched-topology-allow-sched_asym_cpucapacity-to-be-di.patch
nvme-multipath-fix-possible-io-hang-after-ctrl-recon.patch
fjes-handle-workqueue-allocation-failure.patch
net-hisilicon-fix-trying-to-free-already-free-irq.patch
wimax-i2400-fix-memory-leak-in-i2400m_op_rfkill_sw_t.patch
net-mscc-ocelot-fix-vlan_filtering-when-enslaving-to.patch
net-mscc-ocelot-refuse-to-overwrite-the-port-s-nativ.patch
iommu-amd-apply-the-same-ivrs-ioapic-workaround-to-a.patch
mt76-dma-fix-buffer-unmap-with-non-linear-skbs.patch
drm-amdgpu-sdma5-do-not-execute-0-sized-ibs-v2.patch
drm-sched-set-error-to-s_fence-if-hw-job-submission-.patch
drm-amdgpu-if-amdgpu_ib_schedule-fails-return-back-t.patch
drm-amd-display-do-not-synchronize-drr-displays.patch
drm-amd-display-add-50us-buffer-as-wa-for-pstate-swi.patch
drm-amd-display-passive-dp-hdmi-dongle-detection-fix.patch
dc.c-use-kzalloc-without-test.patch
sunrpc-the-tcp-back-channel-mustn-t-disappear-while-.patch
sunrpc-the-rdma-back-channel-mustn-t-disappear-while.patch
sunrpc-destroy-the-back-channel-when-we-destroy-the-.patch
hv_netvsc-fix-error-handling-in-netvsc_attach.patch
efi-tpm-return-einval-when-determining-tpm-final-eve.patch
efi-libstub-arm-account-for-firmware-reserved-memory.patch
x86-efi-never-relocate-kernel-below-lowest-acceptabl.patch
arm64-cpufeature-enable-qualcomm-falkor-errata-1009-.patch
usb-dwc3-gadget-fix-race-when-disabling-ep-with-canc.patch
arm64-apply-arm64_erratum_845719-workaround-for-brah.patch
arm64-brahma-b53-is-ssb-and-spectre-v2-safe.patch
arm64-apply-arm64_erratum_843419-workaround-for-brah.patch
nfsv4-don-t-allow-a-cached-open-with-a-revoked-deleg.patch
net-ethernet-arc-add-the-missed-clk_disable_unprepar.patch
igb-fix-constant-media-auto-sense-switching-when-no-.patch
e1000-fix-memory-leaks.patch
gve-fixes-dma-synchronization.patch
ocfs2-protect-extent-tree-in-ocfs2_prepare_inode_for.patch
pinctrl-cherryview-fix-irq_valid_mask-calculation.patch
clk-imx8m-use-sys_pll1_800m-as-intermediate-parent-o.patch
timekeeping-vsyscall-update-vdso-data-unconditionall.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: kaslr
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking MACsec: sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
✅ stress: stress-ng
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
Host 2:
✅ Boot test
❌ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
ppc64le:
Host 1:
✅ Boot test
❌ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: kaslr
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking MACsec: sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
x86_64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: kaslr
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking MACsec: sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
✅ stress: stress-ng
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
Host 2:
✅ Boot test
❌ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ IOMMU boot test
🚧 ✅ Storage blktests
Host 3:
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 4:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ⚡⚡⚡ /kernel/infiniband/sanity
Host 5:
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Host 6:
✅ Boot test
🚧 ✅ /kernel/infiniband/env_setup
🚧 ❌ /kernel/infiniband/sanity
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Testing timeout
---------------
We aim to provide a report within reasonable timeframe. Tests that haven't
finished running are marked with ⏱. Reports for non-upstream kernels have
a Beaker recipe linked to next to each host.
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 81584694bb70 - Linux 5.3.10
The results of these automated tests are provided below.
Overall result: FAILED (see details below)
Merge: OK
Compile: OK
Tests: FAILED
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/278447
One or more kernel tests failed:
ppc64le:
❌ selinux-policy: serge-testsuite
aarch64:
❌ selinux-policy: serge-testsuite
❌ lvm thinp sanity
x86_64:
❌ selinux-policy: serge-testsuite
We hope that these logs can help you find the problem quickly. For the full
detail on our testing procedures, please scroll to the bottom of this message.
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 81584694bb70 - Linux 5.3.10
We grabbed the 92daf91c1099 commit of the stable queue repository.
We then merged the patchset with `git am`:
bonding-fix-state-transition-issue-in-link-monitoring.patch
cdc-ncm-handle-incomplete-transfer-of-mtu.patch
ipv4-fix-table-id-reference-in-fib_sync_down_addr.patch
net-ethernet-octeon_mgmt-account-for-second-possible-vlan-header.patch
net-fix-data-race-in-neigh_event_send.patch
net-qualcomm-rmnet-fix-potential-uaf-when-unregistering.patch
net-tls-fix-sk_msg-trim-on-fallback-to-copy-mode.patch
net-usb-qmi_wwan-add-support-for-dw5821e-with-esim-support.patch
nfc-fdp-fix-incorrect-free-object.patch
nfc-netlink-fix-double-device-reference-drop.patch
nfc-st21nfca-fix-double-free.patch
qede-fix-null-pointer-deref-in-__qede_remove.patch
net-mscc-ocelot-don-t-handle-netdev-events-for-other-netdevs.patch
net-mscc-ocelot-fix-null-pointer-on-lag-slave-removal.patch
net-tls-don-t-pay-attention-to-sk_write_pending-when-pushing-partial-records.patch
net-tls-add-a-tx-lock.patch
selftests-tls-add-test-for-concurrent-recv-and-send.patch
ipv6-fixes-rt6_probe-and-fib6_nh-last_probe-init.patch
net-hns-fix-the-stray-netpoll-locks-causing-deadlock-in-napi-path.patch
net-prevent-load-store-tearing-on-sk-sk_stamp.patch
net-sched-prevent-duplicate-flower-rules-from-tcf_proto-destroy-race.patch
net-smc-fix-ethernet-interface-refcounting.patch
vsock-virtio-fix-sock-refcnt-holding-during-the-shutdown.patch
r8169-fix-page-read-in-r8168g_mdio_read.patch
alsa-timer-fix-incorrectly-assigned-timer-instance.patch
alsa-bebob-fix-to-detect-configured-source-of-sampling-clock-for-focusrite-saffire-pro-i-o-series.patch
alsa-hda-ca0132-fix-possible-workqueue-stall.patch
mm-memcontrol-fix-null-ptr-deref-in-percpu-stats-flush.patch
mm-memcontrol-fix-network-errors-from-failing-__gfp_atomic-charges.patch
mm-meminit-recalculate-pcpu-batch-and-high-limits-after-init-completes.patch
mm-thp-handle-page-cache-thp-correctly-in-pagetranscompoundmap.patch
mm-vmstat-hide-proc-pagetypeinfo-from-normal-users.patch
dump_stack-avoid-the-livelock-of-the-dump_lock.patch
mm-slab-make-page_cgroup_ino-to-recognize-non-compound-slab-pages-properly.patch
btrfs-consider-system-chunk-array-size-for-new-system-chunks.patch
btrfs-tree-checker-fix-wrong-check-on-max-devid.patch
btrfs-save-i_size-to-avoid-double-evaluation-of-i_size_read-in-compress_file_range.patch
tools-gpio-use-building_out_of_srctree-to-determine-srctree.patch
pinctrl-intel-avoid-potential-glitches-if-pin-is-in-gpio-mode.patch
perf-tools-fix-time-sorting.patch
perf-map-use-zalloc-for-map_groups.patch
drm-radeon-fix-si_enable_smc_cac-failed-issue.patch
hid-wacom-generic-treat-serial-number-and-related-fields-as-unsigned.patch
mm-khugepaged-fix-might_sleep-warn-with-config_highpte-y.patch
soundwire-depend-on-acpi.patch
soundwire-depend-on-acpi-of.patch
soundwire-bus-set-initial-value-to-port_status.patch
blkcg-make-blkcg_print_stat-print-stats-only-for-online-blkgs.patch
arm64-do-not-mask-out-pte_rdonly-in-pte_same.patch
asoc-rsnd-dma-fix-ssi9-4-5-6-7-busif-dma-address.patch
ceph-fix-use-after-free-in-__ceph_remove_cap.patch
ceph-fix-rcu-case-handling-in-ceph_d_revalidate.patch
ceph-add-missing-check-in-d_revalidate-snapdir-handling.patch
ceph-don-t-try-to-handle-hashed-dentries-in-non-o_creat-atomic_open.patch
ceph-don-t-allow-copy_file_range-when-stripe_count-1.patch
iio-adc-stm32-adc-fix-stopping-dma.patch
iio-imu-adis16480-make-sure-provided-frequency-is-positive.patch
iio-imu-inv_mpu6050-fix-no-data-on-mpu6050.patch
iio-srf04-fix-wrong-limitation-in-distance-measuring.patch
arm-sunxi-fix-cpu-powerdown-on-a83t.patch
arm-dts-imx6-logicpd-re-enable-snvs-power-key.patch
cpufreq-intel_pstate-fix-invalid-epb-setting.patch
clone3-validate-stack-arguments.patch
netfilter-nf_tables-align-nft_expr-private-data-to-64-bit.patch
netfilter-ipset-fix-an-error-code-in-ip_set_sockfn_get.patch
intel_th-gth-fix-the-window-switching-sequence.patch
intel_th-pci-add-comet-lake-pch-support.patch
intel_th-pci-add-jasper-lake-pch-support.patch
x86-dumpstack-64-don-t-evaluate-exception-stacks-before-setup.patch
x86-apic-32-avoid-bogus-ldr-warnings.patch
smb3-fix-persistent-handles-reconnect.patch
can-usb_8dev-fix-use-after-free-on-disconnect.patch
can-flexcan-disable-completely-the-ecc-mechanism.patch
can-c_can-c_can_poll-only-read-status-register-after-status-irq.patch
can-peak_usb-fix-a-potential-out-of-sync-while-decoding-packets.patch
can-rx-offload-can_rx_offload_queue_sorted-fix-error-handling-avoid-skb-mem-leak.patch
can-gs_usb-gs_can_open-prevent-memory-leak.patch
can-dev-add-missing-of_node_put-after-calling-of_get_child_by_name.patch
can-mcba_usb-fix-use-after-free-on-disconnect.patch
can-peak_usb-fix-slab-info-leak.patch
configfs-fix-a-deadlock-in-configfs_symlink.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
Host 2:
✅ Boot test
❌ selinux-policy: serge-testsuite
❌ lvm thinp sanity
⚡⚡⚡ storage: software RAID testing
🚧 ⚡⚡⚡ Storage blktests
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
Host 2:
✅ Boot test
❌ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
x86_64:
Host 1:
✅ Boot test
❌ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ LTP lite
✅ Loopdev Sanity
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking route: pmtu
✅ Networking route_func: local
✅ Networking route_func: forward
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ ALSA PCM loopback test
✅ ALSA Control (mixer) Userspace Element test
✅ Usex - version 1.9-29
✅ stress: stress-ng
🚧 ✅ CIFS Connectathon
🚧 ✅ POSIX pjd-fstest suites
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Testing timeout
---------------
We aim to provide a report within reasonable timeframe. Tests that haven't
finished running are marked with ⏱. Reports for non-upstream kernels have
a Beaker recipe linked to next to each host.
The do_video_ioctl() compat handler converts the compat command
codes into the native ones before processing further, but this
causes problems for 32-bit user applications that pass a command
code that matches a 64-bit native number, which will then be
handled the same way.
Specifically, this breaks VIDIOC_DQEVENT_TIME from user space
applications with 64-bit time_t, as the structure layout is
the same as the native 64-bit layout on many architectures
(x86 being the notable exception).
Change the handler to use the converted command code only for
passing into the native ioctl handler, not for deciding on the
conversion, in order to make the compat behavior match the
native behavior.
Actual support for the 64-bit time_t version of VIDIOC_DQEVENT_TIME
and other commands still needs to be added in a separate patch.
Cc: stable(a)vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd(a)arndb.de>
---
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 148 +++++++++---------
1 file changed, 75 insertions(+), 73 deletions(-)
diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
index e1eaf1135c7f..7ad6db8dd9f6 100644
--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
@@ -1183,36 +1183,38 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
u32 aux_space;
int compatible_arg = 1;
long err = 0;
+ unsigned int ncmd;
/*
* 1. When struct size is different, converts the command.
*/
switch (cmd) {
- case VIDIOC_G_FMT32: cmd = VIDIOC_G_FMT; break;
- case VIDIOC_S_FMT32: cmd = VIDIOC_S_FMT; break;
- case VIDIOC_QUERYBUF32: cmd = VIDIOC_QUERYBUF; break;
- case VIDIOC_G_FBUF32: cmd = VIDIOC_G_FBUF; break;
- case VIDIOC_S_FBUF32: cmd = VIDIOC_S_FBUF; break;
- case VIDIOC_QBUF32: cmd = VIDIOC_QBUF; break;
- case VIDIOC_DQBUF32: cmd = VIDIOC_DQBUF; break;
- case VIDIOC_ENUMSTD32: cmd = VIDIOC_ENUMSTD; break;
- case VIDIOC_ENUMINPUT32: cmd = VIDIOC_ENUMINPUT; break;
- case VIDIOC_TRY_FMT32: cmd = VIDIOC_TRY_FMT; break;
- case VIDIOC_G_EXT_CTRLS32: cmd = VIDIOC_G_EXT_CTRLS; break;
- case VIDIOC_S_EXT_CTRLS32: cmd = VIDIOC_S_EXT_CTRLS; break;
- case VIDIOC_TRY_EXT_CTRLS32: cmd = VIDIOC_TRY_EXT_CTRLS; break;
- case VIDIOC_DQEVENT32: cmd = VIDIOC_DQEVENT; break;
- case VIDIOC_OVERLAY32: cmd = VIDIOC_OVERLAY; break;
- case VIDIOC_STREAMON32: cmd = VIDIOC_STREAMON; break;
- case VIDIOC_STREAMOFF32: cmd = VIDIOC_STREAMOFF; break;
- case VIDIOC_G_INPUT32: cmd = VIDIOC_G_INPUT; break;
- case VIDIOC_S_INPUT32: cmd = VIDIOC_S_INPUT; break;
- case VIDIOC_G_OUTPUT32: cmd = VIDIOC_G_OUTPUT; break;
- case VIDIOC_S_OUTPUT32: cmd = VIDIOC_S_OUTPUT; break;
- case VIDIOC_CREATE_BUFS32: cmd = VIDIOC_CREATE_BUFS; break;
- case VIDIOC_PREPARE_BUF32: cmd = VIDIOC_PREPARE_BUF; break;
- case VIDIOC_G_EDID32: cmd = VIDIOC_G_EDID; break;
- case VIDIOC_S_EDID32: cmd = VIDIOC_S_EDID; break;
+ case VIDIOC_G_FMT32: ncmd = VIDIOC_G_FMT; break;
+ case VIDIOC_S_FMT32: ncmd = VIDIOC_S_FMT; break;
+ case VIDIOC_QUERYBUF32: ncmd = VIDIOC_QUERYBUF; break;
+ case VIDIOC_G_FBUF32: ncmd = VIDIOC_G_FBUF; break;
+ case VIDIOC_S_FBUF32: ncmd = VIDIOC_S_FBUF; break;
+ case VIDIOC_QBUF32: ncmd = VIDIOC_QBUF; break;
+ case VIDIOC_DQBUF32: ncmd = VIDIOC_DQBUF; break;
+ case VIDIOC_ENUMSTD32: ncmd = VIDIOC_ENUMSTD; break;
+ case VIDIOC_ENUMINPUT32: ncmd = VIDIOC_ENUMINPUT; break;
+ case VIDIOC_TRY_FMT32: ncmd = VIDIOC_TRY_FMT; break;
+ case VIDIOC_G_EXT_CTRLS32: ncmd = VIDIOC_G_EXT_CTRLS; break;
+ case VIDIOC_S_EXT_CTRLS32: ncmd = VIDIOC_S_EXT_CTRLS; break;
+ case VIDIOC_TRY_EXT_CTRLS32: ncmd = VIDIOC_TRY_EXT_CTRLS; break;
+ case VIDIOC_DQEVENT32: ncmd = VIDIOC_DQEVENT; break;
+ case VIDIOC_OVERLAY32: ncmd = VIDIOC_OVERLAY; break;
+ case VIDIOC_STREAMON32: ncmd = VIDIOC_STREAMON; break;
+ case VIDIOC_STREAMOFF32: ncmd = VIDIOC_STREAMOFF; break;
+ case VIDIOC_G_INPUT32: ncmd = VIDIOC_G_INPUT; break;
+ case VIDIOC_S_INPUT32: ncmd = VIDIOC_S_INPUT; break;
+ case VIDIOC_G_OUTPUT32: ncmd = VIDIOC_G_OUTPUT; break;
+ case VIDIOC_S_OUTPUT32: ncmd = VIDIOC_S_OUTPUT; break;
+ case VIDIOC_CREATE_BUFS32: ncmd = VIDIOC_CREATE_BUFS; break;
+ case VIDIOC_PREPARE_BUF32: ncmd = VIDIOC_PREPARE_BUF; break;
+ case VIDIOC_G_EDID32: ncmd = VIDIOC_G_EDID; break;
+ case VIDIOC_S_EDID32: ncmd = VIDIOC_S_EDID; break;
+ default: ncmd = cmd; break;
}
/*
@@ -1221,11 +1223,11 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
* argument into it.
*/
switch (cmd) {
- case VIDIOC_OVERLAY:
- case VIDIOC_STREAMON:
- case VIDIOC_STREAMOFF:
- case VIDIOC_S_INPUT:
- case VIDIOC_S_OUTPUT:
+ case VIDIOC_OVERLAY32:
+ case VIDIOC_STREAMON32:
+ case VIDIOC_STREAMOFF32:
+ case VIDIOC_S_INPUT32:
+ case VIDIOC_S_OUTPUT32:
err = alloc_userspace(sizeof(unsigned int), 0, &new_p64);
if (!err && assign_in_user((unsigned int __user *)new_p64,
(compat_uint_t __user *)p32))
@@ -1233,23 +1235,23 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_G_INPUT:
- case VIDIOC_G_OUTPUT:
+ case VIDIOC_G_INPUT32:
+ case VIDIOC_G_OUTPUT32:
err = alloc_userspace(sizeof(unsigned int), 0, &new_p64);
compatible_arg = 0;
break;
- case VIDIOC_G_EDID:
- case VIDIOC_S_EDID:
+ case VIDIOC_G_EDID32:
+ case VIDIOC_S_EDID32:
err = alloc_userspace(sizeof(struct v4l2_edid), 0, &new_p64);
if (!err)
err = get_v4l2_edid32(new_p64, p32);
compatible_arg = 0;
break;
- case VIDIOC_G_FMT:
- case VIDIOC_S_FMT:
- case VIDIOC_TRY_FMT:
+ case VIDIOC_G_FMT32:
+ case VIDIOC_S_FMT32:
+ case VIDIOC_TRY_FMT32:
err = bufsize_v4l2_format(p32, &aux_space);
if (!err)
err = alloc_userspace(sizeof(struct v4l2_format),
@@ -1262,7 +1264,7 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_CREATE_BUFS:
+ case VIDIOC_CREATE_BUFS32:
err = bufsize_v4l2_create(p32, &aux_space);
if (!err)
err = alloc_userspace(sizeof(struct v4l2_create_buffers),
@@ -1275,10 +1277,10 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_PREPARE_BUF:
- case VIDIOC_QUERYBUF:
- case VIDIOC_QBUF:
- case VIDIOC_DQBUF:
+ case VIDIOC_PREPARE_BUF32:
+ case VIDIOC_QUERYBUF32:
+ case VIDIOC_QBUF32:
+ case VIDIOC_DQBUF32:
err = bufsize_v4l2_buffer(p32, &aux_space);
if (!err)
err = alloc_userspace(sizeof(struct v4l2_buffer),
@@ -1291,7 +1293,7 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_S_FBUF:
+ case VIDIOC_S_FBUF32:
err = alloc_userspace(sizeof(struct v4l2_framebuffer), 0,
&new_p64);
if (!err)
@@ -1299,13 +1301,13 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_G_FBUF:
+ case VIDIOC_G_FBUF32:
err = alloc_userspace(sizeof(struct v4l2_framebuffer), 0,
&new_p64);
compatible_arg = 0;
break;
- case VIDIOC_ENUMSTD:
+ case VIDIOC_ENUMSTD32:
err = alloc_userspace(sizeof(struct v4l2_standard), 0,
&new_p64);
if (!err)
@@ -1313,16 +1315,16 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
compatible_arg = 0;
break;
- case VIDIOC_ENUMINPUT:
+ case VIDIOC_ENUMINPUT32:
err = alloc_userspace(sizeof(struct v4l2_input), 0, &new_p64);
if (!err)
err = get_v4l2_input32(new_p64, p32);
compatible_arg = 0;
break;
- case VIDIOC_G_EXT_CTRLS:
- case VIDIOC_S_EXT_CTRLS:
- case VIDIOC_TRY_EXT_CTRLS:
+ case VIDIOC_G_EXT_CTRLS32:
+ case VIDIOC_S_EXT_CTRLS32:
+ case VIDIOC_TRY_EXT_CTRLS32:
err = bufsize_v4l2_ext_controls(p32, &aux_space);
if (!err)
err = alloc_userspace(sizeof(struct v4l2_ext_controls),
@@ -1334,7 +1336,7 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
}
compatible_arg = 0;
break;
- case VIDIOC_DQEVENT:
+ case VIDIOC_DQEVENT32:
err = alloc_userspace(sizeof(struct v4l2_event), 0, &new_p64);
compatible_arg = 0;
break;
@@ -1352,9 +1354,9 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
* Otherwise, it will pass the newly allocated @new_p64 argument.
*/
if (compatible_arg)
- err = native_ioctl(file, cmd, (unsigned long)p32);
+ err = native_ioctl(file, ncmd, (unsigned long)p32);
else
- err = native_ioctl(file, cmd, (unsigned long)new_p64);
+ err = native_ioctl(file, ncmd, (unsigned long)new_p64);
if (err == -ENOTTY)
return err;
@@ -1370,13 +1372,13 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
* the blocks to maximum allowed value.
*/
switch (cmd) {
- case VIDIOC_G_EXT_CTRLS:
- case VIDIOC_S_EXT_CTRLS:
- case VIDIOC_TRY_EXT_CTRLS:
+ case VIDIOC_G_EXT_CTRLS32:
+ case VIDIOC_S_EXT_CTRLS32:
+ case VIDIOC_TRY_EXT_CTRLS32:
if (put_v4l2_ext_controls32(file, new_p64, p32))
err = -EFAULT;
break;
- case VIDIOC_S_EDID:
+ case VIDIOC_S_EDID32:
if (put_v4l2_edid32(new_p64, p32))
err = -EFAULT;
break;
@@ -1389,49 +1391,49 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar
* the original 32 bits structure.
*/
switch (cmd) {
- case VIDIOC_S_INPUT:
- case VIDIOC_S_OUTPUT:
- case VIDIOC_G_INPUT:
- case VIDIOC_G_OUTPUT:
+ case VIDIOC_S_INPUT32:
+ case VIDIOC_S_OUTPUT32:
+ case VIDIOC_G_INPUT32:
+ case VIDIOC_G_OUTPUT32:
if (assign_in_user((compat_uint_t __user *)p32,
((unsigned int __user *)new_p64)))
err = -EFAULT;
break;
- case VIDIOC_G_FBUF:
+ case VIDIOC_G_FBUF32:
err = put_v4l2_framebuffer32(new_p64, p32);
break;
- case VIDIOC_DQEVENT:
+ case VIDIOC_DQEVENT32:
err = put_v4l2_event32(new_p64, p32);
break;
- case VIDIOC_G_EDID:
+ case VIDIOC_G_EDID32:
err = put_v4l2_edid32(new_p64, p32);
break;
- case VIDIOC_G_FMT:
- case VIDIOC_S_FMT:
- case VIDIOC_TRY_FMT:
+ case VIDIOC_G_FMT32:
+ case VIDIOC_S_FMT32:
+ case VIDIOC_TRY_FMT32:
err = put_v4l2_format32(new_p64, p32);
break;
- case VIDIOC_CREATE_BUFS:
+ case VIDIOC_CREATE_BUFS32:
err = put_v4l2_create32(new_p64, p32);
break;
- case VIDIOC_PREPARE_BUF:
- case VIDIOC_QUERYBUF:
- case VIDIOC_QBUF:
- case VIDIOC_DQBUF:
+ case VIDIOC_PREPARE_BUF32:
+ case VIDIOC_QUERYBUF32:
+ case VIDIOC_QBUF32:
+ case VIDIOC_DQBUF32:
err = put_v4l2_buffer32(new_p64, p32);
break;
- case VIDIOC_ENUMSTD:
+ case VIDIOC_ENUMSTD32:
err = put_v4l2_standard32(new_p64, p32);
break;
- case VIDIOC_ENUMINPUT:
+ case VIDIOC_ENUMINPUT32:
err = put_v4l2_input32(new_p64, p32);
break;
}
--
2.20.0