Version in base suite: 5.10.209-2 Base version: linux_5.10.209-2 Target version: linux_5.10.216-1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/l/linux/linux_5.10.209-2.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/l/linux/linux_5.10.216-1.dsc Documentation/ABI/testing/sysfs-class-devfreq | 3 Documentation/ABI/testing/sysfs-class-net-queues | 22 Documentation/ABI/testing/sysfs-class-net-statistics | 48 Documentation/ABI/testing/sysfs-devices-system-cpu | 1 Documentation/admin-guide/hw-vuln/index.rst | 1 Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst | 104 Documentation/admin-guide/hw-vuln/spectre.rst | 18 Documentation/admin-guide/kernel-parameters.txt | 27 Documentation/block/queue-sysfs.rst | 7 Documentation/filesystems/directory-locking.rst | 29 Documentation/filesystems/locking.rst | 5 Documentation/filesystems/porting.rst | 18 Documentation/sound/soc/dapm.rst | 2 Documentation/x86/mds.rst | 36 Makefile | 2 arch/Kconfig | 8 arch/arc/boot/dts/hsdk.dts | 1 arch/arm/boot/dts/arm-realview-pb1176.dts | 2 arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 1 arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 2 arch/arm/boot/dts/exynos4210-i9100.dts | 8 arch/arm/boot/dts/imx1-ads.dts | 2 arch/arm/boot/dts/imx1-apf9328.dts | 2 arch/arm/boot/dts/imx1.dtsi | 5 arch/arm/boot/dts/imx23-sansa.dts | 12 arch/arm/boot/dts/imx23.dtsi | 2 arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts | 2 arch/arm/boot/dts/imx25-pdk.dts | 2 arch/arm/boot/dts/imx25.dtsi | 2 arch/arm/boot/dts/imx27-apf27dev.dts | 4 arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi | 4 arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts | 2 arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts | 2 arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts | 2 arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi | 2 arch/arm/boot/dts/imx27.dtsi | 3 arch/arm/boot/dts/imx28.dtsi | 2 arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 28 arch/arm/boot/dts/imx6sx.dtsi | 6 arch/arm/boot/dts/imx7d.dtsi | 3 arch/arm/boot/dts/imx7s.dtsi | 10 arch/arm/boot/dts/mmp2-brownstone.dts | 2 arch/arm/boot/dts/rk3036.dtsi | 14 arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 24 arch/arm/crypto/sha256_glue.c | 13 arch/arm/crypto/sha512-glue.c | 12 arch/arm/mach-ep93xx/core.c | 1 arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 10 arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 10 arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 8 arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 3 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 arch/arm64/boot/dts/mediatek/mt7622.dtsi | 62 arch/arm64/boot/dts/qcom/msm8996.dtsi | 21 arch/arm64/boot/dts/qcom/msm8998.dtsi | 32 arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 3 arch/arm64/boot/dts/qcom/sc7180.dtsi | 8 arch/arm64/boot/dts/qcom/sdm845.dtsi | 16 arch/arm64/boot/dts/rockchip/px30.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 11 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 1 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 29 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 12 arch/arm64/kernel/entry.S | 8 arch/arm64/kernel/perf_event.c | 6 arch/arm64/kvm/vgic/vgic-its.c | 5 arch/hexagon/kernel/vmlinux.lds.S | 1 arch/mips/include/asm/checksum.h | 3 arch/mips/include/asm/ptrace.h | 1 arch/mips/kernel/elf.c | 6 arch/mips/mm/init.c | 15 arch/parisc/include/asm/assembly.h | 18 arch/parisc/include/asm/checksum.h | 10 arch/parisc/kernel/firmware.c | 4 arch/parisc/kernel/ftrace.c | 2 arch/powerpc/include/asm/mmu.h | 4 arch/powerpc/include/asm/mmzone.h | 3 arch/powerpc/include/asm/reg_fsl_emb.h | 11 arch/powerpc/kernel/hw_breakpoint.c | 76 arch/powerpc/kernel/traps.c | 2 arch/powerpc/kvm/book3s_hv_uvmem.c | 2 arch/powerpc/lib/Makefile | 2 arch/powerpc/lib/sstep.c | 10 arch/powerpc/mm/book3s64/pgtable.c | 2 arch/powerpc/mm/init-common.c | 5 arch/powerpc/mm/kasan/kasan_init_32.c | 1 arch/powerpc/perf/hv-gpci.c | 29 arch/powerpc/platforms/embedded6xx/linkstation.c | 3 arch/powerpc/platforms/embedded6xx/mpc10x.h | 3 arch/riscv/Kconfig | 8 arch/riscv/Makefile | 10 arch/riscv/include/asm/pgtable.h | 6 arch/riscv/include/asm/stackprotector.h | 3 arch/riscv/include/asm/uaccess.h | 4 arch/riscv/kernel/asm-offsets.c | 3 arch/riscv/kernel/process.c | 5 arch/s390/crypto/aes_s390.c | 4 arch/s390/crypto/paes_s390.c | 4 arch/s390/kernel/entry.S | 1 arch/s390/kernel/ptrace.c | 6 arch/s390/kernel/vtime.c | 4 arch/s390/kvm/kvm-s390.c | 5 arch/s390/pci/pci.c | 2 arch/sparc/kernel/leon_pci_grpci1.c | 2 arch/sparc/kernel/leon_pci_grpci2.c | 2 arch/sparc/kernel/nmi.c | 2 arch/sparc/vdso/vma.c | 7 arch/um/Kconfig | 13 arch/um/Makefile | 3 arch/um/drivers/net_kern.c | 2 arch/um/include/shared/kern_util.h | 2 arch/um/kernel/process.c | 2 arch/um/os-Linux/helper.c | 6 arch/um/os-Linux/util.c | 19 arch/x86/Kconfig | 29 arch/x86/Kconfig.cpu | 2 arch/x86/Makefile | 8 arch/x86/Makefile.um | 2 arch/x86/boot/compressed/ident_map_64.c | 5 arch/x86/boot/compressed/idt_64.c | 1 arch/x86/boot/compressed/idt_handlers_64.S | 1 arch/x86/boot/compressed/misc.h | 1 arch/x86/entry/entry.S | 23 arch/x86/entry/entry_32.S | 59 arch/x86/entry/entry_64.S | 10 arch/x86/entry/entry_64_compat.S | 1 arch/x86/include/asm/apic.h | 3 arch/x86/include/asm/asm-prototypes.h | 1 arch/x86/include/asm/asm.h | 5 arch/x86/include/asm/cpu_entry_area.h | 2 arch/x86/include/asm/cpufeature.h | 8 arch/x86/include/asm/cpufeatures.h | 5 arch/x86/include/asm/disabled-features.h | 3 arch/x86/include/asm/entry-common.h | 1 arch/x86/include/asm/irqflags.h | 1 arch/x86/include/asm/msr-index.h | 10 arch/x86/include/asm/nospec-branch.h | 49 arch/x86/include/asm/processor.h | 15 arch/x86/include/asm/ptrace.h | 5 arch/x86/include/asm/required-features.h | 3 arch/x86/include/asm/segment.h | 30 arch/x86/include/asm/setup.h | 1 arch/x86/include/asm/stackprotector.h | 79 arch/x86/include/asm/suspend_32.h | 12 arch/x86/include/asm/syscall_wrapper.h | 25 arch/x86/include/asm/text-patching.h | 30 arch/x86/include/asm/uaccess.h | 142 arch/x86/include/asm/vsyscall.h | 10 arch/x86/kernel/Makefile | 1 arch/x86/kernel/alternative.c | 15 arch/x86/kernel/asm-offsets_32.c | 5 arch/x86/kernel/cpu/amd.c | 10 arch/x86/kernel/cpu/bugs.c | 247 arch/x86/kernel/cpu/common.c | 64 arch/x86/kernel/cpu/cpuid-deps.c | 6 arch/x86/kernel/cpu/intel.c | 178 arch/x86/kernel/cpu/mce/core.c | 20 arch/x86/kernel/doublefault_32.c | 4 arch/x86/kernel/ftrace.c | 4 arch/x86/kernel/head64.c | 9 arch/x86/kernel/head_32.S | 18 arch/x86/kernel/head_64.S | 24 arch/x86/kernel/nmi.c | 3 arch/x86/kernel/paravirt.c | 23 arch/x86/kernel/setup_percpu.c | 1 arch/x86/kernel/static_call.c | 2 arch/x86/kernel/tls.c | 8 arch/x86/kvm/cpuid.h | 2 arch/x86/kvm/mmu/page_track.c | 2 arch/x86/kvm/svm/sev.c | 16 arch/x86/kvm/vmx/run_flags.h | 7 arch/x86/kvm/vmx/vmenter.S | 9 arch/x86/kvm/vmx/vmx.c | 12 arch/x86/kvm/x86.c | 9 arch/x86/lib/insn-eval.c | 4 arch/x86/lib/retpoline.S | 6 arch/x86/mm/fault.c | 9 arch/x86/mm/maccess.c | 10 arch/x86/mm/pat/memtype.c | 50 arch/x86/net/bpf_jit_comp.c | 2 arch/x86/platform/pvh/head.S | 14 arch/x86/power/cpu.c | 6 arch/x86/tools/relocs.c | 8 arch/x86/xen/enlighten_pv.c | 1 arch/x86/xen/smp.c | 12 block/bio.c | 9 block/blk-iocost.c | 7 block/blk-mq.c | 16 block/blk-settings.c | 41 block/blk-stat.c | 2 block/blk-sysfs.c | 8 block/ioctl.c | 16 block/opal_proto.h | 1 block/sed-opal.c | 6 debian/changelog | 1257 + debian/config.defines.dump | 6 debian/config/config | 2 debian/config/config.cloud | 1 debian/config/defines | 2 debian/config/m68k/config | 1 debian/control | 7060 +++++----- debian/control.md5sum | 4 debian/linux-headers-4kc-malta.maintscript | 2 debian/linux-headers-5.10.0-28-4kc-malta.postinst | 18 debian/linux-headers-5.10.0-28-5kc-malta.postinst | 18 debian/linux-headers-5.10.0-28-686-pae.postinst | 18 debian/linux-headers-5.10.0-28-686.postinst | 18 debian/linux-headers-5.10.0-28-alpha-generic.postinst | 18 debian/linux-headers-5.10.0-28-alpha-smp.postinst | 18 debian/linux-headers-5.10.0-28-amd64.postinst | 18 debian/linux-headers-5.10.0-28-arm64.postinst | 18 debian/linux-headers-5.10.0-28-armmp-lpae.postinst | 18 debian/linux-headers-5.10.0-28-armmp.postinst | 18 debian/linux-headers-5.10.0-28-cloud-amd64.postinst | 18 debian/linux-headers-5.10.0-28-cloud-arm64.postinst | 18 debian/linux-headers-5.10.0-28-itanium.postinst | 18 debian/linux-headers-5.10.0-28-loongson-3.postinst | 18 debian/linux-headers-5.10.0-28-m68k.postinst | 18 debian/linux-headers-5.10.0-28-marvell.postinst | 18 debian/linux-headers-5.10.0-28-mckinley.postinst | 18 debian/linux-headers-5.10.0-28-mips32r6.postinst | 18 debian/linux-headers-5.10.0-28-mips32r6el.postinst | 18 debian/linux-headers-5.10.0-28-mips64r6.postinst | 18 debian/linux-headers-5.10.0-28-mips64r6el.postinst | 18 debian/linux-headers-5.10.0-28-octeon.postinst | 18 debian/linux-headers-5.10.0-28-parisc.postinst | 18 debian/linux-headers-5.10.0-28-parisc64.postinst | 18 debian/linux-headers-5.10.0-28-powerpc-smp.postinst | 18 debian/linux-headers-5.10.0-28-powerpc.postinst | 18 debian/linux-headers-5.10.0-28-powerpc64.postinst | 18 debian/linux-headers-5.10.0-28-powerpc64le.postinst | 18 debian/linux-headers-5.10.0-28-riscv64.postinst | 18 debian/linux-headers-5.10.0-28-rpi.postinst | 18 debian/linux-headers-5.10.0-28-rt-686-pae.postinst | 18 debian/linux-headers-5.10.0-28-rt-amd64.postinst | 18 debian/linux-headers-5.10.0-28-rt-arm64.postinst | 18 debian/linux-headers-5.10.0-28-rt-armmp.postinst | 18 debian/linux-headers-5.10.0-28-s390x.postinst | 18 debian/linux-headers-5.10.0-28-sh7751r.postinst | 18 debian/linux-headers-5.10.0-28-sh7785lcr.postinst | 18 debian/linux-headers-5.10.0-28-sparc64-smp.postinst | 18 debian/linux-headers-5.10.0-28-sparc64.postinst | 18 debian/linux-headers-5.10.0-29-4kc-malta.postinst | 18 debian/linux-headers-5.10.0-29-5kc-malta.postinst | 18 debian/linux-headers-5.10.0-29-686-pae.postinst | 18 debian/linux-headers-5.10.0-29-686.postinst | 18 debian/linux-headers-5.10.0-29-alpha-generic.postinst | 18 debian/linux-headers-5.10.0-29-alpha-smp.postinst | 18 debian/linux-headers-5.10.0-29-amd64.postinst | 18 debian/linux-headers-5.10.0-29-arm64.postinst | 18 debian/linux-headers-5.10.0-29-armmp-lpae.postinst | 18 debian/linux-headers-5.10.0-29-armmp.postinst | 18 debian/linux-headers-5.10.0-29-cloud-amd64.postinst | 18 debian/linux-headers-5.10.0-29-cloud-arm64.postinst | 18 debian/linux-headers-5.10.0-29-itanium.postinst | 18 debian/linux-headers-5.10.0-29-loongson-3.postinst | 18 debian/linux-headers-5.10.0-29-m68k.postinst | 18 debian/linux-headers-5.10.0-29-marvell.postinst | 18 debian/linux-headers-5.10.0-29-mckinley.postinst | 18 debian/linux-headers-5.10.0-29-mips32r6.postinst | 18 debian/linux-headers-5.10.0-29-mips32r6el.postinst | 18 debian/linux-headers-5.10.0-29-mips64r6.postinst | 18 debian/linux-headers-5.10.0-29-mips64r6el.postinst | 18 debian/linux-headers-5.10.0-29-octeon.postinst | 18 debian/linux-headers-5.10.0-29-parisc.postinst | 18 debian/linux-headers-5.10.0-29-parisc64.postinst | 18 debian/linux-headers-5.10.0-29-powerpc-smp.postinst | 18 debian/linux-headers-5.10.0-29-powerpc.postinst | 18 debian/linux-headers-5.10.0-29-powerpc64.postinst | 18 debian/linux-headers-5.10.0-29-powerpc64le.postinst | 18 debian/linux-headers-5.10.0-29-riscv64.postinst | 18 debian/linux-headers-5.10.0-29-rpi.postinst | 18 debian/linux-headers-5.10.0-29-rt-686-pae.postinst | 18 debian/linux-headers-5.10.0-29-rt-amd64.postinst | 18 debian/linux-headers-5.10.0-29-rt-arm64.postinst | 18 debian/linux-headers-5.10.0-29-rt-armmp.postinst | 18 debian/linux-headers-5.10.0-29-s390x.postinst | 18 debian/linux-headers-5.10.0-29-sh7751r.postinst | 18 debian/linux-headers-5.10.0-29-sh7785lcr.postinst | 18 debian/linux-headers-5.10.0-29-sparc64-smp.postinst | 18 debian/linux-headers-5.10.0-29-sparc64.postinst | 18 debian/linux-headers-5kc-malta.maintscript | 2 debian/linux-headers-alpha-generic.maintscript | 2 debian/linux-headers-alpha-smp.maintscript | 2 debian/linux-headers-armmp-lpae.maintscript | 2 debian/linux-headers-armmp.maintscript | 2 debian/linux-headers-itanium.maintscript | 2 debian/linux-headers-loongson-3.maintscript | 2 debian/linux-headers-m68k.maintscript | 2 debian/linux-headers-marvell.maintscript | 2 debian/linux-headers-mckinley.maintscript | 2 debian/linux-headers-mips32r6.maintscript | 2 debian/linux-headers-mips32r6el.maintscript | 2 debian/linux-headers-mips64r6.maintscript | 2 debian/linux-headers-mips64r6el.maintscript | 2 debian/linux-headers-octeon.maintscript | 2 debian/linux-headers-parisc.maintscript | 2 debian/linux-headers-parisc64.maintscript | 2 debian/linux-headers-powerpc-smp.maintscript | 2 debian/linux-headers-powerpc.maintscript | 2 debian/linux-headers-powerpc64.maintscript | 2 debian/linux-headers-powerpc64le.maintscript | 2 debian/linux-headers-riscv64.maintscript | 2 debian/linux-headers-rpi.maintscript | 2 debian/linux-headers-rt-armmp.maintscript | 2 debian/linux-headers-s390x.maintscript | 2 debian/linux-headers-sh7751r.maintscript | 2 debian/linux-headers-sh7785lcr.maintscript | 2 debian/linux-headers-sparc64-smp.maintscript | 2 debian/linux-headers-sparc64.maintscript | 2 debian/linux-image-4kc-malta-dbg.maintscript | 2 debian/linux-image-4kc-malta.bug-presubj | 2 debian/linux-image-4kc-malta.maintscript | 2 debian/linux-image-5.10.0-28-4kc-malta-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-4kc-malta.postinst | 25 debian/linux-image-5.10.0-28-4kc-malta.postrm | 31 debian/linux-image-5.10.0-28-4kc-malta.preinst | 21 debian/linux-image-5.10.0-28-4kc-malta.prerm | 17 debian/linux-image-5.10.0-28-5kc-malta-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-5kc-malta.postinst | 25 debian/linux-image-5.10.0-28-5kc-malta.postrm | 31 debian/linux-image-5.10.0-28-5kc-malta.preinst | 21 debian/linux-image-5.10.0-28-5kc-malta.prerm | 17 debian/linux-image-5.10.0-28-686-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-686-pae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-686-pae-unsigned.postinst | 25 debian/linux-image-5.10.0-28-686-pae-unsigned.postrm | 31 debian/linux-image-5.10.0-28-686-pae-unsigned.preinst | 21 debian/linux-image-5.10.0-28-686-pae-unsigned.prerm | 17 debian/linux-image-5.10.0-28-686-unsigned.postinst | 25 debian/linux-image-5.10.0-28-686-unsigned.postrm | 31 debian/linux-image-5.10.0-28-686-unsigned.preinst | 21 debian/linux-image-5.10.0-28-686-unsigned.prerm | 17 debian/linux-image-5.10.0-28-alpha-generic-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-alpha-generic.postinst | 25 debian/linux-image-5.10.0-28-alpha-generic.postrm | 31 debian/linux-image-5.10.0-28-alpha-generic.preinst | 21 debian/linux-image-5.10.0-28-alpha-generic.prerm | 17 debian/linux-image-5.10.0-28-alpha-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-alpha-smp.postinst | 25 debian/linux-image-5.10.0-28-alpha-smp.postrm | 31 debian/linux-image-5.10.0-28-alpha-smp.preinst | 21 debian/linux-image-5.10.0-28-alpha-smp.prerm | 17 debian/linux-image-5.10.0-28-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-armmp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-armmp-lpae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-armmp-lpae.postinst | 25 debian/linux-image-5.10.0-28-armmp-lpae.postrm | 31 debian/linux-image-5.10.0-28-armmp-lpae.preinst | 21 debian/linux-image-5.10.0-28-armmp-lpae.prerm | 17 debian/linux-image-5.10.0-28-armmp.postinst | 25 debian/linux-image-5.10.0-28-armmp.postrm | 31 debian/linux-image-5.10.0-28-armmp.preinst | 21 debian/linux-image-5.10.0-28-armmp.prerm | 17 debian/linux-image-5.10.0-28-cloud-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-cloud-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-cloud-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-cloud-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-cloud-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-cloud-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-itanium-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-itanium.postinst | 25 debian/linux-image-5.10.0-28-itanium.postrm | 31 debian/linux-image-5.10.0-28-itanium.preinst | 21 debian/linux-image-5.10.0-28-itanium.prerm | 17 debian/linux-image-5.10.0-28-loongson-3-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-loongson-3.postinst | 25 debian/linux-image-5.10.0-28-loongson-3.postrm | 31 debian/linux-image-5.10.0-28-loongson-3.preinst | 21 debian/linux-image-5.10.0-28-loongson-3.prerm | 17 debian/linux-image-5.10.0-28-m68k-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-m68k.postinst | 25 debian/linux-image-5.10.0-28-m68k.postrm | 31 debian/linux-image-5.10.0-28-m68k.preinst | 21 debian/linux-image-5.10.0-28-m68k.prerm | 17 debian/linux-image-5.10.0-28-marvell-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-marvell.postinst | 25 debian/linux-image-5.10.0-28-marvell.postrm | 31 debian/linux-image-5.10.0-28-marvell.preinst | 21 debian/linux-image-5.10.0-28-marvell.prerm | 17 debian/linux-image-5.10.0-28-mckinley-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-mckinley.postinst | 25 debian/linux-image-5.10.0-28-mckinley.postrm | 31 debian/linux-image-5.10.0-28-mckinley.preinst | 21 debian/linux-image-5.10.0-28-mckinley.prerm | 17 debian/linux-image-5.10.0-28-mips32r6-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-mips32r6.postinst | 25 debian/linux-image-5.10.0-28-mips32r6.postrm | 31 debian/linux-image-5.10.0-28-mips32r6.preinst | 21 debian/linux-image-5.10.0-28-mips32r6.prerm | 17 debian/linux-image-5.10.0-28-mips32r6el-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-mips32r6el.postinst | 25 debian/linux-image-5.10.0-28-mips32r6el.postrm | 31 debian/linux-image-5.10.0-28-mips32r6el.preinst | 21 debian/linux-image-5.10.0-28-mips32r6el.prerm | 17 debian/linux-image-5.10.0-28-mips64r6-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-mips64r6.postinst | 25 debian/linux-image-5.10.0-28-mips64r6.postrm | 31 debian/linux-image-5.10.0-28-mips64r6.preinst | 21 debian/linux-image-5.10.0-28-mips64r6.prerm | 17 debian/linux-image-5.10.0-28-mips64r6el-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-mips64r6el.postinst | 25 debian/linux-image-5.10.0-28-mips64r6el.postrm | 31 debian/linux-image-5.10.0-28-mips64r6el.preinst | 21 debian/linux-image-5.10.0-28-mips64r6el.prerm | 17 debian/linux-image-5.10.0-28-octeon-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-octeon.postinst | 25 debian/linux-image-5.10.0-28-octeon.postrm | 31 debian/linux-image-5.10.0-28-octeon.preinst | 21 debian/linux-image-5.10.0-28-octeon.prerm | 17 debian/linux-image-5.10.0-28-parisc.postinst | 25 debian/linux-image-5.10.0-28-parisc.postrm | 31 debian/linux-image-5.10.0-28-parisc.preinst | 21 debian/linux-image-5.10.0-28-parisc.prerm | 17 debian/linux-image-5.10.0-28-parisc64.postinst | 25 debian/linux-image-5.10.0-28-parisc64.postrm | 31 debian/linux-image-5.10.0-28-parisc64.preinst | 21 debian/linux-image-5.10.0-28-parisc64.prerm | 17 debian/linux-image-5.10.0-28-powerpc-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-powerpc-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-powerpc-smp.postinst | 25 debian/linux-image-5.10.0-28-powerpc-smp.postrm | 31 debian/linux-image-5.10.0-28-powerpc-smp.preinst | 21 debian/linux-image-5.10.0-28-powerpc-smp.prerm | 17 debian/linux-image-5.10.0-28-powerpc.postinst | 25 debian/linux-image-5.10.0-28-powerpc.postrm | 31 debian/linux-image-5.10.0-28-powerpc.preinst | 21 debian/linux-image-5.10.0-28-powerpc.prerm | 17 debian/linux-image-5.10.0-28-powerpc64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-powerpc64.postinst | 25 debian/linux-image-5.10.0-28-powerpc64.postrm | 31 debian/linux-image-5.10.0-28-powerpc64.preinst | 21 debian/linux-image-5.10.0-28-powerpc64.prerm | 17 debian/linux-image-5.10.0-28-powerpc64le-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-powerpc64le.postinst | 25 debian/linux-image-5.10.0-28-powerpc64le.postrm | 31 debian/linux-image-5.10.0-28-powerpc64le.preinst | 21 debian/linux-image-5.10.0-28-powerpc64le.prerm | 17 debian/linux-image-5.10.0-28-riscv64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-riscv64.postinst | 25 debian/linux-image-5.10.0-28-riscv64.postrm | 31 debian/linux-image-5.10.0-28-riscv64.preinst | 21 debian/linux-image-5.10.0-28-riscv64.prerm | 17 debian/linux-image-5.10.0-28-rpi-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-rpi.postinst | 25 debian/linux-image-5.10.0-28-rpi.postrm | 31 debian/linux-image-5.10.0-28-rpi.preinst | 21 debian/linux-image-5.10.0-28-rpi.prerm | 17 debian/linux-image-5.10.0-28-rt-686-pae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postinst | 25 debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postrm | 31 debian/linux-image-5.10.0-28-rt-686-pae-unsigned.preinst | 21 debian/linux-image-5.10.0-28-rt-686-pae-unsigned.prerm | 17 debian/linux-image-5.10.0-28-rt-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-rt-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-rt-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-rt-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-rt-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-rt-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-rt-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-28-rt-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-28-rt-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-28-rt-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-28-rt-armmp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-rt-armmp.postinst | 25 debian/linux-image-5.10.0-28-rt-armmp.postrm | 31 debian/linux-image-5.10.0-28-rt-armmp.preinst | 21 debian/linux-image-5.10.0-28-rt-armmp.prerm | 17 debian/linux-image-5.10.0-28-s390x-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-s390x.postinst | 25 debian/linux-image-5.10.0-28-s390x.postrm | 31 debian/linux-image-5.10.0-28-s390x.preinst | 21 debian/linux-image-5.10.0-28-s390x.prerm | 17 debian/linux-image-5.10.0-28-sh7751r-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-sh7751r.postinst | 25 debian/linux-image-5.10.0-28-sh7751r.postrm | 31 debian/linux-image-5.10.0-28-sh7751r.preinst | 21 debian/linux-image-5.10.0-28-sh7751r.prerm | 17 debian/linux-image-5.10.0-28-sh7785lcr-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-sh7785lcr.postinst | 25 debian/linux-image-5.10.0-28-sh7785lcr.postrm | 31 debian/linux-image-5.10.0-28-sh7785lcr.preinst | 21 debian/linux-image-5.10.0-28-sh7785lcr.prerm | 17 debian/linux-image-5.10.0-28-sparc64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-sparc64-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-28-sparc64-smp.postinst | 25 debian/linux-image-5.10.0-28-sparc64-smp.postrm | 31 debian/linux-image-5.10.0-28-sparc64-smp.preinst | 21 debian/linux-image-5.10.0-28-sparc64-smp.prerm | 17 debian/linux-image-5.10.0-28-sparc64.postinst | 25 debian/linux-image-5.10.0-28-sparc64.postrm | 31 debian/linux-image-5.10.0-28-sparc64.preinst | 21 debian/linux-image-5.10.0-28-sparc64.prerm | 17 debian/linux-image-5.10.0-29-4kc-malta-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-4kc-malta.postinst | 25 debian/linux-image-5.10.0-29-4kc-malta.postrm | 31 debian/linux-image-5.10.0-29-4kc-malta.preinst | 21 debian/linux-image-5.10.0-29-4kc-malta.prerm | 17 debian/linux-image-5.10.0-29-5kc-malta-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-5kc-malta.postinst | 25 debian/linux-image-5.10.0-29-5kc-malta.postrm | 31 debian/linux-image-5.10.0-29-5kc-malta.preinst | 21 debian/linux-image-5.10.0-29-5kc-malta.prerm | 17 debian/linux-image-5.10.0-29-686-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-686-pae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-686-pae-unsigned.postinst | 25 debian/linux-image-5.10.0-29-686-pae-unsigned.postrm | 31 debian/linux-image-5.10.0-29-686-pae-unsigned.preinst | 21 debian/linux-image-5.10.0-29-686-pae-unsigned.prerm | 17 debian/linux-image-5.10.0-29-686-unsigned.postinst | 25 debian/linux-image-5.10.0-29-686-unsigned.postrm | 31 debian/linux-image-5.10.0-29-686-unsigned.preinst | 21 debian/linux-image-5.10.0-29-686-unsigned.prerm | 17 debian/linux-image-5.10.0-29-alpha-generic-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-alpha-generic.postinst | 25 debian/linux-image-5.10.0-29-alpha-generic.postrm | 31 debian/linux-image-5.10.0-29-alpha-generic.preinst | 21 debian/linux-image-5.10.0-29-alpha-generic.prerm | 17 debian/linux-image-5.10.0-29-alpha-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-alpha-smp.postinst | 25 debian/linux-image-5.10.0-29-alpha-smp.postrm | 31 debian/linux-image-5.10.0-29-alpha-smp.preinst | 21 debian/linux-image-5.10.0-29-alpha-smp.prerm | 17 debian/linux-image-5.10.0-29-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-armmp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-armmp-lpae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-armmp-lpae.postinst | 25 debian/linux-image-5.10.0-29-armmp-lpae.postrm | 31 debian/linux-image-5.10.0-29-armmp-lpae.preinst | 21 debian/linux-image-5.10.0-29-armmp-lpae.prerm | 17 debian/linux-image-5.10.0-29-armmp.postinst | 25 debian/linux-image-5.10.0-29-armmp.postrm | 31 debian/linux-image-5.10.0-29-armmp.preinst | 21 debian/linux-image-5.10.0-29-armmp.prerm | 17 debian/linux-image-5.10.0-29-cloud-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-cloud-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-cloud-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-cloud-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-cloud-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-cloud-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-itanium-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-itanium.postinst | 25 debian/linux-image-5.10.0-29-itanium.postrm | 31 debian/linux-image-5.10.0-29-itanium.preinst | 21 debian/linux-image-5.10.0-29-itanium.prerm | 17 debian/linux-image-5.10.0-29-loongson-3-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-loongson-3.postinst | 25 debian/linux-image-5.10.0-29-loongson-3.postrm | 31 debian/linux-image-5.10.0-29-loongson-3.preinst | 21 debian/linux-image-5.10.0-29-loongson-3.prerm | 17 debian/linux-image-5.10.0-29-m68k-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-m68k.postinst | 25 debian/linux-image-5.10.0-29-m68k.postrm | 31 debian/linux-image-5.10.0-29-m68k.preinst | 21 debian/linux-image-5.10.0-29-m68k.prerm | 17 debian/linux-image-5.10.0-29-marvell-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-marvell.postinst | 25 debian/linux-image-5.10.0-29-marvell.postrm | 31 debian/linux-image-5.10.0-29-marvell.preinst | 21 debian/linux-image-5.10.0-29-marvell.prerm | 17 debian/linux-image-5.10.0-29-mckinley-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-mckinley.postinst | 25 debian/linux-image-5.10.0-29-mckinley.postrm | 31 debian/linux-image-5.10.0-29-mckinley.preinst | 21 debian/linux-image-5.10.0-29-mckinley.prerm | 17 debian/linux-image-5.10.0-29-mips32r6-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-mips32r6.postinst | 25 debian/linux-image-5.10.0-29-mips32r6.postrm | 31 debian/linux-image-5.10.0-29-mips32r6.preinst | 21 debian/linux-image-5.10.0-29-mips32r6.prerm | 17 debian/linux-image-5.10.0-29-mips32r6el-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-mips32r6el.postinst | 25 debian/linux-image-5.10.0-29-mips32r6el.postrm | 31 debian/linux-image-5.10.0-29-mips32r6el.preinst | 21 debian/linux-image-5.10.0-29-mips32r6el.prerm | 17 debian/linux-image-5.10.0-29-mips64r6-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-mips64r6.postinst | 25 debian/linux-image-5.10.0-29-mips64r6.postrm | 31 debian/linux-image-5.10.0-29-mips64r6.preinst | 21 debian/linux-image-5.10.0-29-mips64r6.prerm | 17 debian/linux-image-5.10.0-29-mips64r6el-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-mips64r6el.postinst | 25 debian/linux-image-5.10.0-29-mips64r6el.postrm | 31 debian/linux-image-5.10.0-29-mips64r6el.preinst | 21 debian/linux-image-5.10.0-29-mips64r6el.prerm | 17 debian/linux-image-5.10.0-29-octeon-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-octeon.postinst | 25 debian/linux-image-5.10.0-29-octeon.postrm | 31 debian/linux-image-5.10.0-29-octeon.preinst | 21 debian/linux-image-5.10.0-29-octeon.prerm | 17 debian/linux-image-5.10.0-29-parisc.postinst | 25 debian/linux-image-5.10.0-29-parisc.postrm | 31 debian/linux-image-5.10.0-29-parisc.preinst | 21 debian/linux-image-5.10.0-29-parisc.prerm | 17 debian/linux-image-5.10.0-29-parisc64.postinst | 25 debian/linux-image-5.10.0-29-parisc64.postrm | 31 debian/linux-image-5.10.0-29-parisc64.preinst | 21 debian/linux-image-5.10.0-29-parisc64.prerm | 17 debian/linux-image-5.10.0-29-powerpc-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-powerpc-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-powerpc-smp.postinst | 25 debian/linux-image-5.10.0-29-powerpc-smp.postrm | 31 debian/linux-image-5.10.0-29-powerpc-smp.preinst | 21 debian/linux-image-5.10.0-29-powerpc-smp.prerm | 17 debian/linux-image-5.10.0-29-powerpc.postinst | 25 debian/linux-image-5.10.0-29-powerpc.postrm | 31 debian/linux-image-5.10.0-29-powerpc.preinst | 21 debian/linux-image-5.10.0-29-powerpc.prerm | 17 debian/linux-image-5.10.0-29-powerpc64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-powerpc64.postinst | 25 debian/linux-image-5.10.0-29-powerpc64.postrm | 31 debian/linux-image-5.10.0-29-powerpc64.preinst | 21 debian/linux-image-5.10.0-29-powerpc64.prerm | 17 debian/linux-image-5.10.0-29-powerpc64le-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-powerpc64le.postinst | 25 debian/linux-image-5.10.0-29-powerpc64le.postrm | 31 debian/linux-image-5.10.0-29-powerpc64le.preinst | 21 debian/linux-image-5.10.0-29-powerpc64le.prerm | 17 debian/linux-image-5.10.0-29-riscv64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-riscv64.postinst | 25 debian/linux-image-5.10.0-29-riscv64.postrm | 31 debian/linux-image-5.10.0-29-riscv64.preinst | 21 debian/linux-image-5.10.0-29-riscv64.prerm | 17 debian/linux-image-5.10.0-29-rpi-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-rpi.postinst | 25 debian/linux-image-5.10.0-29-rpi.postrm | 31 debian/linux-image-5.10.0-29-rpi.preinst | 21 debian/linux-image-5.10.0-29-rpi.prerm | 17 debian/linux-image-5.10.0-29-rt-686-pae-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postinst | 25 debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postrm | 31 debian/linux-image-5.10.0-29-rt-686-pae-unsigned.preinst | 21 debian/linux-image-5.10.0-29-rt-686-pae-unsigned.prerm | 17 debian/linux-image-5.10.0-29-rt-amd64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-rt-amd64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-rt-amd64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-rt-amd64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-rt-amd64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-rt-arm64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-rt-arm64-unsigned.postinst | 25 debian/linux-image-5.10.0-29-rt-arm64-unsigned.postrm | 31 debian/linux-image-5.10.0-29-rt-arm64-unsigned.preinst | 21 debian/linux-image-5.10.0-29-rt-arm64-unsigned.prerm | 17 debian/linux-image-5.10.0-29-rt-armmp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-rt-armmp.postinst | 25 debian/linux-image-5.10.0-29-rt-armmp.postrm | 31 debian/linux-image-5.10.0-29-rt-armmp.preinst | 21 debian/linux-image-5.10.0-29-rt-armmp.prerm | 17 debian/linux-image-5.10.0-29-s390x-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-s390x.postinst | 25 debian/linux-image-5.10.0-29-s390x.postrm | 31 debian/linux-image-5.10.0-29-s390x.preinst | 21 debian/linux-image-5.10.0-29-s390x.prerm | 17 debian/linux-image-5.10.0-29-sh7751r-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-sh7751r.postinst | 25 debian/linux-image-5.10.0-29-sh7751r.postrm | 31 debian/linux-image-5.10.0-29-sh7751r.preinst | 21 debian/linux-image-5.10.0-29-sh7751r.prerm | 17 debian/linux-image-5.10.0-29-sh7785lcr-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-sh7785lcr.postinst | 25 debian/linux-image-5.10.0-29-sh7785lcr.postrm | 31 debian/linux-image-5.10.0-29-sh7785lcr.preinst | 21 debian/linux-image-5.10.0-29-sh7785lcr.prerm | 17 debian/linux-image-5.10.0-29-sparc64-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-sparc64-smp-dbg.lintian-overrides | 15 debian/linux-image-5.10.0-29-sparc64-smp.postinst | 25 debian/linux-image-5.10.0-29-sparc64-smp.postrm | 31 debian/linux-image-5.10.0-29-sparc64-smp.preinst | 21 debian/linux-image-5.10.0-29-sparc64-smp.prerm | 17 debian/linux-image-5.10.0-29-sparc64.postinst | 25 debian/linux-image-5.10.0-29-sparc64.postrm | 31 debian/linux-image-5.10.0-29-sparc64.preinst | 21 debian/linux-image-5.10.0-29-sparc64.prerm | 17 debian/linux-image-5kc-malta-dbg.maintscript | 2 debian/linux-image-5kc-malta.bug-presubj | 2 debian/linux-image-5kc-malta.maintscript | 2 debian/linux-image-686-dbg.maintscript | 2 debian/linux-image-686-pae-dbg.maintscript | 2 debian/linux-image-alpha-generic-dbg.maintscript | 2 debian/linux-image-alpha-generic.bug-presubj | 2 debian/linux-image-alpha-generic.maintscript | 2 debian/linux-image-alpha-smp-dbg.maintscript | 2 debian/linux-image-alpha-smp.bug-presubj | 2 debian/linux-image-alpha-smp.maintscript | 2 debian/linux-image-amd64-dbg.maintscript | 2 debian/linux-image-arm64-dbg.maintscript | 2 debian/linux-image-armmp-dbg.maintscript | 2 debian/linux-image-armmp-lpae-dbg.maintscript | 2 debian/linux-image-armmp-lpae.bug-presubj | 2 debian/linux-image-armmp-lpae.maintscript | 2 debian/linux-image-armmp.bug-presubj | 2 debian/linux-image-armmp.maintscript | 2 debian/linux-image-cloud-amd64-dbg.maintscript | 2 debian/linux-image-cloud-arm64-dbg.maintscript | 2 debian/linux-image-itanium-dbg.maintscript | 2 debian/linux-image-itanium.bug-presubj | 2 debian/linux-image-itanium.maintscript | 2 debian/linux-image-loongson-3-dbg.maintscript | 2 debian/linux-image-loongson-3.bug-presubj | 2 debian/linux-image-loongson-3.maintscript | 2 debian/linux-image-m68k-dbg.maintscript | 2 debian/linux-image-m68k.bug-presubj | 2 debian/linux-image-m68k.maintscript | 2 debian/linux-image-marvell-dbg.maintscript | 2 debian/linux-image-marvell.bug-presubj | 2 debian/linux-image-marvell.maintscript | 2 debian/linux-image-mckinley-dbg.maintscript | 2 debian/linux-image-mckinley.bug-presubj | 2 debian/linux-image-mckinley.maintscript | 2 debian/linux-image-mips32r6-dbg.maintscript | 2 debian/linux-image-mips32r6.bug-presubj | 2 debian/linux-image-mips32r6.maintscript | 2 debian/linux-image-mips32r6el-dbg.maintscript | 2 debian/linux-image-mips32r6el.bug-presubj | 2 debian/linux-image-mips32r6el.maintscript | 2 debian/linux-image-mips64r6-dbg.maintscript | 2 debian/linux-image-mips64r6.bug-presubj | 2 debian/linux-image-mips64r6.maintscript | 2 debian/linux-image-mips64r6el-dbg.maintscript | 2 debian/linux-image-mips64r6el.bug-presubj | 2 debian/linux-image-mips64r6el.maintscript | 2 debian/linux-image-octeon-dbg.maintscript | 2 debian/linux-image-octeon.bug-presubj | 2 debian/linux-image-octeon.maintscript | 2 debian/linux-image-parisc.bug-presubj | 2 debian/linux-image-parisc.maintscript | 2 debian/linux-image-parisc64.bug-presubj | 2 debian/linux-image-parisc64.maintscript | 2 debian/linux-image-powerpc-dbg.maintscript | 2 debian/linux-image-powerpc-smp-dbg.maintscript | 2 debian/linux-image-powerpc-smp.bug-presubj | 2 debian/linux-image-powerpc-smp.maintscript | 2 debian/linux-image-powerpc.bug-presubj | 2 debian/linux-image-powerpc.maintscript | 2 debian/linux-image-powerpc64-dbg.maintscript | 2 debian/linux-image-powerpc64.bug-presubj | 2 debian/linux-image-powerpc64.maintscript | 2 debian/linux-image-powerpc64le-dbg.maintscript | 2 debian/linux-image-powerpc64le.bug-presubj | 2 debian/linux-image-powerpc64le.maintscript | 2 debian/linux-image-riscv64-dbg.maintscript | 2 debian/linux-image-riscv64.bug-presubj | 2 debian/linux-image-riscv64.maintscript | 2 debian/linux-image-rpi-dbg.maintscript | 2 debian/linux-image-rpi.bug-presubj | 2 debian/linux-image-rpi.maintscript | 2 debian/linux-image-rt-686-pae-dbg.maintscript | 2 debian/linux-image-rt-amd64-dbg.maintscript | 2 debian/linux-image-rt-arm64-dbg.maintscript | 2 debian/linux-image-rt-armmp-dbg.maintscript | 2 debian/linux-image-rt-armmp.bug-presubj | 2 debian/linux-image-rt-armmp.maintscript | 2 debian/linux-image-s390x-dbg.maintscript | 2 debian/linux-image-s390x.bug-presubj | 2 debian/linux-image-s390x.maintscript | 2 debian/linux-image-sh7751r-dbg.maintscript | 2 debian/linux-image-sh7751r.bug-presubj | 2 debian/linux-image-sh7751r.maintscript | 2 debian/linux-image-sh7785lcr-dbg.maintscript | 2 debian/linux-image-sh7785lcr.bug-presubj | 2 debian/linux-image-sh7785lcr.maintscript | 2 debian/linux-image-sparc64-dbg.maintscript | 2 debian/linux-image-sparc64-smp-dbg.maintscript | 2 debian/linux-image-sparc64-smp.bug-presubj | 2 debian/linux-image-sparc64-smp.maintscript | 2 debian/linux-image-sparc64.bug-presubj | 2 debian/linux-image-sparc64.maintscript | 2 debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch | 8 debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch | 4 debian/patches-rt/0003-sched-Fix-balance_callback.patch | 10 debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch | 10 debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch | 10 debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch | 8 debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch | 14 debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch | 12 debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch | 12 debian/patches-rt/0010-sched-Add-migrate_disable.patch | 16 debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch | 10 debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch | 10 debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch | 14 debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch | 14 debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch | 8 debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch | 18 debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch | 8 debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch | 14 debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch | 8 debian/patches-rt/0020-sched-Comment-affine_move_task.patch | 8 debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch | 8 debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch | 8 debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch | 8 debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch | 8 debian/patches-rt/0025-highmem-Remove-unused-functions.patch | 8 debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch | 10 debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch | 12 debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch | 10 debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch | 12 debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch | 8 debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch | 30 debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch | 14 debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch | 18 debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch | 14 debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch | 18 debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch | 20 debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch | 16 debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch | 20 debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch | 20 debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch | 14 debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch | 26 debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch | 10 debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch | 12 debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch | 8 debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch | 12 debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch | 18 debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch | 18 debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch | 12 debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch | 10 debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch | 8 debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch | 8 debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch | 10 debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch | 8 debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch | 8 debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch | 8 debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch | 8 debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch | 24 debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch | 8 debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch | 14 debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch | 10 debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch | 8 debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch | 8 debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch | 8 debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch | 8 debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch | 12 debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch | 8 debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch | 12 debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch | 8 debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch | 8 debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch | 10 debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch | 8 debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch | 12 debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch | 12 debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch | 8 debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch | 18 debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch | 116 debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch | 16 debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch | 10 debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch | 8 debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch | 12 debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch | 18 debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch | 8 debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch | 8 debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch | 16 debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch | 12 debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch | 12 debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch | 12 debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch | 8 debian/patches-rt/0089-printk-add-syslog_lock.patch | 10 debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch | 62 debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch | 8 debian/patches-rt/0092-printk-remove-logbuf_lock.patch | 38 debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch | 28 debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch | 12 debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch | 12 debian/patches-rt/0096-printk-track-limit-recursion.patch | 20 debian/patches-rt/0097-printk-remove-safe-buffers.patch | 52 debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch | 10 debian/patches-rt/0099-console-add-write_atomic-interface.patch | 12 debian/patches-rt/0100-serial-8250-implement-write_atomic.patch | 54 debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch | 12 debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch | 10 debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch | 24 debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch | 32 debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch | 56 debian/patches-rt/0106-printk-remove-deferred-printing.patch | 30 debian/patches-rt/0107-printk-add-console-handover.patch | 12 debian/patches-rt/0108-printk-add-pr_flush.patch | 20 debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch | 8 debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch | 8 debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch | 8 debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch | 10 debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch | 12 debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch | 8 debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch | 10 debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch | 8 debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch | 8 debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch | 10 debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch | 8 debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch | 8 debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch | 8 debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch | 10 debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch | 8 debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch | 8 debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch | 8 debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch | 10 debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch | 16 debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch | 18 debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch | 14 debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch | 8 debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch | 8 debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch | 8 debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch | 8 debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch | 8 debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch | 8 debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch | 10 debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch | 8 debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch | 10 debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch | 10 debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch | 8 debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch | 8 debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch | 8 debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch | 8 debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch | 12 debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch | 8 debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch | 12 debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch | 8 debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch | 8 debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch | 10 debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch | 12 debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch | 10 debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch | 16 debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch | 16 debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch | 8 debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch | 8 debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch | 14 debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch | 18 debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch | 8 debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch | 10 debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch | 12 debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch | 10 debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch | 8 debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch | 14 debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch | 8 debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch | 8 debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch | 12 debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch | 10 debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch | 10 debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch | 12 debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch | 28 debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch | 8 debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch | 10 debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch | 10 debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch | 14 debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch | 28 debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch | 16 debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch | 20 debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch | 8 debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch | 8 debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch | 10 debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch | 8 debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch | 8 debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch | 33 debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch | 36 debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch | 22 debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch | 20 debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch | 10 debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch | 10 debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch | 8 debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch | 8 debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch | 8 debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch | 8 debian/patches-rt/0193-efi-Allow-efi-runtime.patch | 8 debian/patches-rt/0194-rt-Add-local-irq-locks.patch | 8 debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch | 14 debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch | 8 debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch | 8 debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch | 12 debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch | 8 debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch | 8 debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch | 8 debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch | 8 debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch | 12 debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch | 8 debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch | 8 debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch | 8 debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch | 8 debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch | 8 debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch | 8 debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch | 8 debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch | 8 debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch | 10 debian/patches-rt/0213-wait.h-include-atomic.h.patch | 8 debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch | 8 debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch | 14 debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch | 10 debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch | 10 debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch | 8 debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch | 20 debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch | 22 debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch | 10 debian/patches-rt/0222-pid.h-include-atomic.h.patch | 8 debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch | 12 debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch | 8 debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch | 8 debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch | 22 debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch | 24 debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch | 10 debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch | 8 debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch | 10 debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch | 10 debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch | 16 debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch | 8 debian/patches-rt/0234-rt-Introduce-cpu_chill.patch | 12 debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch | 8 debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch | 12 debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch | 10 debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch | 10 debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch | 16 debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch | 8 debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch | 10 debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch | 10 debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch | 10 debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch | 12 debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch | 12 debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch | 10 debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch | 8 debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch | 8 debian/patches-rt/0249-lockdep-disable-self-test.patch | 8 debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch | 14 debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch | 8 debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch | 8 debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch | 8 debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch | 8 debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch | 8 debian/patches-rt/0256-x86-Allow-to-enable-RT.patch | 8 debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch | 8 debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch | 36 debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch | 8 debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch | 16 debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch | 18 debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch | 18 debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch | 20 debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch | 8 debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch | 8 debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch | 8 debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch | 8 debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch | 8 debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch | 8 debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch | 8 debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch | 8 debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch | 8 debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch | 8 debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch | 8 debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch | 8 debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch | 8 debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch | 8 debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch | 8 debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch | 10 debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch | 8 debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch | 10 debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch | 8 debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch | 16 debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch | 8 debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch | 8 debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch | 8 debian/patches-rt/0287-Add-localversion-for-RT-release.patch | 8 debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch | 8 debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch | 8 debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch | 8 debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch | 8 debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch | 8 debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch | 8 debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch | 8 debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch | 8 debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch | 10 debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch | 8 debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch | 8 debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch | 8 debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch | 8 debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch | 8 debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch | 8 debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch | 12 debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch | 8 debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch | 8 debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch | 8 debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch | 10 debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch | 14 debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch | 10 debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch | 16 debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch | 8 debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch | 10 debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch | 10 debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch | 8 debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch | 10 debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch | 8 debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch | 10 debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch | 8 debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch | 12 debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch | 8 debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch | 10 debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch | 12 debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch | 21 debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch | 21 debian/patches-rt/series | 2 debian/patches/bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch | 73 debian/patches/bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch | 375 debian/patches/bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch | 156 debian/patches/bugfix/all/tipc-fix-UAF-in-error-path.patch | 141 debian/patches/bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch | 38 debian/patches/series | 5 debian/rules.gen | 598 debian/tests/control | 2 drivers/accessibility/speakup/main.c | 2 drivers/accessibility/speakup/synth.c | 4 drivers/acpi/acpi_extlog.c | 5 drivers/acpi/acpi_video.c | 9 drivers/acpi/acpica/dbnames.c | 8 drivers/acpi/apei/ghes.c | 29 drivers/acpi/processor_idle.c | 2 drivers/acpi/scan.c | 8 drivers/acpi/sleep.c | 12 drivers/android/binder.c | 14 drivers/ata/ahci.c | 29 drivers/ata/ahci.h | 1 drivers/ata/libata-eh.c | 2 drivers/ata/sata_mv.c | 63 drivers/ata/sata_sx4.c | 6 drivers/atm/idt77252.c | 2 drivers/base/core.c | 26 drivers/base/cpu.c | 8 drivers/base/power/domain.c | 2 drivers/base/power/main.c | 251 drivers/base/power/runtime.c | 22 drivers/base/power/wakeirq.c | 4 drivers/base/regmap/internal.h | 4 drivers/base/regmap/regmap.c | 79 drivers/block/aoe/aoecmd.c | 12 drivers/block/aoe/aoenet.c | 1 drivers/block/ataflop.c | 56 drivers/block/nbd.c | 6 drivers/block/rbd.c | 22 drivers/block/rnbd/rnbd-srv.c | 19 drivers/block/virtio_blk.c | 7 drivers/bluetooth/btintel.c | 2 drivers/bluetooth/btusb.c | 2 drivers/bluetooth/hci_qca.c | 1 drivers/bus/Kconfig | 5 drivers/bus/mhi/host/main.c | 4 drivers/bus/moxtet.c | 7 drivers/char/hw_random/core.c | 34 drivers/clk/clk.c | 157 drivers/clk/hisilicon/clk-hi3519.c | 2 drivers/clk/hisilicon/clk-hi3620.c | 4 drivers/clk/mmp/clk-of-pxa168.c | 3 drivers/clk/qcom/dispcc-sdm845.c | 2 drivers/clk/qcom/gcc-ipq6018.c | 2 drivers/clk/qcom/gcc-ipq8074.c | 2 drivers/clk/qcom/gcc-sdm845.c | 1 drivers/clk/qcom/mmcc-apq8084.c | 2 drivers/clk/qcom/mmcc-msm8974.c | 2 drivers/clk/qcom/reset.c | 27 drivers/cpufreq/brcmstb-avs-cpufreq.c | 5 drivers/cpufreq/cpufreq-dt.c | 2 drivers/crypto/ccp/sev-dev.c | 10 drivers/crypto/qat/qat_common/adf_aer.c | 23 drivers/crypto/stm32/stm32-crc32.c | 2 drivers/crypto/virtio/virtio_crypto_akcipher_algs.c | 5 drivers/crypto/xilinx/zynqmp-aes-gcm.c | 3 drivers/devfreq/devfreq.c | 83 drivers/dma/Kconfig | 14 drivers/dma/dmaengine.c | 3 drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c | 10 drivers/dma/fsl-qdma.c | 50 drivers/dma/idma64.c | 4 drivers/dma/owl-dma.c | 4 drivers/dma/sh/shdma.h | 2 drivers/dma/ti/edma.c | 10 drivers/dma/ti/k3-udma.c | 10 drivers/dma/xilinx/xilinx_dpdma.c | 13 drivers/firewire/core-card.c | 32 drivers/firewire/core-device.c | 7 drivers/firmware/efi/arm-runtime.c | 2 drivers/firmware/efi/capsule-loader.c | 2 drivers/firmware/efi/efi-init.c | 19 drivers/firmware/efi/riscv-runtime.c | 2 drivers/firmware/efi/vars.c | 17 drivers/gpio/gpio-74x164.c | 4 drivers/gpio/gpio-eic-sprd.c | 32 drivers/gpio/gpiolib-acpi.c | 14 drivers/gpio/gpiolib.c | 10 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 72 drivers/gpu/drm/amd/amdgpu/atom.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 24 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 4 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 drivers/gpu/drm/amd/display/dc/core/dc.c | 4 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 7 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 12 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/amd/display/modules/inc/mod_stats.h | 4 drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c | 2 drivers/gpu/drm/bridge/nxp-ptn3460.c | 6 drivers/gpu/drm/drm_client_modeset.c | 3 drivers/gpu/drm/drm_file.c | 2 drivers/gpu/drm/drm_framebuffer.c | 2 drivers/gpu/drm/drm_mipi_dsi.c | 17 drivers/gpu/drm/drm_panel.c | 17 drivers/gpu/drm/drm_plane.c | 1 drivers/gpu/drm/drm_syncobj.c | 16 drivers/gpu/drm/etnaviv/etnaviv_drv.c | 2 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 9 drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 drivers/gpu/drm/exynos/exynos_hdmi.c | 4 drivers/gpu/drm/i915/gt/intel_engine_pm.c | 3 drivers/gpu/drm/i915/gt/intel_lrc.c | 3 drivers/gpu/drm/imx/parallel-display.c | 4 drivers/gpu/drm/lima/lima_gem.c | 23 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 12 drivers/gpu/drm/mediatek/mtk_dsi.c | 10 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 5 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 6 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 1 drivers/gpu/drm/msm/dp/dp_link.c | 12 drivers/gpu/drm/msm/dp/dp_reg.h | 3 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 drivers/gpu/drm/nouveau/nouveau_bios.c | 13 drivers/gpu/drm/nouveau/nouveau_vmm.c | 3 drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 8 drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c | 7 drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 7 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/panel/panel-visionox-rm69299.c | 2 drivers/gpu/drm/radeon/ni.c | 2 drivers/gpu/drm/rockchip/inno_hdmi.c | 4 drivers/gpu/drm/rockchip/rockchip_lvds.c | 3 drivers/gpu/drm/tegra/dsi.c | 47 drivers/gpu/drm/tegra/fb.c | 1 drivers/gpu/drm/tegra/output.c | 16 drivers/gpu/drm/tidss/tidss_crtc.c | 10 drivers/gpu/drm/tidss/tidss_plane.c | 2 drivers/gpu/drm/ttm/ttm_memory.c | 2 drivers/gpu/drm/vc4/vc4_hdmi.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_binding.c | 20 drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 92 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 8 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 11 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 12 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 6 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 12 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_so.c | 3 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 50 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 6 drivers/hid/hid-apple.c | 33 drivers/hid/hid-ids.h | 1 drivers/hid/hid-lenovo.c | 57 drivers/hid/hid-multitouch.c | 4 drivers/hid/hid-quirks.c | 1 drivers/hid/i2c-hid/i2c-hid-core.c | 8 drivers/hid/wacom_sys.c | 63 drivers/hid/wacom_wac.c | 9 drivers/hv/channel.c | 174 drivers/hv/hyperv_vmbus.h | 3 drivers/hv/ring_buffer.c | 28 drivers/hwmon/amc6821.c | 11 drivers/hwmon/aspeed-pwm-tacho.c | 7 drivers/hwmon/coretemp.c | 42 drivers/i2c/busses/i2c-i801.c | 19 drivers/i2c/i2c-core-base.c | 12 drivers/i3c/master/i3c-master-cdns.c | 7 drivers/iio/accel/Kconfig | 2 drivers/iio/adc/ad7091r-base.c | 173 drivers/iio/adc/ad7091r-base.h | 8 drivers/iio/adc/ad7091r5.c | 29 drivers/iio/magnetometer/rm3100-core.c | 10 drivers/infiniband/core/cm.c | 23 drivers/infiniband/core/device.c | 37 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 5 drivers/infiniband/hw/hfi1/pio.c | 6 drivers/infiniband/hw/hfi1/sdma.c | 2 drivers/infiniband/hw/mlx5/devx.c | 2 drivers/infiniband/hw/mlx5/mad.c | 3 drivers/infiniband/hw/mlx5/wr.c | 2 drivers/infiniband/hw/qedr/verbs.c | 11 drivers/infiniband/sw/rxe/rxe.c | 2 drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 drivers/infiniband/ulp/srpt/ib_srpt.c | 20 drivers/input/keyboard/atkbd.c | 13 drivers/input/keyboard/gpio_keys_polled.c | 10 drivers/input/rmi4/rmi_driver.c | 6 drivers/input/serio/i8042-acpipnpio.h | 14 drivers/iommu/amd/init.c | 3 drivers/iommu/intel/pasid.c | 3 drivers/iommu/intel/svm.c | 2 drivers/irqchip/irq-brcmstb-l2.c | 5 drivers/irqchip/irq-gic-v3-its.c | 31 drivers/irqchip/irq-mips-gic.c | 2 drivers/leds/leds-aw2013.c | 1 drivers/leds/leds-sgm3140.c | 3 drivers/leds/trigger/ledtrig-panic.c | 5 drivers/mailbox/imx-mailbox.c | 8 drivers/md/dm-core.h | 2 drivers/md/dm-crypt.c | 10 drivers/md/dm-integrity.c | 2 drivers/md/dm-ioctl.c | 3 drivers/md/dm-raid.c | 6 drivers/md/dm-snap.c | 4 drivers/md/dm-table.c | 9 drivers/md/dm-verity.h | 4 drivers/md/dm.c | 26 drivers/md/md.c | 130 drivers/media/cec/core/cec-adap.c | 14 drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 52 drivers/media/dvb-core/dvbdev.c | 5 drivers/media/dvb-frontends/stv0367.c | 34 drivers/media/i2c/tc358743.c | 7 drivers/media/pci/ddbridge/ddbridge-main.c | 2 drivers/media/pci/sta2x11/sta2x11_vip.c | 9 drivers/media/pci/ttpci/av7110_av.c | 4 drivers/media/pci/ttpci/budget-av.c | 8 drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 6 drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c | 2 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c | 10 drivers/media/platform/mtk-vpu/mtk_vpu.c | 2 drivers/media/platform/mtk-vpu/mtk_vpu.h | 2 drivers/media/platform/rockchip/rga/rga.c | 15 drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 69 drivers/media/rc/bpf-lirc.c | 6 drivers/media/rc/ir_toy.c | 2 drivers/media/rc/lirc_dev.c | 5 drivers/media/rc/rc-core-priv.h | 2 drivers/media/tuners/xc4000.c | 4 drivers/media/usb/em28xx/em28xx-cards.c | 4 drivers/media/usb/go7007/go7007-driver.c | 8 drivers/media/usb/go7007/go7007-usb.c | 4 drivers/media/usb/pvrusb2/pvrusb2-context.c | 10 drivers/media/usb/pvrusb2/pvrusb2-dvb.c | 6 drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 11 drivers/media/usb/stk1160/stk1160-video.c | 5 drivers/media/v4l2-core/v4l2-mem2mem.c | 10 drivers/mfd/Kconfig | 1 drivers/mfd/altera-sysmgr.c | 4 drivers/mfd/syscon.c | 4 drivers/misc/fastrpc.c | 2 drivers/misc/mei/hw-me-regs.h | 2 drivers/misc/mei/pci-me.c | 4 drivers/misc/vmw_vmci/vmci_datagram.c | 6 drivers/mmc/core/block.c | 58 drivers/mmc/core/mmc.c | 2 drivers/mmc/core/slot-gpio.c | 6 drivers/mmc/host/mmc_spi.c | 186 drivers/mmc/host/mmci_stm32_sdmmc.c | 112 drivers/mmc/host/sdhci-xenon-phy.c | 48 drivers/mmc/host/tmio_mmc_core.c | 2 drivers/mmc/host/wmt-sdmmc.c | 4 drivers/mtd/maps/physmap-core.c | 2 drivers/mtd/nand/raw/diskonchip.c | 4 drivers/mtd/nand/raw/lpc32xx_mlc.c | 5 drivers/mtd/nand/raw/meson_nand.c | 2 drivers/mtd/nand/spi/gigadevice.c | 81 drivers/mtd/nand/spi/macronix.c | 20 drivers/mtd/ubi/fastmap.c | 7 drivers/mtd/ubi/vtbl.c | 6 drivers/net/bonding/bond_alb.c | 3 drivers/net/dsa/mt7530.c | 8 drivers/net/dsa/mv88e6xxx/chip.h | 4 drivers/net/dsa/mv88e6xxx/serdes.c | 8 drivers/net/dsa/mv88e6xxx/serdes.h | 8 drivers/net/ethernet/amazon/ena/ena_com.c | 2 drivers/net/ethernet/amazon/ena/ena_netdev.c | 52 drivers/net/ethernet/broadcom/b44.c | 14 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 6 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 22 drivers/net/ethernet/broadcom/genet/bcmgenet.h | 3 drivers/net/ethernet/broadcom/genet/bcmmii.c | 6 drivers/net/ethernet/freescale/fec_main.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 5 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 8 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 8 drivers/net/ethernet/intel/i40e/i40e_main.c | 17 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 66 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 1 drivers/net/ethernet/intel/iavf/iavf_main.c | 30 drivers/net/ethernet/intel/ice/ice_main.c | 2 drivers/net/ethernet/intel/igb/igb_main.c | 102 drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 36 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 61 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 177 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 16 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 100 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 34 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 1 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 105 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 51 drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 44 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 149 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 27 drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 7 drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 17 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c | 20 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 12 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 26 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 3 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c | 1 drivers/net/ethernet/mellanox/mlxsw/core.c | 2 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 54 drivers/net/ethernet/microchip/lan743x_ethtool.c | 9 drivers/net/ethernet/neterion/vxge/vxge-config.c | 2 drivers/net/ethernet/netronome/nfp/flower/lag_conf.c | 5 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c | 2 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c | 6 drivers/net/ethernet/pensando/ionic/ionic_dev.c | 1 drivers/net/ethernet/pensando/ionic/ionic_dev.h | 1 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 5 drivers/net/ethernet/pensando/ionic/ionic_main.c | 2 drivers/net/ethernet/realtek/r8169_main.c | 9 drivers/net/ethernet/renesas/ravb_main.c | 7 drivers/net/ethernet/stmicro/stmmac/common.h | 1 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 40 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 3 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 96 drivers/net/ethernet/ti/am65-cpts.c | 5 drivers/net/ethernet/xilinx/ll_temac_main.c | 2 drivers/net/fjes/fjes_hw.c | 37 drivers/net/geneve.c | 22 drivers/net/gtp.c | 17 drivers/net/hyperv/hyperv_net.h | 13 drivers/net/hyperv/netvsc.c | 60 drivers/net/hyperv/netvsc_drv.c | 107 drivers/net/hyperv/rndis_filter.c | 1 drivers/net/phy/dp83822.c | 38 drivers/net/phy/phy_device.c | 2 drivers/net/ppp/ppp_async.c | 4 drivers/net/tun.c | 19 drivers/net/usb/ax88179_178a.c | 11 drivers/net/usb/dm9601.c | 2 drivers/net/usb/lan78xx.c | 913 + drivers/net/usb/sr9800.c | 4 drivers/net/virtio_net.c | 9 drivers/net/vxlan/vxlan_core.c | 4 drivers/net/wireguard/netlink.c | 10 drivers/net/wireguard/receive.c | 6 drivers/net/wireless/ath/ath10k/core.c | 3 drivers/net/wireless/ath/ath10k/sdio.c | 1 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 drivers/net/wireless/ath/ath9k/antenna.c | 2 drivers/net/wireless/ath/ath9k/htc.h | 2 drivers/net/wireless/ath/ath9k/htc_drv_init.c | 4 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 9 drivers/net/wireless/ath/ath9k/wmi.c | 10 drivers/net/wireless/broadcom/b43/b43.h | 16 drivers/net/wireless/broadcom/b43/dma.c | 4 drivers/net/wireless/broadcom/b43/main.c | 16 drivers/net/wireless/broadcom/b43/pio.c | 6 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 3 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c | 5 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h | 2 drivers/net/wireless/intel/iwlegacy/3945-mac.c | 1 drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 drivers/net/wireless/intel/iwlwifi/dvm/main.c | 1 drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 8 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 14 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 2 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 10 drivers/net/wireless/marvell/libertas/cmd.c | 13 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 2 drivers/net/wireless/marvell/mwifiex/debugfs.c | 3 drivers/net/wireless/marvell/mwifiex/main.c | 2 drivers/net/wireless/microchip/wilc1000/cfg80211.c | 1 drivers/net/wireless/microchip/wilc1000/hif.c | 40 drivers/net/wireless/microchip/wilc1000/netdev.c | 29 drivers/net/wireless/quantenna/qtnfmac/core.c | 2 drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 11 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 13 drivers/net/wireless/realtek/rtlwifi/pci.c | 1 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c | 4 drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 drivers/net/wireless/rndis_wlan.c | 2 drivers/net/wireless/st/cw1200/bh.c | 2 drivers/net/xen-netback/netback.c | 84 drivers/nfc/trf7970a.c | 42 drivers/nvme/host/fc.c | 47 drivers/nvme/host/pci.c | 3 drivers/nvme/target/fc.c | 11 drivers/nvme/target/fcloop.c | 6 drivers/nvme/target/tcp.c | 1 drivers/nvmem/meson-efuse.c | 25 drivers/of/dynamic.c | 12 drivers/of/property.c | 2 drivers/of/unittest.c | 12 drivers/opp/debugfs.c | 6 drivers/pci/controller/dwc/pcie-designware-ep.c | 9 drivers/pci/controller/pcie-mediatek.c | 10 drivers/pci/msi.c | 2 drivers/pci/pci-driver.c | 23 drivers/pci/pci.c | 6 drivers/pci/pci.h | 22 drivers/pci/pcie/Makefile | 2 drivers/pci/pcie/aer.c | 9 drivers/pci/pcie/dpc.c | 17 drivers/pci/pcie/err.c | 33 drivers/pci/pcie/rcec.c | 59 drivers/pci/probe.c | 7 drivers/pci/quirks.c | 125 drivers/pci/setup-res.c | 8 drivers/pci/switch/switchtec.c | 29 drivers/phy/renesas/phy-rcar-gen3-usb2.c | 4 drivers/phy/tegra/xusb.c | 13 drivers/phy/ti/phy-omap-usb2.c | 4 drivers/pinctrl/mediatek/pinctrl-mt8192.c | 1 drivers/pinctrl/renesas/core.c | 4 drivers/platform/x86/intel-vbtn.c | 6 drivers/platform/x86/touchscreen_dmi.c | 13 drivers/pnp/pnpacpi/rsparser.c | 12 drivers/power/supply/bq27xxx_battery_i2c.c | 4 drivers/regulator/core.c | 56 drivers/regulator/pwm-regulator.c | 3 drivers/remoteproc/Kconfig | 2 drivers/remoteproc/remoteproc_core.c | 32 drivers/remoteproc/remoteproc_internal.h | 10 drivers/remoteproc/stm32_rproc.c | 151 drivers/rpmsg/virtio_rpmsg_bus.c | 1 drivers/rtc/Kconfig | 3 drivers/rtc/rtc-cmos.c | 4 drivers/s390/cio/device_ops.c | 6 drivers/s390/crypto/zcrypt_api.c | 2 drivers/s390/net/qeth_l3_main.c | 9 drivers/scsi/Kconfig | 2 drivers/scsi/arcmsr/arcmsr.h | 4 drivers/scsi/arcmsr/arcmsr_hba.c | 6 drivers/scsi/bfa/bfa.h | 9 drivers/scsi/bfa/bfa_core.c | 4 drivers/scsi/bfa/bfa_ioc.h | 8 drivers/scsi/bfa/bfad_bsg.c | 11 drivers/scsi/csiostor/csio_defs.h | 18 drivers/scsi/csiostor/csio_lnode.c | 8 drivers/scsi/csiostor/csio_lnode.h | 13 drivers/scsi/device_handler/scsi_dh_alua.c | 4 drivers/scsi/device_handler/scsi_dh_emc.c | 4 drivers/scsi/device_handler/scsi_dh_rdac.c | 4 drivers/scsi/fcoe/fcoe_ctlr.c | 20 drivers/scsi/hosts.c | 7 drivers/scsi/isci/request.c | 2 drivers/scsi/libfc/fc_fcp.c | 18 drivers/scsi/lpfc/lpfc.h | 1 drivers/scsi/lpfc/lpfc_init.c | 4 drivers/scsi/lpfc/lpfc_nportdisc.c | 6 drivers/scsi/lpfc/lpfc_nvmet.c | 2 drivers/scsi/lpfc/lpfc_scsi.c | 12 drivers/scsi/mpt3sas/mpt3sas_base.c | 4 drivers/scsi/myrb.c | 20 drivers/scsi/myrs.c | 24 drivers/scsi/qla2xxx/qla_attr.c | 14 drivers/scsi/qla2xxx/qla_def.h | 2 drivers/scsi/qla2xxx/qla_gs.c | 2 drivers/scsi/qla2xxx/qla_init.c | 102 drivers/scsi/qla2xxx/qla_target.c | 10 drivers/scsi/scsi_error.c | 73 drivers/scsi/scsi_lib.c | 6 drivers/scsi/scsi_priv.h | 4 drivers/scsi/sd.c | 7 drivers/slimbus/core.c | 4 drivers/soc/fsl/dpio/dpio-service.c | 2 drivers/soc/fsl/qbman/qman.c | 98 drivers/soc/qcom/rpmhpd.c | 7 drivers/soc/renesas/r8a77980-sysc.c | 3 drivers/spi/spi-bcm-qspi.c | 4 drivers/spi/spi-hisi-sfc-v3xx.c | 5 drivers/spi/spi-mt65xx.c | 22 drivers/spi/spi-ppc4xx.c | 5 drivers/spi/spi-sh-msiof.c | 16 drivers/staging/comedi/drivers/comedi_test.c | 30 drivers/staging/comedi/drivers/vmk80xx.c | 35 drivers/staging/greybus/light.c | 8 drivers/staging/iio/impedance-analyzer/ad5933.c | 2 drivers/staging/media/imx/imx-media-csc-scaler.c | 1 drivers/staging/media/ipu3/ipu3-v4l2.c | 16 drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 5 drivers/target/target_core_device.c | 5 drivers/target/target_core_transport.c | 4 drivers/tee/optee/device.c | 3 drivers/thunderbolt/switch.c | 48 drivers/thunderbolt/tb.c | 4 drivers/thunderbolt/tb.h | 3 drivers/thunderbolt/usb4.c | 13 drivers/tty/hvc/hvc_xen.c | 19 drivers/tty/n_gsm.c | 3 drivers/tty/serial/8250/8250_core.c | 1 drivers/tty/serial/8250/8250_exar.c | 18 drivers/tty/serial/8250/8250_port.c | 6 drivers/tty/serial/Kconfig | 1 drivers/tty/serial/fsl_lpuart.c | 7 drivers/tty/serial/max310x.c | 404 drivers/tty/serial/mxs-auart.c | 8 drivers/tty/serial/pmac_zilog.c | 14 drivers/tty/serial/samsung_tty.c | 5 drivers/tty/serial/sc16is7xx.c | 23 drivers/tty/serial/serial_core.c | 12 drivers/tty/tty_ioctl.c | 4 drivers/tty/vt/vt.c | 4 drivers/usb/cdns3/ep0.c | 4 drivers/usb/cdns3/gadget.c | 158 drivers/usb/cdns3/gadget.h | 3 drivers/usb/core/hub.c | 57 drivers/usb/core/hub.h | 2 drivers/usb/core/port.c | 9 drivers/usb/core/sysfs.c | 16 drivers/usb/dwc2/core.h | 14 drivers/usb/dwc2/core_intr.c | 65 drivers/usb/dwc2/gadget.c | 4 drivers/usb/dwc2/hcd.c | 47 drivers/usb/dwc2/hcd_ddma.c | 19 drivers/usb/dwc2/hw.h | 2 drivers/usb/gadget/function/f_mass_storage.c | 20 drivers/usb/gadget/function/f_ncm.c | 10 drivers/usb/gadget/udc/core.c | 4 drivers/usb/gadget/udc/net2272.c | 2 drivers/usb/gadget/udc/tegra-xudc.c | 53 drivers/usb/host/sl811-hcd.c | 2 drivers/usb/host/xhci-plat.c | 3 drivers/usb/host/xhci-ring.c | 143 drivers/usb/host/xhci.h | 3 drivers/usb/phy/phy-generic.c | 7 drivers/usb/roles/class.c | 29 drivers/usb/serial/cp210x.c | 5 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 6 drivers/usb/serial/option.c | 47 drivers/usb/serial/qcserial.c | 2 drivers/usb/storage/isd200.c | 23 drivers/usb/typec/tcpm/tcpci.c | 1 drivers/usb/typec/ucsi/ucsi.c | 42 drivers/usb/typec/ucsi/ucsi.h | 4 drivers/usb/typec/ucsi/ucsi_acpi.c | 17 drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 7 drivers/vfio/pci/vfio_pci_intrs.c | 176 drivers/vfio/platform/vfio_platform_irq.c | 106 drivers/vfio/virqfd.c | 21 drivers/vhost/vhost.c | 17 drivers/video/backlight/da9052_bl.c | 1 drivers/video/backlight/lm3630a_bl.c | 15 drivers/video/backlight/lm3639_bl.c | 1 drivers/video/backlight/lp8788_bl.c | 1 drivers/video/fbdev/core/fbmon.c | 7 drivers/video/fbdev/savage/savagefb_driver.c | 3 drivers/video/fbdev/sis/sis_main.c | 2 drivers/video/fbdev/via/accel.c | 4 drivers/virtio/virtio.c | 10 drivers/watchdog/it87_wdt.c | 14 drivers/watchdog/stm32_iwdg.c | 3 drivers/xen/events/events_base.c | 5 drivers/xen/gntdev-dmabuf.c | 50 fs/afs/callback.c | 3 fs/afs/server.c | 7 fs/afs/volume.c | 4 fs/aio.c | 17 fs/btrfs/backref.c | 12 fs/btrfs/ctree.h | 2 fs/btrfs/delayed-inode.c | 3 fs/btrfs/dev-replace.c | 24 fs/btrfs/dir-item.c | 122 fs/btrfs/disk-io.c | 13 fs/btrfs/export.c | 9 fs/btrfs/extent-tree.c | 3 fs/btrfs/inode.c | 91 fs/btrfs/ioctl.c | 35 fs/btrfs/qgroup.c | 16 fs/btrfs/ref-verify.c | 6 fs/btrfs/send.c | 12 fs/btrfs/tree-checker.c | 27 fs/btrfs/tree-log.c | 14 fs/btrfs/volumes.c | 14 fs/cachefiles/bind.c | 3 fs/ceph/caps.c | 12 fs/cifs/smb2misc.c | 2 fs/cifs/smb2ops.c | 33 fs/cifs/smb2pdu.c | 104 fs/cifs/smb2pdu.h | 42 fs/cifs/smb2proto.h | 12 fs/dcache.c | 7 fs/ecryptfs/inode.c | 8 fs/erofs/decompressor.c | 24 fs/exec.c | 4 fs/ext4/extents.c | 116 fs/ext4/extents_status.c | 14 fs/ext4/extents_status.h | 6 fs/ext4/inode.c | 65 fs/ext4/mballoc.c | 116 fs/ext4/move_extent.c | 6 fs/ext4/resize.c | 40 fs/ext4/super.c | 12 fs/f2fs/file.c | 13 fs/f2fs/recovery.c | 25 fs/fat/nfs.c | 6 fs/fhandle.c | 2 fs/fuse/dir.c | 4 fs/fuse/fuse_i.h | 1 fs/fuse/inode.c | 7 fs/hugetlbfs/inode.c | 23 fs/ioctl.c | 3 fs/isofs/inode.c | 18 fs/jbd2/checkpoint.c | 137 fs/jfs/jfs_dmap.c | 57 fs/jfs/jfs_dtree.c | 7 fs/jfs/jfs_imap.c | 3 fs/jfs/jfs_mount.c | 6 fs/kernfs/dir.c | 12 fs/namei.c | 60 fs/nfs/direct.c | 11 fs/nfs/nfs42.h | 7 fs/nfs/nfs4proc.c | 16 fs/nfs/nfsroot.c | 4 fs/nfs/write.c | 2 fs/nilfs2/btree.c | 9 fs/nilfs2/dat.c | 27 fs/nilfs2/dir.c | 2 fs/nilfs2/direct.c | 9 fs/nilfs2/file.c | 8 fs/nilfs2/inode.c | 2 fs/nilfs2/recovery.c | 7 fs/nilfs2/segment.c | 8 fs/pipe.c | 19 fs/pstore/ram.c | 1 fs/pstore/zone.c | 2 fs/quota/dquot.c | 226 fs/select.c | 2 fs/sysfs/file.c | 2 fs/sysv/itree.c | 10 fs/ubifs/dir.c | 2 fs/ubifs/file.c | 13 fs/vboxsf/super.c | 3 fs/zonefs/super.c | 70 include/drm/drm_color_mgmt.h | 1 include/drm/drm_fixed.h | 2 include/drm/drm_mipi_dsi.h | 2 include/dt-bindings/input/linux-event-codes.h | 1 include/linux/async.h | 2 include/linux/blkdev.h | 16 include/linux/bpf.h | 13 include/linux/cpu.h | 2 include/linux/device.h | 1 include/linux/dmaengine.h | 3 include/linux/etherdevice.h | 25 include/linux/filter.h | 24 include/linux/fs.h | 2 include/linux/gfp.h | 9 include/linux/hrtimer.h | 4 include/linux/hugetlb.h | 2 include/linux/hyperv.h | 45 include/linux/igmp.h | 4 include/linux/io_uring.h | 10 include/linux/irqflags.h | 2 include/linux/lockdep.h | 5 include/linux/lsm_hook_defs.h | 8 include/linux/lsm_hooks.h | 4 include/linux/mlx5/qp.h | 5 include/linux/mmzone.h | 18 include/linux/mroute.h | 6 include/linux/netfilter/ipset/ip_set.h | 4 include/linux/nfs_fs.h | 1 include/linux/objtool.h | 8 include/linux/pci.h | 11 include/linux/pci_ids.h | 1 include/linux/phy/tegra/xusb.h | 2 include/linux/pipe_fs_i.h | 16 include/linux/pm_runtime.h | 8 include/linux/poll.h | 4 include/linux/rcupdate.h | 43 include/linux/regmap.h | 19 include/linux/remoteproc.h | 6 include/linux/sched/task_stack.h | 2 include/linux/security.h | 20 include/linux/serial_core.h | 80 include/linux/socket.h | 5 include/linux/sockptr.h | 5 include/linux/spi/spi.h | 1 include/linux/stddef.h | 13 include/linux/sunrpc/sched.h | 2 include/linux/syscalls.h | 1 include/linux/timer.h | 18 include/linux/trace_events.h | 2 include/linux/u64_stats_sync.h | 6 include/linux/udp.h | 28 include/linux/units.h | 10 include/linux/vfio.h | 2 include/linux/vmalloc.h | 5 include/net/addrconf.h | 4 include/net/af_unix.h | 25 include/net/bluetooth/bluetooth.h | 9 include/net/cfg802154.h | 1 include/net/compat.h | 27 include/net/inet_connection_sock.h | 9 include/net/ip_tunnels.h | 33 include/net/llc_pdu.h | 6 include/net/netfilter/nf_tables.h | 4 include/net/sock.h | 7 include/net/tcp.h | 2 include/scsi/scsi.h | 21 include/scsi/scsi_dh.h | 3 include/scsi/scsi_eh.h | 2 include/soc/fsl/qman.h | 9 include/trace/events/qdisc.h | 20 include/uapi/linux/btrfs.h | 3 include/uapi/linux/in.h | 42 include/uapi/linux/input-event-codes.h | 1 include/uapi/linux/netfilter/nf_tables.h | 2 include/uapi/linux/stddef.h | 23 include/uapi/scsi/fc/fc_els.h | 114 init/initramfs.c | 2 init/main.c | 2 io_uring/io_uring.c | 236 kernel/async.c | 85 kernel/audit.c | 31 kernel/bounds.c | 2 kernel/bpf/arraymap.c | 12 kernel/bpf/cpumap.c | 5 kernel/bpf/devmap.c | 27 kernel/bpf/hashtab.c | 20 kernel/bpf/helpers.c | 18 kernel/bpf/map_in_map.c | 13 kernel/bpf/map_in_map.h | 2 kernel/bpf/stackmap.c | 9 kernel/bpf/syscall.c | 32 kernel/bpf/verifier.c | 5 kernel/cpu.c | 3 kernel/events/core.c | 47 kernel/kprobes.c | 18 kernel/panic.c | 8 kernel/power/suspend.c | 1 kernel/power/swap.c | 38 kernel/printk/printk.c | 63 kernel/rcu/tasks.h | 2 kernel/sched/membarrier.c | 9 kernel/sched/rt.c | 10 kernel/seccomp.c | 10 kernel/sys.c | 91 kernel/sysctl.c | 4 kernel/time/clocksource.c | 25 kernel/time/hrtimer.c | 17 kernel/time/tick-sched.c | 5 kernel/time/timekeeping.c | 24 kernel/time/timer.c | 170 kernel/trace/ring_buffer.c | 195 kernel/trace/trace.c | 78 kernel/trace/trace_event_perf.c | 3 kernel/trace/tracing_map.c | 7 lib/debugobjects.c | 200 lib/mpi/ec.c | 3 lib/stackdepot.c | 4 lib/test_blackhole_dev.c | 3 mm/compaction.c | 7 mm/hugetlb.c | 37 mm/memory-failure.c | 2 mm/memory.c | 4 mm/memtest.c | 4 mm/migrate.c | 6 mm/page-writeback.c | 2 mm/page_alloc.c | 10 mm/sparse.c | 17 mm/swapfile.c | 13 mm/userfaultfd.c | 14 mm/util.c | 50 mm/vmscan.c | 5 net/8021q/vlan_netlink.c | 4 net/batman-adv/translation-table.c | 2 net/bluetooth/hci_core.c | 9 net/bluetooth/hci_debugfs.c | 48 net/bluetooth/hci_event.c | 40 net/bluetooth/hci_request.c | 4 net/bluetooth/l2cap_core.c | 11 net/bluetooth/l2cap_sock.c | 7 net/bluetooth/rfcomm/core.c | 2 net/bluetooth/sco.c | 26 net/bridge/netfilter/ebtables.c | 6 net/can/j1939/j1939-priv.h | 1 net/can/j1939/socket.c | 22 net/core/dev.c | 4 net/core/dev_ioctl.c | 2 net/core/filter.c | 5 net/core/request_sock.c | 3 net/core/rtnetlink.c | 11 net/core/scm.c | 2 net/core/skbuff.c | 3 net/core/sock.c | 52 net/core/sock_diag.c | 10 net/core/sock_map.c | 6 net/ethernet/eth.c | 12 net/hsr/hsr_device.c | 4 net/hsr/hsr_framereg.c | 20 net/hsr/hsr_framereg.h | 1 net/hsr/hsr_main.c | 15 net/ipv4/af_inet.c | 9 net/ipv4/arp.c | 3 net/ipv4/devinet.c | 21 net/ipv4/igmp.c | 28 net/ipv4/inet_connection_sock.c | 18 net/ipv4/inet_diag.c | 6 net/ipv4/inet_timewait_sock.c | 32 net/ipv4/ip_gre.c | 5 net/ipv4/ip_output.c | 12 net/ipv4/ip_sockglue.c | 100 net/ipv4/ip_tunnel.c | 43 net/ipv4/ip_tunnel_core.c | 2 net/ipv4/ipmr.c | 13 net/ipv4/netfilter/arp_tables.c | 8 net/ipv4/netfilter/ip_tables.c | 8 net/ipv4/route.c | 7 net/ipv4/tcp.c | 51 net/ipv4/udp.c | 16 net/ipv4/udp_offload.c | 13 net/ipv6/addrconf.c | 35 net/ipv6/addrconf_core.c | 21 net/ipv6/af_inet6.c | 3 net/ipv6/fib6_rules.c | 6 net/ipv6/ip6_fib.c | 21 net/ipv6/ip6_gre.c | 3 net/ipv6/ip6_tunnel.c | 28 net/ipv6/ipv6_sockglue.c | 18 net/ipv6/netfilter/ip6_tables.c | 8 net/ipv6/route.c | 21 net/ipv6/seg6.c | 20 net/ipv6/udp.c | 7 net/ipv6/udp_offload.c | 8 net/iucv/af_iucv.c | 14 net/iucv/iucv.c | 4 net/kcm/kcmsock.c | 3 net/l2tp/l2tp_ip6.c | 2 net/l2tp/l2tp_ppp.c | 4 net/llc/af_llc.c | 26 net/llc/llc_core.c | 7 net/mac80211/cfg.c | 5 net/mac80211/sta_info.c | 2 net/mac80211/tx.c | 5 net/mac802154/llsec.c | 18 net/mptcp/diag.c | 9 net/mptcp/protocol.c | 52 net/mptcp/subflow.c | 3 net/netfilter/ipset/ip_set_bitmap_gen.h | 14 net/netfilter/ipset/ip_set_core.c | 39 net/netfilter/ipset/ip_set_hash_gen.h | 19 net/netfilter/ipset/ip_set_list_set.c | 13 net/netfilter/ipvs/ip_vs_proto_sctp.c | 6 net/netfilter/nf_conntrack_h323_asn1.c | 4 net/netfilter/nf_conntrack_proto_sctp.c | 2 net/netfilter/nf_log.c | 7 net/netfilter/nf_tables_api.c | 105 net/netfilter/nft_byteorder.c | 5 net/netfilter/nft_chain_filter.c | 15 net/netfilter/nft_compat.c | 43 net/netfilter/nft_ct.c | 26 net/netfilter/nft_flow_offload.c | 5 net/netfilter/nft_meta.c | 2 net/netfilter/nft_nat.c | 5 net/netfilter/nft_rt.c | 5 net/netfilter/nft_set_pipapo.c | 127 net/netfilter/nft_set_pipapo.h | 18 net/netfilter/nft_set_pipapo_avx2.c | 17 net/netfilter/nft_set_rbtree.c | 6 net/netfilter/nft_socket.c | 5 net/netfilter/nft_synproxy.c | 7 net/netfilter/nft_tproxy.c | 5 net/netfilter/nft_xfrm.c | 5 net/netlink/af_netlink.c | 4 net/netrom/af_netrom.c | 14 net/netrom/nr_dev.c | 2 net/netrom/nr_in.c | 6 net/netrom/nr_out.c | 2 net/netrom/nr_route.c | 8 net/netrom/nr_subr.c | 5 net/nfc/nci/core.c | 9 net/openvswitch/conntrack.c | 9 net/openvswitch/flow_netlink.c | 49 net/packet/af_packet.c | 16 net/rds/af_rds.c | 2 net/rds/rdma.c | 3 net/rds/send.c | 11 net/rxrpc/conn_event.c | 8 net/rxrpc/conn_service.c | 3 net/sched/Kconfig | 42 net/sched/Makefile | 3 net/sched/act_skbmod.c | 10 net/sched/sch_atm.c | 709 - net/sched/sch_cbq.c | 1816 -- net/sched/sch_dsmark.c | 521 net/smc/smc_diag.c | 2 net/smc/smc_pnet.c | 10 net/sunrpc/addr.c | 4 net/sunrpc/auth_gss/gss_rpc_xdr.c | 27 net/sunrpc/xprtmultipath.c | 17 net/tipc/bearer.c | 6 net/tls/tls_main.c | 2 net/tls/tls_sw.c | 12 net/unix/af_unix.c | 18 net/unix/diag.c | 2 net/unix/garbage.c | 37 net/unix/scm.c | 12 net/wireless/nl80211.c | 3 net/wireless/scan.c | 4 net/x25/af_x25.c | 4 net/xdp/xsk.c | 2 net/xfrm/xfrm_user.c | 3 scripts/Makefile.extrawarn | 2 scripts/bpf_helpers_doc.py | 2 scripts/clang-tools/gen_compile_commands.py | 2 scripts/decode_stacktrace.sh | 64 scripts/dtc/include-prefixes/arc/hsdk.dts | 1 scripts/dtc/include-prefixes/arm/arm-realview-pb1176.dts | 2 scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-1440.dts | 1 scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-810.dts | 2 scripts/dtc/include-prefixes/arm/exynos4210-i9100.dts | 8 scripts/dtc/include-prefixes/arm/imx1-ads.dts | 2 scripts/dtc/include-prefixes/arm/imx1-apf9328.dts | 2 scripts/dtc/include-prefixes/arm/imx1.dtsi | 5 scripts/dtc/include-prefixes/arm/imx23-sansa.dts | 12 scripts/dtc/include-prefixes/arm/imx23.dtsi | 2 scripts/dtc/include-prefixes/arm/imx25-eukrea-cpuimx25.dtsi | 2 scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts | 2 scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts | 2 scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts | 2 scripts/dtc/include-prefixes/arm/imx25-pdk.dts | 2 scripts/dtc/include-prefixes/arm/imx25.dtsi | 2 scripts/dtc/include-prefixes/arm/imx27-apf27dev.dts | 4 scripts/dtc/include-prefixes/arm/imx27-eukrea-cpuimx27.dtsi | 4 scripts/dtc/include-prefixes/arm/imx27-eukrea-mbimxsd27-baseboard.dts | 2 scripts/dtc/include-prefixes/arm/imx27-phytec-phycard-s-rdk.dts | 2 scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-rdk.dts | 2 scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-som.dtsi | 2 scripts/dtc/include-prefixes/arm/imx27.dtsi | 3 scripts/dtc/include-prefixes/arm/imx28.dtsi | 2 scripts/dtc/include-prefixes/arm/imx6dl-yapp4-common.dtsi | 28 scripts/dtc/include-prefixes/arm/imx6sx.dtsi | 6 scripts/dtc/include-prefixes/arm/imx7d.dtsi | 3 scripts/dtc/include-prefixes/arm/imx7s.dtsi | 10 scripts/dtc/include-prefixes/arm/mmp2-brownstone.dts | 2 scripts/dtc/include-prefixes/arm/rk3036.dtsi | 14 scripts/dtc/include-prefixes/arm/sun8i-h2-plus-bananapi-m2-zero.dts | 24 scripts/dtc/include-prefixes/arm64/marvell/armada-37xx.dtsi | 10 scripts/dtc/include-prefixes/arm64/marvell/armada-cp11x.dtsi | 10 scripts/dtc/include-prefixes/arm64/mediatek/mt2712-evb.dts | 8 scripts/dtc/include-prefixes/arm64/mediatek/mt2712e.dtsi | 3 scripts/dtc/include-prefixes/arm64/mediatek/mt7622-bananapi-bpi-r64.dts | 1 scripts/dtc/include-prefixes/arm64/mediatek/mt7622-rfb1.dts | 1 scripts/dtc/include-prefixes/arm64/mediatek/mt7622.dtsi | 62 scripts/dtc/include-prefixes/arm64/qcom/msm8996.dtsi | 21 scripts/dtc/include-prefixes/arm64/qcom/msm8998.dtsi | 32 scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi | 3 scripts/dtc/include-prefixes/arm64/qcom/sc7180.dtsi | 8 scripts/dtc/include-prefixes/arm64/qcom/sdm845.dtsi | 16 scripts/dtc/include-prefixes/arm64/rockchip/px30.dtsi | 2 scripts/dtc/include-prefixes/arm64/rockchip/rk3328.dtsi | 11 scripts/dtc/include-prefixes/arm64/rockchip/rk3399-pinebook-pro.dts | 1 scripts/dtc/include-prefixes/arm64/rockchip/rk3399-puma.dtsi | 29 scripts/dtc/include-prefixes/arm64/rockchip/rk3399.dtsi | 12 scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h | 1 scripts/dummy-tools/gcc | 6 scripts/gcc-x86_32-has-stack-protector.sh | 6 scripts/get_abi.pl | 2 scripts/kconfig/lexer.l | 7 scripts/kernel-doc | 3 scripts/link-vmlinux.sh | 9 scripts/mod/sumversion.c | 7 security/apparmor/lsm.c | 29 security/security.c | 67 security/selinux/hooks.c | 41 security/smack/smack_lsm.c | 32 security/tomoyo/common.c | 3 security/tomoyo/tomoyo.c | 1 sound/core/Makefile | 1 sound/core/seq/seq_midi.c | 8 sound/core/seq/seq_virmidi.c | 9 sound/hda/hdac_stream.c | 9 sound/hda/intel-dsp-config.c | 10 sound/pci/hda/hda_intel.c | 2 sound/pci/hda/patch_conexant.c | 18 sound/pci/hda/patch_realtek.c | 75 sound/sh/aica.c | 17 sound/soc/codecs/rt5645.c | 11 sound/soc/codecs/wm8962.c | 29 sound/soc/fsl/fsl_micfil.c | 15 sound/soc/intel/boards/bytcht_es8316.c | 14 sound/soc/intel/boards/bytcr_rt5640.c | 58 sound/soc/intel/boards/bytcr_rt5651.c | 41 sound/soc/meson/aiu.c | 49 sound/soc/meson/aiu.h | 1 sound/soc/meson/axg-fifo.c | 16 sound/soc/meson/axg-pdm.c | 25 sound/soc/meson/axg-spdifin.c | 17 sound/soc/meson/axg-spdifout.c | 17 sound/soc/meson/axg-tdm-formatter.c | 50 sound/soc/meson/axg-tdm-interface.c | 54 sound/soc/meson/meson-card-utils.c | 8 sound/soc/meson/t9015.c | 30 sound/soc/soc-ops.c | 2 sound/soc/sunxi/sun4i-spdif.c | 5 sound/usb/stream.c | 5 tools/bpf/bpftool/prog.c | 2 tools/iio/iio_utils.c | 2 tools/include/linux/objtool.h | 8 tools/lib/perf/evlist.c | 18 tools/lib/perf/include/internal/evlist.h | 4 tools/lib/subcmd/help.c | 18 tools/perf/builtin-record.c | 2 tools/perf/util/evsel.c | 1 tools/perf/util/stat-display.c | 2 tools/perf/util/thread_map.c | 2 tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c | 1 tools/testing/ktest/ktest.pl | 1 tools/testing/selftests/bpf/prog_tests/btf.c | 1 tools/testing/selftests/bpf/progs/pyperf180.c | 22 tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh | 9 tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc | 6 tools/testing/selftests/mqueue/setting | 1 tools/testing/selftests/net/pmtu.sh | 18 tools/testing/selftests/net/reuseaddr_conflict.c | 2 tools/testing/selftests/net/tls.c | 8 tools/testing/selftests/timers/posix_timers.c | 2 tools/testing/selftests/vm/charge_reserved_hugetlb.sh | 2 tools/testing/selftests/vm/map_hugetlb.c | 7 tools/testing/selftests/vm/write_hugetlb_memory.sh | 2 virt/kvm/async_pf.c | 31 virt/kvm/kvm_main.c | 4 2167 files changed, 26289 insertions(+), 21751 deletions(-) diff -Nru linux-5.10.209/Documentation/ABI/testing/sysfs-class-devfreq linux-5.10.216/Documentation/ABI/testing/sysfs-class-devfreq --- linux-5.10.209/Documentation/ABI/testing/sysfs-class-devfreq 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/ABI/testing/sysfs-class-devfreq 2024-05-02 14:23:46.000000000 +0000 @@ -66,6 +66,9 @@ echo 0 > /sys/class/devfreq/.../trans_stat + If the transition table is bigger than PAGE_SIZE, reading + this will return an -EFBIG error. + What: /sys/class/devfreq/.../userspace/set_freq Date: September 2011 Contact: MyungJoo Ham diff -Nru linux-5.10.209/Documentation/ABI/testing/sysfs-class-net-queues linux-5.10.216/Documentation/ABI/testing/sysfs-class-net-queues --- linux-5.10.209/Documentation/ABI/testing/sysfs-class-net-queues 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/ABI/testing/sysfs-class-net-queues 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,4 @@ -What: /sys/class//queues/rx-/rps_cpus +What: /sys/class/net//queues/rx-/rps_cpus Date: March 2010 KernelVersion: 2.6.35 Contact: netdev@vger.kernel.org @@ -8,7 +8,7 @@ network device queue. Possible values depend on the number of available CPU(s) in the system. -What: /sys/class//queues/rx-/rps_flow_cnt +What: /sys/class/net//queues/rx-/rps_flow_cnt Date: April 2010 KernelVersion: 2.6.35 Contact: netdev@vger.kernel.org @@ -16,7 +16,7 @@ Number of Receive Packet Steering flows being currently processed by this particular network device receive queue. -What: /sys/class//queues/tx-/tx_timeout +What: /sys/class/net//queues/tx-/tx_timeout Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org @@ -24,7 +24,7 @@ Indicates the number of transmit timeout events seen by this network interface transmit queue. -What: /sys/class//queues/tx-/tx_maxrate +What: /sys/class/net//queues/tx-/tx_maxrate Date: March 2015 KernelVersion: 4.1 Contact: netdev@vger.kernel.org @@ -32,7 +32,7 @@ A Mbps max-rate set for the queue, a value of zero means disabled, default is disabled. -What: /sys/class//queues/tx-/xps_cpus +What: /sys/class/net//queues/tx-/xps_cpus Date: November 2010 KernelVersion: 2.6.38 Contact: netdev@vger.kernel.org @@ -42,7 +42,7 @@ network device transmit queue. Possible vaules depend on the number of available CPU(s) in the system. -What: /sys/class//queues/tx-/xps_rxqs +What: /sys/class/net//queues/tx-/xps_rxqs Date: June 2018 KernelVersion: 4.18.0 Contact: netdev@vger.kernel.org @@ -53,7 +53,7 @@ number of available receive queue(s) in the network device. Default is disabled. -What: /sys/class//queues/tx-/byte_queue_limits/hold_time +What: /sys/class/net//queues/tx-/byte_queue_limits/hold_time Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org @@ -62,7 +62,7 @@ of this particular network device transmit queue. Default value is 1000. -What: /sys/class//queues/tx-/byte_queue_limits/inflight +What: /sys/class/net//queues/tx-/byte_queue_limits/inflight Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org @@ -70,7 +70,7 @@ Indicates the number of bytes (objects) in flight on this network device transmit queue. -What: /sys/class//queues/tx-/byte_queue_limits/limit +What: /sys/class/net//queues/tx-/byte_queue_limits/limit Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org @@ -79,7 +79,7 @@ on this network device transmit queue. This value is clamped to be within the bounds defined by limit_max and limit_min. -What: /sys/class//queues/tx-/byte_queue_limits/limit_max +What: /sys/class/net//queues/tx-/byte_queue_limits/limit_max Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org @@ -88,7 +88,7 @@ queued on this network device transmit queue. See include/linux/dynamic_queue_limits.h for the default value. -What: /sys/class//queues/tx-/byte_queue_limits/limit_min +What: /sys/class/net//queues/tx-/byte_queue_limits/limit_min Date: November 2011 KernelVersion: 3.3 Contact: netdev@vger.kernel.org diff -Nru linux-5.10.209/Documentation/ABI/testing/sysfs-class-net-statistics linux-5.10.216/Documentation/ABI/testing/sysfs-class-net-statistics --- linux-5.10.209/Documentation/ABI/testing/sysfs-class-net-statistics 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/ABI/testing/sysfs-class-net-statistics 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,4 @@ -What: /sys/class//statistics/collisions +What: /sys/class/net//statistics/collisions Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -6,7 +6,7 @@ Indicates the number of collisions seen by this network device. This value might not be relevant with all MAC layers. -What: /sys/class//statistics/multicast +What: /sys/class/net//statistics/multicast Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -14,7 +14,7 @@ Indicates the number of multicast packets received by this network device. -What: /sys/class//statistics/rx_bytes +What: /sys/class/net//statistics/rx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -23,7 +23,7 @@ See the network driver for the exact meaning of when this value is incremented. -What: /sys/class//statistics/rx_compressed +What: /sys/class/net//statistics/rx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -32,7 +32,7 @@ network device. This value might only be relevant for interfaces that support packet compression (e.g: PPP). -What: /sys/class//statistics/rx_crc_errors +What: /sys/class/net//statistics/rx_crc_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -41,7 +41,7 @@ by this network device. Note that the specific meaning might depend on the MAC layer used by the interface. -What: /sys/class//statistics/rx_dropped +What: /sys/class/net//statistics/rx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -51,7 +51,7 @@ packet processing. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_errors +What: /sys/class/net//statistics/rx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -59,7 +59,7 @@ Indicates the number of receive errors on this network device. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_fifo_errors +What: /sys/class/net//statistics/rx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -68,7 +68,7 @@ network device. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_frame_errors +What: /sys/class/net//statistics/rx_frame_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -78,7 +78,7 @@ on the MAC layer protocol used. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_length_errors +What: /sys/class/net//statistics/rx_length_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -87,7 +87,7 @@ error, oversized or undersized. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_missed_errors +What: /sys/class/net//statistics/rx_missed_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -96,7 +96,7 @@ due to lack of capacity in the receive side. See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_nohandler +What: /sys/class/net//statistics/rx_nohandler Date: February 2016 KernelVersion: 4.6 Contact: netdev@vger.kernel.org @@ -104,7 +104,7 @@ Indicates the number of received packets that were dropped on an inactive device by the network core. -What: /sys/class//statistics/rx_over_errors +What: /sys/class/net//statistics/rx_over_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -114,7 +114,7 @@ (e.g: larger than MTU). See the network driver for the exact meaning of this value. -What: /sys/class//statistics/rx_packets +What: /sys/class/net//statistics/rx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -122,7 +122,7 @@ Indicates the total number of good packets received by this network device. -What: /sys/class//statistics/tx_aborted_errors +What: /sys/class/net//statistics/tx_aborted_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -132,7 +132,7 @@ a medium collision). See the network driver for the exact meaning of this value. -What: /sys/class//statistics/tx_bytes +What: /sys/class/net//statistics/tx_bytes Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -143,7 +143,7 @@ transmitted packets or all packets that have been queued for transmission. -What: /sys/class//statistics/tx_carrier_errors +What: /sys/class/net//statistics/tx_carrier_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -152,7 +152,7 @@ because of carrier errors (e.g: physical link down). See the network driver for the exact meaning of this value. -What: /sys/class//statistics/tx_compressed +What: /sys/class/net//statistics/tx_compressed Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -161,7 +161,7 @@ this might only be relevant for devices that support compression (e.g: PPP). -What: /sys/class//statistics/tx_dropped +What: /sys/class/net//statistics/tx_dropped Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -170,7 +170,7 @@ See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class//statistics/tx_errors +What: /sys/class/net//statistics/tx_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -179,7 +179,7 @@ a network device. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class//statistics/tx_fifo_errors +What: /sys/class/net//statistics/tx_fifo_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -188,7 +188,7 @@ FIFO error. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class//statistics/tx_heartbeat_errors +What: /sys/class/net//statistics/tx_heartbeat_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -197,7 +197,7 @@ reported as heartbeat errors. See the driver for the exact reasons as to why the packets were dropped. -What: /sys/class//statistics/tx_packets +What: /sys/class/net//statistics/tx_packets Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org @@ -206,7 +206,7 @@ device. See the driver for whether this reports the number of all attempted or successful transmissions. -What: /sys/class//statistics/tx_window_errors +What: /sys/class/net//statistics/tx_window_errors Date: April 2005 KernelVersion: 2.6.12 Contact: netdev@vger.kernel.org diff -Nru linux-5.10.209/Documentation/ABI/testing/sysfs-devices-system-cpu linux-5.10.216/Documentation/ABI/testing/sysfs-devices-system-cpu --- linux-5.10.209/Documentation/ABI/testing/sysfs-devices-system-cpu 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/ABI/testing/sysfs-devices-system-cpu 2024-05-02 14:23:46.000000000 +0000 @@ -507,6 +507,7 @@ /sys/devices/system/cpu/vulnerabilities/mds /sys/devices/system/cpu/vulnerabilities/meltdown /sys/devices/system/cpu/vulnerabilities/mmio_stale_data + /sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling /sys/devices/system/cpu/vulnerabilities/retbleed /sys/devices/system/cpu/vulnerabilities/spec_store_bypass /sys/devices/system/cpu/vulnerabilities/spectre_v1 diff -Nru linux-5.10.209/Documentation/admin-guide/hw-vuln/index.rst linux-5.10.216/Documentation/admin-guide/hw-vuln/index.rst --- linux-5.10.209/Documentation/admin-guide/hw-vuln/index.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/admin-guide/hw-vuln/index.rst 2024-05-02 14:23:46.000000000 +0000 @@ -18,3 +18,4 @@ processor_mmio_stale_data.rst gather_data_sampling.rst srso + reg-file-data-sampling diff -Nru linux-5.10.209/Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst linux-5.10.216/Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst --- linux-5.10.209/Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst 2024-05-02 14:23:46.000000000 +0000 @@ -0,0 +1,104 @@ +================================== +Register File Data Sampling (RFDS) +================================== + +Register File Data Sampling (RFDS) is a microarchitectural vulnerability that +only affects Intel Atom parts(also branded as E-cores). RFDS may allow +a malicious actor to infer data values previously used in floating point +registers, vector registers, or integer registers. RFDS does not provide the +ability to choose which data is inferred. CVE-2023-28746 is assigned to RFDS. + +Affected Processors +=================== +Below is the list of affected Intel processors [#f1]_: + + =================== ============ + Common name Family_Model + =================== ============ + ATOM_GOLDMONT 06_5CH + ATOM_GOLDMONT_D 06_5FH + ATOM_GOLDMONT_PLUS 06_7AH + ATOM_TREMONT_D 06_86H + ATOM_TREMONT 06_96H + ALDERLAKE 06_97H + ALDERLAKE_L 06_9AH + ATOM_TREMONT_L 06_9CH + RAPTORLAKE 06_B7H + RAPTORLAKE_P 06_BAH + ALDERLAKE_N 06_BEH + RAPTORLAKE_S 06_BFH + =================== ============ + +As an exception to this table, Intel Xeon E family parts ALDERLAKE(06_97H) and +RAPTORLAKE(06_B7H) codenamed Catlow are not affected. They are reported as +vulnerable in Linux because they share the same family/model with an affected +part. Unlike their affected counterparts, they do not enumerate RFDS_CLEAR or +CPUID.HYBRID. This information could be used to distinguish between the +affected and unaffected parts, but it is deemed not worth adding complexity as +the reporting is fixed automatically when these parts enumerate RFDS_NO. + +Mitigation +========== +Intel released a microcode update that enables software to clear sensitive +information using the VERW instruction. Like MDS, RFDS deploys the same +mitigation strategy to force the CPU to clear the affected buffers before an +attacker can extract the secrets. This is achieved by using the otherwise +unused and obsolete VERW instruction in combination with a microcode update. +The microcode clears the affected CPU buffers when the VERW instruction is +executed. + +Mitigation points +----------------- +VERW is executed by the kernel before returning to user space, and by KVM +before VMentry. None of the affected cores support SMT, so VERW is not required +at C-state transitions. + +New bits in IA32_ARCH_CAPABILITIES +---------------------------------- +Newer processors and microcode update on existing affected processors added new +bits to IA32_ARCH_CAPABILITIES MSR. These bits can be used to enumerate +vulnerability and mitigation capability: + +- Bit 27 - RFDS_NO - When set, processor is not affected by RFDS. +- Bit 28 - RFDS_CLEAR - When set, processor is affected by RFDS, and has the + microcode that clears the affected buffers on VERW execution. + +Mitigation control on the kernel command line +--------------------------------------------- +The kernel command line allows to control RFDS mitigation at boot time with the +parameter "reg_file_data_sampling=". The valid arguments are: + + ========== ================================================================= + on If the CPU is vulnerable, enable mitigation; CPU buffer clearing + on exit to userspace and before entering a VM. + off Disables mitigation. + ========== ================================================================= + +Mitigation default is selected by CONFIG_MITIGATION_RFDS. + +Mitigation status information +----------------------------- +The Linux kernel provides a sysfs interface to enumerate the current +vulnerability status of the system: whether the system is vulnerable, and +which mitigations are active. The relevant sysfs file is: + + /sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling + +The possible values in this file are: + + .. list-table:: + + * - 'Not affected' + - The processor is not vulnerable + * - 'Vulnerable' + - The processor is vulnerable, but no mitigation enabled + * - 'Vulnerable: No microcode' + - The processor is vulnerable but microcode is not updated. + * - 'Mitigation: Clear Register File' + - The processor is vulnerable and the CPU buffer clearing mitigation is + enabled. + +References +---------- +.. [#f1] Affected Processors + https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affected-consolidated-product-cpu-model.html diff -Nru linux-5.10.209/Documentation/admin-guide/hw-vuln/spectre.rst linux-5.10.216/Documentation/admin-guide/hw-vuln/spectre.rst --- linux-5.10.209/Documentation/admin-guide/hw-vuln/spectre.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/admin-guide/hw-vuln/spectre.rst 2024-05-02 14:23:46.000000000 +0000 @@ -484,11 +484,14 @@ Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at boot, by setting the IBRS bit, and they're automatically protected against - Spectre v2 variant attacks, including cross-thread branch target injections - on SMT systems (STIBP). In other words, eIBRS enables STIBP too. + Spectre v2 variant attacks. - Legacy IBRS systems clear the IBRS bit on exit to userspace and - therefore explicitly enable STIBP for that + On Intel's enhanced IBRS systems, this includes cross-thread branch target + injections on SMT systems (STIBP). In other words, Intel eIBRS enables + STIBP, too. + + AMD Automatic IBRS does not protect userspace, and Legacy IBRS systems clear + the IBRS bit on exit to userspace, therefore both explicitly enable STIBP. The retpoline mitigation is turned on by default on vulnerable CPUs. It can be forced on or off by the administrator @@ -622,9 +625,10 @@ retpoline,generic Retpolines retpoline,lfence LFENCE; indirect branch retpoline,amd alias for retpoline,lfence - eibrs enhanced IBRS - eibrs,retpoline enhanced IBRS + Retpolines - eibrs,lfence enhanced IBRS + LFENCE + eibrs Enhanced/Auto IBRS + eibrs,retpoline Enhanced/Auto IBRS + Retpolines + eibrs,lfence Enhanced/Auto IBRS + LFENCE + ibrs use IBRS to protect kernel Not specifying this option is equivalent to spectre_v2=auto. diff -Nru linux-5.10.209/Documentation/admin-guide/kernel-parameters.txt linux-5.10.216/Documentation/admin-guide/kernel-parameters.txt --- linux-5.10.209/Documentation/admin-guide/kernel-parameters.txt 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/admin-guide/kernel-parameters.txt 2024-05-02 14:23:46.000000000 +0000 @@ -993,6 +993,26 @@ The filter can be disabled or changed to another driver later using sysfs. + reg_file_data_sampling= + [X86] Controls mitigation for Register File Data + Sampling (RFDS) vulnerability. RFDS is a CPU + vulnerability which may allow userspace to infer + kernel data values previously stored in floating point + registers, vector registers, or integer registers. + RFDS only affects Intel Atom processors. + + on: Turns ON the mitigation. + off: Turns OFF the mitigation. + + This parameter overrides the compile time default set + by CONFIG_MITIGATION_RFDS. Mitigation cannot be + disabled when other VERW based mitigations (like MDS) + are enabled. In order to disable RFDS mitigation all + VERW based mitigations need to be disabled. + + For details see: + Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst + driver_async_probe= [KNL] List of driver names to be probed asynchronously. Format: ,... @@ -2919,6 +2939,7 @@ nopti [X86,PPC] nospectre_v1 [X86,PPC] nospectre_v2 [X86,PPC,S390,ARM64] + reg_file_data_sampling=off [X86] retbleed=off [X86] spec_store_bypass_disable=off [X86,PPC] spectre_v2_user=off [X86] @@ -5091,9 +5112,9 @@ retpoline,generic - Retpolines retpoline,lfence - LFENCE; indirect branch retpoline,amd - alias for retpoline,lfence - eibrs - enhanced IBRS - eibrs,retpoline - enhanced IBRS + Retpolines - eibrs,lfence - enhanced IBRS + LFENCE + eibrs - Enhanced/Auto IBRS + eibrs,retpoline - Enhanced/Auto IBRS + Retpolines + eibrs,lfence - Enhanced/Auto IBRS + LFENCE ibrs - use IBRS to protect kernel Not specifying this option is equivalent to diff -Nru linux-5.10.209/Documentation/block/queue-sysfs.rst linux-5.10.216/Documentation/block/queue-sysfs.rst --- linux-5.10.209/Documentation/block/queue-sysfs.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/block/queue-sysfs.rst 2024-05-02 14:23:46.000000000 +0000 @@ -273,4 +273,11 @@ do not support zone commands, they will be treated as regular block devices and zoned will report "none". +zone_write_granularity (RO) +--------------------------- +This indicates the alignment constraint, in bytes, for write operations in +sequential zones of zoned block devices (devices with a zoned attributed +that reports "host-managed" or "host-aware"). This value is always 0 for +regular block devices. + Jens Axboe , February 2009 diff -Nru linux-5.10.209/Documentation/filesystems/directory-locking.rst linux-5.10.216/Documentation/filesystems/directory-locking.rst --- linux-5.10.209/Documentation/filesystems/directory-locking.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/filesystems/directory-locking.rst 2024-05-02 14:23:46.000000000 +0000 @@ -22,13 +22,16 @@ 3) object removal. Locking rules: caller locks parent, finds victim, locks victim and calls the method. Locks are exclusive. -4) rename() that is _not_ cross-directory. Locking rules: caller locks the -parent and finds source and target. We lock both (provided they exist). If we -need to lock two inodes of different type (dir vs non-dir), we lock directory -first. If we need to lock two inodes of the same type, lock them in inode -pointer order. Then call the method. All locks are exclusive. -NB: we might get away with locking the source (and target in exchange -case) shared. +4) rename() that is _not_ cross-directory. Locking rules: caller locks +the parent and finds source and target. Then we decide which of the +source and target need to be locked. Source needs to be locked if it's a +non-directory; target - if it's a non-directory or about to be removed. +Take the locks that need to be taken, in inode pointer order if need +to take both (that can happen only when both source and target are +non-directories - the source because it wouldn't be locked otherwise +and the target because mixing directory and non-directory is allowed +only with RENAME_EXCHANGE, and that won't be removing the target). +After the locks had been taken, call the method. All locks are exclusive. 5) link creation. Locking rules: @@ -44,20 +47,17 @@ * lock the filesystem * lock parents in "ancestors first" order. If one is not ancestor of - the other, lock them in inode pointer order. + the other, lock the parent of source first. * find source and target. * if old parent is equal to or is a descendent of target fail with -ENOTEMPTY * if new parent is equal to or is a descendent of source fail with -ELOOP - * Lock both the source and the target provided they exist. If we - need to lock two inodes of different type (dir vs non-dir), we lock - the directory first. If we need to lock two inodes of the same type, - lock them in inode pointer order. + * Lock subdirectories involved (source before target). + * Lock non-directories involved, in inode pointer order. * call the method. -All ->i_rwsem are taken exclusive. Again, we might get away with locking -the source (and target in exchange case) shared. +All ->i_rwsem are taken exclusive. The rules above obviously guarantee that all directories that are going to be read, modified or removed by method will be locked by caller. @@ -67,6 +67,7 @@ Proof: +[XXX: will be updated once we are done massaging the lock_rename()] First of all, at any moment we have a linear ordering of the objects - A < B iff (A is an ancestor of B) or (B is not an ancestor of A and ptr(A) < ptr(B)). diff -Nru linux-5.10.209/Documentation/filesystems/locking.rst linux-5.10.216/Documentation/filesystems/locking.rst --- linux-5.10.209/Documentation/filesystems/locking.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/filesystems/locking.rst 2024-05-02 14:23:46.000000000 +0000 @@ -95,7 +95,7 @@ mkdir: exclusive unlink: exclusive (both) rmdir: exclusive (both)(see below) -rename: exclusive (all) (see below) +rename: exclusive (both parents, some children) (see below) readlink: no get_link: no setattr: exclusive @@ -113,6 +113,9 @@ Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem exclusive on victim. cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem. + ->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories + involved. + ->rename() has ->i_rwsem exclusive on any subdirectory that changes parent. See Documentation/filesystems/directory-locking.rst for more detailed discussion of the locking scheme for directory operations. diff -Nru linux-5.10.209/Documentation/filesystems/porting.rst linux-5.10.216/Documentation/filesystems/porting.rst --- linux-5.10.209/Documentation/filesystems/porting.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/filesystems/porting.rst 2024-05-02 14:23:46.000000000 +0000 @@ -865,3 +865,21 @@ clone_private_mount() returns a longterm mount now, so the proper destructor of its result is kern_unmount() or kern_unmount_array(). + +--- + +**mandatory** + +If ->rename() update of .. on cross-directory move needs an exclusion with +directory modifications, do *not* lock the subdirectory in question in your +->rename() - it's done by the caller now [that item should've been added in +28eceeda130f "fs: Lock moved directories"]. + +--- + +**mandatory** + +On same-directory ->rename() the (tautological) update of .. is not protected +by any locks; just don't do it if the old parent is the same as the new one. +We really can't lock two subdirectories in same-directory rename - not without +deadlocks. diff -Nru linux-5.10.209/Documentation/sound/soc/dapm.rst linux-5.10.216/Documentation/sound/soc/dapm.rst --- linux-5.10.209/Documentation/sound/soc/dapm.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/sound/soc/dapm.rst 2024-05-02 14:23:46.000000000 +0000 @@ -234,7 +234,7 @@ a virtual widget - a widget with no control bits e.g. :: - SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_DAPM_NOPM, 0, 0, NULL, 0), + SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0), This can be used to merge to signal paths together in software. diff -Nru linux-5.10.209/Documentation/x86/mds.rst linux-5.10.216/Documentation/x86/mds.rst --- linux-5.10.209/Documentation/x86/mds.rst 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Documentation/x86/mds.rst 2024-05-02 14:23:46.000000000 +0000 @@ -95,6 +95,9 @@ mds_clear_cpu_buffers() +Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path. +Other than CFLAGS.ZF, this macro doesn't clobber any registers. + The mitigation is invoked on kernel/userspace, hypervisor/guest and C-state (idle) transitions. @@ -138,17 +141,30 @@ When transitioning from kernel to user space the CPU buffers are flushed on affected CPUs when the mitigation is not disabled on the kernel - command line. The migitation is enabled through the static key - mds_user_clear. + command line. The mitigation is enabled through the feature flag + X86_FEATURE_CLEAR_CPU_BUF. - The mitigation is invoked in prepare_exit_to_usermode() which covers - all but one of the kernel to user space transitions. The exception - is when we return from a Non Maskable Interrupt (NMI), which is - handled directly in do_nmi(). - - (The reason that NMI is special is that prepare_exit_to_usermode() can - enable IRQs. In NMI context, NMIs are blocked, and we don't want to - enable IRQs with NMIs blocked.) + The mitigation is invoked just before transitioning to userspace after + user registers are restored. This is done to minimize the window in + which kernel data could be accessed after VERW e.g. via an NMI after + VERW. + + **Corner case not handled** + Interrupts returning to kernel don't clear CPUs buffers since the + exit-to-user path is expected to do that anyways. But, there could be + a case when an NMI is generated in kernel after the exit-to-user path + has cleared the buffers. This case is not handled and NMI returning to + kernel don't clear CPU buffers because: + + 1. It is rare to get an NMI after VERW, but before returning to userspace. + 2. For an unprivileged user, there is no known way to make that NMI + less rare or target it. + 3. It would take a large number of these precisely-timed NMIs to mount + an actual attack. There's presumably not enough bandwidth. + 4. The NMI in question occurs after a VERW, i.e. when user state is + restored and most interesting data is already scrubbed. Whats left + is only the data that NMI touches, and that may or may not be of + any interest. 2. C-State transition diff -Nru linux-5.10.209/Makefile linux-5.10.216/Makefile --- linux-5.10.209/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 209 +SUBLEVEL = 216 EXTRAVERSION = NAME = Dare mighty things diff -Nru linux-5.10.209/arch/Kconfig linux-5.10.216/arch/Kconfig --- linux-5.10.209/arch/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -9,6 +9,14 @@ # source "arch/$(SRCARCH)/Kconfig" +config ARCH_CONFIGURES_CPU_MITIGATIONS + bool + +if !ARCH_CONFIGURES_CPU_MITIGATIONS +config CPU_MITIGATIONS + def_bool y +endif + menu "General architecture-dependent options" config CRASH_CORE diff -Nru linux-5.10.209/arch/arc/boot/dts/hsdk.dts linux-5.10.216/arch/arc/boot/dts/hsdk.dts --- linux-5.10.209/arch/arc/boot/dts/hsdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arc/boot/dts/hsdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -205,7 +205,6 @@ }; gmac: ethernet@8000 { - #interrupt-cells = <1>; compatible = "snps,dwmac"; reg = <0x8000 0x2000>; interrupts = <10>; diff -Nru linux-5.10.209/arch/arm/boot/dts/arm-realview-pb1176.dts linux-5.10.216/arch/arm/boot/dts/arm-realview-pb1176.dts --- linux-5.10.209/arch/arm/boot/dts/arm-realview-pb1176.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/arm-realview-pb1176.dts 2024-05-02 14:23:46.000000000 +0000 @@ -435,7 +435,7 @@ /* Direct-mapped development chip ROM */ pb1176_rom@10200000 { - compatible = "direct-mapped"; + compatible = "mtd-rom"; reg = <0x10200000 0x4000>; bank-width = <1>; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts linux-5.10.216/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts --- linux-5.10.209/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts 2024-05-02 14:23:46.000000000 +0000 @@ -26,7 +26,6 @@ wlan { label = "bcm53xx:blue:wlan"; gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>; - linux,default-trigger = "default-off"; }; system { diff -Nru linux-5.10.209/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts linux-5.10.216/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts --- linux-5.10.209/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts 2024-05-02 14:23:46.000000000 +0000 @@ -26,7 +26,6 @@ 5ghz { label = "bcm53xx:blue:5ghz"; gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "default-off"; }; system { @@ -42,7 +41,6 @@ 2ghz { label = "bcm53xx:blue:2ghz"; gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "default-off"; }; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/exynos4210-i9100.dts linux-5.10.216/arch/arm/boot/dts/exynos4210-i9100.dts --- linux-5.10.209/arch/arm/boot/dts/exynos4210-i9100.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/exynos4210-i9100.dts 2024-05-02 14:23:46.000000000 +0000 @@ -464,6 +464,14 @@ regulator-name = "VT_CAM_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + + /* + * Force-enable this regulator; otherwise the + * kernel hangs very early in the boot process + * for about 12 seconds, without apparent + * reason. + */ + regulator-always-on; }; vcclcd_reg: LDO13 { diff -Nru linux-5.10.209/arch/arm/boot/dts/imx1-ads.dts linux-5.10.216/arch/arm/boot/dts/imx1-ads.dts --- linux-5.10.209/arch/arm/boot/dts/imx1-ads.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx1-ads.dts 2024-05-02 14:23:46.000000000 +0000 @@ -65,7 +65,7 @@ pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <4>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx1-apf9328.dts linux-5.10.216/arch/arm/boot/dts/imx1-apf9328.dts --- linux-5.10.209/arch/arm/boot/dts/imx1-apf9328.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx1-apf9328.dts 2024-05-02 14:23:46.000000000 +0000 @@ -45,7 +45,7 @@ pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx1.dtsi linux-5.10.216/arch/arm/boot/dts/imx1.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx1.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx1.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -268,9 +268,12 @@ status = "disabled"; }; - esram: esram@300000 { + esram: sram@300000 { compatible = "mmio-sram"; reg = <0x00300000 0x20000>; + ranges = <0 0x00300000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; }; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx23-sansa.dts linux-5.10.216/arch/arm/boot/dts/imx23-sansa.dts --- linux-5.10.209/arch/arm/boot/dts/imx23-sansa.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx23-sansa.dts 2024-05-02 14:23:46.000000000 +0000 @@ -175,10 +175,8 @@ #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio1 24 0 /* SDA */ - &gpio1 22 0 /* SCL */ - >; + sda-gpios = <&gpio1 24 0>; + scl-gpios = <&gpio1 22 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ }; @@ -186,10 +184,8 @@ #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio0 31 0 /* SDA */ - &gpio0 30 0 /* SCL */ - >; + sda-gpios = <&gpio0 31 0>; + scl-gpios = <&gpio0 30 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ touch: touch@20 { diff -Nru linux-5.10.209/arch/arm/boot/dts/imx23.dtsi linux-5.10.216/arch/arm/boot/dts/imx23.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx23.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx23.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -414,7 +414,7 @@ status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx23-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <7 5 9 26 diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -27,7 +27,7 @@ pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts --- linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&qvga_timings>; - qvga_timings: 320x240 { + qvga_timings: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts --- linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&dvi_svga_timings>; - dvi_svga_timings: 800x600 { + dvi_svga_timings: timing0 { clock-frequency = <40000000>; hactive = <800>; vactive = <600>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts --- linux-5.10.209/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&dvi_vga_timings>; - dvi_vga_timings: 640x480 { + dvi_vga_timings: timing0 { clock-frequency = <31250000>; hactive = <640>; vactive = <480>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25-pdk.dts linux-5.10.216/arch/arm/boot/dts/imx25-pdk.dts --- linux-5.10.209/arch/arm/boot/dts/imx25-pdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25-pdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -78,7 +78,7 @@ bus-width = <18>; display-timings { native-mode = <&wvga_timings>; - wvga_timings: 640x480 { + wvga_timings: timing0 { hactive = <640>; vactive = <480>; hback-porch = <45>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx25.dtsi linux-5.10.216/arch/arm/boot/dts/imx25.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx25.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx25.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -543,7 +543,7 @@ }; iim: efuse@53ff0000 { - compatible = "fsl,imx25-iim", "fsl,imx27-iim"; + compatible = "fsl,imx25-iim"; reg = <0x53ff0000 0x4000>; interrupts = <19>; clocks = <&clks 99>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-apf27dev.dts linux-5.10.216/arch/arm/boot/dts/imx27-apf27dev.dts --- linux-5.10.209/arch/arm/boot/dts/imx27-apf27dev.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-apf27dev.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ fsl,pcr = <0xfae80083>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 800x480 { + timing0: timing0 { clock-frequency = <33000033>; hactive = <800>; vactive = <480>; @@ -47,7 +47,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_leds>; - user { + led-user { label = "Heartbeat"; gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi linux-5.10.216/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -33,7 +33,7 @@ pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; @@ -90,7 +90,7 @@ &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { #address-cells = <1>; #size-cells = <1>; compatible = "cfi-flash"; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts linux-5.10.216/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts --- linux-5.10.209/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ display-timings { native-mode = <&timing0>; - timing0: 320x240 { + timing0: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts --- linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ fsl,pcr = <0xf0c88080>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 640x480 { + timing0: timing0 { hactive = <640>; vactive = <480>; hback-porch = <112>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts --- linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ display-timings { native-mode = <&timing0>; - timing0: 240x320 { + timing0: timing0 { clock-frequency = <5500000>; hactive = <240>; vactive = <320>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -322,7 +322,7 @@ &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx27.dtsi linux-5.10.216/arch/arm/boot/dts/imx27.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx27.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx27.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -588,6 +588,9 @@ iram: sram@ffff4c00 { compatible = "mmio-sram"; reg = <0xffff4c00 0xb400>; + ranges = <0 0xffff4c00 0xb400>; + #address-cells = <1>; + #size-cells = <1>; }; }; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx28.dtsi linux-5.10.216/arch/arm/boot/dts/imx28.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx28.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx28.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -982,7 +982,7 @@ status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx28-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <78 79 66 0 diff -Nru linux-5.10.209/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi linux-5.10.216/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -103,8 +103,6 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii-id"; - phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; - phy-reset-duration = <20>; phy-supply = <&sw2_reg>; status = "okay"; @@ -117,17 +115,10 @@ #address-cells = <1>; #size-cells = <0>; - phy_port2: phy@1 { - reg = <1>; - }; - - phy_port3: phy@2 { - reg = <2>; - }; - switch@10 { compatible = "qca,qca8334"; - reg = <10>; + reg = <0x10>; + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; switch_ports: ports { #address-cells = <1>; @@ -148,15 +139,30 @@ eth2: port@2 { reg = <2>; label = "eth2"; + phy-mode = "internal"; phy-handle = <&phy_port2>; }; eth1: port@3 { reg = <3>; label = "eth1"; + phy-mode = "internal"; phy-handle = <&phy_port3>; }; }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + phy_port2: ethernet-phy@1 { + reg = <1>; + }; + + phy_port3: ethernet-phy@2 { + reg = <2>; + }; + }; }; }; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx6sx.dtsi linux-5.10.216/arch/arm/boot/dts/imx6sx.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx6sx.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx6sx.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -981,6 +981,8 @@ <&clks IMX6SX_CLK_USDHC1>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; @@ -993,6 +995,8 @@ <&clks IMX6SX_CLK_USDHC2>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; @@ -1005,6 +1009,8 @@ <&clks IMX6SX_CLK_USDHC3>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/imx7d.dtsi linux-5.10.216/arch/arm/boot/dts/imx7d.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx7d.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx7d.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -209,9 +209,6 @@ }; &ca_funnel_in_ports { - #address-cells = <1>; - #size-cells = <0>; - port@1 { reg = <1>; ca_funnel_in_port1: endpoint { diff -Nru linux-5.10.209/arch/arm/boot/dts/imx7s.dtsi linux-5.10.216/arch/arm/boot/dts/imx7s.dtsi --- linux-5.10.209/arch/arm/boot/dts/imx7s.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/imx7s.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -173,7 +173,11 @@ clock-names = "apb_pclk"; ca_funnel_in_ports: in-ports { - port { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; ca_funnel_in_port0: endpoint { remote-endpoint = <&etm0_out_port>; }; @@ -769,7 +773,7 @@ }; lcdif: lcdif@30730000 { - compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif"; reg = <0x30730000 0x10000>; interrupts = ; clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>, @@ -1231,7 +1235,7 @@ gpmi: nand-controller@33002000{ compatible = "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = ; diff -Nru linux-5.10.209/arch/arm/boot/dts/mmp2-brownstone.dts linux-5.10.216/arch/arm/boot/dts/mmp2-brownstone.dts --- linux-5.10.209/arch/arm/boot/dts/mmp2-brownstone.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/mmp2-brownstone.dts 2024-05-02 14:23:46.000000000 +0000 @@ -28,7 +28,7 @@ &twsi1 { status = "okay"; pmic: max8925@3c { - compatible = "maxium,max8925"; + compatible = "maxim,max8925"; reg = <0x3c>; interrupts = <1>; interrupt-parent = <&intcmux4>; diff -Nru linux-5.10.209/arch/arm/boot/dts/rk3036.dtsi linux-5.10.216/arch/arm/boot/dts/rk3036.dtsi --- linux-5.10.209/arch/arm/boot/dts/rk3036.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/rk3036.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -336,12 +336,20 @@ pinctrl-0 = <&hdmi_ctl>; status = "disabled"; - hdmi_in: port { + ports { #address-cells = <1>; #size-cells = <0>; - hdmi_in_vop: endpoint@0 { + + hdmi_in: port@0 { reg = <0>; - remote-endpoint = <&vop_out_hdmi>; + + hdmi_in_vop: endpoint { + remote-endpoint = <&vop_out_hdmi>; + }; + }; + + hdmi_out: port@1 { + reg = <1>; }; }; }; diff -Nru linux-5.10.209/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts linux-5.10.216/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts --- linux-5.10.209/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts 2024-05-02 14:23:46.000000000 +0000 @@ -62,6 +62,30 @@ states = <1100000 0>, <1300000 1>; }; + reg_vcc_dram: vcc-dram { + compatible = "regulator-fixed"; + regulator-name = "vcc-dram"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ + vin-supply = <®_vcc5v0>; + }; + + reg_vcc1v2: vcc1v2 { + compatible = "regulator-fixed"; + regulator-name = "vcc1v2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ + vin-supply = <®_vcc5v0>; + }; + wifi_pwrseq: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ diff -Nru linux-5.10.209/arch/arm/crypto/sha256_glue.c linux-5.10.216/arch/arm/crypto/sha256_glue.c --- linux-5.10.209/arch/arm/crypto/sha256_glue.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/crypto/sha256_glue.c 2024-05-02 14:23:46.000000000 +0000 @@ -24,8 +24,8 @@ #include "sha256_glue.h" -asmlinkage void sha256_block_data_order(u32 *digest, const void *data, - unsigned int num_blks); +asmlinkage void sha256_block_data_order(struct sha256_state *state, + const u8 *data, int num_blks); int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data, unsigned int len) @@ -33,23 +33,20 @@ /* make sure casting to sha256_block_fn() is safe */ BUILD_BUG_ON(offsetof(struct sha256_state, state) != 0); - return sha256_base_do_update(desc, data, len, - (sha256_block_fn *)sha256_block_data_order); + return sha256_base_do_update(desc, data, len, sha256_block_data_order); } EXPORT_SYMBOL(crypto_sha256_arm_update); static int crypto_sha256_arm_final(struct shash_desc *desc, u8 *out) { - sha256_base_do_finalize(desc, - (sha256_block_fn *)sha256_block_data_order); + sha256_base_do_finalize(desc, sha256_block_data_order); return sha256_base_finish(desc, out); } int crypto_sha256_arm_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { - sha256_base_do_update(desc, data, len, - (sha256_block_fn *)sha256_block_data_order); + sha256_base_do_update(desc, data, len, sha256_block_data_order); return crypto_sha256_arm_final(desc, out); } EXPORT_SYMBOL(crypto_sha256_arm_finup); diff -Nru linux-5.10.209/arch/arm/crypto/sha512-glue.c linux-5.10.216/arch/arm/crypto/sha512-glue.c --- linux-5.10.209/arch/arm/crypto/sha512-glue.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/crypto/sha512-glue.c 2024-05-02 14:23:46.000000000 +0000 @@ -25,27 +25,25 @@ MODULE_ALIAS_CRYPTO("sha384-arm"); MODULE_ALIAS_CRYPTO("sha512-arm"); -asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blocks); +asmlinkage void sha512_block_data_order(struct sha512_state *state, + u8 const *src, int blocks); int sha512_arm_update(struct shash_desc *desc, const u8 *data, unsigned int len) { - return sha512_base_do_update(desc, data, len, - (sha512_block_fn *)sha512_block_data_order); + return sha512_base_do_update(desc, data, len, sha512_block_data_order); } static int sha512_arm_final(struct shash_desc *desc, u8 *out) { - sha512_base_do_finalize(desc, - (sha512_block_fn *)sha512_block_data_order); + sha512_base_do_finalize(desc, sha512_block_data_order); return sha512_base_finish(desc, out); } int sha512_arm_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { - sha512_base_do_update(desc, data, len, - (sha512_block_fn *)sha512_block_data_order); + sha512_base_do_update(desc, data, len, sha512_block_data_order); return sha512_arm_final(desc, out); } diff -Nru linux-5.10.209/arch/arm/mach-ep93xx/core.c linux-5.10.216/arch/arm/mach-ep93xx/core.c --- linux-5.10.209/arch/arm/mach-ep93xx/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm/mach-ep93xx/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -337,6 +337,7 @@ GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), GPIO_LOOKUP_IDX("G", 0, NULL, 1, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), + { } }, }; diff -Nru linux-5.10.209/arch/arm64/boot/dts/marvell/armada-37xx.dtsi linux-5.10.216/arch/arm64/boot/dts/marvell/armada-37xx.dtsi --- linux-5.10.209/arch/arm64/boot/dts/marvell/armada-37xx.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/marvell/armada-37xx.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -414,14 +414,14 @@ crypto: crypto@90000 { compatible = "inside-secure,safexcel-eip97ies"; reg = <0x90000 0x20000>; - interrupts = , - , + interrupts = , , , , - ; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + , + ; + interrupt-names = "ring0", "ring1", "ring2", + "ring3", "eip", "mem"; clocks = <&nb_periph_clk 15>; }; diff -Nru linux-5.10.209/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi linux-5.10.216/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi --- linux-5.10.209/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/marvell/armada-cp11x.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -477,14 +477,14 @@ CP11X_LABEL(crypto): crypto@800000 { compatible = "inside-secure,safexcel-eip197b"; reg = <0x800000 0x200000>; - interrupts = <87 IRQ_TYPE_LEVEL_HIGH>, - <88 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <88 IRQ_TYPE_LEVEL_HIGH>, <89 IRQ_TYPE_LEVEL_HIGH>, <90 IRQ_TYPE_LEVEL_HIGH>, <91 IRQ_TYPE_LEVEL_HIGH>, - <92 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + <92 IRQ_TYPE_LEVEL_HIGH>, + <87 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ring0", "ring1", "ring2", "ring3", + "eip", "mem"; clock-names = "core", "reg"; clocks = <&CP11X_LABEL(clk) 1 26>, <&CP11X_LABEL(clk) 1 17>; diff -Nru linux-5.10.209/arch/arm64/boot/dts/mediatek/mt2712-evb.dts linux-5.10.216/arch/arm64/boot/dts/mediatek/mt2712-evb.dts --- linux-5.10.209/arch/arm64/boot/dts/mediatek/mt2712-evb.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/mediatek/mt2712-evb.dts 2024-05-02 14:23:46.000000000 +0000 @@ -127,7 +127,7 @@ }; &pio { - eth_default: eth_default { + eth_default: eth-default-pins { tx_pins { pinmux = , , @@ -154,7 +154,7 @@ }; }; - eth_sleep: eth_sleep { + eth_sleep: eth-sleep-pins { tx_pins { pinmux = , , @@ -180,14 +180,14 @@ }; }; - usb0_id_pins_float: usb0_iddig { + usb0_id_pins_float: usb0-iddig-pins { pins_iddig { pinmux = ; bias-pull-up; }; }; - usb1_id_pins_float: usb1_iddig { + usb1_id_pins_float: usb1-iddig-pins { pins_iddig { pinmux = ; bias-pull-up; diff -Nru linux-5.10.209/arch/arm64/boot/dts/mediatek/mt2712e.dtsi linux-5.10.216/arch/arm64/boot/dts/mediatek/mt2712e.dtsi --- linux-5.10.209/arch/arm64/boot/dts/mediatek/mt2712e.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/mediatek/mt2712e.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -249,10 +249,11 @@ #clock-cells = <1>; }; - infracfg: syscon@10001000 { + infracfg: clock-controller@10001000 { compatible = "mediatek,mt2712-infracfg", "syscon"; reg = <0 0x10001000 0 0x1000>; #clock-cells = <1>; + #reset-cells = <1>; }; pericfg: syscon@10003000 { diff -Nru linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts --- linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts 2024-05-02 14:23:46.000000000 +0000 @@ -71,6 +71,7 @@ memory@40000000 { reg = <0 0x40000000 0 0x40000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v { diff -Nru linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts --- linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts 2024-05-02 14:23:46.000000000 +0000 @@ -57,6 +57,7 @@ memory@40000000 { reg = <0 0x40000000 0 0x20000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v { diff -Nru linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622.dtsi linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622.dtsi --- linux-5.10.209/arch/arm64/boot/dts/mediatek/mt7622.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/mediatek/mt7622.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -244,7 +244,7 @@ clock-names = "hif_sel"; }; - cir: cir@10009000 { + cir: ir-receiver@10009000 { compatible = "mediatek,mt7622-cir"; reg = <0 0x10009000 0 0x1000>; interrupts = ; @@ -275,16 +275,14 @@ }; }; - apmixedsys: apmixedsys@10209000 { - compatible = "mediatek,mt7622-apmixedsys", - "syscon"; + apmixedsys: clock-controller@10209000 { + compatible = "mediatek,mt7622-apmixedsys"; reg = <0 0x10209000 0 0x1000>; #clock-cells = <1>; }; - topckgen: topckgen@10210000 { - compatible = "mediatek,mt7622-topckgen", - "syscon"; + topckgen: clock-controller@10210000 { + compatible = "mediatek,mt7622-topckgen"; reg = <0 0x10210000 0 0x1000>; #clock-cells = <1>; }; @@ -357,7 +355,7 @@ }; cci_control2: slave-if@5000 { - compatible = "arm,cci-400-ctrl-if"; + compatible = "arm,cci-400-ctrl-if", "syscon"; interface-type = "ace"; reg = <0x5000 0x1000>; }; @@ -507,7 +505,6 @@ <&pericfg CLK_PERI_AUXADC_PD>; clock-names = "therm", "auxadc"; resets = <&pericfg MT7622_PERI_THERM_SW_RST>; - reset-names = "therm"; mediatek,auxadc = <&auxadc>; mediatek,apmixedsys = <&apmixedsys>; nvmem-cells = <&thermal_calibration>; @@ -715,9 +712,8 @@ power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>; }; - ssusbsys: ssusbsys@1a000000 { - compatible = "mediatek,mt7622-ssusbsys", - "syscon"; + ssusbsys: clock-controller@1a000000 { + compatible = "mediatek,mt7622-ssusbsys"; reg = <0 0x1a000000 0 0x1000>; #clock-cells = <1>; #reset-cells = <1>; @@ -774,9 +770,8 @@ }; }; - pciesys: pciesys@1a100800 { - compatible = "mediatek,mt7622-pciesys", - "syscon"; + pciesys: clock-controller@1a100800 { + compatible = "mediatek,mt7622-pciesys"; reg = <0 0x1a100800 0 0x1000>; #clock-cells = <1>; #reset-cells = <1>; @@ -893,7 +888,13 @@ }; }; - ethsys: syscon@1b000000 { + hifsys: clock-controller@1af00000 { + compatible = "mediatek,mt7622-hifsys"; + reg = <0 0x1af00000 0 0x70>; + #clock-cells = <1>; + }; + + ethsys: clock-controller@1b000000 { compatible = "mediatek,mt7622-ethsys", "syscon"; reg = <0 0x1b000000 0 0x1000>; @@ -911,10 +912,28 @@ #dma-cells = <1>; }; - eth: ethernet@1b100000 { - compatible = "mediatek,mt7622-eth", - "mediatek,mt2701-eth", + pcie_mirror: pcie-mirror@10000400 { + compatible = "mediatek,mt7622-pcie-mirror", "syscon"; + reg = <0 0x10000400 0 0x10>; + }; + + wed0: wed@1020a000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020a000 0 0x1000>; + interrupts = ; + }; + + wed1: wed@1020b000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020b000 0 0x1000>; + interrupts = ; + }; + + eth: ethernet@1b100000 { + compatible = "mediatek,mt7622-eth"; reg = <0 0x1b100000 0 0x20000>; interrupts = , , @@ -937,6 +956,11 @@ power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>; mediatek,ethsys = <ðsys>; mediatek,sgmiisys = <&sgmiisys>; + mediatek,cci-control = <&cci_control2>; + mediatek,wed = <&wed0>, <&wed1>; + mediatek,pcie-mirror = <&pcie_mirror>; + mediatek,hifsys = <&hifsys>; + dma-coherent; #address-cells = <1>; #size-cells = <0>; status = "disabled"; diff -Nru linux-5.10.209/arch/arm64/boot/dts/qcom/msm8996.dtsi linux-5.10.216/arch/arm64/boot/dts/qcom/msm8996.dtsi --- linux-5.10.209/arch/arm64/boot/dts/qcom/msm8996.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/qcom/msm8996.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -139,6 +139,19 @@ reg = <0 0 0 0>; }; + etm { + compatible = "qcom,coresight-remote-etm"; + + out-ports { + port { + modem_etm_out_funnel_in2: endpoint { + remote-endpoint = + <&funnel_in2_in_modem_etm>; + }; + }; + }; + }; + psci { compatible = "arm,psci-1.0"; method = "smc"; @@ -1374,6 +1387,14 @@ clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; clock-names = "apb_pclk", "atclk"; + in-ports { + port { + funnel_in2_in_modem_etm: endpoint { + remote-endpoint = + <&modem_etm_out_funnel_in2>; + }; + }; + }; out-ports { port { diff -Nru linux-5.10.209/arch/arm64/boot/dts/qcom/msm8998.dtsi linux-5.10.216/arch/arm64/boot/dts/qcom/msm8998.dtsi --- linux-5.10.209/arch/arm64/boot/dts/qcom/msm8998.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/qcom/msm8998.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -1577,9 +1577,11 @@ cpu = <&CPU4>; - port{ - etm4_out: endpoint { - remote-endpoint = <&apss_funnel_in4>; + out-ports { + port{ + etm4_out: endpoint { + remote-endpoint = <&apss_funnel_in4>; + }; }; }; }; @@ -1594,9 +1596,11 @@ cpu = <&CPU5>; - port{ - etm5_out: endpoint { - remote-endpoint = <&apss_funnel_in5>; + out-ports { + port{ + etm5_out: endpoint { + remote-endpoint = <&apss_funnel_in5>; + }; }; }; }; @@ -1611,9 +1615,11 @@ cpu = <&CPU6>; - port{ - etm6_out: endpoint { - remote-endpoint = <&apss_funnel_in6>; + out-ports { + port{ + etm6_out: endpoint { + remote-endpoint = <&apss_funnel_in6>; + }; }; }; }; @@ -1628,9 +1634,11 @@ cpu = <&CPU7>; - port{ - etm7_out: endpoint { - remote-endpoint = <&apss_funnel_in7>; + out-ports { + port{ + etm7_out: endpoint { + remote-endpoint = <&apss_funnel_in7>; + }; }; }; }; diff -Nru linux-5.10.209/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi linux-5.10.216/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi --- linux-5.10.209/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -810,7 +810,8 @@ vddrf-supply = <&pp1300_l2c>; vddch0-supply = <&pp3300_l10c>; max-speed = <3200000>; - clocks = <&rpmhcc RPMH_RF_CLK2>; + + qcom,local-bd-address-broken; }; }; diff -Nru linux-5.10.209/arch/arm64/boot/dts/qcom/sc7180.dtsi linux-5.10.216/arch/arm64/boot/dts/qcom/sc7180.dtsi --- linux-5.10.209/arch/arm64/boot/dts/qcom/sc7180.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/qcom/sc7180.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -2688,10 +2688,10 @@ <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; diff -Nru linux-5.10.209/arch/arm64/boot/dts/qcom/sdm845.dtsi linux-5.10.216/arch/arm64/boot/dts/qcom/sdm845.dtsi --- linux-5.10.209/arch/arm64/boot/dts/qcom/sdm845.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/qcom/sdm845.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -3565,10 +3565,10 @@ <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; @@ -3613,10 +3613,10 @@ <&gcc GCC_USB30_SEC_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; diff -Nru linux-5.10.209/arch/arm64/boot/dts/rockchip/px30.dtsi linux-5.10.216/arch/arm64/boot/dts/rockchip/px30.dtsi --- linux-5.10.209/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -577,6 +577,7 @@ clock-names = "spiclk", "apb_pclk"; dmas = <&dmac 12>, <&dmac 13>; dma-names = "tx", "rx"; + num-cs = <2>; pinctrl-names = "default"; pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>; #address-cells = <1>; @@ -592,6 +593,7 @@ clock-names = "spiclk", "apb_pclk"; dmas = <&dmac 14>, <&dmac 15>; dma-names = "tx", "rx"; + num-cs = <2>; pinctrl-names = "default"; pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>; #address-cells = <1>; diff -Nru linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3328.dtsi linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3328.dtsi --- linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3328.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3328.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -732,11 +732,20 @@ status = "disabled"; ports { - hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in: port@0 { + reg = <0>; + hdmi_in_vop: endpoint { remote-endpoint = <&vop_out_hdmi>; }; }; + + hdmi_out: port@1 { + reg = <1>; + }; }; }; diff -Nru linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts --- linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts 2024-05-02 14:23:46.000000000 +0000 @@ -784,7 +784,6 @@ }; &pcie0 { - bus-scan-delay-ms = <1000>; ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; num-lanes = <4>; pinctrl-names = "default"; diff -Nru linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi --- linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -430,16 +430,22 @@ gpio1830-supply = <&vcc_1v8>; }; -&pmu_io_domains { - status = "okay"; - pmu1830-supply = <&vcc_1v8>; -}; - -&pwm2 { - status = "okay"; +&pcie_clkreqn_cpm { + rockchip,pins = + <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; }; &pinctrl { + pinctrl-names = "default"; + pinctrl-0 = <&q7_thermal_pin>; + + gpios { + q7_thermal_pin: q7-thermal-pin { + rockchip,pins = + <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + i2c8 { i2c8_xfer_a: i2c8-xfer { rockchip,pins = @@ -470,6 +476,15 @@ }; }; +&pmu_io_domains { + status = "okay"; + pmu1830-supply = <&vcc_1v8>; +}; + +&pwm2 { + status = "okay"; +}; + &sdhci { /* * Signal integrity isn't great at 200MHz but 100MHz has proven stable diff -Nru linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399.dtsi linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399.dtsi --- linux-5.10.209/arch/arm64/boot/dts/rockchip/rk3399.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/boot/dts/rockchip/rk3399.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -1769,6 +1769,7 @@ hdmi: hdmi@ff940000 { compatible = "rockchip,rk3399-dw-hdmi"; reg = <0x0 0xff940000 0x0 0x20000>; + reg-io-width = <4>; interrupts = ; clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, @@ -1777,13 +1778,16 @@ <&cru PLL_VPLL>; clock-names = "iahb", "isfr", "cec", "grf", "vpll"; power-domains = <&power RK3399_PD_HDCP>; - reg-io-width = <4>; rockchip,grf = <&grf>; #sound-dai-cells = <0>; status = "disabled"; ports { - hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in: port@0 { + reg = <0>; #address-cells = <1>; #size-cells = <0>; @@ -1796,6 +1800,10 @@ remote-endpoint = <&vopl_out_hdmi>; }; }; + + hdmi_out: port@1 { + reg = <1>; + }; }; }; diff -Nru linux-5.10.209/arch/arm64/kernel/entry.S linux-5.10.216/arch/arm64/kernel/entry.S --- linux-5.10.209/arch/arm64/kernel/entry.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/kernel/entry.S 2024-05-02 14:23:46.000000000 +0000 @@ -431,7 +431,9 @@ .macro irq_stack_entry mov x19, sp // preserve the original sp - scs_save tsk // preserve the original shadow stack +#ifdef CONFIG_SHADOW_CALL_STACK + mov x24, scs_sp // preserve the original shadow stack +#endif /* * Compare sp with the base of the task stack. @@ -465,7 +467,9 @@ */ .macro irq_stack_exit mov sp, x19 - scs_load_current +#ifdef CONFIG_SHADOW_CALL_STACK + mov scs_sp, x24 +#endif .endm /* GPRs used by entry code */ diff -Nru linux-5.10.209/arch/arm64/kernel/perf_event.c linux-5.10.216/arch/arm64/kernel/perf_event.c --- linux-5.10.209/arch/arm64/kernel/perf_event.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/kernel/perf_event.c 2024-05-02 14:23:46.000000000 +0000 @@ -171,7 +171,11 @@ }).attr.attr) static struct attribute *armv8_pmuv3_event_attrs[] = { - ARMV8_EVENT_ATTR(sw_incr, ARMV8_PMUV3_PERFCTR_SW_INCR), + /* + * Don't expose the sw_incr event in /sys. It's not usable as writes to + * PMSWINC_EL0 will trap as PMUSERENR.{SW,EN}=={0,0} and event rotation + * means we don't have a fixed event<->counter relationship regardless. + */ ARMV8_EVENT_ATTR(l1i_cache_refill, ARMV8_PMUV3_PERFCTR_L1I_CACHE_REFILL), ARMV8_EVENT_ATTR(l1i_tlb_refill, ARMV8_PMUV3_PERFCTR_L1I_TLB_REFILL), ARMV8_EVENT_ATTR(l1d_cache_refill, ARMV8_PMUV3_PERFCTR_L1D_CACHE_REFILL), diff -Nru linux-5.10.209/arch/arm64/kvm/vgic/vgic-its.c linux-5.10.216/arch/arm64/kvm/vgic/vgic-its.c --- linux-5.10.209/arch/arm64/kvm/vgic/vgic-its.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/arm64/kvm/vgic/vgic-its.c 2024-05-02 14:23:46.000000000 +0000 @@ -462,6 +462,9 @@ } irq = vgic_get_irq(vcpu->kvm, NULL, intids[i]); + if (!irq) + continue; + raw_spin_lock_irqsave(&irq->irq_lock, flags); irq->pending_latch = pendmask & (1U << bit_nr); vgic_queue_irq_unlock(vcpu->kvm, irq, flags); @@ -1374,6 +1377,8 @@ for (i = 0; i < irq_count; i++) { irq = vgic_get_irq(kvm, NULL, intids[i]); + if (!irq) + continue; update_affinity(irq, vcpu2); diff -Nru linux-5.10.209/arch/hexagon/kernel/vmlinux.lds.S linux-5.10.216/arch/hexagon/kernel/vmlinux.lds.S --- linux-5.10.209/arch/hexagon/kernel/vmlinux.lds.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/hexagon/kernel/vmlinux.lds.S 2024-05-02 14:23:46.000000000 +0000 @@ -64,6 +64,7 @@ STABS_DEBUG DWARF_DEBUG ELF_DETAILS + .hexagon.attributes 0 : { *(.hexagon.attributes) } DISCARDS } diff -Nru linux-5.10.209/arch/mips/include/asm/checksum.h linux-5.10.216/arch/mips/include/asm/checksum.h --- linux-5.10.209/arch/mips/include/asm/checksum.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/mips/include/asm/checksum.h 2024-05-02 14:23:46.000000000 +0000 @@ -242,7 +242,8 @@ " .set pop" : "=&r" (sum), "=&r" (tmp) : "r" (saddr), "r" (daddr), - "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)); + "0" (htonl(len)), "r" (htonl(proto)), "r" (sum) + : "memory"); return csum_fold(sum); } diff -Nru linux-5.10.209/arch/mips/include/asm/ptrace.h linux-5.10.216/arch/mips/include/asm/ptrace.h --- linux-5.10.209/arch/mips/include/asm/ptrace.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/mips/include/asm/ptrace.h 2024-05-02 14:23:46.000000000 +0000 @@ -60,6 +60,7 @@ unsigned long val) { regs->cp0_epc = val; + regs->cp0_cause &= ~CAUSEF_BD; } /* Query offset/name of register from its name/offset */ diff -Nru linux-5.10.209/arch/mips/kernel/elf.c linux-5.10.216/arch/mips/kernel/elf.c --- linux-5.10.209/arch/mips/kernel/elf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/mips/kernel/elf.c 2024-05-02 14:23:46.000000000 +0000 @@ -11,6 +11,7 @@ #include #include +#include #ifdef CONFIG_MIPS_FP_SUPPORT @@ -309,6 +310,11 @@ struct cpuinfo_mips *c = &boot_cpu_data; struct task_struct *t = current; + /* Do this early so t->thread.fpu.fcr31 won't be clobbered in case + * we are preempted before the lose_fpu(0) in start_thread. + */ + lose_fpu(0); + t->thread.fpu.fcr31 = c->fpu_csr31; switch (state->nan_2008) { case 0: diff -Nru linux-5.10.209/arch/mips/mm/init.c linux-5.10.216/arch/mips/mm/init.c --- linux-5.10.209/arch/mips/mm/init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/mips/mm/init.c 2024-05-02 14:23:46.000000000 +0000 @@ -421,7 +421,12 @@ (highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10)); max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn; } + + max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; +#else + max_mapnr = max_low_pfn; #endif + high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); free_area_init(max_zone_pfns); } @@ -457,16 +462,6 @@ */ BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT)); -#ifdef CONFIG_HIGHMEM -#ifdef CONFIG_DISCONTIGMEM -#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet" -#endif - max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; -#else - max_mapnr = max_low_pfn; -#endif - high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); - maar_init(); memblock_free_all(); setup_zero_pages(); /* Setup zeroed pages. */ diff -Nru linux-5.10.209/arch/parisc/include/asm/assembly.h linux-5.10.216/arch/parisc/include/asm/assembly.h --- linux-5.10.209/arch/parisc/include/asm/assembly.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/parisc/include/asm/assembly.h 2024-05-02 14:23:46.000000000 +0000 @@ -83,26 +83,28 @@ * version takes two arguments: a src and destination register. * However, the source and destination registers can not be * the same register. + * + * We use add,l to avoid clobbering the C/B bits in the PSW. */ .macro tophys grvirt, grphys - ldil L%(__PAGE_OFFSET), \grphys - sub \grvirt, \grphys, \grphys + ldil L%(-__PAGE_OFFSET), \grphys + addl \grvirt, \grphys, \grphys .endm - + .macro tovirt grphys, grvirt ldil L%(__PAGE_OFFSET), \grvirt - add \grphys, \grvirt, \grvirt + addl \grphys, \grvirt, \grvirt .endm .macro tophys_r1 gr - ldil L%(__PAGE_OFFSET), %r1 - sub \gr, %r1, \gr + ldil L%(-__PAGE_OFFSET), %r1 + addl \gr, %r1, \gr .endm - + .macro tovirt_r1 gr ldil L%(__PAGE_OFFSET), %r1 - add \gr, %r1, \gr + addl \gr, %r1, \gr .endm .macro delay value diff -Nru linux-5.10.209/arch/parisc/include/asm/checksum.h linux-5.10.216/arch/parisc/include/asm/checksum.h --- linux-5.10.209/arch/parisc/include/asm/checksum.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/parisc/include/asm/checksum.h 2024-05-02 14:23:46.000000000 +0000 @@ -40,7 +40,7 @@ " addc %0, %5, %0\n" " addc %0, %3, %0\n" "1: ldws,ma 4(%1), %3\n" -" addib,< 0, %2, 1b\n" +" addib,> -1, %2, 1b\n" " addc %0, %3, %0\n" "\n" " extru %0, 31, 16, %4\n" @@ -126,6 +126,7 @@ ** Try to keep 4 registers with "live" values ahead of the ALU. */ +" depdi 0, 31, 32, %0\n"/* clear upper half of incoming checksum */ " ldd,ma 8(%1), %4\n" /* get 1st saddr word */ " ldd,ma 8(%2), %5\n" /* get 1st daddr word */ " add %4, %0, %0\n" @@ -137,8 +138,8 @@ " add,dc %3, %0, %0\n" /* fold in proto+len | carry bit */ " extrd,u %0, 31, 32, %4\n"/* copy upper half down */ " depdi 0, 31, 32, %0\n"/* clear upper half */ -" add %4, %0, %0\n" /* fold into 32-bits */ -" addc 0, %0, %0\n" /* add carry */ +" add,dc %4, %0, %0\n" /* fold into 32-bits, plus carry */ +" addc 0, %0, %0\n" /* add final carry */ #else @@ -163,7 +164,8 @@ " ldw,ma 4(%2), %7\n" /* 4th daddr */ " addc %6, %0, %0\n" " addc %7, %0, %0\n" -" addc %3, %0, %0\n" /* fold in proto+len, catch carry */ +" addc %3, %0, %0\n" /* fold in proto+len */ +" addc 0, %0, %0\n" /* add carry */ #endif : "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len), diff -Nru linux-5.10.209/arch/parisc/kernel/firmware.c linux-5.10.216/arch/parisc/kernel/firmware.c --- linux-5.10.209/arch/parisc/kernel/firmware.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/parisc/kernel/firmware.c 2024-05-02 14:23:46.000000000 +0000 @@ -123,10 +123,10 @@ #ifdef CONFIG_64BIT if(unlikely(parisc_narrow_firmware)) { if((address & 0xff000000) == 0xf0000000) - return 0xf0f0f0f000000000UL | (u32)address; + return (0xfffffff0UL << 32) | (u32)address; if((address & 0xf0000000) == 0xf0000000) - return 0xffffffff00000000UL | (u32)address; + return (0xffffffffUL << 32) | (u32)address; } #endif return address; diff -Nru linux-5.10.209/arch/parisc/kernel/ftrace.c linux-5.10.216/arch/parisc/kernel/ftrace.c --- linux-5.10.209/arch/parisc/kernel/ftrace.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/parisc/kernel/ftrace.c 2024-05-02 14:23:46.000000000 +0000 @@ -81,7 +81,7 @@ #endif } -#ifdef CONFIG_FUNCTION_GRAPH_TRACER +#if defined(CONFIG_DYNAMIC_FTRACE) && defined(CONFIG_FUNCTION_GRAPH_TRACER) int ftrace_enable_ftrace_graph_caller(void) { return 0; diff -Nru linux-5.10.209/arch/powerpc/include/asm/mmu.h linux-5.10.216/arch/powerpc/include/asm/mmu.h --- linux-5.10.209/arch/powerpc/include/asm/mmu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/include/asm/mmu.h 2024-05-02 14:23:46.000000000 +0000 @@ -390,5 +390,9 @@ #include #endif +#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP) +#define __HAVE_ARCH_RESERVED_KERNEL_PAGES +#endif + #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_MMU_H_ */ diff -Nru linux-5.10.209/arch/powerpc/include/asm/mmzone.h linux-5.10.216/arch/powerpc/include/asm/mmzone.h --- linux-5.10.209/arch/powerpc/include/asm/mmzone.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/include/asm/mmzone.h 2024-05-02 14:23:46.000000000 +0000 @@ -42,9 +42,6 @@ #else #define memory_hotplug_max() memblock_end_of_DRAM() #endif /* CONFIG_NEED_MULTIPLE_NODES */ -#ifdef CONFIG_FA_DUMP -#define __HAVE_ARCH_RESERVED_KERNEL_PAGES -#endif #ifdef CONFIG_MEMORY_HOTPLUG extern int create_section_mapping(unsigned long start, unsigned long end, diff -Nru linux-5.10.209/arch/powerpc/include/asm/reg_fsl_emb.h linux-5.10.216/arch/powerpc/include/asm/reg_fsl_emb.h --- linux-5.10.209/arch/powerpc/include/asm/reg_fsl_emb.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/include/asm/reg_fsl_emb.h 2024-05-02 14:23:46.000000000 +0000 @@ -12,9 +12,16 @@ #ifndef __ASSEMBLY__ /* Performance Monitor Registers */ #define mfpmr(rn) ({unsigned int rval; \ - asm volatile("mfpmr %0," __stringify(rn) \ + asm volatile(".machine push; " \ + ".machine e300; " \ + "mfpmr %0," __stringify(rn) ";" \ + ".machine pop; " \ : "=r" (rval)); rval;}) -#define mtpmr(rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v)) +#define mtpmr(rn, v) asm volatile(".machine push; " \ + ".machine e300; " \ + "mtpmr " __stringify(rn) ",%0; " \ + ".machine pop; " \ + : : "r" (v)) #endif /* __ASSEMBLY__ */ /* Freescale Book E Performance Monitor APU Registers */ diff -Nru linux-5.10.209/arch/powerpc/kernel/hw_breakpoint.c linux-5.10.216/arch/powerpc/kernel/hw_breakpoint.c --- linux-5.10.209/arch/powerpc/kernel/hw_breakpoint.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/kernel/hw_breakpoint.c 2024-05-02 14:23:46.000000000 +0000 @@ -504,6 +504,11 @@ return type == LARX || type == STCX; } +static bool is_octword_vsx_instr(int type, int size) +{ + return ((type == LOAD_VSX || type == STORE_VSX) && size == 32); +} + /* * We've failed in reliably handling the hw-breakpoint. Unregister * it and throw a warning message to let the user know about it. @@ -554,6 +559,63 @@ return true; } +static void handle_p10dd1_spurious_exception(struct arch_hw_breakpoint **info, + int *hit, unsigned long ea) +{ + int i; + unsigned long hw_end_addr; + + /* + * Handle spurious exception only when any bp_per_reg is set. + * Otherwise this might be created by xmon and not actually a + * spurious exception. + */ + for (i = 0; i < nr_wp_slots(); i++) { + if (!info[i]) + continue; + + hw_end_addr = ALIGN(info[i]->address + info[i]->len, HW_BREAKPOINT_SIZE); + + /* + * Ending address of DAWR range is less than starting + * address of op. + */ + if ((hw_end_addr - 1) >= ea) + continue; + + /* + * Those addresses need to be in the same or in two + * consecutive 512B blocks; + */ + if (((hw_end_addr - 1) >> 10) != (ea >> 10)) + continue; + + /* + * 'op address + 64B' generates an address that has a + * carry into bit 52 (crosses 2K boundary). + */ + if ((ea & 0x800) == ((ea + 64) & 0x800)) + continue; + + break; + } + + if (i == nr_wp_slots()) + return; + + for (i = 0; i < nr_wp_slots(); i++) { + if (info[i]) { + hit[i] = 1; + info[i]->type |= HW_BRK_TYPE_EXTRANEOUS_IRQ; + } + } +} + +/* + * Handle a DABR or DAWR exception. + * + * Called in atomic context. + */ int hw_breakpoint_handler(struct die_args *args) { bool err = false; @@ -612,8 +674,14 @@ goto reset; if (!nr_hit) { - rc = NOTIFY_DONE; - goto out; + /* Workaround for Power10 DD1 */ + if (!IS_ENABLED(CONFIG_PPC_8xx) && mfspr(SPRN_PVR) == 0x800100 && + is_octword_vsx_instr(type, size)) { + handle_p10dd1_spurious_exception(info, hit, ea); + } else { + rc = NOTIFY_DONE; + goto out; + } } /* @@ -674,6 +742,8 @@ /* * Handle single-step exceptions following a DABR hit. + * + * Called in atomic context. */ static int single_step_dabr_instruction(struct die_args *args) { @@ -731,6 +801,8 @@ /* * Handle debug exception notifications. + * + * Called in atomic context. */ int hw_breakpoint_exceptions_notify( struct notifier_block *unused, unsigned long val, void *data) diff -Nru linux-5.10.209/arch/powerpc/kernel/traps.c linux-5.10.216/arch/powerpc/kernel/traps.c --- linux-5.10.209/arch/powerpc/kernel/traps.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/kernel/traps.c 2024-05-02 14:23:46.000000000 +0000 @@ -1432,10 +1432,12 @@ return -EINVAL; } +#ifdef CONFIG_GENERIC_BUG int is_valid_bugaddr(unsigned long addr) { return is_kernel_addr(addr); } +#endif #ifdef CONFIG_MATH_EMULATION static int emulate_math(struct pt_regs *regs) diff -Nru linux-5.10.209/arch/powerpc/kvm/book3s_hv_uvmem.c linux-5.10.216/arch/powerpc/kvm/book3s_hv_uvmem.c --- linux-5.10.209/arch/powerpc/kvm/book3s_hv_uvmem.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/kvm/book3s_hv_uvmem.c 2024-05-02 14:23:46.000000000 +0000 @@ -250,7 +250,7 @@ p = kzalloc(sizeof(*p), GFP_KERNEL); if (!p) return -ENOMEM; - p->pfns = vzalloc(array_size(slot->npages, sizeof(*p->pfns))); + p->pfns = vcalloc(slot->npages, sizeof(*p->pfns)); if (!p->pfns) { kfree(p); return -ENOMEM; diff -Nru linux-5.10.209/arch/powerpc/lib/Makefile linux-5.10.216/arch/powerpc/lib/Makefile --- linux-5.10.209/arch/powerpc/lib/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/lib/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -67,6 +67,6 @@ obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o obj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o -CFLAGS_xor_vmx.o += -maltivec $(call cc-option,-mabi=altivec) +CFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec) obj-$(CONFIG_PPC64) += $(obj64-y) diff -Nru linux-5.10.209/arch/powerpc/lib/sstep.c linux-5.10.216/arch/powerpc/lib/sstep.c --- linux-5.10.209/arch/powerpc/lib/sstep.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/lib/sstep.c 2024-05-02 14:23:46.000000000 +0000 @@ -512,6 +512,8 @@ } u; nb = GETSIZE(op->type); + if (nb > sizeof(u)) + return -EINVAL; if (!address_ok(regs, ea, nb)) return -EFAULT; rn = op->reg; @@ -562,6 +564,8 @@ } u; nb = GETSIZE(op->type); + if (nb > sizeof(u)) + return -EINVAL; if (!address_ok(regs, ea, nb)) return -EFAULT; rn = op->reg; @@ -606,6 +610,9 @@ u8 b[sizeof(__vector128)]; } u = {}; + if (size > sizeof(u)) + return -EINVAL; + if (!address_ok(regs, ea & ~0xfUL, 16)) return -EFAULT; /* align to multiple of size */ @@ -633,6 +640,9 @@ u8 b[sizeof(__vector128)]; } u; + if (size > sizeof(u)) + return -EINVAL; + if (!address_ok(regs, ea & ~0xfUL, 16)) return -EFAULT; /* align to multiple of size */ diff -Nru linux-5.10.209/arch/powerpc/mm/book3s64/pgtable.c linux-5.10.216/arch/powerpc/mm/book3s64/pgtable.c --- linux-5.10.209/arch/powerpc/mm/book3s64/pgtable.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/mm/book3s64/pgtable.c 2024-05-02 14:23:46.000000000 +0000 @@ -446,6 +446,7 @@ set_pte_at(vma->vm_mm, addr, ptep, pte); } +#ifdef CONFIG_TRANSPARENT_HUGEPAGE /* * For hash translation mode, we use the deposited table to store hash slot * information and they are stored at PTRS_PER_PMD offset from related pmd @@ -467,6 +468,7 @@ return true; } +#endif /* * Does the CPU support tlbie? diff -Nru linux-5.10.209/arch/powerpc/mm/init-common.c linux-5.10.216/arch/powerpc/mm/init-common.c --- linux-5.10.209/arch/powerpc/mm/init-common.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/mm/init-common.c 2024-05-02 14:23:46.000000000 +0000 @@ -111,7 +111,7 @@ * as to leave enough 0 bits in the address to contain it. */ unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1, HUGEPD_SHIFT_MASK + 1); - struct kmem_cache *new; + struct kmem_cache *new = NULL; /* It would be nice if this was a BUILD_BUG_ON(), but at the * moment, gcc doesn't seem to recognize is_power_of_2 as a @@ -124,7 +124,8 @@ align = max_t(unsigned long, align, minalign); name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift); - new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); + if (name) + new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); if (!new) panic("Could not allocate pgtable cache for order %d", shift); diff -Nru linux-5.10.209/arch/powerpc/mm/kasan/kasan_init_32.c linux-5.10.216/arch/powerpc/mm/kasan/kasan_init_32.c --- linux-5.10.209/arch/powerpc/mm/kasan/kasan_init_32.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/mm/kasan/kasan_init_32.c 2024-05-02 14:23:46.000000000 +0000 @@ -64,6 +64,7 @@ if (ret) return ret; + k_start = k_start & PAGE_MASK; block = memblock_alloc(k_end - k_start, PAGE_SIZE); if (!block) return -ENOMEM; diff -Nru linux-5.10.209/arch/powerpc/perf/hv-gpci.c linux-5.10.216/arch/powerpc/perf/hv-gpci.c --- linux-5.10.209/arch/powerpc/perf/hv-gpci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/perf/hv-gpci.c 2024-05-02 14:23:46.000000000 +0000 @@ -164,6 +164,20 @@ ret = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO, virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE); + + /* + * ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL', + * specifies that the current buffer size cannot accommodate + * all the information and a partial buffer returned. + * Since in this function we are only accessing data for a given starting index, + * we don't need to accommodate whole data and can get required count by + * accessing first entry data. + * Hence hcall fails only incase the ret value is other than H_SUCCESS or + * H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B). + */ + if (ret == H_PARAMETER && be32_to_cpu(arg->params.detail_rc) == 0x1B) + ret = 0; + if (ret) { pr_devel("hcall failed: 0x%lx\n", ret); goto out; @@ -228,6 +242,7 @@ { u64 count; u8 length; + unsigned long ret; /* Not our event */ if (event->attr.type != event->pmu->type) @@ -258,13 +273,23 @@ } /* check if the request works... */ - if (single_gpci_request(event_get_request(event), + ret = single_gpci_request(event_get_request(event), event_get_starting_index(event), event_get_secondary_index(event), event_get_counter_info_version(event), event_get_offset(event), length, - &count)) { + &count); + + /* + * ret value as H_AUTHORITY implies that partition is not permitted to retrieve + * performance information, and required to set + * "Enable Performance Information Collection" option. + */ + if (ret == H_AUTHORITY) + return -EPERM; + + if (ret) { pr_devel("gpci hcall failed\n"); return -EINVAL; } diff -Nru linux-5.10.209/arch/powerpc/platforms/embedded6xx/linkstation.c linux-5.10.216/arch/powerpc/platforms/embedded6xx/linkstation.c --- linux-5.10.209/arch/powerpc/platforms/embedded6xx/linkstation.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/platforms/embedded6xx/linkstation.c 2024-05-02 14:23:46.000000000 +0000 @@ -97,9 +97,6 @@ mpic_init(mpic); } -extern void avr_uart_configure(void); -extern void avr_uart_send(const char); - static void __noreturn linkstation_restart(char *cmd) { local_irq_disable(); diff -Nru linux-5.10.209/arch/powerpc/platforms/embedded6xx/mpc10x.h linux-5.10.216/arch/powerpc/platforms/embedded6xx/mpc10x.h --- linux-5.10.209/arch/powerpc/platforms/embedded6xx/mpc10x.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/powerpc/platforms/embedded6xx/mpc10x.h 2024-05-02 14:23:46.000000000 +0000 @@ -156,4 +156,7 @@ /* For MPC107 boards that use the built-in openpic */ void mpc10x_set_openpic(void); +void avr_uart_configure(void); +void avr_uart_send(const char c); + #endif /* __PPC_KERNEL_MPC10X_H */ diff -Nru linux-5.10.209/arch/riscv/Kconfig linux-5.10.216/arch/riscv/Kconfig --- linux-5.10.209/arch/riscv/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -445,6 +445,14 @@ allow the kernel to be booted as an EFI application. This is only useful on systems that have UEFI firmware. +config CC_HAVE_STACKPROTECTOR_TLS + def_bool $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=tp -mstack-protector-guard-offset=0) + +config STACKPROTECTOR_PER_TASK + def_bool y + depends on !GCC_PLUGIN_RANDSTRUCT + depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_TLS + endmenu config BUILTIN_DTB diff -Nru linux-5.10.209/arch/riscv/Makefile linux-5.10.216/arch/riscv/Makefile --- linux-5.10.209/arch/riscv/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -88,6 +88,16 @@ # architectures. It's faster to have GCC emit only aligned accesses. KBUILD_CFLAGS += $(call cc-option,-mstrict-align) +ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y) +prepare: stack_protector_prepare +stack_protector_prepare: prepare0 + $(eval KBUILD_CFLAGS += -mstack-protector-guard=tls \ + -mstack-protector-guard-reg=tp \ + -mstack-protector-guard-offset=$(shell \ + awk '{if ($$2 == "TSK_STACK_CANARY") print $$3;}' \ + include/generated/asm-offsets.h)) +endif + # arch specific predefines for sparse CHECKFLAGS += -D__riscv -D__riscv_xlen=$(BITS) diff -Nru linux-5.10.209/arch/riscv/include/asm/pgtable.h linux-5.10.216/arch/riscv/include/asm/pgtable.h --- linux-5.10.209/arch/riscv/include/asm/pgtable.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/include/asm/pgtable.h 2024-05-02 14:23:46.000000000 +0000 @@ -44,7 +44,7 @@ * Define vmemmap for pfn_to_page & page_to_pfn calls. Needed if kernel * is configured with CONFIG_SPARSEMEM_VMEMMAP enabled. */ -#define vmemmap ((struct page *)VMEMMAP_START) +#define vmemmap ((struct page *)VMEMMAP_START - (phys_ram_base >> PAGE_SHIFT)) #define PCI_IO_SIZE SZ_16M #define PCI_IO_END VMEMMAP_START @@ -456,8 +456,8 @@ #define PAGE_SHARED __pgprot(0) #define PAGE_KERNEL __pgprot(0) #define swapper_pg_dir NULL -#define TASK_SIZE 0xffffffffUL -#define VMALLOC_START 0 +#define TASK_SIZE _AC(-1, UL) +#define VMALLOC_START _AC(0, UL) #define VMALLOC_END TASK_SIZE static inline void __kernel_map_pages(struct page *page, int numpages, int enable) {} diff -Nru linux-5.10.209/arch/riscv/include/asm/stackprotector.h linux-5.10.216/arch/riscv/include/asm/stackprotector.h --- linux-5.10.209/arch/riscv/include/asm/stackprotector.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/include/asm/stackprotector.h 2024-05-02 14:23:46.000000000 +0000 @@ -24,6 +24,7 @@ canary &= CANARY_MASK; current->stack_canary = canary; - __stack_chk_guard = current->stack_canary; + if (!IS_ENABLED(CONFIG_STACKPROTECTOR_PER_TASK)) + __stack_chk_guard = current->stack_canary; } #endif /* _ASM_RISCV_STACKPROTECTOR_H */ diff -Nru linux-5.10.209/arch/riscv/include/asm/uaccess.h linux-5.10.216/arch/riscv/include/asm/uaccess.h --- linux-5.10.209/arch/riscv/include/asm/uaccess.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/include/asm/uaccess.h 2024-05-02 14:23:46.000000000 +0000 @@ -468,7 +468,7 @@ #define __get_kernel_nofault(dst, src, type, err_label) \ do { \ - long __kr_err; \ + long __kr_err = 0; \ \ __get_user_nocheck(*((type *)(dst)), (type *)(src), __kr_err); \ if (unlikely(__kr_err)) \ @@ -477,7 +477,7 @@ #define __put_kernel_nofault(dst, src, type, err_label) \ do { \ - long __kr_err; \ + long __kr_err = 0; \ \ __put_user_nocheck(*((type *)(src)), (type *)(dst), __kr_err); \ if (unlikely(__kr_err)) \ diff -Nru linux-5.10.209/arch/riscv/kernel/asm-offsets.c linux-5.10.216/arch/riscv/kernel/asm-offsets.c --- linux-5.10.209/arch/riscv/kernel/asm-offsets.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/kernel/asm-offsets.c 2024-05-02 14:23:46.000000000 +0000 @@ -66,6 +66,9 @@ OFFSET(TASK_THREAD_F30, task_struct, thread.fstate.f[30]); OFFSET(TASK_THREAD_F31, task_struct, thread.fstate.f[31]); OFFSET(TASK_THREAD_FCSR, task_struct, thread.fstate.fcsr); +#ifdef CONFIG_STACKPROTECTOR + OFFSET(TSK_STACK_CANARY, task_struct, stack_canary); +#endif DEFINE(PT_SIZE, sizeof(struct pt_regs)); OFFSET(PT_EPC, pt_regs, epc); diff -Nru linux-5.10.209/arch/riscv/kernel/process.c linux-5.10.216/arch/riscv/kernel/process.c --- linux-5.10.209/arch/riscv/kernel/process.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/riscv/kernel/process.c 2024-05-02 14:23:46.000000000 +0000 @@ -22,9 +22,7 @@ #include #include -register unsigned long gp_in_global __asm__("gp"); - -#ifdef CONFIG_STACKPROTECTOR +#if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_STACKPROTECTOR_PER_TASK) #include unsigned long __stack_chk_guard __read_mostly; EXPORT_SYMBOL(__stack_chk_guard); @@ -117,7 +115,6 @@ if (unlikely(p->flags & (PF_KTHREAD | PF_IO_WORKER))) { /* Kernel thread */ memset(childregs, 0, sizeof(struct pt_regs)); - childregs->gp = gp_in_global; /* Supervisor/Machine, irqs on: */ childregs->status = SR_PP | SR_PIE; diff -Nru linux-5.10.209/arch/s390/crypto/aes_s390.c linux-5.10.216/arch/s390/crypto/aes_s390.c --- linux-5.10.209/arch/s390/crypto/aes_s390.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/crypto/aes_s390.c 2024-05-02 14:23:46.000000000 +0000 @@ -600,7 +600,9 @@ * final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { - cpacf_kmctr(sctx->fc, sctx->key, buf, walk.src.virt.addr, + memset(buf, 0, AES_BLOCK_SIZE); + memcpy(buf, walk.src.virt.addr, nbytes); + cpacf_kmctr(sctx->fc, sctx->key, buf, buf, AES_BLOCK_SIZE, walk.iv); memcpy(walk.dst.virt.addr, buf, nbytes); crypto_inc(walk.iv, AES_BLOCK_SIZE); diff -Nru linux-5.10.209/arch/s390/crypto/paes_s390.c linux-5.10.216/arch/s390/crypto/paes_s390.c --- linux-5.10.209/arch/s390/crypto/paes_s390.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/crypto/paes_s390.c 2024-05-02 14:23:46.000000000 +0000 @@ -676,9 +676,11 @@ * final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { + memset(buf, 0, AES_BLOCK_SIZE); + memcpy(buf, walk.src.virt.addr, nbytes); while (1) { if (cpacf_kmctr(ctx->fc, ¶m, buf, - walk.src.virt.addr, AES_BLOCK_SIZE, + buf, AES_BLOCK_SIZE, walk.iv) == AES_BLOCK_SIZE) break; if (__paes_convert_key(ctx)) diff -Nru linux-5.10.209/arch/s390/kernel/entry.S linux-5.10.216/arch/s390/kernel/entry.S --- linux-5.10.209/arch/s390/kernel/entry.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/kernel/entry.S 2024-05-02 14:23:46.000000000 +0000 @@ -1298,6 +1298,7 @@ #endif .section .rodata, "a" + .balign 8 #define SYSCALL(esame,emu) .quad __s390x_ ## esame .globl sys_call_table sys_call_table: diff -Nru linux-5.10.209/arch/s390/kernel/ptrace.c linux-5.10.216/arch/s390/kernel/ptrace.c --- linux-5.10.209/arch/s390/kernel/ptrace.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/kernel/ptrace.c 2024-05-02 14:23:46.000000000 +0000 @@ -411,6 +411,7 @@ /* * floating point control reg. is in the thread structure */ + save_fpu_regs(); if ((unsigned int) data != 0 || test_fp_ctl(data >> (BITS_PER_LONG - 32))) return -EINVAL; @@ -771,6 +772,7 @@ /* * floating point control reg. is in the thread structure */ + save_fpu_regs(); if (test_fp_ctl(tmp)) return -EINVAL; child->thread.fpu.fpc = data; @@ -1010,9 +1012,7 @@ int rc = 0; freg_t fprs[__NUM_FPRS]; - if (target == current) - save_fpu_regs(); - + save_fpu_regs(); if (MACHINE_HAS_VX) convert_vx_to_fp(fprs, target->thread.fpu.vxrs); else diff -Nru linux-5.10.209/arch/s390/kernel/vtime.c linux-5.10.216/arch/s390/kernel/vtime.c --- linux-5.10.209/arch/s390/kernel/vtime.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/kernel/vtime.c 2024-05-02 14:23:46.000000000 +0000 @@ -214,13 +214,13 @@ virt_timer_expire(); steal = S390_lowcore.steal_timer; - avg_steal = S390_lowcore.avg_steal_timer / 2; + avg_steal = S390_lowcore.avg_steal_timer; if ((s64) steal > 0) { S390_lowcore.steal_timer = 0; account_steal_time(cputime_to_nsecs(steal)); avg_steal += steal; } - S390_lowcore.avg_steal_timer = avg_steal; + S390_lowcore.avg_steal_timer = avg_steal / 2; } /* diff -Nru linux-5.10.209/arch/s390/kvm/kvm-s390.c linux-5.10.216/arch/s390/kvm/kvm-s390.c --- linux-5.10.209/arch/s390/kvm/kvm-s390.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/kvm/kvm-s390.c 2024-05-02 14:23:46.000000000 +0000 @@ -3649,10 +3649,6 @@ vcpu_load(vcpu); - if (test_fp_ctl(fpu->fpc)) { - ret = -EINVAL; - goto out; - } vcpu->run->s.regs.fpc = fpu->fpc; if (MACHINE_HAS_VX) convert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs, @@ -3660,7 +3656,6 @@ else memcpy(vcpu->run->s.regs.fprs, &fpu->fprs, sizeof(fpu->fprs)); -out: vcpu_put(vcpu); return ret; } diff -Nru linux-5.10.209/arch/s390/pci/pci.c linux-5.10.216/arch/s390/pci/pci.c --- linux-5.10.209/arch/s390/pci/pci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/s390/pci/pci.c 2024-05-02 14:23:46.000000000 +0000 @@ -225,7 +225,7 @@ /* combine single writes by using store-block insn */ void __iowrite64_copy(void __iomem *to, const void *from, size_t count) { - zpci_memcpy_toio(to, from, count); + zpci_memcpy_toio(to, from, count * 8); } static void __iomem *__ioremap(phys_addr_t addr, size_t size, pgprot_t prot) diff -Nru linux-5.10.209/arch/sparc/kernel/leon_pci_grpci1.c linux-5.10.216/arch/sparc/kernel/leon_pci_grpci1.c --- linux-5.10.209/arch/sparc/kernel/leon_pci_grpci1.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/sparc/kernel/leon_pci_grpci1.c 2024-05-02 14:23:46.000000000 +0000 @@ -696,7 +696,7 @@ return err; } -static const struct of_device_id grpci1_of_match[] __initconst = { +static const struct of_device_id grpci1_of_match[] = { { .name = "GAISLER_PCIFBRG", }, diff -Nru linux-5.10.209/arch/sparc/kernel/leon_pci_grpci2.c linux-5.10.216/arch/sparc/kernel/leon_pci_grpci2.c --- linux-5.10.209/arch/sparc/kernel/leon_pci_grpci2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/sparc/kernel/leon_pci_grpci2.c 2024-05-02 14:23:46.000000000 +0000 @@ -887,7 +887,7 @@ return err; } -static const struct of_device_id grpci2_of_match[] __initconst = { +static const struct of_device_id grpci2_of_match[] = { { .name = "GAISLER_GRPCI2", }, diff -Nru linux-5.10.209/arch/sparc/kernel/nmi.c linux-5.10.216/arch/sparc/kernel/nmi.c --- linux-5.10.209/arch/sparc/kernel/nmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/sparc/kernel/nmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -274,7 +274,7 @@ if (!strncmp(str, "panic", 5)) panic_on_timeout = 1; - return 0; + return 1; } __setup("nmi_watchdog=", setup_nmi_watchdog); diff -Nru linux-5.10.209/arch/sparc/vdso/vma.c linux-5.10.216/arch/sparc/vdso/vma.c --- linux-5.10.209/arch/sparc/vdso/vma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/sparc/vdso/vma.c 2024-05-02 14:23:46.000000000 +0000 @@ -449,9 +449,8 @@ unsigned long val; err = kstrtoul(s, 10, &val); - if (err) - return err; - vdso_enabled = val; - return 0; + if (!err) + vdso_enabled = val; + return 1; } __setup("vdso=", vdso_setup); diff -Nru linux-5.10.209/arch/um/Kconfig linux-5.10.216/arch/um/Kconfig --- linux-5.10.209/arch/um/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -92,6 +92,19 @@ depends on !LD_SCRIPT_STATIC select MODULE_REL_CRCS if MODVERSIONS +config LD_SCRIPT_DYN_RPATH + bool "set rpath in the binary" if EXPERT + default y + depends on LD_SCRIPT_DYN + help + Add /lib (and /lib64 for 64-bit) to the linux binary's rpath + explicitly. + + You may need to turn this off if compiling for nix systems + that have their libraries in random /nix directories and + might otherwise unexpected use libraries from /lib or /lib64 + instead of the desired ones. + config HOSTFS tristate "Host filesystem" help diff -Nru linux-5.10.209/arch/um/Makefile linux-5.10.216/arch/um/Makefile --- linux-5.10.209/arch/um/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -118,7 +118,8 @@ $(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static -LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib $(call cc-option, -no-pie) +LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie) +LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \ -fno-stack-protector $(call cc-option, -fno-stack-protector-all) diff -Nru linux-5.10.209/arch/um/drivers/net_kern.c linux-5.10.216/arch/um/drivers/net_kern.c --- linux-5.10.209/arch/um/drivers/net_kern.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/drivers/net_kern.c 2024-05-02 14:23:46.000000000 +0000 @@ -204,7 +204,7 @@ return 0; } -static int uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct uml_net_private *lp = netdev_priv(dev); unsigned long flags; diff -Nru linux-5.10.209/arch/um/include/shared/kern_util.h linux-5.10.216/arch/um/include/shared/kern_util.h --- linux-5.10.209/arch/um/include/shared/kern_util.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/include/shared/kern_util.h 2024-05-02 14:23:46.000000000 +0000 @@ -51,7 +51,7 @@ * Are we disallowed to sleep? Used to choose between GFP_KERNEL and * GFP_ATOMIC. */ -extern int __cant_sleep(void); +extern int __uml_cant_sleep(void); extern int get_current_pid(void); extern int copy_from_user_proc(void *to, void *from, int size); extern int cpu(void); diff -Nru linux-5.10.209/arch/um/kernel/process.c linux-5.10.216/arch/um/kernel/process.c --- linux-5.10.209/arch/um/kernel/process.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/kernel/process.c 2024-05-02 14:23:46.000000000 +0000 @@ -221,7 +221,7 @@ raw_local_irq_enable(); } -int __cant_sleep(void) { +int __uml_cant_sleep(void) { return in_atomic() || irqs_disabled() || in_interrupt(); /* Is in_interrupt() really needed? */ } diff -Nru linux-5.10.209/arch/um/os-Linux/helper.c linux-5.10.216/arch/um/os-Linux/helper.c --- linux-5.10.209/arch/um/os-Linux/helper.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/os-Linux/helper.c 2024-05-02 14:23:46.000000000 +0000 @@ -45,7 +45,7 @@ unsigned long stack, sp; int pid, fds[2], ret, n; - stack = alloc_stack(0, __cant_sleep()); + stack = alloc_stack(0, __uml_cant_sleep()); if (stack == 0) return -ENOMEM; @@ -69,7 +69,7 @@ data.pre_data = pre_data; data.argv = argv; data.fd = fds[1]; - data.buf = __cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) : + data.buf = __uml_cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) : uml_kmalloc(PATH_MAX, UM_GFP_KERNEL); pid = clone(helper_child, (void *) sp, CLONE_VM, &data); if (pid < 0) { @@ -116,7 +116,7 @@ unsigned long stack, sp; int pid, status, err; - stack = alloc_stack(0, __cant_sleep()); + stack = alloc_stack(0, __uml_cant_sleep()); if (stack == 0) return -ENOMEM; diff -Nru linux-5.10.209/arch/um/os-Linux/util.c linux-5.10.216/arch/um/os-Linux/util.c --- linux-5.10.209/arch/um/os-Linux/util.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/um/os-Linux/util.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,23 +166,38 @@ "quiet\n" " Turns off information messages during boot.\n\n"); +/* + * The os_info/os_warn functions will be called by helper threads. These + * have a very limited stack size and using the libc formatting functions + * may overflow the stack. + * So pull in the kernel vscnprintf and use that instead with a fixed + * on-stack buffer. + */ +int vscnprintf(char *buf, size_t size, const char *fmt, va_list args); + void os_info(const char *fmt, ...) { + char buf[256]; va_list list; + int len; if (quiet_info) return; va_start(list, fmt); - vfprintf(stderr, fmt, list); + len = vscnprintf(buf, sizeof(buf), fmt, list); + fwrite(buf, len, 1, stderr); va_end(list); } void os_warn(const char *fmt, ...) { + char buf[256]; va_list list; + int len; va_start(list, fmt); - vfprintf(stderr, fmt, list); + len = vscnprintf(buf, sizeof(buf), fmt, list); + fwrite(buf, len, 1, stderr); va_end(list); } diff -Nru linux-5.10.209/arch/x86/Kconfig linux-5.10.216/arch/x86/Kconfig --- linux-5.10.209/arch/x86/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -57,6 +57,7 @@ select ACPI_LEGACY_TABLES_LOOKUP if ACPI select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI select ARCH_32BIT_OFF_T if X86_32 + select ARCH_CONFIGURES_CPU_MITIGATIONS select ARCH_CLOCKSOURCE_INIT select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI select ARCH_HAS_CPU_FINALIZE_INIT @@ -352,10 +353,6 @@ def_bool y depends on X86_64 && SMP -config X86_32_LAZY_GS - def_bool y - depends on X86_32 && !STACKPROTECTOR - config ARCH_SUPPORTS_UPROBES def_bool y @@ -378,7 +375,8 @@ default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC)) help We have to make sure stack protector is unconditionally disabled if - the compiler produces broken code. + the compiler produces broken code or if it does not let us control + the segment on 32-bit kernels. menu "Processor type and features" @@ -2411,17 +2409,17 @@ config CC_HAS_RETURN_THUNK def_bool $(cc-option,-mfunction-return=thunk-extern) -menuconfig SPECULATION_MITIGATIONS - bool "Mitigations for speculative execution vulnerabilities" +menuconfig CPU_MITIGATIONS + bool "Mitigations for CPU vulnerabilities" default y help - Say Y here to enable options which enable mitigations for - speculative execution hardware vulnerabilities. + Say Y here to enable options which enable mitigations for hardware + vulnerabilities (usually related to speculative execution). If you say N, all mitigations will be disabled. You really should know what you are doing to say so. -if SPECULATION_MITIGATIONS +if CPU_MITIGATIONS config PAGE_TABLE_ISOLATION bool "Remove the kernel mapping in user mode" @@ -2511,6 +2509,17 @@ If in doubt, say N. +config MITIGATION_RFDS + bool "RFDS Mitigation" + depends on CPU_SUP_INTEL + default y + help + Enable mitigation for Register File Data Sampling (RFDS) by default. + RFDS is a hardware vulnerability which affects Intel Atom CPUs. It + allows unprivileged speculative access to stale data previously + stored in floating point, vector and integer registers. + See also + endif config ARCH_HAS_ADD_PAGES diff -Nru linux-5.10.209/arch/x86/Kconfig.cpu linux-5.10.216/arch/x86/Kconfig.cpu --- linux-5.10.209/arch/x86/Kconfig.cpu 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/Kconfig.cpu 2024-05-02 14:23:46.000000000 +0000 @@ -379,7 +379,7 @@ config X86_MINIMUM_CPU_FAMILY int default "64" if X86_64 - default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8) + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8) default "5" if X86_32 && X86_CMPXCHG64 default "4" diff -Nru linux-5.10.209/arch/x86/Makefile linux-5.10.216/arch/x86/Makefile --- linux-5.10.209/arch/x86/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -87,6 +87,14 @@ # temporary until string.h is fixed KBUILD_CFLAGS += -ffreestanding + + ifeq ($(CONFIG_STACKPROTECTOR),y) + ifeq ($(CONFIG_SMP),y) + KBUILD_CFLAGS += -mstack-protector-guard-reg=fs -mstack-protector-guard-symbol=__stack_chk_guard + else + KBUILD_CFLAGS += -mstack-protector-guard=global + endif + endif else BITS := 64 UTS_MACHINE := x86_64 diff -Nru linux-5.10.209/arch/x86/Makefile.um linux-5.10.216/arch/x86/Makefile.um --- linux-5.10.209/arch/x86/Makefile.um 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/Makefile.um 2024-05-02 14:23:46.000000000 +0000 @@ -44,7 +44,7 @@ # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. -LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64 +LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib64 LINK-y += -m64 endif diff -Nru linux-5.10.209/arch/x86/boot/compressed/ident_map_64.c linux-5.10.216/arch/x86/boot/compressed/ident_map_64.c --- linux-5.10.209/arch/x86/boot/compressed/ident_map_64.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/boot/compressed/ident_map_64.c 2024-05-02 14:23:46.000000000 +0000 @@ -367,3 +367,8 @@ */ add_identity_map(address, end); } + +void do_boot_nmi_trap(struct pt_regs *regs, unsigned long error_code) +{ + /* Empty handler to ignore NMI during early boot */ +} diff -Nru linux-5.10.209/arch/x86/boot/compressed/idt_64.c linux-5.10.216/arch/x86/boot/compressed/idt_64.c --- linux-5.10.209/arch/x86/boot/compressed/idt_64.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/boot/compressed/idt_64.c 2024-05-02 14:23:46.000000000 +0000 @@ -45,6 +45,7 @@ boot_idt_desc.address = (unsigned long)boot_idt; set_idt_entry(X86_TRAP_PF, boot_page_fault); + set_idt_entry(X86_TRAP_NMI, boot_nmi_trap); #ifdef CONFIG_AMD_MEM_ENCRYPT set_idt_entry(X86_TRAP_VC, boot_stage2_vc); diff -Nru linux-5.10.209/arch/x86/boot/compressed/idt_handlers_64.S linux-5.10.216/arch/x86/boot/compressed/idt_handlers_64.S --- linux-5.10.209/arch/x86/boot/compressed/idt_handlers_64.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/boot/compressed/idt_handlers_64.S 2024-05-02 14:23:46.000000000 +0000 @@ -70,6 +70,7 @@ .code64 EXCEPTION_HANDLER boot_page_fault do_boot_page_fault error_code=1 +EXCEPTION_HANDLER boot_nmi_trap do_boot_nmi_trap error_code=0 #ifdef CONFIG_AMD_MEM_ENCRYPT EXCEPTION_HANDLER boot_stage1_vc do_vc_no_ghcb error_code=1 diff -Nru linux-5.10.209/arch/x86/boot/compressed/misc.h linux-5.10.216/arch/x86/boot/compressed/misc.h --- linux-5.10.209/arch/x86/boot/compressed/misc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/boot/compressed/misc.h 2024-05-02 14:23:46.000000000 +0000 @@ -156,6 +156,7 @@ /* IDT Entry Points */ void boot_page_fault(void); +void boot_nmi_trap(void); void boot_stage1_vc(void); void boot_stage2_vc(void); diff -Nru linux-5.10.209/arch/x86/entry/entry.S linux-5.10.216/arch/x86/entry/entry.S --- linux-5.10.209/arch/x86/entry/entry.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/entry/entry.S 2024-05-02 14:23:46.000000000 +0000 @@ -6,6 +6,9 @@ #include #include #include +#include +#include +#include .pushsection .noinstr.text, "ax" @@ -20,3 +23,23 @@ EXPORT_SYMBOL_GPL(entry_ibpb); .popsection + +/* + * Define the VERW operand that is disguised as entry code so that + * it can be referenced with KPTI enabled. This ensure VERW can be + * used late in exit-to-user path after page tables are switched. + */ +.pushsection .entry.text, "ax" + +.align L1_CACHE_BYTES, 0xcc +SYM_CODE_START_NOALIGN(mds_verw_sel) + UNWIND_HINT_EMPTY + ANNOTATE_NOENDBR + .word __KERNEL_DS +.align L1_CACHE_BYTES, 0xcc +SYM_CODE_END(mds_verw_sel); +/* For KVM */ +EXPORT_SYMBOL_GPL(mds_verw_sel); + +.popsection + diff -Nru linux-5.10.209/arch/x86/entry/entry_32.S linux-5.10.216/arch/x86/entry/entry_32.S --- linux-5.10.209/arch/x86/entry/entry_32.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/entry/entry_32.S 2024-05-02 14:23:46.000000000 +0000 @@ -20,7 +20,7 @@ * 1C(%esp) - %ds * 20(%esp) - %es * 24(%esp) - %fs - * 28(%esp) - %gs saved iff !CONFIG_X86_32_LAZY_GS + * 28(%esp) - unused -- was %gs on old stackprotector kernels * 2C(%esp) - orig_eax * 30(%esp) - %eip * 34(%esp) - %cs @@ -56,14 +56,9 @@ /* * User gs save/restore * - * %gs is used for userland TLS and kernel only uses it for stack - * canary which is required to be at %gs:20 by gcc. Read the comment - * at the top of stackprotector.h for more info. - * - * Local labels 98 and 99 are used. + * This is leftover junk from CONFIG_X86_32_LAZY_GS. A subsequent patch + * will remove it entirely. */ -#ifdef CONFIG_X86_32_LAZY_GS - /* unfortunately push/pop can't be no-op */ .macro PUSH_GS pushl $0 @@ -86,49 +81,6 @@ .macro SET_KERNEL_GS reg .endm -#else /* CONFIG_X86_32_LAZY_GS */ - -.macro PUSH_GS - pushl %gs -.endm - -.macro POP_GS pop=0 -98: popl %gs - .if \pop <> 0 - add $\pop, %esp - .endif -.endm -.macro POP_GS_EX -.pushsection .fixup, "ax" -99: movl $0, (%esp) - jmp 98b -.popsection - _ASM_EXTABLE(98b, 99b) -.endm - -.macro PTGS_TO_GS -98: mov PT_GS(%esp), %gs -.endm -.macro PTGS_TO_GS_EX -.pushsection .fixup, "ax" -99: movl $0, PT_GS(%esp) - jmp 98b -.popsection - _ASM_EXTABLE(98b, 99b) -.endm - -.macro GS_TO_REG reg - movl %gs, \reg -.endm -.macro REG_TO_PTGS reg - movl \reg, PT_GS(%esp) -.endm -.macro SET_KERNEL_GS reg - movl $(__KERNEL_STACK_CANARY), \reg - movl \reg, %gs -.endm - -#endif /* CONFIG_X86_32_LAZY_GS */ /* Unconditionally switch to user cr3 */ .macro SWITCH_TO_USER_CR3 scratch_reg:req @@ -779,7 +731,7 @@ #ifdef CONFIG_STACKPROTECTOR movl TASK_stack_canary(%edx), %ebx - movl %ebx, PER_CPU_VAR(stack_canary)+stack_canary_offset + movl %ebx, PER_CPU_VAR(__stack_chk_guard) #endif /* @@ -997,6 +949,7 @@ BUG_IF_WRONG_CR3 no_user_check=1 popfl popl %eax + CLEAR_CPU_BUFFERS /* * Return back to the vDSO, which will pop ecx and edx. @@ -1069,6 +1022,7 @@ /* Restore user state */ RESTORE_REGS pop=4 # skip orig_eax/error_code + CLEAR_CPU_BUFFERS .Lirq_return: /* * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization @@ -1267,6 +1221,7 @@ /* Not on SYSENTER stack. */ call exc_nmi + CLEAR_CPU_BUFFERS jmp .Lnmi_return .Lnmi_from_sysenter_stack: diff -Nru linux-5.10.209/arch/x86/entry/entry_64.S linux-5.10.216/arch/x86/entry/entry_64.S --- linux-5.10.209/arch/x86/entry/entry_64.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/entry/entry_64.S 2024-05-02 14:23:46.000000000 +0000 @@ -615,6 +615,7 @@ /* Restore RDI. */ popq %rdi SWAPGS + CLEAR_CPU_BUFFERS INTERRUPT_RETURN @@ -721,6 +722,8 @@ */ popq %rax /* Restore user RAX */ + CLEAR_CPU_BUFFERS + /* * RSP now points to an ordinary IRET frame, except that the page * is read-only and RSP[31:16] are preloaded with the userspace @@ -1488,6 +1491,12 @@ movq $0, 5*8(%rsp) /* clear "NMI executing" */ /* + * Skip CLEAR_CPU_BUFFERS here, since it only helps in rare cases like + * NMI in kernel after user state is restored. For an unprivileged user + * these conditions are hard to meet. + */ + + /* * iretq reads the "iret" frame and exits the NMI stack in a * single instruction. We are returning to kernel mode, so this * cannot result in a fault. Similarly, we don't need to worry @@ -1504,6 +1513,7 @@ SYM_CODE_START(ignore_sysret) UNWIND_HINT_EMPTY mov $-ENOSYS, %eax + CLEAR_CPU_BUFFERS sysretl SYM_CODE_END(ignore_sysret) #endif diff -Nru linux-5.10.209/arch/x86/entry/entry_64_compat.S linux-5.10.216/arch/x86/entry/entry_64_compat.S --- linux-5.10.209/arch/x86/entry/entry_64_compat.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/entry/entry_64_compat.S 2024-05-02 14:23:46.000000000 +0000 @@ -319,6 +319,7 @@ xorl %r9d, %r9d xorl %r10d, %r10d swapgs + CLEAR_CPU_BUFFERS sysretl SYM_CODE_END(entry_SYSCALL_compat) diff -Nru linux-5.10.209/arch/x86/include/asm/apic.h linux-5.10.216/arch/x86/include/asm/apic.h --- linux-5.10.209/arch/x86/include/asm/apic.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/apic.h 2024-05-02 14:23:46.000000000 +0000 @@ -12,6 +12,7 @@ #include #include #include +#include #define ARCH_APICTIMER_STOPS_ON_C3 1 @@ -111,7 +112,7 @@ static inline u32 native_apic_mem_read(u32 reg) { - return *((volatile u32 *)(APIC_BASE + reg)); + return readl((void __iomem *)(APIC_BASE + reg)); } extern void native_apic_wait_icr_idle(void); diff -Nru linux-5.10.209/arch/x86/include/asm/asm-prototypes.h linux-5.10.216/arch/x86/include/asm/asm-prototypes.h --- linux-5.10.209/arch/x86/include/asm/asm-prototypes.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/asm-prototypes.h 2024-05-02 14:23:46.000000000 +0000 @@ -12,6 +12,7 @@ #include #include #include +#include #ifndef CONFIG_X86_CMPXCHG64 extern void cmpxchg8b_emu(void); diff -Nru linux-5.10.209/arch/x86/include/asm/asm.h linux-5.10.216/arch/x86/include/asm/asm.h --- linux-5.10.209/arch/x86/include/asm/asm.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/asm.h 2024-05-02 14:23:46.000000000 +0000 @@ -6,12 +6,14 @@ # define __ASM_FORM(x) x # define __ASM_FORM_RAW(x) x # define __ASM_FORM_COMMA(x) x, +# define __ASM_REGPFX % #else #include # define __ASM_FORM(x) " " __stringify(x) " " # define __ASM_FORM_RAW(x) __stringify(x) # define __ASM_FORM_COMMA(x) " " __stringify(x) "," +# define __ASM_REGPFX %% #endif #ifndef __x86_64__ @@ -48,6 +50,9 @@ #define _ASM_SI __ASM_REG(si) #define _ASM_DI __ASM_REG(di) +/* Adds a (%rip) suffix on 64 bits only; for immediate memory references */ +#define _ASM_RIP(x) __ASM_SEL_RAW(x, x (__ASM_REGPFX rip)) + #ifndef __x86_64__ /* 32 bit */ diff -Nru linux-5.10.209/arch/x86/include/asm/cpu_entry_area.h linux-5.10.216/arch/x86/include/asm/cpu_entry_area.h --- linux-5.10.209/arch/x86/include/asm/cpu_entry_area.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/cpu_entry_area.h 2024-05-02 14:23:46.000000000 +0000 @@ -143,7 +143,7 @@ extern struct cpu_entry_area *get_cpu_entry_area(int cpu); -static inline struct entry_stack *cpu_entry_stack(int cpu) +static __always_inline struct entry_stack *cpu_entry_stack(int cpu) { return &get_cpu_entry_area(cpu)->entry_stack_page.stack; } diff -Nru linux-5.10.209/arch/x86/include/asm/cpufeature.h linux-5.10.216/arch/x86/include/asm/cpufeature.h --- linux-5.10.209/arch/x86/include/asm/cpufeature.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/cpufeature.h 2024-05-02 14:23:46.000000000 +0000 @@ -33,6 +33,8 @@ CPUID_7_EDX, CPUID_8000_001F_EAX, CPUID_8000_0021_EAX, + CPUID_LNX_5, + NR_CPUID_WORDS, }; #ifdef CONFIG_X86_FEATURE_NAMES @@ -93,8 +95,9 @@ CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 19, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 20, feature_bit) || \ + CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 21, feature_bit) || \ REQUIRED_MASK_CHECK || \ - BUILD_BUG_ON_ZERO(NCAPINTS != 21)) + BUILD_BUG_ON_ZERO(NCAPINTS != 22)) #define DISABLED_MASK_BIT_SET(feature_bit) \ ( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 0, feature_bit) || \ @@ -118,8 +121,9 @@ CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 19, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 20, feature_bit) || \ + CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 21, feature_bit) || \ DISABLED_MASK_CHECK || \ - BUILD_BUG_ON_ZERO(NCAPINTS != 21)) + BUILD_BUG_ON_ZERO(NCAPINTS != 22)) #define cpu_has(c, bit) \ (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \ diff -Nru linux-5.10.209/arch/x86/include/asm/cpufeatures.h linux-5.10.216/arch/x86/include/asm/cpufeatures.h --- linux-5.10.209/arch/x86/include/asm/cpufeatures.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/cpufeatures.h 2024-05-02 14:23:46.000000000 +0000 @@ -13,7 +13,7 @@ /* * Defines x86 CPU feature bits */ -#define NCAPINTS 21 /* N 32-bit words worth of info */ +#define NCAPINTS 22 /* N 32-bit words worth of info */ #define NBUGINTS 2 /* N 32-bit bug flags */ /* @@ -300,6 +300,7 @@ #define X86_FEATURE_USE_IBPB_FW (11*32+16) /* "" Use IBPB during runtime firmware calls */ #define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17) /* "" Fill RSB on VM exit when EIBRS is enabled */ #define X86_FEATURE_MSR_TSX_CTRL (11*32+18) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ +#define X86_FEATURE_CLEAR_CPU_BUF (11*32+19) /* "" Clear CPU buffers using VERW */ #define X86_FEATURE_SRSO (11*32+24) /* "" AMD BTB untrain RETs */ #define X86_FEATURE_SRSO_ALIAS (11*32+25) /* "" AMD BTB untrain RETs through aliasing */ @@ -403,6 +404,7 @@ #define X86_FEATURE_SEV_ES (19*32+ 3) /* AMD Secure Encrypted Virtualization - Encrypted State */ #define X86_FEATURE_SME_COHERENT (19*32+10) /* "" AMD hardware-enforced cache coherency */ +#define X86_FEATURE_AUTOIBRS (20*32+ 8) /* "" Automatic IBRS */ #define X86_FEATURE_SBPB (20*32+27) /* "" Selective Branch Prediction Barrier */ #define X86_FEATURE_IBPB_BRTYPE (20*32+28) /* "" MSR_PRED_CMD[IBPB] flushes all branch type predictions */ #define X86_FEATURE_SRSO_NO (20*32+29) /* "" CPU is not affected by SRSO */ @@ -452,4 +454,5 @@ /* BUG word 2 */ #define X86_BUG_SRSO X86_BUG(1*32 + 0) /* AMD SRSO bug */ #define X86_BUG_DIV0 X86_BUG(1*32 + 1) /* AMD DIV0 speculation bug */ +#define X86_BUG_RFDS X86_BUG(1*32 + 2) /* CPU is vulnerable to Register File Data Sampling */ #endif /* _ASM_X86_CPUFEATURES_H */ diff -Nru linux-5.10.209/arch/x86/include/asm/disabled-features.h linux-5.10.216/arch/x86/include/asm/disabled-features.h --- linux-5.10.209/arch/x86/include/asm/disabled-features.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/disabled-features.h 2024-05-02 14:23:46.000000000 +0000 @@ -103,6 +103,7 @@ #define DISABLED_MASK18 0 #define DISABLED_MASK19 0 #define DISABLED_MASK20 0 -#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21) +#define DISABLED_MASK21 0 +#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22) #endif /* _ASM_X86_DISABLED_FEATURES_H */ diff -Nru linux-5.10.209/arch/x86/include/asm/entry-common.h linux-5.10.216/arch/x86/include/asm/entry-common.h --- linux-5.10.209/arch/x86/include/asm/entry-common.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/entry-common.h 2024-05-02 14:23:46.000000000 +0000 @@ -77,7 +77,6 @@ static __always_inline void arch_exit_to_user_mode(void) { - mds_user_clear_cpu_buffers(); amd_clear_divider(); } #define arch_exit_to_user_mode arch_exit_to_user_mode diff -Nru linux-5.10.209/arch/x86/include/asm/irqflags.h linux-5.10.216/arch/x86/include/asm/irqflags.h --- linux-5.10.209/arch/x86/include/asm/irqflags.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/irqflags.h 2024-05-02 14:23:46.000000000 +0000 @@ -134,6 +134,7 @@ #define INTERRUPT_RETURN jmp native_iret #define USERGS_SYSRET64 \ swapgs; \ + CLEAR_CPU_BUFFERS; \ sysretq; #define USERGS_SYSRET32 \ swapgs; \ diff -Nru linux-5.10.209/arch/x86/include/asm/msr-index.h linux-5.10.216/arch/x86/include/asm/msr-index.h --- linux-5.10.209/arch/x86/include/asm/msr-index.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/msr-index.h 2024-05-02 14:23:46.000000000 +0000 @@ -30,6 +30,7 @@ #define _EFER_SVME 12 /* Enable virtualization */ #define _EFER_LMSLE 13 /* Long Mode Segment Limit Enable */ #define _EFER_FFXSR 14 /* Enable Fast FXSAVE/FXRSTOR */ +#define _EFER_AUTOIBRS 21 /* Enable Automatic IBRS */ #define EFER_SCE (1<<_EFER_SCE) #define EFER_LME (1<<_EFER_LME) @@ -38,6 +39,7 @@ #define EFER_SVME (1<<_EFER_SVME) #define EFER_LMSLE (1<<_EFER_LMSLE) #define EFER_FFXSR (1<<_EFER_FFXSR) +#define EFER_AUTOIBRS (1<<_EFER_AUTOIBRS) /* Intel MSRs. Some also available on other CPUs */ @@ -166,6 +168,14 @@ * CPU is not vulnerable to Gather * Data Sampling (GDS). */ +#define ARCH_CAP_RFDS_NO BIT(27) /* + * Not susceptible to Register + * File Data Sampling. + */ +#define ARCH_CAP_RFDS_CLEAR BIT(28) /* + * VERW clears CPU Register + * File. + */ #define MSR_IA32_FLUSH_CMD 0x0000010b #define L1D_FLUSH BIT(0) /* diff -Nru linux-5.10.209/arch/x86/include/asm/nospec-branch.h linux-5.10.216/arch/x86/include/asm/nospec-branch.h --- linux-5.10.209/arch/x86/include/asm/nospec-branch.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/nospec-branch.h 2024-05-02 14:23:46.000000000 +0000 @@ -155,11 +155,20 @@ .Lskip_rsb_\@: .endm +/* + * The CALL to srso_alias_untrain_ret() must be patched in directly at + * the spot where untraining must be done, ie., srso_alias_untrain_ret() + * must be the target of a CALL instruction instead of indirectly + * jumping to a wrapper which then calls it. Therefore, this macro is + * called outside of __UNTRAIN_RET below, for the time being, before the + * kernel can support nested alternatives with arbitrary nesting. + */ +.macro CALL_UNTRAIN_RET #ifdef CONFIG_CPU_UNRET_ENTRY -#define CALL_UNTRAIN_RET "call entry_untrain_ret" -#else -#define CALL_UNTRAIN_RET "" + ALTERNATIVE_2 "", "call entry_untrain_ret", X86_FEATURE_UNRET, \ + "call srso_alias_untrain_ret", X86_FEATURE_SRSO_ALIAS #endif +.endm /* * Mitigate RETBleed for AMD/Hygon Zen uarch. Requires KERNEL CR3 because the @@ -176,12 +185,24 @@ #if defined(CONFIG_CPU_UNRET_ENTRY) || defined(CONFIG_CPU_IBPB_ENTRY) || \ defined(CONFIG_CPU_SRSO) ANNOTATE_UNRET_END - ALTERNATIVE_2 "", \ - CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ - "call entry_ibpb", X86_FEATURE_ENTRY_IBPB + CALL_UNTRAIN_RET + ALTERNATIVE "", "call entry_ibpb", X86_FEATURE_ENTRY_IBPB #endif .endm +/* + * Macro to execute VERW instruction that mitigate transient data sampling + * attacks such as MDS. On affected systems a microcode update overloaded VERW + * instruction to also clear the CPU buffers. VERW clobbers CFLAGS.ZF. + * + * Note: Only the memory operand variant of VERW clears the CPU buffers. + */ +.macro CLEAR_CPU_BUFFERS + ALTERNATIVE "jmp .Lskip_verw_\@", "", X86_FEATURE_CLEAR_CPU_BUF + verw _ASM_RIP(mds_verw_sel) +.Lskip_verw_\@: +.endm + #else /* __ASSEMBLY__ */ #define ANNOTATE_RETPOLINE_SAFE \ @@ -207,6 +228,8 @@ extern void entry_untrain_ret(void); extern void entry_ibpb(void); +extern void (*x86_return_thunk)(void); + #ifdef CONFIG_RETPOLINE typedef u8 retpoline_thunk_t[RETPOLINE_THUNK_SIZE]; @@ -355,11 +378,12 @@ DECLARE_STATIC_KEY_FALSE(switch_mm_cond_ibpb); DECLARE_STATIC_KEY_FALSE(switch_mm_always_ibpb); -DECLARE_STATIC_KEY_FALSE(mds_user_clear); DECLARE_STATIC_KEY_FALSE(mds_idle_clear); DECLARE_STATIC_KEY_FALSE(mmio_stale_data_clear); +extern u16 mds_verw_sel; + #include /** @@ -386,17 +410,6 @@ } /** - * mds_user_clear_cpu_buffers - Mitigation for MDS and TAA vulnerability - * - * Clear CPU buffers if the corresponding static key is enabled - */ -static __always_inline void mds_user_clear_cpu_buffers(void) -{ - if (static_branch_likely(&mds_user_clear)) - mds_clear_cpu_buffers(); -} - -/** * mds_idle_clear_cpu_buffers - Mitigation for MDS vulnerability * * Clear CPU buffers if the corresponding static key is enabled diff -Nru linux-5.10.209/arch/x86/include/asm/processor.h linux-5.10.216/arch/x86/include/asm/processor.h --- linux-5.10.209/arch/x86/include/asm/processor.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/processor.h 2024-05-02 14:23:46.000000000 +0000 @@ -441,6 +441,9 @@ * GCC hardcodes the stack canary as %gs:40. Since the * irq_stack is the object at %gs:0, we reserve the bottom * 48 bytes of the irq stack for the canary. + * + * Once we are willing to require -mstack-protector-guard-symbol= + * support for x86_64 stackprotector, we can get rid of this. */ char gs_base[40]; unsigned long stack_canary; @@ -461,17 +464,7 @@ void current_save_fsgs(void); #else /* X86_64 */ #ifdef CONFIG_STACKPROTECTOR -/* - * Make sure stack canary segment base is cached-aligned: - * "For Intel Atom processors, avoid non zero segment base address - * that is not aligned to cache line boundary at all cost." - * (Optim Ref Manual Assembly/Compiler Coding Rule 15.) - */ -struct stack_canary { - char __pad[20]; /* canary at %gs:20 */ - unsigned long canary; -}; -DECLARE_PER_CPU_ALIGNED(struct stack_canary, stack_canary); +DECLARE_PER_CPU(unsigned long, __stack_chk_guard); #endif /* Per CPU softirq stack pointer */ DECLARE_PER_CPU(struct irq_stack *, softirq_stack_ptr); diff -Nru linux-5.10.209/arch/x86/include/asm/ptrace.h linux-5.10.216/arch/x86/include/asm/ptrace.h --- linux-5.10.209/arch/x86/include/asm/ptrace.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/ptrace.h 2024-05-02 14:23:46.000000000 +0000 @@ -37,7 +37,10 @@ unsigned short __esh; unsigned short fs; unsigned short __fsh; - /* On interrupt, gs and __gsh store the vector number. */ + /* + * On interrupt, gs and __gsh store the vector number. They never + * store gs any more. + */ unsigned short gs; unsigned short __gsh; /* On interrupt, this is the error code. */ diff -Nru linux-5.10.209/arch/x86/include/asm/required-features.h linux-5.10.216/arch/x86/include/asm/required-features.h --- linux-5.10.209/arch/x86/include/asm/required-features.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/required-features.h 2024-05-02 14:23:46.000000000 +0000 @@ -103,6 +103,7 @@ #define REQUIRED_MASK18 0 #define REQUIRED_MASK19 0 #define REQUIRED_MASK20 0 -#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21) +#define REQUIRED_MASK21 0 +#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22) #endif /* _ASM_X86_REQUIRED_FEATURES_H */ diff -Nru linux-5.10.209/arch/x86/include/asm/segment.h linux-5.10.216/arch/x86/include/asm/segment.h --- linux-5.10.209/arch/x86/include/asm/segment.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/segment.h 2024-05-02 14:23:46.000000000 +0000 @@ -95,7 +95,7 @@ * * 26 - ESPFIX small SS * 27 - per-cpu [ offset to per-cpu data area ] - * 28 - stack_canary-20 [ for stack protector ] <=== cacheline #8 + * 28 - unused * 29 - unused * 30 - unused * 31 - TSS for double fault handler @@ -118,7 +118,6 @@ #define GDT_ENTRY_ESPFIX_SS 26 #define GDT_ENTRY_PERCPU 27 -#define GDT_ENTRY_STACK_CANARY 28 #define GDT_ENTRY_DOUBLEFAULT_TSS 31 @@ -158,12 +157,6 @@ # define __KERNEL_PERCPU 0 #endif -#ifdef CONFIG_STACKPROTECTOR -# define __KERNEL_STACK_CANARY (GDT_ENTRY_STACK_CANARY*8) -#else -# define __KERNEL_STACK_CANARY 0 -#endif - #else /* 64-bit: */ #include @@ -364,22 +357,15 @@ asm("mov %%" #seg ",%0":"=r" (value) : : "memory") /* - * x86-32 user GS accessors: + * x86-32 user GS accessors. This is ugly and could do with some cleaning up. */ #ifdef CONFIG_X86_32 -# ifdef CONFIG_X86_32_LAZY_GS -# define get_user_gs(regs) (u16)({ unsigned long v; savesegment(gs, v); v; }) -# define set_user_gs(regs, v) loadsegment(gs, (unsigned long)(v)) -# define task_user_gs(tsk) ((tsk)->thread.gs) -# define lazy_save_gs(v) savesegment(gs, (v)) -# define lazy_load_gs(v) loadsegment(gs, (v)) -# else /* X86_32_LAZY_GS */ -# define get_user_gs(regs) (u16)((regs)->gs) -# define set_user_gs(regs, v) do { (regs)->gs = (v); } while (0) -# define task_user_gs(tsk) (task_pt_regs(tsk)->gs) -# define lazy_save_gs(v) do { } while (0) -# define lazy_load_gs(v) do { } while (0) -# endif /* X86_32_LAZY_GS */ +# define get_user_gs(regs) (u16)({ unsigned long v; savesegment(gs, v); v; }) +# define set_user_gs(regs, v) loadsegment(gs, (unsigned long)(v)) +# define task_user_gs(tsk) ((tsk)->thread.gs) +# define lazy_save_gs(v) savesegment(gs, (v)) +# define lazy_load_gs(v) loadsegment(gs, (v)) +# define load_gs_index(v) loadsegment(gs, (v)) #endif /* X86_32 */ #endif /* !__ASSEMBLY__ */ diff -Nru linux-5.10.209/arch/x86/include/asm/setup.h linux-5.10.216/arch/x86/include/asm/setup.h --- linux-5.10.209/arch/x86/include/asm/setup.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/setup.h 2024-05-02 14:23:46.000000000 +0000 @@ -49,7 +49,6 @@ extern void reserve_standard_io_resources(void); extern void i386_reserve_resources(void); extern unsigned long __startup_64(unsigned long physaddr, struct boot_params *bp); -extern unsigned long __startup_secondary_64(void); extern void startup_64_setup_env(unsigned long physbase); extern void early_setup_idt(void); extern void __init do_early_exception(struct pt_regs *regs, int trapnr); diff -Nru linux-5.10.209/arch/x86/include/asm/stackprotector.h linux-5.10.216/arch/x86/include/asm/stackprotector.h --- linux-5.10.209/arch/x86/include/asm/stackprotector.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/stackprotector.h 2024-05-02 14:23:46.000000000 +0000 @@ -5,30 +5,23 @@ * Stack protector works by putting predefined pattern at the start of * the stack frame and verifying that it hasn't been overwritten when * returning from the function. The pattern is called stack canary - * and unfortunately gcc requires it to be at a fixed offset from %gs. - * On x86_64, the offset is 40 bytes and on x86_32 20 bytes. x86_64 - * and x86_32 use segment registers differently and thus handles this - * requirement differently. + * and unfortunately gcc historically required it to be at a fixed offset + * from the percpu segment base. On x86_64, the offset is 40 bytes. * - * On x86_64, %gs is shared by percpu area and stack canary. All - * percpu symbols are zero based and %gs points to the base of percpu - * area. The first occupant of the percpu area is always - * fixed_percpu_data which contains stack_canary at offset 40. Userland - * %gs is always saved and restored on kernel entry and exit using - * swapgs, so stack protector doesn't add any complexity there. + * The same segment is shared by percpu area and stack canary. On + * x86_64, percpu symbols are zero based and %gs (64-bit) points to the + * base of percpu area. The first occupant of the percpu area is always + * fixed_percpu_data which contains stack_canary at the approproate + * offset. On x86_32, the stack canary is just a regular percpu + * variable. * - * On x86_32, it's slightly more complicated. As in x86_64, %gs is - * used for userland TLS. Unfortunately, some processors are much - * slower at loading segment registers with different value when - * entering and leaving the kernel, so the kernel uses %fs for percpu - * area and manages %gs lazily so that %gs is switched only when - * necessary, usually during task switch. + * Putting percpu data in %fs on 32-bit is a minor optimization compared to + * using %gs. Since 32-bit userspace normally has %fs == 0, we are likely + * to load 0 into %fs on exit to usermode, whereas with percpu data in + * %gs, we are likely to load a non-null %gs on return to user mode. * - * As gcc requires the stack canary at %gs:20, %gs can't be managed - * lazily if stack protector is enabled, so the kernel saves and - * restores userland %gs on kernel entry and exit. This behavior is - * controlled by CONFIG_X86_32_LAZY_GS and accessors are defined in - * system.h to hide the details. + * Once we are willing to require GCC 8.1 or better for 64-bit stackprotector + * support, we can remove some of this complexity. */ #ifndef _ASM_STACKPROTECTOR_H @@ -45,14 +38,6 @@ #include /* - * 24 byte read-only segment initializer for stack canary. Linker - * can't handle the address bit shifting. Address will be set in - * head_32 for boot CPU and setup_per_cpu_areas() for others. - */ -#define GDT_STACK_CANARY_INIT \ - [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x18), - -/* * Initialize the stackprotector canary value. * * NOTE: this must only be called from functions that never return @@ -86,7 +71,7 @@ #ifdef CONFIG_X86_64 this_cpu_write(fixed_percpu_data.stack_canary, canary); #else - this_cpu_write(stack_canary.canary, canary); + this_cpu_write(__stack_chk_guard, canary); #endif } @@ -95,48 +80,16 @@ #ifdef CONFIG_X86_64 per_cpu(fixed_percpu_data.stack_canary, cpu) = idle->stack_canary; #else - per_cpu(stack_canary.canary, cpu) = idle->stack_canary; -#endif -} - -static inline void setup_stack_canary_segment(int cpu) -{ -#ifdef CONFIG_X86_32 - unsigned long canary = (unsigned long)&per_cpu(stack_canary, cpu); - struct desc_struct *gdt_table = get_cpu_gdt_rw(cpu); - struct desc_struct desc; - - desc = gdt_table[GDT_ENTRY_STACK_CANARY]; - set_desc_base(&desc, canary); - write_gdt_entry(gdt_table, GDT_ENTRY_STACK_CANARY, &desc, DESCTYPE_S); -#endif -} - -static inline void load_stack_canary_segment(void) -{ -#ifdef CONFIG_X86_32 - asm("mov %0, %%gs" : : "r" (__KERNEL_STACK_CANARY) : "memory"); + per_cpu(__stack_chk_guard, cpu) = idle->stack_canary; #endif } #else /* STACKPROTECTOR */ -#define GDT_STACK_CANARY_INIT - /* dummy boot_init_stack_canary() is defined in linux/stackprotector.h */ -static inline void setup_stack_canary_segment(int cpu) -{ } - static inline void cpu_init_stack_canary(int cpu, struct task_struct *idle) { } -static inline void load_stack_canary_segment(void) -{ -#ifdef CONFIG_X86_32 - asm volatile ("mov %0, %%gs" : : "r" (0)); -#endif -} - #endif /* STACKPROTECTOR */ #endif /* _ASM_STACKPROTECTOR_H */ diff -Nru linux-5.10.209/arch/x86/include/asm/suspend_32.h linux-5.10.216/arch/x86/include/asm/suspend_32.h --- linux-5.10.209/arch/x86/include/asm/suspend_32.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/suspend_32.h 2024-05-02 14:23:46.000000000 +0000 @@ -12,13 +12,6 @@ /* image of the saved processor state */ struct saved_context { - /* - * On x86_32, all segment registers, with the possible exception of - * gs, are saved at kernel entry in pt_regs. - */ -#ifdef CONFIG_X86_32_LAZY_GS - u16 gs; -#endif unsigned long cr0, cr2, cr3, cr4; u64 misc_enable; struct saved_msrs saved_msrs; @@ -29,6 +22,11 @@ unsigned long tr; unsigned long safety; unsigned long return_address; + /* + * On x86_32, all segment registers except gs are saved at kernel + * entry in pt_regs. + */ + u16 gs; bool misc_enable_saved; } __attribute__((packed)); diff -Nru linux-5.10.209/arch/x86/include/asm/syscall_wrapper.h linux-5.10.216/arch/x86/include/asm/syscall_wrapper.h --- linux-5.10.209/arch/x86/include/asm/syscall_wrapper.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/syscall_wrapper.h 2024-05-02 14:23:46.000000000 +0000 @@ -58,12 +58,29 @@ ,,regs->di,,regs->si,,regs->dx \ ,,regs->r10,,regs->r8,,regs->r9) \ + +/* SYSCALL_PT_ARGS is Adapted from s390x */ +#define SYSCALL_PT_ARG6(m, t1, t2, t3, t4, t5, t6) \ + SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp)) +#define SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5) \ + SYSCALL_PT_ARG4(m, t1, t2, t3, t4), m(t5, (regs->di)) +#define SYSCALL_PT_ARG4(m, t1, t2, t3, t4) \ + SYSCALL_PT_ARG3(m, t1, t2, t3), m(t4, (regs->si)) +#define SYSCALL_PT_ARG3(m, t1, t2, t3) \ + SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx)) +#define SYSCALL_PT_ARG2(m, t1, t2) \ + SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx)) +#define SYSCALL_PT_ARG1(m, t1) m(t1, (regs->bx)) +#define SYSCALL_PT_ARGS(x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__) + +#define __SC_COMPAT_CAST(t, a) \ + (__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U))) \ + (unsigned int)a + /* Mapping of registers to parameters for syscalls on i386 */ #define SC_IA32_REGS_TO_ARGS(x, ...) \ - __MAP(x,__SC_ARGS \ - ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ - ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ - ,,(unsigned int)regs->di,,(unsigned int)regs->bp) + SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST, \ + __MAP(x, __SC_TYPE, __VA_ARGS__)) \ #define __SYS_STUB0(abi, name) \ long __##abi##_##name(const struct pt_regs *regs); \ diff -Nru linux-5.10.209/arch/x86/include/asm/text-patching.h linux-5.10.216/arch/x86/include/asm/text-patching.h --- linux-5.10.209/arch/x86/include/asm/text-patching.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/text-patching.h 2024-05-02 14:23:46.000000000 +0000 @@ -96,24 +96,40 @@ }; static __always_inline -void *text_gen_insn(u8 opcode, const void *addr, const void *dest) +void __text_gen_insn(void *buf, u8 opcode, const void *addr, const void *dest, int size) { - static union text_poke_insn insn; /* per instance */ - int size = text_opcode_size(opcode); + union text_poke_insn *insn = buf; + + BUG_ON(size < text_opcode_size(opcode)); - insn.opcode = opcode; + /* + * Hide the addresses to avoid the compiler folding in constants when + * referencing code, these can mess up annotations like + * ANNOTATE_NOENDBR. + */ + OPTIMIZER_HIDE_VAR(insn); + OPTIMIZER_HIDE_VAR(addr); + OPTIMIZER_HIDE_VAR(dest); + + insn->opcode = opcode; if (size > 1) { - insn.disp = (long)dest - (long)(addr + size); + insn->disp = (long)dest - (long)(addr + size); if (size == 2) { /* - * Ensure that for JMP9 the displacement + * Ensure that for JMP8 the displacement * actually fits the signed byte. */ - BUG_ON((insn.disp >> 31) != (insn.disp >> 7)); + BUG_ON((insn->disp >> 31) != (insn->disp >> 7)); } } +} +static __always_inline +void *text_gen_insn(u8 opcode, const void *addr, const void *dest) +{ + static union text_poke_insn insn; /* per instance */ + __text_gen_insn(&insn, opcode, addr, dest, text_opcode_size(opcode)); return &insn.text; } diff -Nru linux-5.10.209/arch/x86/include/asm/uaccess.h linux-5.10.216/arch/x86/include/asm/uaccess.h --- linux-5.10.209/arch/x86/include/asm/uaccess.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/uaccess.h 2024-05-02 14:23:46.000000000 +0000 @@ -414,6 +414,103 @@ #endif // CONFIG_CC_ASM_GOTO_OUTPUT +#ifdef CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT +#define __try_cmpxchg_user_asm(itype, ltype, _ptr, _pold, _new, label) ({ \ + bool success; \ + __typeof__(_ptr) _old = (__typeof__(_ptr))(_pold); \ + __typeof__(*(_ptr)) __old = *_old; \ + __typeof__(*(_ptr)) __new = (_new); \ + asm_volatile_goto("\n" \ + "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\ + _ASM_EXTABLE_UA(1b, %l[label]) \ + : CC_OUT(z) (success), \ + [ptr] "+m" (*_ptr), \ + [old] "+a" (__old) \ + : [new] ltype (__new) \ + : "memory" \ + : label); \ + if (unlikely(!success)) \ + *_old = __old; \ + likely(success); }) + +#ifdef CONFIG_X86_32 +#define __try_cmpxchg64_user_asm(_ptr, _pold, _new, label) ({ \ + bool success; \ + __typeof__(_ptr) _old = (__typeof__(_ptr))(_pold); \ + __typeof__(*(_ptr)) __old = *_old; \ + __typeof__(*(_ptr)) __new = (_new); \ + asm_volatile_goto("\n" \ + "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n" \ + _ASM_EXTABLE_UA(1b, %l[label]) \ + : CC_OUT(z) (success), \ + "+A" (__old), \ + [ptr] "+m" (*_ptr) \ + : "b" ((u32)__new), \ + "c" ((u32)((u64)__new >> 32)) \ + : "memory" \ + : label); \ + if (unlikely(!success)) \ + *_old = __old; \ + likely(success); }) +#endif // CONFIG_X86_32 +#else // !CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT +#define __try_cmpxchg_user_asm(itype, ltype, _ptr, _pold, _new, label) ({ \ + int __err = 0; \ + bool success; \ + __typeof__(_ptr) _old = (__typeof__(_ptr))(_pold); \ + __typeof__(*(_ptr)) __old = *_old; \ + __typeof__(*(_ptr)) __new = (_new); \ + asm volatile("\n" \ + "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\ + CC_SET(z) \ + "2:\n" \ + _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_EFAULT_REG, \ + %[errout]) \ + : CC_OUT(z) (success), \ + [errout] "+r" (__err), \ + [ptr] "+m" (*_ptr), \ + [old] "+a" (__old) \ + : [new] ltype (__new) \ + : "memory"); \ + if (unlikely(__err)) \ + goto label; \ + if (unlikely(!success)) \ + *_old = __old; \ + likely(success); }) + +#ifdef CONFIG_X86_32 +/* + * Unlike the normal CMPXCHG, hardcode ECX for both success/fail and error. + * There are only six GPRs available and four (EAX, EBX, ECX, and EDX) are + * hardcoded by CMPXCHG8B, leaving only ESI and EDI. If the compiler uses + * both ESI and EDI for the memory operand, compilation will fail if the error + * is an input+output as there will be no register available for input. + */ +#define __try_cmpxchg64_user_asm(_ptr, _pold, _new, label) ({ \ + int __result; \ + __typeof__(_ptr) _old = (__typeof__(_ptr))(_pold); \ + __typeof__(*(_ptr)) __old = *_old; \ + __typeof__(*(_ptr)) __new = (_new); \ + asm volatile("\n" \ + "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n" \ + "mov $0, %%ecx\n\t" \ + "setz %%cl\n" \ + "2:\n" \ + _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_EFAULT_REG, %%ecx) \ + : [result]"=c" (__result), \ + "+A" (__old), \ + [ptr] "+m" (*_ptr) \ + : "b" ((u32)__new), \ + "c" ((u32)((u64)__new >> 32)) \ + : "memory", "cc"); \ + if (unlikely(__result < 0)) \ + goto label; \ + if (unlikely(!__result)) \ + *_old = __old; \ + likely(__result); }) +#endif // CONFIG_X86_32 +#endif // CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT + /* FIXME: this hack is definitely wrong -AK */ struct __large_struct { unsigned long buf[100]; }; #define __m(x) (*(struct __large_struct __user *)(x)) @@ -506,6 +603,51 @@ } while (0) #endif // CONFIG_CC_HAS_ASM_GOTO_OUTPUT +extern void __try_cmpxchg_user_wrong_size(void); + +#ifndef CONFIG_X86_32 +#define __try_cmpxchg64_user_asm(_ptr, _oldp, _nval, _label) \ + __try_cmpxchg_user_asm("q", "r", (_ptr), (_oldp), (_nval), _label) +#endif + +/* + * Force the pointer to u to match the size expected by the asm helper. + * clang/LLVM compiles all cases and only discards the unused paths after + * processing errors, which breaks i386 if the pointer is an 8-byte value. + */ +#define unsafe_try_cmpxchg_user(_ptr, _oldp, _nval, _label) ({ \ + bool __ret; \ + __chk_user_ptr(_ptr); \ + switch (sizeof(*(_ptr))) { \ + case 1: __ret = __try_cmpxchg_user_asm("b", "q", \ + (__force u8 *)(_ptr), (_oldp), \ + (_nval), _label); \ + break; \ + case 2: __ret = __try_cmpxchg_user_asm("w", "r", \ + (__force u16 *)(_ptr), (_oldp), \ + (_nval), _label); \ + break; \ + case 4: __ret = __try_cmpxchg_user_asm("l", "r", \ + (__force u32 *)(_ptr), (_oldp), \ + (_nval), _label); \ + break; \ + case 8: __ret = __try_cmpxchg64_user_asm((__force u64 *)(_ptr), (_oldp),\ + (_nval), _label); \ + break; \ + default: __try_cmpxchg_user_wrong_size(); \ + } \ + __ret; }) + +/* "Returns" 0 on success, 1 on failure, -EFAULT if the access faults. */ +#define __try_cmpxchg_user(_ptr, _oldp, _nval, _label) ({ \ + int __ret = -EFAULT; \ + __uaccess_begin_nospec(); \ + __ret = !unsafe_try_cmpxchg_user(_ptr, _oldp, _nval, _label); \ +_label: \ + __uaccess_end(); \ + __ret; \ + }) + /* * We want the unsafe accessors to always be inlined and use * the error labels - thus the macro games. diff -Nru linux-5.10.209/arch/x86/include/asm/vsyscall.h linux-5.10.216/arch/x86/include/asm/vsyscall.h --- linux-5.10.209/arch/x86/include/asm/vsyscall.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/include/asm/vsyscall.h 2024-05-02 14:23:46.000000000 +0000 @@ -4,6 +4,7 @@ #include #include +#include #ifdef CONFIG_X86_VSYSCALL_EMULATION extern void map_vsyscall(void); @@ -24,4 +25,13 @@ } #endif +/* + * The (legacy) vsyscall page is the long page in the kernel portion + * of the address space that has user-accessible permissions. + */ +static inline bool is_vsyscall_vaddr(unsigned long vaddr) +{ + return unlikely((vaddr & PAGE_MASK) == VSYSCALL_ADDR); +} + #endif /* _ASM_X86_VSYSCALL_H */ diff -Nru linux-5.10.209/arch/x86/kernel/Makefile linux-5.10.216/arch/x86/kernel/Makefile --- linux-5.10.209/arch/x86/kernel/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -49,7 +49,6 @@ # non-deterministic coverage. KCOV_INSTRUMENT := n -CFLAGS_head$(BITS).o += -fno-stack-protector CFLAGS_cc_platform.o += -fno-stack-protector CFLAGS_irq.o := -I $(srctree)/$(src)/../include/asm/trace diff -Nru linux-5.10.209/arch/x86/kernel/alternative.c linux-5.10.216/arch/x86/kernel/alternative.c --- linux-5.10.209/arch/x86/kernel/alternative.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/alternative.c 2024-05-02 14:23:46.000000000 +0000 @@ -676,6 +676,7 @@ } #ifdef CONFIG_RETHUNK + /* * Rewrite the compiler generated return thunk tail-calls. * @@ -691,14 +692,18 @@ { int i = 0; - if (cpu_feature_enabled(X86_FEATURE_RETHUNK)) - return -1; - - bytes[i++] = RET_INSN_OPCODE; + if (cpu_feature_enabled(X86_FEATURE_RETHUNK)) { + if (x86_return_thunk == __x86_return_thunk) + return -1; + + i = JMP32_INSN_SIZE; + __text_gen_insn(bytes, JMP32_INSN_OPCODE, addr, x86_return_thunk, i); + } else { + bytes[i++] = RET_INSN_OPCODE; + } for (; i < insn->length;) bytes[i++] = INT3_INSN_OPCODE; - return i; } diff -Nru linux-5.10.209/arch/x86/kernel/asm-offsets_32.c linux-5.10.216/arch/x86/kernel/asm-offsets_32.c --- linux-5.10.209/arch/x86/kernel/asm-offsets_32.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/asm-offsets_32.c 2024-05-02 14:23:46.000000000 +0000 @@ -53,11 +53,6 @@ offsetof(struct cpu_entry_area, tss.x86_tss.sp1) - offsetofend(struct cpu_entry_area, entry_stack_page.stack)); -#ifdef CONFIG_STACKPROTECTOR - BLANK(); - OFFSET(stack_canary_offset, stack_canary, canary); -#endif - BLANK(); DEFINE(EFI_svam, offsetof(efi_runtime_services_t, set_virtual_address_map)); } diff -Nru linux-5.10.209/arch/x86/kernel/cpu/amd.c linux-5.10.216/arch/x86/kernel/cpu/amd.c --- linux-5.10.209/arch/x86/kernel/cpu/amd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/amd.c 2024-05-02 14:23:46.000000000 +0000 @@ -1049,11 +1049,11 @@ u32 good_rev = 0; switch (boot_cpu_data.x86_model) { - case 0x30 ... 0x3f: good_rev = 0x0830107a; break; - case 0x60 ... 0x67: good_rev = 0x0860010b; break; - case 0x68 ... 0x6f: good_rev = 0x08608105; break; - case 0x70 ... 0x7f: good_rev = 0x08701032; break; - case 0xa0 ... 0xaf: good_rev = 0x08a00008; break; + case 0x30 ... 0x3f: good_rev = 0x0830107b; break; + case 0x60 ... 0x67: good_rev = 0x0860010c; break; + case 0x68 ... 0x6f: good_rev = 0x08608107; break; + case 0x70 ... 0x7f: good_rev = 0x08701033; break; + case 0xa0 ... 0xaf: good_rev = 0x08a00009; break; default: return false; diff -Nru linux-5.10.209/arch/x86/kernel/cpu/bugs.c linux-5.10.216/arch/x86/kernel/cpu/bugs.c --- linux-5.10.209/arch/x86/kernel/cpu/bugs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/bugs.c 2024-05-02 14:23:46.000000000 +0000 @@ -109,9 +109,6 @@ /* Control unconditional IBPB in switch_mm() */ DEFINE_STATIC_KEY_FALSE(switch_mm_always_ibpb); -/* Control MDS CPU buffer clear before returning to user space */ -DEFINE_STATIC_KEY_FALSE(mds_user_clear); -EXPORT_SYMBOL_GPL(mds_user_clear); /* Control MDS CPU buffer clear before idling (halt, mwait) */ DEFINE_STATIC_KEY_FALSE(mds_idle_clear); EXPORT_SYMBOL_GPL(mds_idle_clear); @@ -249,7 +246,7 @@ if (!boot_cpu_has(X86_FEATURE_MD_CLEAR)) mds_mitigation = MDS_MITIGATION_VMWERV; - static_branch_enable(&mds_user_clear); + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); if (!boot_cpu_has(X86_BUG_MSBDS_ONLY) && (mds_nosmt || cpu_mitigations_auto_nosmt())) @@ -353,7 +350,7 @@ * For guests that can't determine whether the correct microcode is * present on host, enable the mitigation for UCODE_NEEDED as well. */ - static_branch_enable(&mds_user_clear); + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); if (taa_nosmt || cpu_mitigations_auto_nosmt()) cpu_smt_disable(false); @@ -421,7 +418,14 @@ */ if (boot_cpu_has_bug(X86_BUG_MDS) || (boot_cpu_has_bug(X86_BUG_TAA) && boot_cpu_has(X86_FEATURE_RTM))) - static_branch_enable(&mds_user_clear); + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + + /* + * X86_FEATURE_CLEAR_CPU_BUF could be enabled by other VERW based + * mitigations, disable KVM-only mitigation in that case. + */ + if (boot_cpu_has(X86_FEATURE_CLEAR_CPU_BUF)) + static_branch_disable(&mmio_stale_data_clear); else static_branch_enable(&mmio_stale_data_clear); @@ -474,6 +478,57 @@ early_param("mmio_stale_data", mmio_stale_data_parse_cmdline); #undef pr_fmt +#define pr_fmt(fmt) "Register File Data Sampling: " fmt + +enum rfds_mitigations { + RFDS_MITIGATION_OFF, + RFDS_MITIGATION_VERW, + RFDS_MITIGATION_UCODE_NEEDED, +}; + +/* Default mitigation for Register File Data Sampling */ +static enum rfds_mitigations rfds_mitigation __ro_after_init = + IS_ENABLED(CONFIG_MITIGATION_RFDS) ? RFDS_MITIGATION_VERW : RFDS_MITIGATION_OFF; + +static const char * const rfds_strings[] = { + [RFDS_MITIGATION_OFF] = "Vulnerable", + [RFDS_MITIGATION_VERW] = "Mitigation: Clear Register File", + [RFDS_MITIGATION_UCODE_NEEDED] = "Vulnerable: No microcode", +}; + +static void __init rfds_select_mitigation(void) +{ + if (!boot_cpu_has_bug(X86_BUG_RFDS) || cpu_mitigations_off()) { + rfds_mitigation = RFDS_MITIGATION_OFF; + return; + } + if (rfds_mitigation == RFDS_MITIGATION_OFF) + return; + + if (x86_read_arch_cap_msr() & ARCH_CAP_RFDS_CLEAR) + setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF); + else + rfds_mitigation = RFDS_MITIGATION_UCODE_NEEDED; +} + +static __init int rfds_parse_cmdline(char *str) +{ + if (!str) + return -EINVAL; + + if (!boot_cpu_has_bug(X86_BUG_RFDS)) + return 0; + + if (!strcmp(str, "off")) + rfds_mitigation = RFDS_MITIGATION_OFF; + else if (!strcmp(str, "on")) + rfds_mitigation = RFDS_MITIGATION_VERW; + + return 0; +} +early_param("reg_file_data_sampling", rfds_parse_cmdline); + +#undef pr_fmt #define pr_fmt(fmt) "" fmt static void __init md_clear_update_mitigation(void) @@ -481,12 +536,12 @@ if (cpu_mitigations_off()) return; - if (!static_key_enabled(&mds_user_clear)) + if (!boot_cpu_has(X86_FEATURE_CLEAR_CPU_BUF)) goto out; /* - * mds_user_clear is now enabled. Update MDS, TAA and MMIO Stale Data - * mitigation, if necessary. + * X86_FEATURE_CLEAR_CPU_BUF is now enabled. Update MDS, TAA and MMIO + * Stale Data mitigation, if necessary. */ if (mds_mitigation == MDS_MITIGATION_OFF && boot_cpu_has_bug(X86_BUG_MDS)) { @@ -498,11 +553,19 @@ taa_mitigation = TAA_MITIGATION_VERW; taa_select_mitigation(); } - if (mmio_mitigation == MMIO_MITIGATION_OFF && - boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) { + /* + * MMIO_MITIGATION_OFF is not checked here so that mmio_stale_data_clear + * gets updated correctly as per X86_FEATURE_CLEAR_CPU_BUF state. + */ + if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) { mmio_mitigation = MMIO_MITIGATION_VERW; mmio_select_mitigation(); } + if (rfds_mitigation == RFDS_MITIGATION_OFF && + boot_cpu_has_bug(X86_BUG_RFDS)) { + rfds_mitigation = RFDS_MITIGATION_VERW; + rfds_select_mitigation(); + } out: if (boot_cpu_has_bug(X86_BUG_MDS)) pr_info("MDS: %s\n", mds_strings[mds_mitigation]); @@ -512,6 +575,8 @@ pr_info("MMIO Stale Data: %s\n", mmio_strings[mmio_mitigation]); else if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) pr_info("MMIO Stale Data: Unknown: No mitigations\n"); + if (boot_cpu_has_bug(X86_BUG_RFDS)) + pr_info("Register File Data Sampling: %s\n", rfds_strings[rfds_mitigation]); } static void __init md_clear_select_mitigation(void) @@ -519,11 +584,12 @@ mds_select_mitigation(); taa_select_mitigation(); mmio_select_mitigation(); + rfds_select_mitigation(); /* - * As MDS, TAA and MMIO Stale Data mitigations are inter-related, update - * and print their mitigation after MDS, TAA and MMIO Stale Data - * mitigation selection is done. + * As these mitigations are inter-related and rely on VERW instruction + * to clear the microarchitural buffers, update and print their status + * after mitigation selection is done for each of these vulnerabilities. */ md_clear_update_mitigation(); } @@ -1251,19 +1317,21 @@ } /* - * If no STIBP, enhanced IBRS is enabled, or SMT impossible, STIBP + * If no STIBP, Intel enhanced IBRS is enabled, or SMT impossible, STIBP * is not required. * - * Enhanced IBRS also protects against cross-thread branch target + * Intel's Enhanced IBRS also protects against cross-thread branch target * injection in user-mode as the IBRS bit remains always set which * implicitly enables cross-thread protections. However, in legacy IBRS * mode, the IBRS bit is set only on kernel entry and cleared on return - * to userspace. This disables the implicit cross-thread protection, - * so allow for STIBP to be selected in that case. + * to userspace. AMD Automatic IBRS also does not protect userspace. + * These modes therefore disable the implicit cross-thread protection, + * so allow for STIBP to be selected in those cases. */ if (!boot_cpu_has(X86_FEATURE_STIBP) || !smt_possible || - spectre_v2_in_eibrs_mode(spectre_v2_enabled)) + (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && + !boot_cpu_has(X86_FEATURE_AUTOIBRS))) return; /* @@ -1293,9 +1361,9 @@ [SPECTRE_V2_NONE] = "Vulnerable", [SPECTRE_V2_RETPOLINE] = "Mitigation: Retpolines", [SPECTRE_V2_LFENCE] = "Mitigation: LFENCE", - [SPECTRE_V2_EIBRS] = "Mitigation: Enhanced IBRS", - [SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced IBRS + LFENCE", - [SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced IBRS + Retpolines", + [SPECTRE_V2_EIBRS] = "Mitigation: Enhanced / Automatic IBRS", + [SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced / Automatic IBRS + LFENCE", + [SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced / Automatic IBRS + Retpolines", [SPECTRE_V2_IBRS] = "Mitigation: IBRS", }; @@ -1364,7 +1432,7 @@ cmd == SPECTRE_V2_CMD_EIBRS_LFENCE || cmd == SPECTRE_V2_CMD_EIBRS_RETPOLINE) && !boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) { - pr_err("%s selected but CPU doesn't have eIBRS. Switching to AUTO select\n", + pr_err("%s selected but CPU doesn't have Enhanced or Automatic IBRS. Switching to AUTO select\n", mitigation_options[i].option); return SPECTRE_V2_CMD_AUTO; } @@ -1549,8 +1617,12 @@ pr_err(SPECTRE_V2_EIBRS_EBPF_MSG); if (spectre_v2_in_ibrs_mode(mode)) { - x86_spec_ctrl_base |= SPEC_CTRL_IBRS; - update_spec_ctrl(x86_spec_ctrl_base); + if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) { + msr_set_bit(MSR_EFER, _EFER_AUTOIBRS); + } else { + x86_spec_ctrl_base |= SPEC_CTRL_IBRS; + update_spec_ctrl(x86_spec_ctrl_base); + } } switch (mode) { @@ -1634,8 +1706,8 @@ /* * Retpoline protects the kernel, but doesn't protect firmware. IBRS * and Enhanced IBRS protect firmware too, so enable IBRS around - * firmware calls only when IBRS / Enhanced IBRS aren't otherwise - * enabled. + * firmware calls only when IBRS / Enhanced / Automatic IBRS aren't + * otherwise enabled. * * Use "mode" to check Enhanced IBRS instead of boot_cpu_has(), because * the user might select retpoline on the kernel command line and if @@ -2432,74 +2504,74 @@ static ssize_t l1tf_show_state(char *buf) { if (l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_AUTO) - return sprintf(buf, "%s\n", L1TF_DEFAULT_MSG); + return sysfs_emit(buf, "%s\n", L1TF_DEFAULT_MSG); if (l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_EPT_DISABLED || (l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_NEVER && sched_smt_active())) { - return sprintf(buf, "%s; VMX: %s\n", L1TF_DEFAULT_MSG, - l1tf_vmx_states[l1tf_vmx_mitigation]); + return sysfs_emit(buf, "%s; VMX: %s\n", L1TF_DEFAULT_MSG, + l1tf_vmx_states[l1tf_vmx_mitigation]); } - return sprintf(buf, "%s; VMX: %s, SMT %s\n", L1TF_DEFAULT_MSG, - l1tf_vmx_states[l1tf_vmx_mitigation], - sched_smt_active() ? "vulnerable" : "disabled"); + return sysfs_emit(buf, "%s; VMX: %s, SMT %s\n", L1TF_DEFAULT_MSG, + l1tf_vmx_states[l1tf_vmx_mitigation], + sched_smt_active() ? "vulnerable" : "disabled"); } static ssize_t itlb_multihit_show_state(char *buf) { if (!boot_cpu_has(X86_FEATURE_MSR_IA32_FEAT_CTL) || !boot_cpu_has(X86_FEATURE_VMX)) - return sprintf(buf, "KVM: Mitigation: VMX unsupported\n"); + return sysfs_emit(buf, "KVM: Mitigation: VMX unsupported\n"); else if (!(cr4_read_shadow() & X86_CR4_VMXE)) - return sprintf(buf, "KVM: Mitigation: VMX disabled\n"); + return sysfs_emit(buf, "KVM: Mitigation: VMX disabled\n"); else if (itlb_multihit_kvm_mitigation) - return sprintf(buf, "KVM: Mitigation: Split huge pages\n"); + return sysfs_emit(buf, "KVM: Mitigation: Split huge pages\n"); else - return sprintf(buf, "KVM: Vulnerable\n"); + return sysfs_emit(buf, "KVM: Vulnerable\n"); } #else static ssize_t l1tf_show_state(char *buf) { - return sprintf(buf, "%s\n", L1TF_DEFAULT_MSG); + return sysfs_emit(buf, "%s\n", L1TF_DEFAULT_MSG); } static ssize_t itlb_multihit_show_state(char *buf) { - return sprintf(buf, "Processor vulnerable\n"); + return sysfs_emit(buf, "Processor vulnerable\n"); } #endif static ssize_t mds_show_state(char *buf) { if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) { - return sprintf(buf, "%s; SMT Host state unknown\n", - mds_strings[mds_mitigation]); + return sysfs_emit(buf, "%s; SMT Host state unknown\n", + mds_strings[mds_mitigation]); } if (boot_cpu_has(X86_BUG_MSBDS_ONLY)) { - return sprintf(buf, "%s; SMT %s\n", mds_strings[mds_mitigation], - (mds_mitigation == MDS_MITIGATION_OFF ? "vulnerable" : - sched_smt_active() ? "mitigated" : "disabled")); + return sysfs_emit(buf, "%s; SMT %s\n", mds_strings[mds_mitigation], + (mds_mitigation == MDS_MITIGATION_OFF ? "vulnerable" : + sched_smt_active() ? "mitigated" : "disabled")); } - return sprintf(buf, "%s; SMT %s\n", mds_strings[mds_mitigation], - sched_smt_active() ? "vulnerable" : "disabled"); + return sysfs_emit(buf, "%s; SMT %s\n", mds_strings[mds_mitigation], + sched_smt_active() ? "vulnerable" : "disabled"); } static ssize_t tsx_async_abort_show_state(char *buf) { if ((taa_mitigation == TAA_MITIGATION_TSX_DISABLED) || (taa_mitigation == TAA_MITIGATION_OFF)) - return sprintf(buf, "%s\n", taa_strings[taa_mitigation]); + return sysfs_emit(buf, "%s\n", taa_strings[taa_mitigation]); if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) { - return sprintf(buf, "%s; SMT Host state unknown\n", - taa_strings[taa_mitigation]); + return sysfs_emit(buf, "%s; SMT Host state unknown\n", + taa_strings[taa_mitigation]); } - return sprintf(buf, "%s; SMT %s\n", taa_strings[taa_mitigation], - sched_smt_active() ? "vulnerable" : "disabled"); + return sysfs_emit(buf, "%s; SMT %s\n", taa_strings[taa_mitigation], + sched_smt_active() ? "vulnerable" : "disabled"); } static ssize_t mmio_stale_data_show_state(char *buf) @@ -2519,9 +2591,15 @@ sched_smt_active() ? "vulnerable" : "disabled"); } +static ssize_t rfds_show_state(char *buf) +{ + return sysfs_emit(buf, "%s\n", rfds_strings[rfds_mitigation]); +} + static char *stibp_state(void) { - if (spectre_v2_in_eibrs_mode(spectre_v2_enabled)) + if (spectre_v2_in_eibrs_mode(spectre_v2_enabled) && + !boot_cpu_has(X86_FEATURE_AUTOIBRS)) return ""; switch (spectre_v2_user_stibp) { @@ -2567,47 +2645,46 @@ static ssize_t spectre_v2_show_state(char *buf) { if (spectre_v2_enabled == SPECTRE_V2_LFENCE) - return sprintf(buf, "Vulnerable: LFENCE\n"); + return sysfs_emit(buf, "Vulnerable: LFENCE\n"); if (spectre_v2_enabled == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled()) - return sprintf(buf, "Vulnerable: eIBRS with unprivileged eBPF\n"); + return sysfs_emit(buf, "Vulnerable: eIBRS with unprivileged eBPF\n"); if (sched_smt_active() && unprivileged_ebpf_enabled() && spectre_v2_enabled == SPECTRE_V2_EIBRS_LFENCE) - return sprintf(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n"); + return sysfs_emit(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n"); - return sprintf(buf, "%s%s%s%s%s%s%s\n", - spectre_v2_strings[spectre_v2_enabled], - ibpb_state(), - boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "", - stibp_state(), - boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "", - pbrsb_eibrs_state(), - spectre_v2_module_string()); + return sysfs_emit(buf, "%s%s%s%s%s%s%s\n", + spectre_v2_strings[spectre_v2_enabled], + ibpb_state(), + boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "", + stibp_state(), + boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "", + pbrsb_eibrs_state(), + spectre_v2_module_string()); } static ssize_t srbds_show_state(char *buf) { - return sprintf(buf, "%s\n", srbds_strings[srbds_mitigation]); + return sysfs_emit(buf, "%s\n", srbds_strings[srbds_mitigation]); } static ssize_t retbleed_show_state(char *buf) { if (retbleed_mitigation == RETBLEED_MITIGATION_UNRET || retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { - if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD && - boot_cpu_data.x86_vendor != X86_VENDOR_HYGON) - return sprintf(buf, "Vulnerable: untrained return thunk / IBPB on non-AMD based uarch\n"); - - return sprintf(buf, "%s; SMT %s\n", - retbleed_strings[retbleed_mitigation], - !sched_smt_active() ? "disabled" : - spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT || - spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED ? - "enabled with STIBP protection" : "vulnerable"); + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD && + boot_cpu_data.x86_vendor != X86_VENDOR_HYGON) + return sysfs_emit(buf, "Vulnerable: untrained return thunk / IBPB on non-AMD based uarch\n"); + + return sysfs_emit(buf, "%s; SMT %s\n", retbleed_strings[retbleed_mitigation], + !sched_smt_active() ? "disabled" : + spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT || + spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED ? + "enabled with STIBP protection" : "vulnerable"); } - return sprintf(buf, "%s\n", retbleed_strings[retbleed_mitigation]); + return sysfs_emit(buf, "%s\n", retbleed_strings[retbleed_mitigation]); } static ssize_t gds_show_state(char *buf) @@ -2629,26 +2706,26 @@ char *buf, unsigned int bug) { if (!boot_cpu_has_bug(bug)) - return sprintf(buf, "Not affected\n"); + return sysfs_emit(buf, "Not affected\n"); switch (bug) { case X86_BUG_CPU_MELTDOWN: if (boot_cpu_has(X86_FEATURE_PTI)) - return sprintf(buf, "Mitigation: PTI\n"); + return sysfs_emit(buf, "Mitigation: PTI\n"); if (hypervisor_is_type(X86_HYPER_XEN_PV)) - return sprintf(buf, "Unknown (XEN PV detected, hypervisor mitigation required)\n"); + return sysfs_emit(buf, "Unknown (XEN PV detected, hypervisor mitigation required)\n"); break; case X86_BUG_SPECTRE_V1: - return sprintf(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]); + return sysfs_emit(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]); case X86_BUG_SPECTRE_V2: return spectre_v2_show_state(buf); case X86_BUG_SPEC_STORE_BYPASS: - return sprintf(buf, "%s\n", ssb_strings[ssb_mode]); + return sysfs_emit(buf, "%s\n", ssb_strings[ssb_mode]); case X86_BUG_L1TF: if (boot_cpu_has(X86_FEATURE_L1TF_PTEINV)) @@ -2680,11 +2757,14 @@ case X86_BUG_SRSO: return srso_show_state(buf); + case X86_BUG_RFDS: + return rfds_show_state(buf); + default: break; } - return sprintf(buf, "Vulnerable\n"); + return sysfs_emit(buf, "Vulnerable\n"); } ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf) @@ -2754,4 +2834,9 @@ { return cpu_show_common(dev, attr, buf, X86_BUG_SRSO); } + +ssize_t cpu_show_reg_file_data_sampling(struct device *dev, struct device_attribute *attr, char *buf) +{ + return cpu_show_common(dev, attr, buf, X86_BUG_RFDS); +} #endif diff -Nru linux-5.10.209/arch/x86/kernel/cpu/common.c linux-5.10.216/arch/x86/kernel/cpu/common.c --- linux-5.10.209/arch/x86/kernel/cpu/common.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/common.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,7 +166,6 @@ [GDT_ENTRY_ESPFIX_SS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff), [GDT_ENTRY_PERCPU] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff), - GDT_STACK_CANARY_INIT #endif } }; EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); @@ -600,7 +599,6 @@ __loadsegment_simple(gs, 0); wrmsrl(MSR_GS_BASE, cpu_kernelmode_gs_base(cpu)); #endif - load_stack_canary_segment(); } #ifdef CONFIG_X86_32 @@ -1098,8 +1096,8 @@ VULNWL_AMD(0x12, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), /* FAMILY_ANY must be last, otherwise 0x0f - 0x12 matches won't work */ - VULNWL_AMD(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), - VULNWL_HYGON(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_AMD(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB), + VULNWL_HYGON(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB), /* Zhaoxin Family 7 */ VULNWL(CENTAUR, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_SWAPGS | NO_MMIO), @@ -1134,6 +1132,8 @@ #define SRSO BIT(5) /* CPU is affected by GDS */ #define GDS BIT(6) +/* CPU is affected by Register File Data Sampling */ +#define RFDS BIT(7) static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = { VULNBL_INTEL_STEPPINGS(IVYBRIDGE, X86_STEPPING_ANY, SRBDS), @@ -1161,14 +1161,23 @@ VULNBL_INTEL_STEPPINGS(TIGERLAKE, X86_STEPPING_ANY, GDS), VULNBL_INTEL_STEPPINGS(LAKEFIELD, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RETBLEED), VULNBL_INTEL_STEPPINGS(ROCKETLAKE, X86_STEPPING_ANY, MMIO | RETBLEED | GDS), - VULNBL_INTEL_STEPPINGS(ATOM_TREMONT, X86_STEPPING_ANY, MMIO | MMIO_SBDS), - VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_D, X86_STEPPING_ANY, MMIO), - VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_L, X86_STEPPING_ANY, MMIO | MMIO_SBDS), + VULNBL_INTEL_STEPPINGS(ALDERLAKE, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(ALDERLAKE_L, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(RAPTORLAKE, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(RAPTORLAKE_P, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(RAPTORLAKE_S, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(ALDERLAKE_N, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_TREMONT, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_D, X86_STEPPING_ANY, MMIO | RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_L, X86_STEPPING_ANY, MMIO | MMIO_SBDS | RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_GOLDMONT, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_GOLDMONT_D, X86_STEPPING_ANY, RFDS), + VULNBL_INTEL_STEPPINGS(ATOM_GOLDMONT_PLUS, X86_STEPPING_ANY, RFDS), VULNBL_AMD(0x15, RETBLEED), VULNBL_AMD(0x16, RETBLEED), VULNBL_AMD(0x17, RETBLEED | SRSO), - VULNBL_HYGON(0x18, RETBLEED), + VULNBL_HYGON(0x18, RETBLEED | SRSO), VULNBL_AMD(0x19, SRSO), {} }; @@ -1197,6 +1206,24 @@ ia32_cap & ARCH_CAP_SBDR_SSDP_NO); } +static bool __init vulnerable_to_rfds(u64 ia32_cap) +{ + /* The "immunity" bit trumps everything else: */ + if (ia32_cap & ARCH_CAP_RFDS_NO) + return false; + + /* + * VMMs set ARCH_CAP_RFDS_CLEAR for processors not in the blacklist to + * indicate that mitigation is needed because guest is running on a + * vulnerable hardware or may migrate to such hardware: + */ + if (ia32_cap & ARCH_CAP_RFDS_CLEAR) + return true; + + /* Only consult the blacklist when there is no enumeration: */ + return cpu_matches(cpu_vuln_blacklist, RFDS); +} + static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c) { u64 ia32_cap = x86_read_arch_cap_msr(); @@ -1219,8 +1246,16 @@ !cpu_has(c, X86_FEATURE_AMD_SSB_NO)) setup_force_cpu_bug(X86_BUG_SPEC_STORE_BYPASS); - if (ia32_cap & ARCH_CAP_IBRS_ALL) + /* + * AMD's AutoIBRS is equivalent to Intel's eIBRS - use the Intel feature + * flag and protect from vendor-specific bugs via the whitelist. + */ + if ((ia32_cap & ARCH_CAP_IBRS_ALL) || cpu_has(c, X86_FEATURE_AUTOIBRS)) { setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED); + if (!cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) && + !(ia32_cap & ARCH_CAP_PBRSB_NO)) + setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB); + } if (!cpu_matches(cpu_vuln_whitelist, NO_MDS) && !(ia32_cap & ARCH_CAP_MDS_NO)) { @@ -1282,11 +1317,6 @@ setup_force_cpu_bug(X86_BUG_RETBLEED); } - if (cpu_has(c, X86_FEATURE_IBRS_ENHANCED) && - !cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) && - !(ia32_cap & ARCH_CAP_PBRSB_NO)) - setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB); - /* * Check if CPU is vulnerable to GDS. If running in a virtual machine on * an affected processor, the VMM may have disabled the use of GATHER by @@ -1302,6 +1332,9 @@ setup_force_cpu_bug(X86_BUG_SRSO); } + if (vulnerable_to_rfds(ia32_cap)) + setup_force_cpu_bug(X86_BUG_RFDS); + if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN)) return; @@ -1937,7 +1970,8 @@ EXPORT_PER_CPU_SYMBOL(cpu_current_top_of_stack); #ifdef CONFIG_STACKPROTECTOR -DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary); +DEFINE_PER_CPU(unsigned long, __stack_chk_guard); +EXPORT_PER_CPU_SYMBOL(__stack_chk_guard); #endif #endif /* CONFIG_X86_64 */ diff -Nru linux-5.10.209/arch/x86/kernel/cpu/cpuid-deps.c linux-5.10.216/arch/x86/kernel/cpu/cpuid-deps.c --- linux-5.10.209/arch/x86/kernel/cpu/cpuid-deps.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/cpuid-deps.c 2024-05-02 14:23:46.000000000 +0000 @@ -44,7 +44,10 @@ { X86_FEATURE_F16C, X86_FEATURE_XMM2, }, { X86_FEATURE_AES, X86_FEATURE_XMM2 }, { X86_FEATURE_SHA_NI, X86_FEATURE_XMM2 }, + { X86_FEATURE_GFNI, X86_FEATURE_XMM2 }, { X86_FEATURE_FMA, X86_FEATURE_AVX }, + { X86_FEATURE_VAES, X86_FEATURE_AVX }, + { X86_FEATURE_VPCLMULQDQ, X86_FEATURE_AVX }, { X86_FEATURE_AVX2, X86_FEATURE_AVX, }, { X86_FEATURE_AVX512F, X86_FEATURE_AVX, }, { X86_FEATURE_AVX512IFMA, X86_FEATURE_AVX512F }, @@ -56,9 +59,6 @@ { X86_FEATURE_AVX512VL, X86_FEATURE_AVX512F }, { X86_FEATURE_AVX512VBMI, X86_FEATURE_AVX512F }, { X86_FEATURE_AVX512_VBMI2, X86_FEATURE_AVX512VL }, - { X86_FEATURE_GFNI, X86_FEATURE_AVX512VL }, - { X86_FEATURE_VAES, X86_FEATURE_AVX512VL }, - { X86_FEATURE_VPCLMULQDQ, X86_FEATURE_AVX512VL }, { X86_FEATURE_AVX512_VNNI, X86_FEATURE_AVX512VL }, { X86_FEATURE_AVX512_BITALG, X86_FEATURE_AVX512VL }, { X86_FEATURE_AVX512_4VNNIW, X86_FEATURE_AVX512F }, diff -Nru linux-5.10.209/arch/x86/kernel/cpu/intel.c linux-5.10.216/arch/x86/kernel/cpu/intel.c --- linux-5.10.209/arch/x86/kernel/cpu/intel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/intel.c 2024-05-02 14:23:46.000000000 +0000 @@ -178,6 +178,90 @@ return false; } +#define MSR_IA32_TME_ACTIVATE 0x982 + +/* Helpers to access TME_ACTIVATE MSR */ +#define TME_ACTIVATE_LOCKED(x) (x & 0x1) +#define TME_ACTIVATE_ENABLED(x) (x & 0x2) + +#define TME_ACTIVATE_POLICY(x) ((x >> 4) & 0xf) /* Bits 7:4 */ +#define TME_ACTIVATE_POLICY_AES_XTS_128 0 + +#define TME_ACTIVATE_KEYID_BITS(x) ((x >> 32) & 0xf) /* Bits 35:32 */ + +#define TME_ACTIVATE_CRYPTO_ALGS(x) ((x >> 48) & 0xffff) /* Bits 63:48 */ +#define TME_ACTIVATE_CRYPTO_AES_XTS_128 1 + +/* Values for mktme_status (SW only construct) */ +#define MKTME_ENABLED 0 +#define MKTME_DISABLED 1 +#define MKTME_UNINITIALIZED 2 +static int mktme_status = MKTME_UNINITIALIZED; + +static void detect_tme_early(struct cpuinfo_x86 *c) +{ + u64 tme_activate, tme_policy, tme_crypto_algs; + int keyid_bits = 0, nr_keyids = 0; + static u64 tme_activate_cpu0 = 0; + + rdmsrl(MSR_IA32_TME_ACTIVATE, tme_activate); + + if (mktme_status != MKTME_UNINITIALIZED) { + if (tme_activate != tme_activate_cpu0) { + /* Broken BIOS? */ + pr_err_once("x86/tme: configuration is inconsistent between CPUs\n"); + pr_err_once("x86/tme: MKTME is not usable\n"); + mktme_status = MKTME_DISABLED; + + /* Proceed. We may need to exclude bits from x86_phys_bits. */ + } + } else { + tme_activate_cpu0 = tme_activate; + } + + if (!TME_ACTIVATE_LOCKED(tme_activate) || !TME_ACTIVATE_ENABLED(tme_activate)) { + pr_info_once("x86/tme: not enabled by BIOS\n"); + mktme_status = MKTME_DISABLED; + return; + } + + if (mktme_status != MKTME_UNINITIALIZED) + goto detect_keyid_bits; + + pr_info("x86/tme: enabled by BIOS\n"); + + tme_policy = TME_ACTIVATE_POLICY(tme_activate); + if (tme_policy != TME_ACTIVATE_POLICY_AES_XTS_128) + pr_warn("x86/tme: Unknown policy is active: %#llx\n", tme_policy); + + tme_crypto_algs = TME_ACTIVATE_CRYPTO_ALGS(tme_activate); + if (!(tme_crypto_algs & TME_ACTIVATE_CRYPTO_AES_XTS_128)) { + pr_err("x86/mktme: No known encryption algorithm is supported: %#llx\n", + tme_crypto_algs); + mktme_status = MKTME_DISABLED; + } +detect_keyid_bits: + keyid_bits = TME_ACTIVATE_KEYID_BITS(tme_activate); + nr_keyids = (1UL << keyid_bits) - 1; + if (nr_keyids) { + pr_info_once("x86/mktme: enabled by BIOS\n"); + pr_info_once("x86/mktme: %d KeyIDs available\n", nr_keyids); + } else { + pr_info_once("x86/mktme: disabled by BIOS\n"); + } + + if (mktme_status == MKTME_UNINITIALIZED) { + /* MKTME is usable */ + mktme_status = MKTME_ENABLED; + } + + /* + * KeyID bits effectively lower the number of physical address + * bits. Update cpuinfo_x86::x86_phys_bits accordingly. + */ + c->x86_phys_bits -= keyid_bits; +} + static void early_init_intel(struct cpuinfo_x86 *c) { u64 misc_enable; @@ -329,6 +413,13 @@ */ if (detect_extended_topology_early(c) < 0) detect_ht_early(c); + + /* + * Adjust the number of physical bits early because it affects the + * valid bits of the MTRR mask registers. + */ + if (cpu_has(c, X86_FEATURE_TME)) + detect_tme_early(c); } static void bsp_init_intel(struct cpuinfo_x86 *c) @@ -489,90 +580,6 @@ #endif } -#define MSR_IA32_TME_ACTIVATE 0x982 - -/* Helpers to access TME_ACTIVATE MSR */ -#define TME_ACTIVATE_LOCKED(x) (x & 0x1) -#define TME_ACTIVATE_ENABLED(x) (x & 0x2) - -#define TME_ACTIVATE_POLICY(x) ((x >> 4) & 0xf) /* Bits 7:4 */ -#define TME_ACTIVATE_POLICY_AES_XTS_128 0 - -#define TME_ACTIVATE_KEYID_BITS(x) ((x >> 32) & 0xf) /* Bits 35:32 */ - -#define TME_ACTIVATE_CRYPTO_ALGS(x) ((x >> 48) & 0xffff) /* Bits 63:48 */ -#define TME_ACTIVATE_CRYPTO_AES_XTS_128 1 - -/* Values for mktme_status (SW only construct) */ -#define MKTME_ENABLED 0 -#define MKTME_DISABLED 1 -#define MKTME_UNINITIALIZED 2 -static int mktme_status = MKTME_UNINITIALIZED; - -static void detect_tme(struct cpuinfo_x86 *c) -{ - u64 tme_activate, tme_policy, tme_crypto_algs; - int keyid_bits = 0, nr_keyids = 0; - static u64 tme_activate_cpu0 = 0; - - rdmsrl(MSR_IA32_TME_ACTIVATE, tme_activate); - - if (mktme_status != MKTME_UNINITIALIZED) { - if (tme_activate != tme_activate_cpu0) { - /* Broken BIOS? */ - pr_err_once("x86/tme: configuration is inconsistent between CPUs\n"); - pr_err_once("x86/tme: MKTME is not usable\n"); - mktme_status = MKTME_DISABLED; - - /* Proceed. We may need to exclude bits from x86_phys_bits. */ - } - } else { - tme_activate_cpu0 = tme_activate; - } - - if (!TME_ACTIVATE_LOCKED(tme_activate) || !TME_ACTIVATE_ENABLED(tme_activate)) { - pr_info_once("x86/tme: not enabled by BIOS\n"); - mktme_status = MKTME_DISABLED; - return; - } - - if (mktme_status != MKTME_UNINITIALIZED) - goto detect_keyid_bits; - - pr_info("x86/tme: enabled by BIOS\n"); - - tme_policy = TME_ACTIVATE_POLICY(tme_activate); - if (tme_policy != TME_ACTIVATE_POLICY_AES_XTS_128) - pr_warn("x86/tme: Unknown policy is active: %#llx\n", tme_policy); - - tme_crypto_algs = TME_ACTIVATE_CRYPTO_ALGS(tme_activate); - if (!(tme_crypto_algs & TME_ACTIVATE_CRYPTO_AES_XTS_128)) { - pr_err("x86/mktme: No known encryption algorithm is supported: %#llx\n", - tme_crypto_algs); - mktme_status = MKTME_DISABLED; - } -detect_keyid_bits: - keyid_bits = TME_ACTIVATE_KEYID_BITS(tme_activate); - nr_keyids = (1UL << keyid_bits) - 1; - if (nr_keyids) { - pr_info_once("x86/mktme: enabled by BIOS\n"); - pr_info_once("x86/mktme: %d KeyIDs available\n", nr_keyids); - } else { - pr_info_once("x86/mktme: disabled by BIOS\n"); - } - - if (mktme_status == MKTME_UNINITIALIZED) { - /* MKTME is usable */ - mktme_status = MKTME_ENABLED; - } - - /* - * KeyID bits effectively lower the number of physical address - * bits. Update cpuinfo_x86::x86_phys_bits accordingly. - */ - c->x86_phys_bits -= keyid_bits; -} - static void init_cpuid_fault(struct cpuinfo_x86 *c) { u64 msr; @@ -708,9 +715,6 @@ init_ia32_feat_ctl(c); - if (cpu_has(c, X86_FEATURE_TME)) - detect_tme(c); - init_intel_misc_features(c); if (tsx_ctrl_state == TSX_CTRL_ENABLE) diff -Nru linux-5.10.209/arch/x86/kernel/cpu/mce/core.c linux-5.10.216/arch/x86/kernel/cpu/mce/core.c --- linux-5.10.209/arch/x86/kernel/cpu/mce/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/cpu/mce/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -274,6 +275,7 @@ struct llist_node *pending; struct mce_evt_llist *l; int apei_err = 0; + struct page *p; /* * Allow instrumentation around external facilities usage. Not that it @@ -329,6 +331,20 @@ if (!fake_panic) { if (panic_timeout == 0) panic_timeout = mca_cfg.panic_timeout; + + /* + * Kdump skips the poisoned page in order to avoid + * touching the error bits again. Poison the page even + * if the error is fatal and the machine is about to + * panic. + */ + if (kexec_crash_loaded()) { + if (final && (final->status & MCI_STATUS_ADDRV)) { + p = pfn_to_online_page(final->addr >> PAGE_SHIFT); + if (p) + SetPageHWPoison(p); + } + } panic(msg); } else pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg); @@ -2373,12 +2389,14 @@ return -EINVAL; b = &per_cpu(mce_banks_array, s->id)[bank]; - if (!b->init) return -ENODEV; b->ctl = new; + + mutex_lock(&mce_sysfs_mutex); mce_restart(); + mutex_unlock(&mce_sysfs_mutex); return size; } diff -Nru linux-5.10.209/arch/x86/kernel/doublefault_32.c linux-5.10.216/arch/x86/kernel/doublefault_32.c --- linux-5.10.209/arch/x86/kernel/doublefault_32.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/doublefault_32.c 2024-05-02 14:23:46.000000000 +0000 @@ -100,9 +100,7 @@ .ss = __KERNEL_DS, .ds = __USER_DS, .fs = __KERNEL_PERCPU, -#ifndef CONFIG_X86_32_LAZY_GS - .gs = __KERNEL_STACK_CANARY, -#endif + .gs = 0, .__cr3 = __pa_nodebug(swapper_pg_dir), }, diff -Nru linux-5.10.209/arch/x86/kernel/ftrace.c linux-5.10.216/arch/x86/kernel/ftrace.c --- linux-5.10.209/arch/x86/kernel/ftrace.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/ftrace.c 2024-05-02 14:23:46.000000000 +0000 @@ -367,10 +367,8 @@ goto fail; ip = trampoline + size; - - /* The trampoline ends with ret(q) */ if (cpu_feature_enabled(X86_FEATURE_RETHUNK)) - memcpy(ip, text_gen_insn(JMP32_INSN_OPCODE, ip, &__x86_return_thunk), JMP32_INSN_SIZE); + __text_gen_insn(ip, JMP32_INSN_OPCODE, ip, x86_return_thunk, JMP32_INSN_SIZE); else memcpy(ip, retq, sizeof(retq)); diff -Nru linux-5.10.209/arch/x86/kernel/head64.c linux-5.10.216/arch/x86/kernel/head64.c --- linux-5.10.209/arch/x86/kernel/head64.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/head64.c 2024-05-02 14:23:46.000000000 +0000 @@ -302,15 +302,6 @@ return sme_get_me_mask(); } -unsigned long __startup_secondary_64(void) -{ - /* - * Return the SME encryption mask (if SME is active) to be used as a - * modifier for the initial pgdir entry programmed into CR3. - */ - return sme_get_me_mask(); -} - /* Wipe all early page tables except for the kernel symbol map */ static void __init reset_early_page_tables(void) { diff -Nru linux-5.10.209/arch/x86/kernel/head_32.S linux-5.10.216/arch/x86/kernel/head_32.S --- linux-5.10.209/arch/x86/kernel/head_32.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/head_32.S 2024-05-02 14:23:46.000000000 +0000 @@ -319,8 +319,8 @@ movl $(__KERNEL_PERCPU), %eax movl %eax,%fs # set this cpu's percpu - movl $(__KERNEL_STACK_CANARY),%eax - movl %eax,%gs + xorl %eax,%eax + movl %eax,%gs # clear possible garbage in %gs xorl %eax,%eax # Clear LDT lldt %ax @@ -340,20 +340,6 @@ */ __INIT setup_once: -#ifdef CONFIG_STACKPROTECTOR - /* - * Configure the stack canary. The linker can't handle this by - * relocation. Manually set base address in stack canary - * segment descriptor. - */ - movl $gdt_page,%eax - movl $stack_canary,%ecx - movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax) - shrl $16, %ecx - movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax) - movb %ch, 8 * GDT_ENTRY_STACK_CANARY + 7(%eax) -#endif - andl $0,setup_once_ref /* Once is enough, thanks */ RET diff -Nru linux-5.10.209/arch/x86/kernel/head_64.S linux-5.10.216/arch/x86/kernel/head_64.S --- linux-5.10.209/arch/x86/kernel/head_64.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/head_64.S 2024-05-02 14:23:46.000000000 +0000 @@ -74,6 +74,22 @@ leaq (__end_init_task - SIZEOF_PTREGS)(%rip), %rsp leaq _text(%rip), %rdi + + /* + * initial_gs points to initial fixed_percpu_data struct with storage for + * the stack protector canary. Global pointer fixups are needed at this + * stage, so apply them as is done in fixup_pointer(), and initialize %gs + * such that the canary can be accessed at %gs:40 for subsequent C calls. + */ + movl $MSR_GS_BASE, %ecx + movq initial_gs(%rip), %rax + movq $_text, %rdx + subq %rdx, %rax + addq %rdi, %rax + movq %rax, %rdx + shrq $32, %rdx + wrmsr + pushq %rsi call startup_64_setup_env popq %rsi @@ -141,9 +157,11 @@ * Retrieve the modifier (SME encryption mask if SME is active) to be * added to the initial pgdir entry that will be programmed into CR3. */ - pushq %rsi - call __startup_secondary_64 - popq %rsi +#ifdef CONFIG_AMD_MEM_ENCRYPT + movq sme_me_mask, %rax +#else + xorq %rax, %rax +#endif /* Form the CR3 value being sure to include the CR3 modifier */ addq $(init_top_pgt - __START_KERNEL_map), %rax diff -Nru linux-5.10.209/arch/x86/kernel/nmi.c linux-5.10.216/arch/x86/kernel/nmi.c --- linux-5.10.209/arch/x86/kernel/nmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/nmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -519,9 +519,6 @@ write_cr2(this_cpu_read(nmi_cr2)); if (this_cpu_dec_return(nmi_state)) goto nmi_restart; - - if (user_mode(regs)) - mds_user_clear_cpu_buffers(); } #if defined(CONFIG_X86_64) && IS_ENABLED(CONFIG_KVM_INTEL) diff -Nru linux-5.10.209/arch/x86/kernel/paravirt.c linux-5.10.216/arch/x86/kernel/paravirt.c --- linux-5.10.209/arch/x86/kernel/paravirt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/paravirt.c 2024-05-02 14:23:46.000000000 +0000 @@ -31,6 +31,7 @@ #include #include #include +#include /* * nop stub, which must not clobber anything *including the stack* to @@ -55,28 +56,16 @@ static const unsigned char ud2a[] = { 0x0f, 0x0b }; struct branch { - unsigned char opcode; - u32 delta; + unsigned char opcode; + u32 delta; } __attribute__((packed)); static unsigned paravirt_patch_call(void *insn_buff, const void *target, unsigned long addr, unsigned len) { - const int call_len = 5; - struct branch *b = insn_buff; - unsigned long delta = (unsigned long)target - (addr+call_len); - - if (len < call_len) { - pr_warn("paravirt: Failed to patch indirect CALL at %ps\n", (void *)addr); - /* Kernel might not be viable if patching fails, bail out: */ - BUG_ON(1); - } - - b->opcode = 0xe8; /* call */ - b->delta = delta; - BUILD_BUG_ON(sizeof(*b) != call_len); - - return call_len; + __text_gen_insn(insn_buff, CALL_INSN_OPCODE, + (void *)addr, target, CALL_INSN_SIZE); + return CALL_INSN_SIZE; } #ifdef CONFIG_PARAVIRT_XXL diff -Nru linux-5.10.209/arch/x86/kernel/setup_percpu.c linux-5.10.216/arch/x86/kernel/setup_percpu.c --- linux-5.10.209/arch/x86/kernel/setup_percpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/setup_percpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -224,7 +224,6 @@ per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu); per_cpu(cpu_number, cpu) = cpu; setup_percpu_segment(cpu); - setup_stack_canary_segment(cpu); /* * Copy data used in early init routines from the * initial arrays to the per cpu data areas. These diff -Nru linux-5.10.209/arch/x86/kernel/static_call.c linux-5.10.216/arch/x86/kernel/static_call.c --- linux-5.10.209/arch/x86/kernel/static_call.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/static_call.c 2024-05-02 14:23:46.000000000 +0000 @@ -41,7 +41,7 @@ case RET: if (cpu_feature_enabled(X86_FEATURE_RETHUNK)) - code = text_gen_insn(JMP32_INSN_OPCODE, insn, &__x86_return_thunk); + code = text_gen_insn(JMP32_INSN_OPCODE, insn, x86_return_thunk); else code = &retinsn; break; diff -Nru linux-5.10.209/arch/x86/kernel/tls.c linux-5.10.216/arch/x86/kernel/tls.c --- linux-5.10.209/arch/x86/kernel/tls.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kernel/tls.c 2024-05-02 14:23:46.000000000 +0000 @@ -164,17 +164,11 @@ savesegment(fs, sel); if (sel == modified_sel) loadsegment(fs, sel); - - savesegment(gs, sel); - if (sel == modified_sel) - load_gs_index(sel); #endif -#ifdef CONFIG_X86_32_LAZY_GS savesegment(gs, sel); if (sel == modified_sel) - loadsegment(gs, sel); -#endif + load_gs_index(sel); } else { #ifdef CONFIG_X86_64 if (p->thread.fsindex == modified_sel) diff -Nru linux-5.10.209/arch/x86/kvm/cpuid.h linux-5.10.216/arch/x86/kvm/cpuid.h --- linux-5.10.209/arch/x86/kvm/cpuid.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/cpuid.h 2024-05-02 14:23:46.000000000 +0000 @@ -76,10 +76,12 @@ */ static __always_inline void reverse_cpuid_check(unsigned int x86_leaf) { + BUILD_BUG_ON(NR_CPUID_WORDS != NCAPINTS); BUILD_BUG_ON(x86_leaf == CPUID_LNX_1); BUILD_BUG_ON(x86_leaf == CPUID_LNX_2); BUILD_BUG_ON(x86_leaf == CPUID_LNX_3); BUILD_BUG_ON(x86_leaf == CPUID_LNX_4); + BUILD_BUG_ON(x86_leaf == CPUID_LNX_5); BUILD_BUG_ON(x86_leaf >= ARRAY_SIZE(reverse_cpuid)); BUILD_BUG_ON(reverse_cpuid[x86_leaf].function == 0); } diff -Nru linux-5.10.209/arch/x86/kvm/mmu/page_track.c linux-5.10.216/arch/x86/kvm/mmu/page_track.c --- linux-5.10.209/arch/x86/kvm/mmu/page_track.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/mmu/page_track.c 2024-05-02 14:23:46.000000000 +0000 @@ -35,7 +35,7 @@ for (i = 0; i < KVM_PAGE_TRACK_MAX; i++) { slot->arch.gfn_track[i] = - kvcalloc(npages, sizeof(*slot->arch.gfn_track[i]), + __vcalloc(npages, sizeof(*slot->arch.gfn_track[i]), GFP_KERNEL_ACCOUNT); if (!slot->arch.gfn_track[i]) goto track_free; diff -Nru linux-5.10.209/arch/x86/kvm/svm/sev.c linux-5.10.216/arch/x86/kvm/svm/sev.c --- linux-5.10.209/arch/x86/kvm/svm/sev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/svm/sev.c 2024-05-02 14:23:46.000000000 +0000 @@ -1024,20 +1024,22 @@ goto e_free; } - region->uaddr = range->addr; - region->size = range->size; - - list_add_tail(®ion->list, &sev->regions_list); - mutex_unlock(&kvm->lock); - /* * The guest may change the memory encryption attribute from C=0 -> C=1 * or vice versa for this memory range. Lets make sure caches are * flushed to ensure that guest data gets written into memory with - * correct C-bit. + * correct C-bit. Note, this must be done before dropping kvm->lock, + * as region and its array of pages can be freed by a different task + * once kvm->lock is released. */ sev_clflush_pages(region->pages, region->npages); + region->uaddr = range->addr; + region->size = range->size; + + list_add_tail(®ion->list, &sev->regions_list); + mutex_unlock(&kvm->lock); + return ret; e_free: diff -Nru linux-5.10.209/arch/x86/kvm/vmx/run_flags.h linux-5.10.216/arch/x86/kvm/vmx/run_flags.h --- linux-5.10.209/arch/x86/kvm/vmx/run_flags.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/vmx/run_flags.h 2024-05-02 14:23:46.000000000 +0000 @@ -2,7 +2,10 @@ #ifndef __KVM_X86_VMX_RUN_FLAGS_H #define __KVM_X86_VMX_RUN_FLAGS_H -#define VMX_RUN_VMRESUME (1 << 0) -#define VMX_RUN_SAVE_SPEC_CTRL (1 << 1) +#define VMX_RUN_VMRESUME_SHIFT 0 +#define VMX_RUN_SAVE_SPEC_CTRL_SHIFT 1 + +#define VMX_RUN_VMRESUME BIT(VMX_RUN_VMRESUME_SHIFT) +#define VMX_RUN_SAVE_SPEC_CTRL BIT(VMX_RUN_SAVE_SPEC_CTRL_SHIFT) #endif /* __KVM_X86_VMX_RUN_FLAGS_H */ diff -Nru linux-5.10.209/arch/x86/kvm/vmx/vmenter.S linux-5.10.216/arch/x86/kvm/vmx/vmenter.S --- linux-5.10.209/arch/x86/kvm/vmx/vmenter.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/vmx/vmenter.S 2024-05-02 14:23:46.000000000 +0000 @@ -77,7 +77,7 @@ mov (%_ASM_SP), %_ASM_AX /* Check if vmlaunch or vmresume is needed */ - testb $VMX_RUN_VMRESUME, %bl + bt $VMX_RUN_VMRESUME_SHIFT, %bx /* Load guest registers. Don't clobber flags. */ mov VCPU_RCX(%_ASM_AX), %_ASM_CX @@ -99,8 +99,11 @@ /* Load guest RAX. This kills the @regs pointer! */ mov VCPU_RAX(%_ASM_AX), %_ASM_AX - /* Check EFLAGS.ZF from 'testb' above */ - jz .Lvmlaunch + /* Clobbers EFLAGS.ZF */ + CLEAR_CPU_BUFFERS + + /* Check EFLAGS.CF from the VMX_RUN_VMRESUME bit test above. */ + jnc .Lvmlaunch /* * After a successful VMRESUME/VMLAUNCH, control flow "magically" diff -Nru linux-5.10.209/arch/x86/kvm/vmx/vmx.c linux-5.10.216/arch/x86/kvm/vmx/vmx.c --- linux-5.10.209/arch/x86/kvm/vmx/vmx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/vmx/vmx.c 2024-05-02 14:23:46.000000000 +0000 @@ -397,7 +397,8 @@ static void vmx_update_fb_clear_dis(struct kvm_vcpu *vcpu, struct vcpu_vmx *vmx) { - vmx->disable_fb_clear = vmx_fb_clear_ctrl_available; + vmx->disable_fb_clear = !cpu_feature_enabled(X86_FEATURE_CLEAR_CPU_BUF) && + vmx_fb_clear_ctrl_available; /* * If guest will not execute VERW, there is no need to set FB_CLEAR_DIS @@ -6792,11 +6793,14 @@ guest_enter_irqoff(); lockdep_hardirqs_on(CALLER_ADDR0); - /* L1D Flush includes CPU buffer clear to mitigate MDS */ + /* + * L1D Flush includes CPU buffer clear to mitigate MDS, but VERW + * mitigation for MDS is done late in VMentry and is still + * executed in spite of L1D Flush. This is because an extra VERW + * should not matter much after the big hammer L1D Flush. + */ if (static_branch_unlikely(&vmx_l1d_should_flush)) vmx_l1d_flush(vcpu); - else if (static_branch_unlikely(&mds_user_clear)) - mds_clear_cpu_buffers(); else if (static_branch_unlikely(&mmio_stale_data_clear) && kvm_arch_has_assigned_device(vcpu->kvm)) mds_clear_cpu_buffers(); diff -Nru linux-5.10.209/arch/x86/kvm/x86.c linux-5.10.216/arch/x86/kvm/x86.c --- linux-5.10.209/arch/x86/kvm/x86.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/kvm/x86.c 2024-05-02 14:23:46.000000000 +0000 @@ -1389,7 +1389,8 @@ ARCH_CAP_SKIP_VMENTRY_L1DFLUSH | ARCH_CAP_SSB_NO | ARCH_CAP_MDS_NO | \ ARCH_CAP_PSCHANGE_MC_NO | ARCH_CAP_TSX_CTRL_MSR | ARCH_CAP_TAA_NO | \ ARCH_CAP_SBDR_SSDP_NO | ARCH_CAP_FBSDP_NO | ARCH_CAP_PSDP_NO | \ - ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO | ARCH_CAP_GDS_NO) + ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO | ARCH_CAP_GDS_NO | \ + ARCH_CAP_RFDS_NO | ARCH_CAP_RFDS_CLEAR) static u64 kvm_get_arch_capabilities(void) { @@ -1426,6 +1427,8 @@ data |= ARCH_CAP_SSB_NO; if (!boot_cpu_has_bug(X86_BUG_MDS)) data |= ARCH_CAP_MDS_NO; + if (!boot_cpu_has_bug(X86_BUG_RFDS)) + data |= ARCH_CAP_RFDS_NO; if (!boot_cpu_has(X86_FEATURE_RTM)) { /* @@ -10826,14 +10829,14 @@ slot->base_gfn, level) + 1; slot->arch.rmap[i] = - kvcalloc(lpages, sizeof(*slot->arch.rmap[i]), + __vcalloc(lpages, sizeof(*slot->arch.rmap[i]), GFP_KERNEL_ACCOUNT); if (!slot->arch.rmap[i]) goto out_free; if (i == 0) continue; - linfo = kvcalloc(lpages, sizeof(*linfo), GFP_KERNEL_ACCOUNT); + linfo = __vcalloc(lpages, sizeof(*linfo), GFP_KERNEL_ACCOUNT); if (!linfo) goto out_free; diff -Nru linux-5.10.209/arch/x86/lib/insn-eval.c linux-5.10.216/arch/x86/lib/insn-eval.c --- linux-5.10.209/arch/x86/lib/insn-eval.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/lib/insn-eval.c 2024-05-02 14:23:46.000000000 +0000 @@ -404,10 +404,6 @@ case INAT_SEG_REG_FS: return (unsigned short)(regs->fs & 0xffff); case INAT_SEG_REG_GS: - /* - * GS may or may not be in regs as per CONFIG_X86_32_LAZY_GS. - * The macro below takes care of both cases. - */ return get_user_gs(regs); case INAT_SEG_REG_IGNORE: default: diff -Nru linux-5.10.209/arch/x86/lib/retpoline.S linux-5.10.216/arch/x86/lib/retpoline.S --- linux-5.10.209/arch/x86/lib/retpoline.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/lib/retpoline.S 2024-05-02 14:23:46.000000000 +0000 @@ -108,6 +108,7 @@ ret int3 SYM_FUNC_END(srso_alias_untrain_ret) +__EXPORT_THUNK(srso_alias_untrain_ret) #endif SYM_START(srso_alias_safe_ret, SYM_L_GLOBAL, SYM_A_NONE) @@ -249,9 +250,7 @@ SYM_CODE_END(srso_return_thunk) SYM_FUNC_START(entry_untrain_ret) - ALTERNATIVE_2 "jmp retbleed_untrain_ret", \ - "jmp srso_untrain_ret", X86_FEATURE_SRSO, \ - "jmp srso_alias_untrain_ret", X86_FEATURE_SRSO_ALIAS + ALTERNATIVE "jmp retbleed_untrain_ret", "jmp srso_untrain_ret", X86_FEATURE_SRSO SYM_FUNC_END(entry_untrain_ret) __EXPORT_THUNK(entry_untrain_ret) @@ -259,6 +258,7 @@ UNWIND_HINT_FUNC ANNOTATE_NOENDBR ANNOTATE_UNRET_SAFE + ANNOTATE_NOENDBR ret int3 SYM_CODE_END(__x86_return_thunk) diff -Nru linux-5.10.209/arch/x86/mm/fault.c linux-5.10.216/arch/x86/mm/fault.c --- linux-5.10.209/arch/x86/mm/fault.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/mm/fault.c 2024-05-02 14:23:46.000000000 +0000 @@ -781,15 +781,6 @@ show_opcodes(regs, loglvl); } -/* - * The (legacy) vsyscall page is the long page in the kernel portion - * of the address space that has user-accessible permissions. - */ -static bool is_vsyscall_vaddr(unsigned long vaddr) -{ - return unlikely((vaddr & PAGE_MASK) == VSYSCALL_ADDR); -} - static void __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, unsigned long address, u32 pkey, int si_code) diff -Nru linux-5.10.209/arch/x86/mm/maccess.c linux-5.10.216/arch/x86/mm/maccess.c --- linux-5.10.209/arch/x86/mm/maccess.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/mm/maccess.c 2024-05-02 14:23:46.000000000 +0000 @@ -3,6 +3,8 @@ #include #include +#include + #ifdef CONFIG_X86_64 bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size) { @@ -16,6 +18,14 @@ return false; /* + * Reading from the vsyscall page may cause an unhandled fault in + * certain cases. Though it is at an address above TASK_SIZE_MAX, it is + * usually considered as a user space address. + */ + if (is_vsyscall_vaddr(vaddr)) + return false; + + /* * Allow everything during early boot before 'x86_virt_bits' * is initialized. Needed for instruction decoding in early * exception handlers. diff -Nru linux-5.10.209/arch/x86/mm/pat/memtype.c linux-5.10.216/arch/x86/mm/pat/memtype.c --- linux-5.10.209/arch/x86/mm/pat/memtype.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/mm/pat/memtype.c 2024-05-02 14:23:46.000000000 +0000 @@ -56,6 +56,7 @@ #include "memtype.h" #include "../mm_internal.h" +#include "../../../mm/internal.h" /* is_cow_mapping() */ #undef pr_fmt #define pr_fmt(fmt) "" fmt @@ -987,6 +988,38 @@ memtype_free(paddr, paddr + size); } +static int get_pat_info(struct vm_area_struct *vma, resource_size_t *paddr, + pgprot_t *pgprot) +{ + unsigned long prot; + + VM_WARN_ON_ONCE(!(vma->vm_flags & VM_PAT)); + + /* + * We need the starting PFN and cachemode used for track_pfn_remap() + * that covered the whole VMA. For most mappings, we can obtain that + * information from the page tables. For COW mappings, we might now + * suddenly have anon folios mapped and follow_phys() will fail. + * + * Fallback to using vma->vm_pgoff, see remap_pfn_range_notrack(), to + * detect the PFN. If we need the cachemode as well, we're out of luck + * for now and have to fail fork(). + */ + if (!follow_phys(vma, vma->vm_start, 0, &prot, paddr)) { + if (pgprot) + *pgprot = __pgprot(prot); + return 0; + } + if (is_cow_mapping(vma->vm_flags)) { + if (pgprot) + return -EINVAL; + *paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT; + return 0; + } + WARN_ON_ONCE(1); + return -EINVAL; +} + /* * track_pfn_copy is called when vma that is covering the pfnmap gets * copied through copy_page_range(). @@ -997,20 +1030,13 @@ int track_pfn_copy(struct vm_area_struct *vma) { resource_size_t paddr; - unsigned long prot; unsigned long vma_size = vma->vm_end - vma->vm_start; pgprot_t pgprot; if (vma->vm_flags & VM_PAT) { - /* - * reserve the whole chunk covered by vma. We need the - * starting address and protection from pte. - */ - if (follow_phys(vma, vma->vm_start, 0, &prot, &paddr)) { - WARN_ON_ONCE(1); + if (get_pat_info(vma, &paddr, &pgprot)) return -EINVAL; - } - pgprot = __pgprot(prot); + /* reserve the whole chunk covered by vma. */ return reserve_pfn_range(paddr, vma_size, &pgprot, 1); } @@ -1085,7 +1111,6 @@ unsigned long size) { resource_size_t paddr; - unsigned long prot; if (vma && !(vma->vm_flags & VM_PAT)) return; @@ -1093,11 +1118,8 @@ /* free the chunk starting from pfn or the whole chunk */ paddr = (resource_size_t)pfn << PAGE_SHIFT; if (!paddr && !size) { - if (follow_phys(vma, vma->vm_start, 0, &prot, &paddr)) { - WARN_ON_ONCE(1); + if (get_pat_info(vma, &paddr, NULL)) return; - } - size = vma->vm_end - vma->vm_start; } free_pfn_range(paddr, size); diff -Nru linux-5.10.209/arch/x86/net/bpf_jit_comp.c linux-5.10.216/arch/x86/net/bpf_jit_comp.c --- linux-5.10.209/arch/x86/net/bpf_jit_comp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/net/bpf_jit_comp.c 2024-05-02 14:23:46.000000000 +0000 @@ -405,7 +405,7 @@ int cnt = 0; if (cpu_feature_enabled(X86_FEATURE_RETHUNK)) { - emit_jump(&prog, &__x86_return_thunk, ip); + emit_jump(&prog, x86_return_thunk, ip); } else { EMIT1(0xC3); /* ret */ if (IS_ENABLED(CONFIG_SLS)) diff -Nru linux-5.10.209/arch/x86/platform/pvh/head.S linux-5.10.216/arch/x86/platform/pvh/head.S --- linux-5.10.209/arch/x86/platform/pvh/head.S 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/platform/pvh/head.S 2024-05-02 14:23:46.000000000 +0000 @@ -45,10 +45,8 @@ #define PVH_GDT_ENTRY_CS 1 #define PVH_GDT_ENTRY_DS 2 -#define PVH_GDT_ENTRY_CANARY 3 #define PVH_CS_SEL (PVH_GDT_ENTRY_CS * 8) #define PVH_DS_SEL (PVH_GDT_ENTRY_DS * 8) -#define PVH_CANARY_SEL (PVH_GDT_ENTRY_CANARY * 8) SYM_CODE_START_LOCAL(pvh_start_xen) cld @@ -109,17 +107,6 @@ #else /* CONFIG_X86_64 */ - /* Set base address in stack canary descriptor. */ - movl $_pa(gdt_start),%eax - movl $_pa(canary),%ecx - movw %cx, (PVH_GDT_ENTRY_CANARY * 8) + 2(%eax) - shrl $16, %ecx - movb %cl, (PVH_GDT_ENTRY_CANARY * 8) + 4(%eax) - movb %ch, (PVH_GDT_ENTRY_CANARY * 8) + 7(%eax) - - mov $PVH_CANARY_SEL,%eax - mov %eax,%gs - call mk_early_pgtbl_32 mov $_pa(initial_page_table), %eax @@ -163,7 +150,6 @@ .quad GDT_ENTRY(0xc09a, 0, 0xfffff) /* PVH_CS_SEL */ #endif .quad GDT_ENTRY(0xc092, 0, 0xfffff) /* PVH_DS_SEL */ - .quad GDT_ENTRY(0x4090, 0, 0x18) /* PVH_CANARY_SEL */ SYM_DATA_END_LABEL(gdt_start, SYM_L_LOCAL, gdt_end) .balign 16 diff -Nru linux-5.10.209/arch/x86/power/cpu.c linux-5.10.216/arch/x86/power/cpu.c --- linux-5.10.209/arch/x86/power/cpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/power/cpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -101,11 +101,8 @@ /* * segment registers */ -#ifdef CONFIG_X86_32_LAZY_GS savesegment(gs, ctxt->gs); -#endif #ifdef CONFIG_X86_64 - savesegment(gs, ctxt->gs); savesegment(fs, ctxt->fs); savesegment(ds, ctxt->ds); savesegment(es, ctxt->es); @@ -234,7 +231,6 @@ wrmsrl(MSR_GS_BASE, ctxt->kernelmode_gs_base); #else loadsegment(fs, __KERNEL_PERCPU); - loadsegment(gs, __KERNEL_STACK_CANARY); #endif /* Restore the TSS, RO GDT, LDT, and usermode-relevant MSRs. */ @@ -257,7 +253,7 @@ */ wrmsrl(MSR_FS_BASE, ctxt->fs_base); wrmsrl(MSR_KERNEL_GS_BASE, ctxt->usermode_gs_base); -#elif defined(CONFIG_X86_32_LAZY_GS) +#else loadsegment(gs, ctxt->gs); #endif diff -Nru linux-5.10.209/arch/x86/tools/relocs.c linux-5.10.216/arch/x86/tools/relocs.c --- linux-5.10.209/arch/x86/tools/relocs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/tools/relocs.c 2024-05-02 14:23:46.000000000 +0000 @@ -596,6 +596,14 @@ if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) { continue; } + /* + * Do not perform relocations in .notes section; any + * values there are meant for pre-boot consumption (e.g. + * startup_xen). + */ + if (sec_applies->shdr.sh_type == SHT_NOTE) { + continue; + } sh_symtab = sec_symtab->symtab; sym_strtab = sec_symtab->link->strtab; for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) { diff -Nru linux-5.10.209/arch/x86/xen/enlighten_pv.c linux-5.10.216/arch/x86/xen/enlighten_pv.c --- linux-5.10.209/arch/x86/xen/enlighten_pv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/xen/enlighten_pv.c 2024-05-02 14:23:46.000000000 +0000 @@ -1193,7 +1193,6 @@ pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry_boot; pv_ops.cpu.load_gdt = xen_load_gdt_boot; - setup_stack_canary_segment(cpu); switch_to_new_gdt(cpu); pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry; diff -Nru linux-5.10.209/arch/x86/xen/smp.c linux-5.10.216/arch/x86/xen/smp.c --- linux-5.10.209/arch/x86/xen/smp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/arch/x86/xen/smp.c 2024-05-02 14:23:46.000000000 +0000 @@ -65,6 +65,8 @@ char *resched_name, *callfunc_name, *debug_name; resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu); + if (!resched_name) + goto fail_mem; per_cpu(xen_resched_irq, cpu).name = resched_name; rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR, cpu, @@ -77,6 +79,8 @@ per_cpu(xen_resched_irq, cpu).irq = rc; callfunc_name = kasprintf(GFP_KERNEL, "callfunc%d", cpu); + if (!callfunc_name) + goto fail_mem; per_cpu(xen_callfunc_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR, cpu, @@ -90,6 +94,9 @@ if (!xen_fifo_events) { debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu); + if (!debug_name) + goto fail_mem; + per_cpu(xen_debug_irq, cpu).name = debug_name; rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt, @@ -101,6 +108,9 @@ } callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu); + if (!callfunc_name) + goto fail_mem; + per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR, cpu, @@ -114,6 +124,8 @@ return 0; + fail_mem: + rc = -ENOMEM; fail: xen_smp_intr_free(cpu); return rc; diff -Nru linux-5.10.209/block/bio.c linux-5.10.216/block/bio.c --- linux-5.10.209/block/bio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/bio.c 2024-05-02 14:23:46.000000000 +0000 @@ -770,7 +770,7 @@ if ((addr1 | mask) != (addr2 | mask)) return false; - if (bv->bv_len + len > queue_max_segment_size(q)) + if (len > queue_max_segment_size(q) - bv->bv_len) return false; return __bio_try_merge_page(bio, page, len, offset, same_page); } @@ -954,7 +954,7 @@ return; bio_for_each_segment_all(bvec, bio, iter_all) { - if (mark_dirty && !PageCompound(bvec->bv_page)) + if (mark_dirty) set_page_dirty_lock(bvec->bv_page); put_page(bvec->bv_page); } @@ -1326,8 +1326,7 @@ struct bvec_iter_all iter_all; bio_for_each_segment_all(bvec, bio, iter_all) { - if (!PageCompound(bvec->bv_page)) - set_page_dirty_lock(bvec->bv_page); + set_page_dirty_lock(bvec->bv_page); } } @@ -1375,7 +1374,7 @@ struct bvec_iter_all iter_all; bio_for_each_segment_all(bvec, bio, iter_all) { - if (!PageDirty(bvec->bv_page) && !PageCompound(bvec->bv_page)) + if (!PageDirty(bvec->bv_page)) goto defer; } diff -Nru linux-5.10.209/block/blk-iocost.c linux-5.10.216/block/blk-iocost.c --- linux-5.10.209/block/blk-iocost.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/blk-iocost.c 2024-05-02 14:23:46.000000000 +0000 @@ -1296,6 +1296,13 @@ lockdep_assert_held(&iocg->waitq.lock); + /* + * If the delay is set by another CPU, we may be in the past. No need to + * change anything if so. This avoids decay calculation underflow. + */ + if (time_before64(now->now, iocg->delay_at)) + return false; + /* calculate the current delay in effect - 1/2 every second */ tdelta = now->now - iocg->delay_at; if (iocg->delay) diff -Nru linux-5.10.209/block/blk-mq.c linux-5.10.216/block/blk-mq.c --- linux-5.10.209/block/blk-mq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/blk-mq.c 2024-05-02 14:23:46.000000000 +0000 @@ -1189,6 +1189,22 @@ __add_wait_queue(wq, wait); /* + * Add one explicit barrier since blk_mq_get_driver_tag() may + * not imply barrier in case of failure. + * + * Order adding us to wait queue and allocating driver tag. + * + * The pair is the one implied in sbitmap_queue_wake_up() which + * orders clearing sbitmap tag bits and waitqueue_active() in + * __sbitmap_queue_wake_up(), since waitqueue_active() is lockless + * + * Otherwise, re-order of adding wait queue and getting driver tag + * may cause __sbitmap_queue_wake_up() to wake up nothing because + * the waitqueue_active() may not observe us in wait queue. + */ + smp_mb(); + + /* * It's possible that a tag was freed in the window between the * allocation failure and adding the hardware queue to the wait * queue. diff -Nru linux-5.10.209/block/blk-settings.c linux-5.10.216/block/blk-settings.c --- linux-5.10.209/block/blk-settings.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/blk-settings.c 2024-05-02 14:23:46.000000000 +0000 @@ -60,6 +60,7 @@ lim->io_opt = 0; lim->misaligned = 0; lim->zoned = BLK_ZONED_NONE; + lim->zone_write_granularity = 0; } EXPORT_SYMBOL(blk_set_default_limits); @@ -354,6 +355,28 @@ EXPORT_SYMBOL(blk_queue_physical_block_size); /** + * blk_queue_zone_write_granularity - set zone write granularity for the queue + * @q: the request queue for the zoned device + * @size: the zone write granularity size, in bytes + * + * Description: + * This should be set to the lowest possible size allowing to write in + * sequential zones of a zoned block device. + */ +void blk_queue_zone_write_granularity(struct request_queue *q, + unsigned int size) +{ + if (WARN_ON_ONCE(!blk_queue_is_zoned(q))) + return; + + q->limits.zone_write_granularity = size; + + if (q->limits.zone_write_granularity < q->limits.logical_block_size) + q->limits.zone_write_granularity = q->limits.logical_block_size; +} +EXPORT_SYMBOL_GPL(blk_queue_zone_write_granularity); + +/** * blk_queue_alignment_offset - set physical block alignment offset * @q: the request queue for the device * @offset: alignment offset in bytes @@ -630,7 +653,13 @@ t->discard_granularity; } + t->zone_write_granularity = max(t->zone_write_granularity, + b->zone_write_granularity); t->zoned = max(t->zoned, b->zoned); + if (!t->zoned) { + t->zone_write_granularity = 0; + t->max_zone_append_sectors = 0; + } return ret; } EXPORT_SYMBOL(blk_stack_limits); @@ -846,6 +875,8 @@ */ void blk_queue_set_zoned(struct gendisk *disk, enum blk_zoned_model model) { + struct request_queue *q = disk->queue; + switch (model) { case BLK_ZONED_HM: /* @@ -874,7 +905,15 @@ break; } - disk->queue->limits.zoned = model; + q->limits.zoned = model; + if (model != BLK_ZONED_NONE) { + /* + * Set the zone write granularity to the device logical block + * size by default. The driver can change this value if needed. + */ + blk_queue_zone_write_granularity(q, + queue_logical_block_size(q)); + } } EXPORT_SYMBOL_GPL(blk_queue_set_zoned); diff -Nru linux-5.10.209/block/blk-stat.c linux-5.10.216/block/blk-stat.c --- linux-5.10.209/block/blk-stat.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/blk-stat.c 2024-05-02 14:23:46.000000000 +0000 @@ -28,7 +28,7 @@ /* src is a per-cpu stat, mean isn't initialized */ void blk_rq_stat_sum(struct blk_rq_stat *dst, struct blk_rq_stat *src) { - if (!src->nr_samples) + if (dst->nr_samples + src->nr_samples <= dst->nr_samples) return; dst->min = min(dst->min, src->min); diff -Nru linux-5.10.209/block/blk-sysfs.c linux-5.10.216/block/blk-sysfs.c --- linux-5.10.209/block/blk-sysfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/blk-sysfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -219,6 +219,12 @@ (unsigned long long)q->limits.max_write_zeroes_sectors << 9); } +static ssize_t queue_zone_write_granularity_show(struct request_queue *q, + char *page) +{ + return queue_var_show(queue_zone_write_granularity(q), page); +} + static ssize_t queue_zone_append_max_show(struct request_queue *q, char *page) { unsigned long long max_sectors = q->limits.max_zone_append_sectors; @@ -585,6 +591,7 @@ QUEUE_RO_ENTRY(queue_write_same_max, "write_same_max_bytes"); QUEUE_RO_ENTRY(queue_write_zeroes_max, "write_zeroes_max_bytes"); QUEUE_RO_ENTRY(queue_zone_append_max, "zone_append_max_bytes"); +QUEUE_RO_ENTRY(queue_zone_write_granularity, "zone_write_granularity"); QUEUE_RO_ENTRY(queue_zoned, "zoned"); QUEUE_RO_ENTRY(queue_nr_zones, "nr_zones"); @@ -639,6 +646,7 @@ &queue_write_same_max_entry.attr, &queue_write_zeroes_max_entry.attr, &queue_zone_append_max_entry.attr, + &queue_zone_write_granularity_entry.attr, &queue_nonrot_entry.attr, &queue_zoned_entry.attr, &queue_nr_zones_entry.attr, diff -Nru linux-5.10.209/block/ioctl.c linux-5.10.216/block/ioctl.c --- linux-5.10.209/block/ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -17,7 +17,7 @@ struct blkpg_partition __user *upart, int op) { struct blkpg_partition p; - long long start, length; + sector_t start, length; if (!capable(CAP_SYS_ADMIN)) return -EACCES; @@ -32,6 +32,12 @@ if (op == BLKPG_DEL_PARTITION) return bdev_del_partition(bdev, p.pno); + if (p.start < 0 || p.length <= 0 || p.start + p.length < 0) + return -EINVAL; + /* Check that the partition is aligned to the block size */ + if (!IS_ALIGNED(p.start | p.length, bdev_logical_block_size(bdev))) + return -EINVAL; + start = p.start >> SECTOR_SHIFT; length = p.length >> SECTOR_SHIFT; @@ -46,9 +52,6 @@ switch (op) { case BLKPG_ADD_PARTITION: - /* check if partition is aligned to blocksize */ - if (p.start & (bdev_logical_block_size(bdev) - 1)) - return -EINVAL; return bdev_add_partition(bdev, p.pno, start, length); case BLKPG_RESIZE_PARTITION: return bdev_resize_partition(bdev, p.pno, start, length); @@ -405,6 +408,11 @@ return ret; if (get_user(n, (int __user *)arg)) return -EFAULT; + if (bdev->bd_disk->fops->set_read_only) { + ret = bdev->bd_disk->fops->set_read_only(bdev, n); + if (ret) + return ret; + } set_device_ro(bdev, n); return 0; } diff -Nru linux-5.10.209/block/opal_proto.h linux-5.10.216/block/opal_proto.h --- linux-5.10.209/block/opal_proto.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/opal_proto.h 2024-05-02 14:23:46.000000000 +0000 @@ -66,6 +66,7 @@ #define SHORT_ATOM_BYTE 0xBF #define MEDIUM_ATOM_BYTE 0xDF #define LONG_ATOM_BYTE 0xE3 +#define EMPTY_ATOM_BYTE 0xFF #define OPAL_INVAL_PARAM 12 #define OPAL_MANUFACTURED_INACTIVE 0x08 diff -Nru linux-5.10.209/block/sed-opal.c linux-5.10.216/block/sed-opal.c --- linux-5.10.209/block/sed-opal.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/block/sed-opal.c 2024-05-02 14:23:46.000000000 +0000 @@ -895,16 +895,20 @@ token_length = response_parse_medium(iter, pos); else if (pos[0] <= LONG_ATOM_BYTE) /* long atom */ token_length = response_parse_long(iter, pos); + else if (pos[0] == EMPTY_ATOM_BYTE) /* empty atom */ + token_length = 1; else /* TOKEN */ token_length = response_parse_token(iter, pos); if (token_length < 0) return token_length; + if (pos[0] != EMPTY_ATOM_BYTE) + num_entries++; + pos += token_length; total -= token_length; iter++; - num_entries++; } resp->num = num_entries; diff -Nru linux-5.10.209/debian/changelog linux-5.10.216/debian/changelog --- linux-5.10.209/debian/changelog 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/changelog 2024-05-03 12:40:24.000000000 +0000 @@ -1,3 +1,1260 @@ +linux (5.10.216-1) bullseye-security; urgency=high + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.210 + - units: change from 'L' to 'UL' + - units: add the HZ macros + - spi: introduce SPI_MODE_X_MASK macro + - iio: adc: ad7091r: Set alert bit in config register + - iio: adc: ad7091r: Allow users to configure device events + - iio: adc: ad7091r: Enable internal vref if external vref is not supplied + - dmaengine: fix NULL pointer in channel unregistration function + - iio:adc:ad7091r: Move exports into IIO_AD7091R namespace. + - ext4: allow for the last group to be marked as trimmed + - crypto: api - Disallow identical driver names + - PM: hibernate: Enforce ordering during image compression/decompression + - hwrng: core - Fix page fault dead lock on mmap-ed hwrng + - [s390x] crypto: s390/aes - Fix buffer overread in CTR mode + - bus: mhi: host: Drop chan lock before queuing buffers + - async: Split async_schedule_node_domain() + - async: Introduce async_schedule_dev_nocall() + - [arm64] dts: qcom: sdm845: fix USB wakeup interrupt types + - [arm64] dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts + - lsm: new security_file_ioctl_compat() hook + - scripts/get_abi: fix source path leak + - mmc: core: Use mrq.sbc in close-ended ffu + - mmc: mmc_spi: remove custom DMA mapped buffers + - rtc: Adjust failure return code for cmos_set_alarm() + - nouveau/vmm: don't set addr on the fail path to avoid warning + - ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path + - rename(): fix the locking of subdirectories + - block: Remove special-casing of compound pages + - mm: vmalloc: introduce array allocation functions + - KVM: use __vcalloc for very large allocations + - net/smc: fix illegal rmb_desc access in SMC-D connection dump + - tcp: make sure init the accept_queue's spinlocks once + - bnxt_en: Wait for FLR to complete during probe + - vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING + - llc: make llc_ui_sendmsg() more robust against bonding changes + - llc: Drop support for ETH_P_TR_802_2. + - net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv + (CVE-2024-23849) + - tracing: Ensure visibility when inserting an element into tracing_map + - afs: Hide silly-rename files from userspace + - tcp: Add memory barrier to tcp_push() + - netlink: fix potential sleeping issue in mqueue_flush_file + - ipv6: init the accept_queue's spinlocks in inet6_create + - net/mlx5: DR, Use the right GVMI number for drop action + - net/mlx5e: fix a double-free in arfs_create_groups + - netfilter: nf_tables: restrict anonymous set and map names to 16 bytes + - netfilter: nf_tables: validate NFPROTO_* family + - net: mvpp2: clear BM pool before initialization + - fjes: fix memleaks in fjes_hw_setup + - net: fec: fix the unhandled context fault from smmu + - btrfs: ref-verify: free ref cache before clearing mount opt + - btrfs: tree-checker: fix inline ref size in error messages + - btrfs: don't warn if discard range is not aligned to sector + - btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args + - btrfs: don't abort filesystem when attempting to snapshot deleted + subvolume + - rbd: don't move requests to the running list on errors + - exec: Fix error handling in begin_new_exec() + - wifi: iwlwifi: fix a memory corruption + - netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress + basechain + - gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 + - drm: Don't unref the same fb many times by mistake due to deadlock + handling + - drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking + - drm/tidss: Fix atomic_flush check + - drm/bridge: nxp-ptn3460: simplify some error checking + - PM: sleep: Use dev_printk() when possible + - PM: sleep: Avoid calling put_device() under dpm_list_mtx + - PM: core: Remove unnecessary (void *) conversions + - PM: sleep: Fix possible deadlocks in core system-wide PM code + - fs/pipe: move check to pipe_has_watch_queue() + - pipe: wakeup wr_wait after setting max_usage + - [arm64] dts: qcom: sc7180: Use pdc interrupts for USB instead of GIC + interrupts + - [arm64] dts: qcom: sc7180: fix USB wakeup interrupt types + - mm: use __pfn_to_section() instead of open coding it + - mm/sparsemem: fix race in accessing memory_section->usage + - btrfs: remove err variable from btrfs_delete_subvolume + - btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume + being deleted + - drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33] + - [armhf] drm/exynos: fix accidental on-stack copy of exynos_drm_plane + - [armhf] drm/exynos: gsc: minor fix for loop iteration in + gsc_runtime_resume + - gpio: eic-sprd: Clear interrupt after set the interrupt type + - spi: bcm-qspi: fix SFDP BFPT read by usig mspi read + - [mips*] Call lose_fpu(0) before initializing fcr31 in + mips_set_personality_nan + - tick/sched: Preserve number of idle sleeps across CPU hotplug events + - [x86] entry/ia32: Ensure s32 is sign extended to s64 + - [powerpc*] mm: Fix null-pointer dereference in pgtable_cache_add + - drivers/perf: pmuv3: don't expose SW_INCR event in sysfs + - [powerpc*] Fix build error due to is_valid_bugaddr() + - [powerpc*] mm: Fix build failures due to arch_reserved_kernel_pages() + - [x86] boot: Ignore NMIs during very early boot + - [powerpc*] pmd_move_must_withdraw() is only needed for + CONFIG_TRANSPARENT_HUGEPAGE + - [powerpc*] lib: Validate size for vector operations + - [x86] mce: Mark fatal MCE's page as poison to avoid panic in the kdump + kernel + - perf/core: Fix narrow startup race when creating the perf nr_addr_filters + sysfs file + - debugobjects: Stop accessing objects after releasing hash bucket lock + - regulator: core: Only increment use_count when enable_count changes + - audit: Send netlink ACK before setting connection in auditd_set + - ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop + - PNP: ACPI: fix fortify warning + - ACPI: extlog: fix NULL pointer dereference check + - PM / devfreq: Synchronize devfreq_monitor_[start/stop] + - ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous + events + - FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree + - jfs: fix slab-out-of-bounds Read in dtSearch + - jfs: fix array-index-out-of-bounds in dbAdjTree + - jfs: fix uaf in jfs_evict_inode + - pstore/ram: Fix crash when setting number of cpus to an odd number + - crypto: stm32/crc32 - fix parsing list of devices + - afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu() + - afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() + - rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock() + - jfs: fix array-index-out-of-bounds in diNewExt + - [s390x] ptrace: handle setting of fpc register correctly + - [s390x] KVM: s390: fix setting of fpc register + - SUNRPC: Fix a suspicious RCU usage warning + - ecryptfs: Reject casefold directory inodes + - ext4: fix inconsistent between segment fstrim and full fstrim + - ext4: unify the type of flexbg_size to unsigned int + - ext4: remove unnecessary check from alloc_flex_gd() + - ext4: avoid online resizing failures due to oversized flex bg + - wifi: rt2x00: restart beacon queue when hardware reset + - scsi: lpfc: Fix possible file string name overflow when updating firmware + - PCI: Add no PM reset quirk for NVIDIA Spectrum devices + - bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk + - scsi: arcmsr: Support new PCI device IDs 1883 and 1886 + - wifi: ath9k: Fix potential array-index-out-of-bounds read in + ath9k_htc_txstatus() + - bpf: Add map and need_defer parameters to .map_fd_put_ptr() + - scsi: libfc: Don't schedule abort twice + - scsi: libfc: Fix up timeout error in fc_fcp_rec_error() + - bpf: Set uattr->batch.count as zero before batched update or deletion + - ionic: pass opcode to devcmd_wait + - block/rnbd-srv: Check for unlikely string overflow + - [arm64,armhf] net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error + path + - block: prevent an integer overflow in bvec_try_merge_hw_page + - md: Whenassemble the array, consult the superblock of the freshest device + - wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices + - wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift() + - wifi: cfg80211: free beacon_ies when overridden from hidden BSS + - Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 + - Bluetooth: L2CAP: Fix possible multiple reject send + - i40e: Fix VF disable behavior to block all traffic + - f2fs: fix to check return value of f2fs_reserve_new_block() + - ALSA: hda: Refer to correct stream index at loops + - ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument + - fast_dput(): handle underflows gracefully + - RDMA/IPoIB: Fix error code return in ipoib_mcast_join + - drm/amd/display: Fix tiled display misalignment + - f2fs: fix write pointers on zoned device after roll forward + - drm/drm_file: fix use of uninitialized variable + - drm/framebuffer: Fix use of uninitialized variable + - drm/mipi-dsi: Fix detach call without attach + - media: stk1160: Fixed high volume of stk1160_dbg messages + - [x86] PCI: add INTEL_HDA_ARL to pci_ids.h + - [x86] ALSA: hda: Intel: add HDA_ARL PCI ID support + - [x86] ALSA: hda: intel-dspcfg: add filters for ARL-S and ARL + - [armhf] drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind + time + - IB/ipoib: Fix mcast list locking + - media: ddbridge: fix an error code problem in ddb_probe + - [arm64] drm/msm/dpu: Ratelimit framedone timeout msgs + - clk: hi3620: Fix memory leak in hi3620_mmc_clk_init() + - clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() + - watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 + - drm/amdgpu: Let KFD sync with VM fences + - drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()' + - leds: trigger: panic: Don't register panic notifier if creating the + trigger failed + - i3c: master: cdns: Update maximum prescaler value for i2c clock + - xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import + - mfd: ti_am335x_tscadc: Fix TI SoC dependencies + - PCI: Only override AMD USB controller if required + - PCI: switchtec: Fix stdev_release() crash after surprise hot remove + - usb: hub: Replace hardcoded quirk value with BIT() macro + - tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE + - fs/kernfs/dir: obey S_ISGID + - PCI/AER: Decode Requester ID when no error info found + - libsubcmd: Fix memory leak in uniq() + - virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a + region of size 10" warnings + - blk-mq: fix IO hang from sbitmap wakeup race + - ceph: fix deadlock or deadcode of misusing dget() + - drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in + 'get_platform_power_management_table()' + - drm/amdgpu: Release 'adev->pm.fw' before return in + 'amdgpu_device_need_post()' + - perf: Fix the nr_addr_filters fix + - wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update + - drm: using mul_u32_u32() requires linux/math64.h + - scsi: isci: Fix an error code problem in isci_io_request_build() + - scsi: core: Introduce enum scsi_disposition + - scsi: core: Move scsi_host_busy() out of host lock for waking up EH + handler + - ip6_tunnel: use dev_sw_netstats_rx_add() + - ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv() + - net-zerocopy: Refactor frag-is-remappable test. + - tcp: add sanity checks to rx zerocopy + - ixgbe: Remove non-inclusive language + - ixgbe: Refactor returning internal error codes + - ixgbe: Refactor overtemp event handling + - ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550() + - ipv6: Ensure natural alignment of const ipv6 loopback and router addresses + - llc: call sock_orphan() at release time + - netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger + - netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom + expectations + - net: ipv4: fix a memleak in ip_setup_cork + - af_unix: fix lockdep positive in sk_diag_dump_icons() + - net: sysfs: Fix /sys/class/net/ path + - HID: apple: Add support for the 2021 Magic Keyboard + - HID: apple: Add 2021 magic keyboard FN key mapping + - bonding: remove print in bond_verify_device_path + - uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++ + - PM: sleep: Fix error handling in dpm_prepare() + - dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools + - dmaengine: ti: k3-udma: Report short packet errors + - dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA + - dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA + - dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV + - phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP + (CVE-2024-26600) + - [arm64] drm/msm/dp: return correct Colorimetry for + DP_TEST_DYNAMIC_RANGE_CEA case + - net: stmmac: xgmac: fix handling of DPP safety error for DMA channels + - tunnels: fix out of bounds access when building IPv6 PMTU error + - atm: idt77252: fix a memleak in open_card_ubr0 + - hwmon: (aspeed-pwm-tacho) mutex for tach reading + - [x86] hwmon: (coretemp) Fix out-of-bounds memory access + - [x86] hwmon: (coretemp) Fix bogus core_id to attr name mapping + - inet: read sk->sk_family once in inet_recv_error() + - rxrpc: Fix response to PING RESPONSE ACKs to a dead call + - tipc: Check the bearer type before calling tipc_udp_nl_bearer_add() + - ppp_async: limit MRU to 64K + - netfilter: nft_compat: reject unused compat flag + - netfilter: nft_compat: restrict match/target protocol to u16 + - netfilter: nft_ct: reject direction for ct id + - netfilter: nft_set_pipapo: store index in scratch maps + - netfilter: nft_set_pipapo: add helper to release pcpu scratch area + - netfilter: nft_set_pipapo: remove scratch_aligned pointer + - scsi: core: Move scsi_host_busy() out of host lock if it is for + per-command + - blk-iocost: Fix an UBSAN shift-out-of-bounds warning + - net/af_iucv: clean up a try_then_request_module() + - USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e + - USB: serial: option: add Fibocom FM101-GL variant + - USB: serial: cp210x: add ID for IMST iM871A-USB + - usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK + - hrtimer: Report offline hrtimer enqueue + - Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU + - Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID + - vhost: use kzalloc() instead of kmalloc() followed by memset() + - clocksource: Skip watchdog check for large watchdog intervals + - net: stmmac: xgmac: use #define for string constants + - net: stmmac: xgmac: fix a typo of register name in DPP safety handling + - netfilter: nft_set_rbtree: skip end interval element from gc + (CVE-2024-26581) + - btrfs: forbid creating subvol qgroups + - btrfs: do not ASSERT() if the newly created subvolume already got read + (CVE-2024-23850) + - btrfs: forbid deleting live subvol qgroup + - btrfs: send: return EOPNOTSUPP on unknown flags + - of: unittest: Fix compile in the non-dynamic case + - net: openvswitch: limit the number of recursions from action sets + (CVE-2024-1151) + - spi: ppc4xx: Drop write-only variable + - ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work() + - net: sysfs: Fix /sys/class/net/ path for statistics + - [mips*] Add 'memory' clobber to csum_ipv6_magic() inline assembler + - i40e: Fix waiting for queues of all VSIs to be disabled + - tracing/trigger: Fix to return error if failed to alloc snapshot + - mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again + - ALSA: hda/realtek: Fix the external mic not being recognised for Acer + Swift 1 SF114-32 + - ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx + - HID: wacom: generic: Avoid reporting a serial of '0' to userspace + - HID: wacom: Do not register input devices until after hid_hw_start + - usb: ucsi_acpi: Fix command completion handling + - USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT + - usb: f_mass_storage: forbid async queue when shutdown happen + - media: ir_toy: fix a memleak in irtoy_tx + - i2c: i801: Remove i801_set_block_buffer_mode + - i2c: i801: Fix block process call transactions (CVE-2024-26593) + - modpost: trim leading spaces when processing source files list + - scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock" + - lsm: fix the logic in security_inode_getsecctx() + - firewire: core: correct documentation of fw_csr_string() kernel API + - kbuild: Fix changing ELF file type for output of gen_btf for big endian + - nfc: nci: free rx_data_reassembly skb on NCI device cleanup + - net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame() + - xen-netback: properly sync TX responses + - ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL + - [arm*] binder: signal epoll threads of self-work (CVE-2024-26606) + - misc: fastrpc: Mark all sessions as invalid in cb_remove + - ext4: fix double-free of blocks due to wrong extents moved_len + - tracing: Fix wasted memory in saved_cmdlines logic + - staging: iio: ad5933: fix type mismatch regression + - iio: magnetometer: rm3100: add boundary check for the value read from + RM3100_REG_TMRC + - iio: accel: bma400: Fix a compilation problem + - media: rc: bpf attach/detach requires write permission + - hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove + - ring-buffer: Clean ring_buffer_poll_wait() error return + - serial: max310x: set default value when reading clock ready bit + - serial: max310x: improve crystal stable clock detection + - [x86] mm/ident_map: Use gbpages only where full GB page should be mapped. + - mmc: slot-gpio: Allow non-sleeping GPIO ro + - ALSA: hda/conexant: Add quirk for SWS JS201D + - nilfs2: fix data corruption in dsync block recovery for small block sizes + - nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() + - crypto: ccp - Fix null pointer dereference in + __sev_platform_shutdown_locked + - nfp: use correct macro for LengthSelect in BAR config + - nfp: flower: prevent re-adding mac index for bonded port + - wifi: mac80211: reload info pointer in ieee80211_tx_dequeue() + - irqchip/irq-brcmstb-l2: Add write memory barrier before exit + - irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update + - [s390x] qeth: Fix potential loss of L3-IP@ in case of network issues + - ceph: prevent use-after-free in encode_cap_msg() + - of: property: fix typo in io-channels + - can: j1939: Fix UAF in j1939_sk_match_filter during + setsockopt(SO_J1939_FILTER) + - pmdomain: core: Move the unused cleanup to a _sync initcall + - tracing: Inform kmemleak of saved_cmdlines allocation + - Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d" + - bus: moxtet: Add spi device table + - PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support + - mips: Fix max_mapnr being uninitialized on early stages + - crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init + - serial: Add rs485_supported to uart_port + - serial: 8250_exar: Fill in rs485_supported + - serial: 8250_exar: Set missing rs485_supported flag + - scripts/decode_stacktrace.sh: silence stderr messages from addr2line/nm + - scripts/decode_stacktrace.sh: support old bash version + - scripts: decode_stacktrace: demangle Rust symbols + - scripts/decode_stacktrace.sh: optionally use LLVM utilities + - netfilter: ipset: fix performance regression in swap operation + - netfilter: ipset: Missing gc cancellations fixed + - hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range() + - Revert "arm64: Stash shadow stack pointer in the task struct on interrupt" + - net: prevent mss overflow in skb_segment() (CVE-2023-52435) + - sched/membarrier: reduce the ability to hammer on sys_membarrier + (CVE-2024-26602) + - nilfs2: fix potential bug in end_buffer_async_write + - nilfs2: replace WARN_ONs for invalid DAT metadata block requests + - dm: limit the number of targets and parameter size area (CVE-2024-23851, + CVE-2023-52429) + - PM: runtime: add devm_pm_runtime_enable helper + - PM: runtime: Have devm_pm_runtime_enable() handle + pm_runtime_dont_use_autosuspend() + - [arm64] drm/msm/dsi: Enable runtime PM + - netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() + (CVE-2024-0607) + - net: bcmgenet: Fix EEE implementation + - PCI: dwc: Fix a 64bit bug in dw_pcie_ep_raise_msix_irq() + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.211 + - net/sched: Retire CBQ qdisc + - net/sched: Retire ATM qdisc + - net/sched: Retire dsmark qdisc + - smb: client: fix OOB in receive_encrypted_standard() (CVE-2024-0565) + - smb: client: fix potential OOBs in smb2_parse_contexts() (CVE-2023-52434) + - smb: client: fix parsing of SMB3.1.1 POSIX create context + - sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset + - userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb + - zonefs: Improve error handling + - sched/rt: Fix sysctl_sched_rr_timeslice intial value + - sched/rt: Disallow writing invalid values to sched_rt_period_us + - scsi: target: core: Add TMF to tmr_list handling + - [arm64] dmaengine: fsl-qdma: increase size of 'irq_name' + - wifi: cfg80211: fix missing interfaces when dumping + - wifi: mac80211: fix race condition on enabling fast-xmit + - fbdev: savage: Error out if pixclock equals zero + - fbdev: sis: Error out if pixclock equals zero + - spi: hisi-sfc-v3xx: Return IRQ_NONE if no interrupts were detected + - ahci: asm1166: correct count of reported ports + - ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers + - ext4: avoid allocating blocks from corrupted group in + ext4_mb_try_best_found() + - ext4: avoid allocating blocks from corrupted group in + ext4_mb_find_by_goal() + - [armhf] dmaengine: ti: edma: Add some null pointer checks to the + edma_probe + - [arm64] regulator: pwm-regulator: Add validity checks in continuous + .get_voltage + - nvmet-tcp: fix nvme tcp ida memory leak + - [armhf] ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616 + - netfilter: conntrack: check SCTP_CID_SHUTDOWN_ACK for vtag setting in + sctp_new + - nvme-fc: do not wait in vain when unloading module + - nvmet-fcloop: swap the list_add_tail arguments + - nvmet-fc: release reference on target port + - nvmet-fc: abort command when there is no binding + - ext4: correct the hole length returned by ext4_map_blocks() + - Input: i8042 - add Fujitsu Lifebook U728 to i8042 quirk table + - efi: runtime: Fix potential overflow of soft-reserved region size + - efi: Don't add memblocks for soft-reserved memory + - [x86] hwmon: (coretemp) Enlarge per package core count limit + - scsi: lpfc: Use unsigned type for num_sge + - firewire: core: send bus reset promptly on gap count error + - virtio-blk: Ensure no requests in virtqueues before deleting vqs. + - [mips*] irqchip/mips-gic: Don't touch vl_map if a local interrupt is not + routable + - media: av7110: prevent underflow in write_ts_to_decoder() + - hvc/xen: prevent concurrent accesses to the shared ring + - [x86] uaccess: Implement macros for CMPXCHG on user addresses + - seccomp: Invalidate seccomp mode to catch death failures + - block: ataflop: fix breakage introduced at blk-mq refactoring + - [powerpc*] watchpoint: Workaround P10 DD1 issue with VSX-32 byte + instructions + - [powerpc*] watchpoints: Annotate atomic context in more places + - cifs: add a warning when the in-flight count goes negative + - mtd: spinand: macronix: Add support for MX35LFxGE4AD + - [x86] ASoC: Intel: boards: harden codec property handling + - [x86] ASoC: Intel: boards: get codec device with ACPI instead of bus + search + - [x86] ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after + use + - task_stack, x86/cea: Force-inline stack helpers + - btrfs: tree-checker: check for overlapping extent items + - btrfs: introduce btrfs_lookup_match_dir + - btrfs: unify lookup return value when dir entry is missing + - btrfs: do not pin logs too early during renames + - lan743x: fix for potential NULL pointer dereference with bare card + - [x86] platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 + x360 PC + - iwlwifi: mvm: do more useful queue sync accounting + - iwlwifi: mvm: write queue_sync_state only for sync + - jbd2: remove redundant buffer io error checks + - jbd2: recheck chechpointing non-dirty buffer + - jbd2: Fix wrongly judgement for buffer head removing while doing + checkpoint + - [x86] drop bogus "cc" clobber from __try_cmpxchg_user_asm() + - erofs: fix lz4 inplace decompression (CVE-2023-52497) + - [amd64] IB/hfi1: Fix sdma.h tx->num_descs off-by-one error + - [s390x] cio: fix invalid -EBUSY on ccw_device_start + - dm-crypt: don't modify the data when using authenticated encryption + - [arm64] KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler + - [arm64] KVM: arm64: vgic-its: Test for valid IRQ in + its_sync_lpi_pending_table() + - gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp() + - PCI/MSI: Prevent MSI hardware interrupt number truncation + - l2tp: pass correct message length to ip6_append_data + - [x86] Revert "x86/ftrace: Use alternative RET encoding" + - [x86] text-patching: Make text_gen_insn() play nice with ANNOTATE_NOENDBR + - [x86] ibt,paravirt: Use text_gen_insn() for paravirt_patch() + - [x86] ftrace: Use alternative RET encoding + - [x86] returnthunk: Allow different return thunks + - [x86] Revert "x86/alternative: Make custom return thunk unconditional" + - [x86] alternative: Make custom return thunk unconditional + - usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs + - mptcp: fix lockless access in subflow ULP diag + - [amd64] IB/hfi1: Fix a memleak in init_credit_return + - RDMA/bnxt_re: Return error for SRQ resize + - RDMA/srpt: Support specifying the srpt_service_guid parameter + - RDMA/qedr: Fix qedr_create_user_qp error flow + - [arm64] dts: rockchip: set num-cs property for spi on px30 + - RDMA/srpt: fix function pointer cast warnings + - bpf, scripts: Correct GPL license name + - scsi: jazz_esp: Only build if SCSI core is builtin + - nouveau: fix function cast warnings + - ipv4: properly combine dev_base_seq and ipv4.dev_addr_genid + - ipv6: properly combine dev_base_seq and ipv6.dev_addr_genid + - afs: Increase buffer size in afs_update_volume_status() + - ipv6: sr: fix possible use-after-free and null-ptr-deref + - packet: move from strlcpy with unused retval to strscpy + - net: dev: Convert sa_data to flexible array in struct sockaddr + - [s390x] use the correct count for __iowrite64_copy() + - netfilter: nf_tables: set dormant flag on hook register failure + - drm/syncobj: make lockdep complain on WAIT_FOR_SUBMIT v3 + - drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is + set + - drm/amd/display: Fix memory leak in dm_sw_fini() + - block: ataflop: more blk-mq refactoring fixes + - fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio + - arp: Prevent overflow in arp_req_get(). + - ext4: regenerate buddy after block freeing failed if under fc replay + (CVE-2024-26601) + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.212 + - [x86] platform/x86: touchscreen_dmi: Allow partial (prefix) matches for + ACPI names + - crypto: virtio/akcipher - Fix stack overflow on memcpy + - netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter + - net: ip_tunnel: prevent perpetual headroom growth + - tun: Fix xdp_rxq_info's queue_index when detaching + - ipv6: fix potential "struct net" leak in inet6_rtm_getaddr() + - lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is + detected + - net: usb: dm9601: fix wrong return value in dm9601_mdio_read + - Bluetooth: Avoid potential use-after-free in hci_error_reset + - Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR + - Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST + - Bluetooth: Enforce validation on max value of connection interval + - netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate() + - rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back + - efi/capsule-loader: fix incorrect allocation size + - ALSA: Drop leftover snd-rtctimer stuff from Makefile + - afs: Fix endless loop in directory parsing + - tomoyo: fix UAF write bug in tomoyo_write_control() (CVE-2024-26622) + - gtp: fix use-after-free and null-ptr-deref in gtp_newlink() + - wifi: nl80211: reject iftype change with mesh ID change + - btrfs: dev-replace: properly validate device names + - [arm64] dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read + - [arm64] dmaengine: fsl-qdma: init irq after reg initialization + - mmc: core: Fix eMMC initialization with 1-bit bus connection + - [arm64] mmc: sdhci-xenon: add timeout for PHY init complete + - [arm64] mmc: sdhci-xenon: fix PHY init clock stability + - [arm64] pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation + - [x86] cpu/intel: Detect TME keyid bits before setting MTRR mask registers + - mptcp: fix possible deadlock in subflow diag + - ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks() + - cachefiles: fix memory leak in cachefiles_add_cache() + - fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super + (CVE-2024-0841) + - gpiolib: Fix the error path order in gpiochip_add_data_with_key() + - gpio: fix resource unwinding order in error path + - mptcp: fix double-free on socket dismantle + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.213 + - [arm64,armhf] mmc: mmci: stm32: use a buffer for unaligned DMA requests + - [arm64,armhf] mmc: mmci: stm32: fix DMA API overlapping mappings warning + - lan78xx: Fix white space and style issues + - lan78xx: Add missing return code checks + - lan78xx: Fix partial packet errors on suspend/resume + - lan78xx: Fix race conditions in suspend/resume handling + - net: lan78xx: fix runtime PM count underflow on link stop + - ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able + - i40e: disable NAPI right after disabling irqs when handling xsk_pool + - tracing/net_sched: Fix tracepoints that save qdisc_dev() as a string + - geneve: make sure to pull inner header in geneve_rx() + - net: ice: Fix potential NULL pointer dereference in ice_bridge_setlink() + - net/ipv6: avoid possible UAF in ip6_route_mpath_notify() + - cpumap: Zero-initialise xdp_rxq_info struct before running XDP program + - net/rds: fix WARNING in rds_conn_connect_if_down + - netfilter: nft_ct: fix l3num expectations with inet pseudo family + - netfilter: nf_conntrack_h323: Add protection for bmp length out of range + - netrom: Fix a data-race around sysctl_netrom_default_path_quality + - netrom: Fix a data-race around + sysctl_netrom_obsolescence_count_initialiser + - netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser + - netrom: Fix a data-race around sysctl_netrom_transport_timeout + - netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries + - netrom: Fix a data-race around sysctl_netrom_transport_acknowledge_delay + - netrom: Fix a data-race around sysctl_netrom_transport_busy_delay + - netrom: Fix a data-race around + sysctl_netrom_transport_requested_window_size + - netrom: Fix a data-race around sysctl_netrom_transport_no_activity_timeout + - netrom: Fix a data-race around sysctl_netrom_routing_control + - netrom: Fix a data-race around sysctl_netrom_link_fails_count + - netrom: Fix data-races around sysctl_net_busy_read + - xhci: remove extra loop in interrupt context + - xhci: prevent double-fetch of transfer and transfer event TRBs + - xhci: process isoc TD properly when there was a transaction error mid TD. + - xhci: handle isoc Babble and Buffer Overrun events properly + - net: Change sock_getsockopt() to take the sk ptr instead of the sock ptr + - bpf: net: Change sk_getsockopt() to take the sockptr_t argument + - lsm: make security_socket_getpeersec_stream() sockptr_t safe + - lsm: fix default return value of the socket_getpeersec_*() hooks + - ext4: make ext4_es_insert_extent() return void + - ext4: refactor ext4_da_map_blocks() + - ext4: convert to exclusive lock while inserting delalloc extents + - [x86] Drivers: hv: vmbus: Add vmbus_requestor data structure for VMBus + hardening + - [x86] hv_netvsc: Use vmbus_requestor to generate transaction IDs for VMBus + hardening + - [x86] hv_netvsc: Wait for completion on request SWITCH_DATA_PATH + - [x86] hv_netvsc: Process NETDEV_GOING_DOWN on VF hot remove + - [x86] hv_netvsc: Make netvsc/VF binding check both MAC and serial number + - [x86] hv_netvsc: use netif_is_bond_master() instead of open code + - [x86] hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed + - mm/hugetlb: change hugetlb_reserve_pages() to type bool + - mm: hugetlb pages should not be reserved by shmat() if SHM_NORESERVE + - getrusage: add the "signal_struct *sig" local variable + - getrusage: move thread_group_cputime_adjusted() outside of + lock_task_sighand() + - getrusage: use __for_each_thread() + - getrusage: use sig->stats_lock rather than lock_task_sighand() + - [x86] Drivers: hv: vmbus: Drop error message when 'No request id + available' + - regmap: allow to define reg_update_bits for no bus configuration + - regmap: Add bulk read/write callbacks into regmap_config + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.214 + - io_uring/unix: drop usage of io_uring socket + - io_uring: drop any code related to SCM_RIGHTS + - rcu-tasks: Provide rcu_trace_implies_rcu_gp() + - bpf: Defer the free of inner map when necessary (CVE-2023-52447) + - ASoC: rt5645: Make LattePanda board DMI match more precise + - [x86] xen: Add some null pointer checking to smp.c + - [mips*] Clear Cause.BD in instruction_pointer_set + - HID: multitouch: Add required quirk for Synaptics 0xcddc device + - gen_compile_commands: fix invalid escape sequence warning + - RDMA/mlx5: Fix fortify source warning while accessing Eth segment + - RDMA/mlx5: Relax DEVX access upon modify commands + - [x86] mm: Move is_vsyscall_vaddr() into asm/vsyscall.h + - [x86] mm: Disallow vsyscall page read for copy_from_kernel_nofault() + - net/iucv: fix the allocation size of iucv_path_table array + - block: sed-opal: handle empty atoms when parsing response + - dm-verity, dm-crypt: align "struct bvec_iter" correctly + - scsi: mpt3sas: Prevent sending diag_reset when the controller is ready + - Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security + (CVE-2024-22099) + - firewire: core: use long bus reset on gap count error + - [x86] ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 + tablet + - Input: gpio_keys_polled - suppress deferred probe error for gpio + - [x86] paravirt: Fix build due to __text_gen_insn() backport + - do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak + - nbd: null check for nla_nest_start + - fs/select: rework stack allocation hack for clang + - block: add a new set_read_only method + - md: implement ->set_read_only to hook into BLKROSET processing + - md: Don't clear MD_CLOSING when the raid is about to stop + - aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts + (CVE-2023-6270) + - timekeeping: Fix cross-timestamp interpolation on counter wrap + - timekeeping: Fix cross-timestamp interpolation corner case decision + - timekeeping: Fix cross-timestamp interpolation for non-x86 + - wifi: ath10k: fix NULL pointer dereference in + ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() (CVE-2023-7042) + - wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled + - wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled + - wifi: b43: Stop correct queue in DMA worker when QoS is disabled + - wifi: b43: Disable QoS for bcm4331 + - wifi: wilc1000: fix declarations ordering + - wifi: wilc1000: fix RCU usage in connect path + - wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work + - wifi: wilc1000: fix multi-vif management when deleting a vif + - wifi: mwifiex: debugfs: Drop unnecessary error check for + debugfs_create_dir() + - cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value + - sock_diag: annotate data-races around sock_diag_handlers[family] + - inet_diag: annotate data-races around inet_diag_table[] + - bpftool: Silence build warning about calloc() + - af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc(). + - wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete + - wifi: iwlwifi: dbg-tlv: ensure NUL termination + - wifi: iwlwifi: fix EWRD table validity check + - net: blackhole_dev: fix build warning for ethh set but not used + - wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() + - bpf: Factor out bpf_spin_lock into helpers. + - bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly + - wireless: Remove redundant 'flush_workqueue()' calls + - wifi: wilc1000: prevent use-after-free on vif when cleaning up all + interfaces + - ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() + - [amd64] iommu/amd: Mark interrupt as managed + - wifi: brcmsmac: avoid function pointer casts + - net: ena: Remove ena_select_queue + - ACPI: scan: Fix device check notification handling + - [x86] relocs: Ignore relocations in .notes section (CVE-2024-26816) + - SUNRPC: fix some memleaks in gssx_dec_option_array + - mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the + .remove function + - wifi: rtw88: 8821c: Fix false alarm count + - PCI: Make pci_dev_is_disconnected() helper public for other drivers + - [amd64] iommu/vt-d: Don't issue ATS Invalidation request when device is + disconnected + - igb: move PEROUT and EXTTS isr logic to separate functions + - igb: Fix missing time sync events + - Bluetooth: Remove superfluous call to hci_conn_check_pending() + - Bluetooth: hci_core: Fix possible buffer overflow + - sr9800: Add check for usbnet_get_endpoints (CVE-2024-26651) + - bpf: Eliminate rlimit-based memory accounting for devmap maps + - bpf: Fix DEVMAP_HASH overflow check on 32-bit arches + - bpf: Fix hashtab overflow check on 32-bit arches + - bpf: Fix stackmap overflow check on 32-bit arches + - ipv6: fib6_rules: flush route cache when rule is changed + - net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() + - net: phy: fix phy_get_internal_delay accessing an empty array + - net: hns3: fix port duplex configure error in IMP reset + - net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii + - net: phy: dp83822: Fix RGMII TX delay configuration + - OPP: debugfs: Fix warning around icc_get_name() + - tcp: fix incorrect parameter validation in the do_tcp_getsockopt() + function + - net/ipv4: Replace one-element array with flexible-array member + - net/ipv4: Revert use of struct_size() helper + - net/ipv4/ipv6: Replace one-element arraya with flexible-array members + - bpf: net: Change do_ip_getsockopt() to take the sockptr_t argument + - ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() + function + - l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() + function + - udp: fix incorrect parameter validation in the udp_lib_getsockopt() + function + - net: kcm: fix incorrect parameter validation in the kcm_getsockopt) + function + - nfp: flower: handle acti_netdevs allocation failure + - dm raid: fix false positive for requeue needed during reshape + - dm: call the resume method on internal suspend + - [arm64,armhf] drm/tegra: dsi: Add missing check for of_find_device_by_node + - [arm64,armhf] drm/tegra: dsi: Make use of the helper function + dev_err_probe() + - [arm64,armhf] drm/tegra: dsi: Fix some error handling paths in + tegra_dsi_probe() + - [arm64,armhf] drm/tegra: dsi: Fix missing pm_runtime_disable() in the + error handling path of tegra_dsi_probe() + - [arm64,armhf] drm/tegra: output: Fix missing i2c_put_adapter() in the + error handling paths of tegra_output_probe() + - drm/rockchip: inno_hdmi: Fix video timing + - drm: Don't treat 0 as -1 in drm_fixp2int_ceil + - drm/rockchip: lvds: do not overwrite error code + - drm/rockchip: lvds: do not print scary message when probing defer + - drm/lima: fix a memleak in lima_heap_alloc + - dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA + - media: tc358743: register v4l2 async device only after successful setup + - PCI/DPC: Print all TLP Prefixes, not just the first + - perf record: Fix possible incorrect free in record__switch_output() + - HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd + - drm/amd/display: Fix a potential buffer overflow in + 'dp_dsc_clock_en_read()' + - drm/amd/display: Fix potential NULL pointer dereferences in + 'dcn10_set_output_transfer_func()' + - perf evsel: Fix duplicate initialization of data->id in + evsel__parse_sample() + - media: em28xx: annotate unchecked call to media_device_register() + - media: v4l2-tpg: fix some memleaks in tpg_alloc + - media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity + - media: edia: dvbdev: fix a use-after-free + - pinctrl: mediatek: Drop bogus slew rate register range for MT8192 + - [arm64] clk: qcom: reset: Commonize the de/assert functions + - [arm64] clk: qcom: reset: Ensure write completion on reset de/assertion + - quota: simplify drop_dquot_ref() + - quota: Fix potential NULL pointer dereference + - quota: Fix rcu annotations of inode dquot pointers + - PCI: switchtec: Fix an error handling path in switchtec_pci_probe() + - crypto: xilinx - call finalize with bh disabled + - perf thread_map: Free strlist on normal path in + thread_map__new_by_tid_str() + - drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode() + - ALSA: seq: fix function cast warnings + - perf stat: Avoid metric-only segv + - media: sun8i-di: Fix coefficient writes + - media: sun8i-di: Fix power on/off sequences + - media: sun8i-di: Fix chroma difference threshold + - media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak + - media: go7007: add check of return value of go7007_read_addr() + - media: pvrusb2: remove redundant NULL check + - media: pvrusb2: fix pvr2_stream_callback casts + - PCI: Mark 3ware-9650SE Root Port Extended Tags as broken + - [arm64] clk: hisilicon: hi3519: Release the correct number of gates in + hi3519_clk_unregister() + - [arm64,armhf] drm/tegra: put drm_gem_object ref on error in + tegra_fb_create + - mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref + - mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes + a ref + - crypto: arm/sha - fix function cast warnings + - drm/tidss: Fix initial plane zpos values + - mtd: maps: physmap-core: fix flash size larger than 32-bit + - mtd: rawnand: lpc32xx_mlc: fix irq handler prototype + - drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int() + - media: pvrusb2: fix uaf in pvr2_context_set_notify + - media: dvb-frontends: avoid stack overflow warnings with clang + - media: go7007: fix a memleak in go7007_load_encoder + - media: ttpci: fix two memleaks in budget_av_attach + - media: mediatek: vcodec: avoid -Wcast-function-type-strict warning + - powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks + - [arm64] drm/msm/dpu: add division of drm_display_mode's hskew parameter + - [powerpc*] embedded6xx: Fix no previous prototype for avr_uart_send() etc. + - leds: aw2013: Unlock mutex before destroying it + - leds: sgm3140: Add missing timer cleanup and flash gpio control + - backlight: lm3630a: Initialize backlight_properties on init + - backlight: lm3630a: Don't set bl->props.brightness in get_brightness + - backlight: da9052: Fully initialize backlight_properties during probe + - backlight: lm3639: Fully initialize backlight_properties during probe + - backlight: lp8788: Fully initialize backlight_properties during probe + - clk: Fix clk_core_get NULL dereference + - ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops + - ALSA: usb-audio: Stop parsing channels bits when all channels are found. + - RDMA/srpt: Do not register event handler until srpt device is fully setup + - f2fs: compress: fix to check unreleased compressed cluster + - scsi: csiostor: Avoid function pointer casts + - RDMA/device: Fix a race between mad_client and cm_client init + - scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn + - net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr() + - NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 + - NFSv4.2: fix listxattr maximum XDR buffer size + - watchdog: stm32_iwdg: initialize default timeout + - NFS: Fix an off by one in root_nfs_cat() + - afs: Revert "afs: Hide silly-rename files from userspace" + - [armhf] remoteproc: stm32: Constify st_rproc_ops + - [armhf] remoteproc: Add new get_loaded_rsc_table() to rproc_ops + - [armhf] remoteproc: stm32: Move resource table setup to rproc_ops + - [armhf] remoteproc: stm32: use correct format strings on 64-bit + - [armhf] remoteproc: stm32: Fix incorrect type in assignment for va + - [armhf] remoteproc: stm32: Fix incorrect type assignment returned by + stm32_rproc_get_loaded_rsc_tablef + - tty: vt: fix 20 vs 0x20 typo in EScsiignore + - serial: max310x: fix syntax error in IRQ error message + - tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT + - kconfig: fix infinite loop when expanding a macro at the end of file + - rtc: mt6397: select IRQ_DOMAIN instead of depending on it + - serial: 8250_exar: Don't remove GPIO device on suspend + - staging: greybus: fix get_channel_from_mode() failure path + - usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin + - io_uring: don't save/restore iowait state + - [s390x] vtime: fix average steal time calculation + - soc: fsl: dpio: fix kcalloc() argument order + - hsr: Fix uninit-value access in hsr_get_node() + - packet: annotate data-races around ignore_outgoing + - net: dsa: mt7530: prevent possible incorrect XTAL frequency selection + - wireguard: receive: annotate data-race around receiving_counter.counter + - rds: introduce acquire/release ordering in acquire/release_in_xmit() + - hsr: Handle failures in module init + - net/bnx2x: Prevent access to a freed page in page_pool + - netfilter: nft_set_pipapo: release elements in clone only from destroy + path (CVE-2024-26809) + - scsi: fc: Update formal FPIN descriptor definitions + - netfilter: nf_tables: do not compare internal table flags on updates + - rcu: add a helper to report consolidated flavor QS + - bpf: report RCU QS in cpumap kthread + - spi: spi-mt65xx: Fix NULL pointer access in interrupt handler + - regmap: Add missing map->bus check + - [armhf] remoteproc: stm32: fix phys_addr_t format string + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.215 + - amdkfd: use calloc instead of kzalloc to avoid integer overflow + (CVE-2024-26817) + - Documentation/hw-vuln: Update spectre doc + - [x86] cpu: Support AMD Automatic IBRS + - [x86] bugs: Use sysfs_emit() + - timers: Update kernel-doc for various functions + - timers: Use del_timer_sync() even on UP + - timers: Rename del_timer_sync() to timer_delete_sync() + - wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach + (CVE-2023-47233) + - [armhf] dts: marvell: Fix maxium->maxim typo in brownstone dts + - [x86] drm/vmwgfx: stop using ttm_bo_create v2 + - [x86] drm/vmwgfx: switch over to the new pin interface v2 + - [x86] drm/vmwgfx/vmwgfx_cmdbuf_res: Remove unused variable 'ret' + - [x86] drm/vmwgfx: Fix some static checker warnings + - [x86] drm/vmwgfx: Fix possible null pointer derefence with invalid + contexts + - media: xc4000: Fix atomicity violation in xc4000_get_frequency + (CVE-2024-24861) + - KVM: Always flush async #PF workqueue when vCPU is being destroyed + - [x86] crypto: qat - fix double free during reset + - [x86] crypto: qat - resolve race condition during AER recovery + - ext4: correct best extent lstart adjustment logic + - block: introduce zone_write_granularity limit + - block: Clear zone limits for a non-zoned stacked queue + - bounds: support non-power-of-two CONFIG_NR_CPUS + - fat: fix uninitialized field in nostale filehandles + - ubifs: Set page uptodate in the correct place + - ubi: Check for too small LEB size in VTBL code + - ubi: correct the calculation of fastmap size + - mtd: rawnand: meson: fix scrambling mode value in command macro + - PM: suspend: Set mem_sleep_current during kernel command line setup + - [powerpc*] fsl: Fix mfpmr build errors with newer binutils + - USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB + - USB: serial: add device ID for VeriFone adapter + - USB: serial: cp210x: add ID for MGP Instruments PDS100 + - USB: serial: option: add MeiG Smart SLM320 product + - USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M + - PM: sleep: wakeirq: fix wake irq warning in system suspend + - mmc: tmio: avoid concurrent runs of mmc_request_done() + - fuse: fix root lookup with nonzero generation + - fuse: don't unhash root + - usb: typec: ucsi: Clean up UCSI_CABLE_PROP macros + - printk/console: Split out code that enables default console + - serial: Lock console when calling into driver before registration + - btrfs: fix off-by-one chunk length calculation at + contains_pending_extent() + - PCI: Drop pci_device_remove() test of pci_dev->driver + - PCI/PM: Drain runtime-idle callbacks before driver removal + - PCI/ERR: Cache RCEC EA Capability offset in pci_init_capabilities() + - PCI: Cache PCIe Device Capabilities register + - PCI: Work around Intel I210 ROM BAR overlap defect + - PCI/ASPM: Make Intel DG2 L1 acceptable latency unlimited + - PCI/DPC: Quirk PIO log size for certain Intel Root Ports + - PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports + - Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"" + - dm-raid: fix lockdep waring in "pers->hot_add_disk" + - mac802154: fix llsec key resources release in mac802154_llsec_key_del + - mm: swap: fix race between free_swap_and_cache() and swapoff() + - mmc: core: Fix switch on gp3 partition + - [armhf] drm/etnaviv: Restore some id values + - hwmon: (amc6821) add of_match table + - ext4: fix corruption during on-line resize + - nvmem: meson-efuse: fix function pointer type mismatch + - slimbus: core: Remove usage of the deprecated ida_simple_xx() API + - [arm64,armhf] phy: tegra: xusb: Add API to retrieve the port number of phy + - usb: gadget: tegra-xudc: Use dev_err_probe() + - usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic + - speakup: Fix 8bit characters from direct synth + - PCI/ERR: Clear AER status only when we control AER + - PCI/AER: Block runtime suspend when handling errors + - nfs: fix UAF in direct writes + - kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1 + - PCI: dwc: endpoint: Fix advertised resizable BAR size + - vfio/platform: Disable virqfds on cleanup + - ring-buffer: Fix waking up ring buffer readers + - ring-buffer: Do not set shortest_full when full target is hit + - ring-buffer: Fix resetting of shortest_full + - ring-buffer: Fix full_waiters_pending in poll + - [s390x] zcrypt: fix reference counting on zcrypt card objects + - drm/panel: do not return negative error codes from drm_panel_get_modes() + - [armhf] drm/exynos: do not return negative values from .get_modes() + - drm/imx/ipuv3: do not return negative values from .get_modes() + - drm/vc4: hdmi: do not return negative values from .get_modes() + - nilfs2: fix failure to detect DAT corruption in btree and direct mappings + - nilfs2: prevent kernel bug at submit_bh_wbc() + - cpufreq: dt: always allocate zeroed cpumask + - [x86] CPU/AMD: Update the Zenbleed microcode revisions + - net: hns3: tracing: fix hclgevf trace event strings + - wireguard: netlink: check for dangling peer via is_dead instead of empty + list + - wireguard: netlink: access device through ctx instead of peer + - ahci: asm1064: correct count of reported ports + - ahci: asm1064: asm1166: don't limit reported ports + - drm/amd/display: Return the correct HDCP error code + - drm/amd/display: Fix noise issue on HDMI AV mute + - dm snapshot: fix lockup in dm_exception_table_exit + - vxge: remove unnecessary cast in kfree() + - [x86] stackprotector/32: Make the canary into a regular percpu variable + - [x86] pm: Work around false positive kmemleak report in + msr_build_context() + - scripts: kernel-doc: Fix syntax error due to undeclared args variable + (Closes: #1064035) + - comedi: comedi_test: Prevent timers rescheduling during deletion + - cpufreq: brcmstb-avs-cpufreq: fix up "add check for cpufreq_cpu_get's + return value" + - netfilter: nf_tables: mark set as dead when unbinding anonymous set with + timeout (CVE-2024-26643) + - netfilter: nf_tables: disallow anonymous set with timeout flag + (CVE-2024-26642) + - netfilter: nf_tables: reject constant set with timeout + - Drivers: hv: vmbus: Calculate ring buffer size for more efficient use of + memory + - xfrm: Avoid clang fortify warning in copy_to_user_tmpl() + - [x86] KVM: SVM: Flush pages under kvm->lock to fix UAF in + svm_register_enc_region() + - ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo + ALC897 platform + - USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command + - usb: gadget: ncm: Fix handling of zero block length packets + - usb: port: Don't try to peer unused USB ports based on location + - tty: serial: fsl_lpuart: avoid idle preamble pending if CTS is enabled + - mei: me: add arrow lake point S DID + - mei: me: add arrow lake point H DID + - vt: fix unicode buffer corruption when deleting characters + - fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion + - tee: optee: Fix kernel panic caused by incorrect error handling + - xen/events: close evtchn after mapping cleanup (CVE-2024-26687) + - printk: Update @console_may_schedule in console_trylock_spinning() + - btrfs: allocate btrfs_ioctl_defrag_range_args on stack + - [x86] asm: Add _ASM_RIP() macro for x86-64 (%rip) suffix + - [x86] bugs: Add asm helpers for executing VERW + - [x86] entry_64: Add VERW just before userspace transition + - [x86] entry_32: Add VERW just before userspace transition + - [x86] bugs: Use ALTERNATIVE() instead of mds_user_clear static key + - [x86] KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH + - [x86] KVM/VMX: Move VERW closer to VMentry for MDS mitigation + - [x86] Mitigate Register File Data Sampling (RFDS) vulnerability + (CVE-2023-28746): + + [x86] mmio: Disable KVM mitigation when X86_FEATURE_CLEAR_CPU_BUF is set + + Documentation/hw-vuln: Add documentation for RFDS + + [x86] rfds: Mitigate Register File Data Sampling (RFDS) + + [x86] KVM/x86: Export RFDS_NO and RFDS_CLEAR to guests + - perf/core: Fix reentry problem in perf_output_read_group() + - efivarfs: Request at most 512 bytes for variable names + - [powerpc*] xor_vmx: Add '-mhard-float' to CFLAGS + - serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO + (CVE-2023-52488) + - mm/memory-failure: fix an incorrect use of tail pages + - mm/migrate: set swap entry values of THP tail pages properly. + - init: open /initrd.image with O_LARGEFILE + - wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes + - exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack() + - mmc: core: Initialize mmc_blk_ioc_data + - mmc: core: Avoid negative index with array access + - net: ll_temac: platform_get_resource replaced by wrong function + - usb: cdc-wdm: close race between read and workqueue + - ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs + (CVE-2024-26654) + - scsi: core: Fix unremoved procfs host directory regression + - [arm*] staging: vc04_services: changen strncpy() to strscpy_pad() + - [arm*] staging: vc04_services: fix information leak in create_component() + - USB: core: Add hub_get() and hub_put() routines + - [arm*] usb: dwc2: host: Fix remote wakeup from hibernation + - [arm*] usb: dwc2: host: Fix hibernation flow + - [arm*] usb: dwc2: host: Fix ISOC flow in DDMA mode + - [arm*] usb: dwc2: gadget: LPM flow fix + - usb: udc: remove warning when queue disabled ep + - usb: typec: ucsi: Ack unsupported commands + - usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset + - scsi: qla2xxx: Split FCE|EFT trace control + - scsi: qla2xxx: Fix command flush on cable pull + - scsi: qla2xxx: Delay I/O Abort on PCI error + - [x86] cpu: Enable STIBP on AMD if Automatic IBRS is enabled + - PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports + - scsi: lpfc: Correct size for wqe for memset() + - USB: core: Fix deadlock in usb_deauthorize_interface() + - nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet + - ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa() + - tcp: properly terminate timers for kernel sockets + - ACPICA: debugger: check status of acpi_evaluate_object() in + acpi_db_walk_for_fields() + - bpf: Protect against int overflow for stack access size + - dm integrity: fix out-of-range warning + - r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d + - [x86] cpufeatures: Add new word for scattered features + - Bluetooth: hci_event: set the conn encrypted before conn establishes + - Bluetooth: Fix TOCTOU in HCI debugfs implementation (CVE-2024-24857, + CVE-2024-24858) + - netfilter: nf_tables: disallow timeout for anonymous sets (CVE-2023-52620) + - net/rds: fix possible cp null dereference + - vfio/pci: Disable auto-enable of exclusive INTx IRQ (CVE-2024-27437) + - vfio/pci: Lock external INTx masking ops (CVE-2024-26810) + - vfio: Introduce interface to flush virqfd inject workqueue + - vfio/pci: Create persistent INTx handler (CVE-2024-26812) + - vfio/platform: Create persistent IRQ handlers (CVE-2024-26813) + - vfio/fsl-mc: Block calling interrupt handler without trigger + (CVE-2024-26814) + - io_uring: ensure '0' is returned on file registration success + - Revert "x86/mm/ident_map: Use gbpages only where full GB page should be + mapped." + - mm, vmscan: prevent infinite loop for costly GFP_NOIO | + __GFP_RETRY_MAYFAIL allocations + - [x86] srso: Add SRSO mitigation for Hygon processors (CVE-2023-52482) + - block: add check that partition length needs to be aligned with block size + (CVE-2023-52458) + - netfilter: nf_tables: reject new basechain after table flag update + - netfilter: nf_tables: flush pending destroy work before exit_net release + - netfilter: nf_tables: Fix potential data-race in + __nft_flowtable_type_get() + - netfilter: validate user input for expected length + - vboxsf: Avoid an spurious warning if load_nls_xxx() fails + - bpf, sockmap: Prevent lock inversion deadlock in map delete elem + - net/sched: act_skbmod: prevent kernel-infoleak + - net: stmmac: fix rx queue priority assignment + - erspan: make sure erspan_base_hdr is present in skb->head + - ipv6: Fix infinite recursion in fib6_dump_done(). + - udp: do not transition UDP GRO fraglist partial checksums to unnecessary + - i40e: fix i40e_count_filters() to count only active/new filters + - i40e: fix vf may be used uninitialized in this function warning + - scsi: qla2xxx: Update manufacturer details + - scsi: qla2xxx: Update manufacturer detail + - Revert "usb: phy: generic: Get the vbus supply" + - udp: do not accept non-tunnel GSO skbs landing in a tunnel + - net: ravb: Always process TX descriptor ring + - [arm64] dts: qcom: sc7180: Remove clock for bluetooth on Trogdor + - [arm64] dts: qcom: sc7180-trogdor: mark bluetooth address as broken + - ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw + - ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit + - scsi: mylex: Fix sysfs buffer lengths + - ata: sata_mv: Fix PCI device ID table declaration compilation warning + - ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with + microphone + - driver core: Introduce device_link_wait_removal() + - of: dynamic: Synchronize of_changeset_destroy() with the devlink removals + - [x86] mce: Make sure to grab mce_sysfs_mutex in set_bank() + - [s390x] entry: align system call table on 8 bytes + - [x86] bugs: Fix the SRSO mitigation on Zen3/4 + - [x86] retpoline: Do the necessary fixup to the Zen3/4 srso return thunk + for !SRSO + - mptcp: don't account accept() of non-MPC client as fallback to TCP + - [x86] cpufeatures: Add CPUID_LNX_5 to track recently added Linux-defined + word + - objtool: Add asm version of STACK_FRAME_NON_STANDARD + - wifi: ath9k: fix LNA selection in ath_ant_try_scan() + - VMCI: Fix memcpy() run-time warning in dg_dispatch_as_host() + - panic: Flush kernel log buffer at the end + - [arm64] dts: rockchip: fix rk3328 hdmi ports node + - [arm64] dts: rockchip: fix rk3399 hdmi ports node + - ionic: set adminq irq affinity + - pstore/zone: Add a null pointer check to the psz_kmsg_read + - btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks() + - btrfs: export: handle invalid inode or root reference in + btrfs_get_parent() + - btrfs: send: handle path ref underflow in header iterate_inode_ref() + - net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list() + - Bluetooth: btintel: Fix null ptr deref in btintel_read_version + - Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails + - pinctrl: renesas: checker: Limit cfg reg enum checks to provided IDs + - sysv: don't call sb_bread() with pointers_lock held + - scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() + - isofs: handle CDs with bad root inode but good Joliet root directory + - media: sta2x11: fix irq handler cast + - ext4: add a hint for block bitmap corrupt state in mb_groups + - ext4: forbid commit inconsistent quota data when errors=remount-ro + - drm/amd/display: Fix nanosec stat overflow + - SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to + unsigned int + - Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" + - libperf evlist: Avoid out-of-bounds access + - block: prevent division by zero in blk_rq_stat_sum() + - RDMA/cm: add timeout to cm_destroy_id wait + - Input: allocate keycode for Display refresh rate toggle + - [x86] platform/x86: touchscreen_dmi: Add an extra entry for a variant of + the Chuwi Vi8 tablet + - ring-buffer: use READ_ONCE() to read cpu_buffer->commit_page in concurrent + environment + - tools: iio: replace seekdir() in iio_generic_buffer + - usb: typec: tcpci: add generic tcpci fallback compatible + - usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined + - fbdev: viafb: fix typo in hw_bitblt_1 and hw_bitblt_2 + - drivers/nvme: Add quirks for device 126f:2262 + - fbmon: prevent division by zero in fb_videomode_from_videomode() + - netfilter: nf_tables: release batch on table validation from abort path + - netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path + (CVE-2024-26925) + - netfilter: nf_tables: discard table flag update with pending basechain + deletion + - tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc + - virtio: reenable config if freezing device failed + - [x86] mm/pat: fix VM_PAT handling in COW mappings + - [x86] drm/i915/gt: Reset queue_priority_hint on parking + - Bluetooth: btintel: Fixe build regression + - [x86] VMCI: Fix possible memcpy() run-time warning in + vmci_datagram_invoke_guest_handler() + - kbuild: dummy-tools: adjust to stricter stackprotector check + - scsi: sd: Fix wrong zone_write_granularity value during revalidate + - [x86] retpoline: Add NOENDBR annotation to the SRSO dummy return thunk + - [x86] head/64: Re-enable stack protection + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.216 + - batman-adv: Avoid infinite loop trying to resize local TT + - Bluetooth: Fix memory leak in hci_req_sync_complete() + - media: cec: core: remove length check of Timer Status + - nouveau: fix function cast warning + - net: openvswitch: fix unwanted error log on timeout policy probing + - u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one + file + - xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING + - geneve: fix header validation in geneve[6]_xmit_skb + - ipv6: fib: hide unused 'pn' variable + - ipv4/route: avoid unused-but-set-variable warning + - ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr + - Bluetooth: SCO: Fix not validating setsockopt user input + - netfilter: complete validation of user input + - net/mlx5: Properly link new fs rules into the tree + - af_unix: Do not use atomic ops for unix_sk(sk)->inflight. + - af_unix: Fix garbage collector racing against connect() (CVE-2024-26923) + - net: ena: Fix potential sign extension issue + - net: ena: Wrong missing IO completions check order + - net: ena: Fix incorrect descriptor free behavior + - [amd64] iommu/vt-d: Allocate local memory for page request queue + - [arm64] mailbox: imx: fix suspend failue + - btrfs: qgroup: correctly model root qgroup rsv in convert + - drm/client: Fully protect modes[] with dev->mode_config.mutex + - vhost: Add smp_rmb() in vhost_vq_avail_empty() + - [x86] cpu: Actually turn off mitigations by default for + SPECULATION_MITIGATIONS=n + - [x86] apic: Force native_apic_mem_read() to use the MOV instruction + - irqflags: Explicitly ignore lockdep_hrtimer_exit() argument + - btrfs: record delayed inode root in transaction + - kprobes: Fix possible use-after-free issue on kprobe registration + - Revert "tracing/trigger: Fix to return error if failed to alloc snapshot" + - netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get() + (CVE-2024-27020) + - netfilter: nft_set_pipapo: do not free live element (CVE-2024-26924) + - tun: limit printing rate when illegal packet received by tun dev + (CVE-2024-27013) + - RDMA/rxe: Fix the problem "mutex_destroy missing" + - RDMA/cm: Print the old state when cm_destroy_id gets timeout + - RDMA/mlx5: Fix port number for counter query in multi-port configuration + - drm: nv04: Fix out of bounds access (CVE-2024-27008) + - drm/panel: visionox-rm69299: don't unregister DSI device + - clk: Remove prepare_lock hold assertion in __clk_release() + - clk: Mark 'all_lists' as const + - clk: remove extra empty line + - clk: Print an info line before disabling unused clocks + - clk: Initialize struct clk_core kref earlier + - clk: Get runtime PM before walking tree during disable_unused + (CVE-2024-27004) + - [x86] cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ + - [arm*] binder: check offset alignment in binder_get_object() + (CVE-2024-26926) + - [x86] thunderbolt: Avoid notify PM core about runtime PM resume + - [x86] thunderbolt: Fix wake configurations after device unplug + - [x86] comedi: vmk80xx: fix incomplete endpoint checking (CVE-2024-27001) + - USB: serial: option: add Fibocom FM135-GL variants + - USB: serial: option: add support for Fibocom FM650/FG650 + - USB: serial: option: add Lonsung U8300/U9300 product + - USB: serial: option: support Quectel EM060K sub-models + - USB: serial: option: add Rolling RW101-GL and RW135-GL support + - USB: serial: option: add Telit FN920C04 rmnet compositions + - Revert "usb: cdc-wdm: close race between read and workqueue" + - usb: dwc2: host: Fix dereference issue in DDMA completion flow. + (CVE-2024-26997) + - usb: Disable USB3 LPM at shutdown + - mei: me: disable RPL-S on SPS and IGN firmwares + - speakup: Avoid crash on very long word (CVE-2024-26994) + - fs: sysfs: Fix reference leak in sysfs_break_active_protection() + (CVE-2024-26993) + - init/main.c: Fix potential static_command_line memory overflow + (CVE-2024-26988) + - drm/amdgpu: validate the parameters of bo mapping operations more clearly + (CVE-2024-26922) + - nouveau: fix instmem race condition around ptr stores (CVE-2024-26984) + - nilfs2: fix OOB in nilfs_set_de_type (CVE-2024-26981) + - wifi: iwlwifi: mvm: remove old PASN station when adding a new one + - vxlan: drop packets from invalid src-address + - ipv4: check for NULL idev in ip_route_use_hint() + - net: usb: ax88179_178a: stop lying about skb->truesize + - net: gtp: Fix Use-After-Free in gtp_dellink + - ipvs: Fix checksumming on GSO of SCTP packets + - net: openvswitch: Fix Use-After-Free in ovs_ct_exit + - netfilter: nf_tables: honor table dormant flag from netdev release event + path + - i40e: Do not use WQ_MEM_RECLAIM flag for workqueue + - i40e: Report MFS in decimal base instead of hex + - iavf: Fix TC config comparison with existing adapter TC config + - net: ethernet: ti: am65-cpts: Fix PTPv1 message type on TX packets + - af_unix: Suppress false-positive lockdep splat for spin_lock() in + __unix_gc(). + - serial: core: Provide port lock wrappers + - Revert "crypto: api - Disallow identical driver names" + - net/mlx5e: Fix a race in command alloc flow + - tracing: Show size of requested perf buffer + - tracing: Increase PERF_MAX_TRACE_SIZE to handle Sentinel1 and docker + together + - PM / devfreq: Fix buffer overflow in trans_stat_show (CVE-2023-52614) + - Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old() + - Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853 + - btrfs: fix information leak in btrfs_ioctl_logical_to_ino() + - cpu: Re-enable CPU mitigations by default for !X86 architectures + - drm/amdgpu/sdma5.2: use legacy HDP flush for SDMA2/3 + - drm/amdgpu: Fix leak when GPU memory allocation fails + - irqchip/gic-v3-its: Prevent double free on error + - ethernet: Add helper for assigning packet type when dest address does not + match device address + - net: b44: set pause params only when interface is up + - stackdepot: respect __GFP_NOLOCKDEP allocation flag + - mtd: diskonchip: work around ubsan link failure + - tcp: Clean up kernel listener's reqsk in inet_twsk_purge() + - tcp: Fix NEW_SYN_RECV handling in inet_twsk_purge() + - [x86] idma64: Don't try to serve interrupts when device is powered off + - i2c: smbus: fix NULL function pointer dereference + - HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up + - bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS + - udp: preserve the connected status if only UDP cmsg + - serial: core: fix kernel-doc for uart_port_unlock_irqrestore() + + [ Salvatore Bonaccorso ] + * Bump ABI to 29 + * [rt] Refresh "sched/vtime: Consolidate IRQ time accounting" + * [rt] Update to 5.10.215-rt107 + * [rt] Refresh "u64_stats: Disable preemption on 32bit-UP/SMP with RT during + updates" + * drivers/tty: Disable N_GSM + * tipc: fix UAF in error path + * tipc: fix a possible memleak in tipc_buf_append + + -- Salvatore Bonaccorso Fri, 03 May 2024 14:40:24 +0200 + linux (5.10.209-2) bullseye; urgency=medium * netfilter: nf_tables: reject QUEUE/DROP verdict parameters (CVE-2024-1086) diff -Nru linux-5.10.209/debian/config/config linux-5.10.216/debian/config/config --- linux-5.10.209/debian/config/config 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/config/config 2024-05-03 12:40:20.000000000 +0000 @@ -5185,7 +5185,7 @@ # CONFIG_LEGACY_PTYS is not set CONFIG_MOXA_SMARTIO=m CONFIG_SYNCLINK_GT=m -CONFIG_N_GSM=m +# CONFIG_N_GSM is not set CONFIG_NOZOMI=m # CONFIG_TRACE_SINK is not set diff -Nru linux-5.10.209/debian/config/config.cloud linux-5.10.216/debian/config/config.cloud --- linux-5.10.209/debian/config/config.cloud 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/config/config.cloud 2024-05-03 12:40:20.000000000 +0000 @@ -1261,7 +1261,6 @@ # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_ISI is not set # CONFIG_N_HDLC is not set -# CONFIG_N_GSM is not set # CONFIG_NOZOMI is not set ## diff -Nru linux-5.10.209/debian/config/defines linux-5.10.216/debian/config/defines --- linux-5.10.209/debian/config/defines 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/config/defines 2024-05-03 12:40:20.000000000 +0000 @@ -1,5 +1,5 @@ [abi] -abiname: 28 +abiname: 29 ignore-changes: __cpuhp_* __udp_gso_segment diff -Nru linux-5.10.209/debian/config/m68k/config linux-5.10.216/debian/config/m68k/config --- linux-5.10.209/debian/config/m68k/config 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/config/m68k/config 2024-05-03 12:40:20.000000000 +0000 @@ -540,7 +540,6 @@ CONFIG_VT=y CONFIG_VT_CONSOLE=y # CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set ## ## file: drivers/tty/serial/Kconfig diff -Nru linux-5.10.209/debian/config.defines.dump linux-5.10.216/debian/config.defines.dump --- linux-5.10.209/debian/config.defines.dump 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/config.defines.dump 2024-05-03 12:40:24.000000000 +0000 @@ -8,7 +8,7 @@ (dp4 Vabiname p5 -V28 +V29 p6 sVignore-changes p7 @@ -3059,7 +3059,7 @@ (dp1639 Vsource p1640 -V5.10.209-2 +V5.10.216-1 p1641 sVupstream p1642 @@ -3071,6 +3071,6 @@ p1645 sVabiname p1646 -V5.10.0-28 +V5.10.0-29 p1647 ss. \ No newline at end of file diff -Nru linux-5.10.209/debian/control linux-5.10.216/debian/control --- linux-5.10.209/debian/control 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/control 2024-05-03 12:40:24.000000000 +0000 @@ -12,7 +12,7 @@ Vcs-Browser: https://salsa.debian.org/kernel-team/linux Vcs-Git: https://salsa.debian.org/kernel-team/linux.git -Package: linux-support-5.10.0-28 +Package: linux-support-5.10.0-29 Architecture: all Section: devel Depends: ${python3:Depends}, ${misc:Depends} @@ -159,7 +159,7 @@ appropriate version for the running kernel. Build-Profiles: -Package: linux-bootwrapper-5.10.0-28 +Package: linux-bootwrapper-5.10.0-29 Architecture: powerpc ppc64 Depends: ${shlibs:Depends}, ${misc:Depends} Description: Boot wrapper tools for Linux 5.10 on PowerPC @@ -199,26 +199,26 @@ Linux kernel. Build-Profiles: -Package: linux-headers-5.10.0-28-common +Package: linux-headers-5.10.0-29-common Architecture: all Depends: ${misc:Depends} -Description: Common header files for Linux 5.10.0-28 +Description: Common header files for Linux 5.10.0-29 This package provides the common kernel header files for Linux kernel - version 5.10.0-28, generally used for building out-of-tree kernel modules. + version 5.10.0-29, generally used for building out-of-tree kernel modules. To obtain a complete set of headers you also need to install the - linux-headers-5.10.0-28-(flavour) package, matching the flavour of the + linux-headers-5.10.0-29-(flavour) package, matching the flavour of the kernel you intend the build for. Build-Profiles: Multi-Arch: foreign -Package: linux-headers-5.10.0-28-common-rt +Package: linux-headers-5.10.0-29-common-rt Architecture: all Depends: ${misc:Depends} -Description: Common header files for Linux 5.10.0-28-rt +Description: Common header files for Linux 5.10.0-29-rt This package provides the common kernel header files for Linux kernel - version 5.10.0-28 with the PREEMPT_RT featureset, generally used for + version 5.10.0-29 with the PREEMPT_RT featureset, generally used for building out-of-tree kernel modules. To obtain a complete set of headers - you also need to install the linux-headers-5.10.0-28-(flavour) package, + you also need to install the linux-headers-5.10.0-29-(flavour) package, matching the flavour of the kernel you intend the build for. Build-Profiles: Multi-Arch: foreign @@ -246,7 +246,7 @@ Build-Profiles: Multi-Arch: same -Package: kernel-image-5.10.0-28-alpha-generic-di +Package: kernel-image-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard @@ -256,499 +256,499 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nic-modules-5.10.0-28-alpha-generic-di +Package: nic-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, nic-shared-modules-5.10.0-28-alpha-generic-di, i2c-modules-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, nic-shared-modules-5.10.0-29-alpha-generic-di, i2c-modules-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-alpha-generic-di +Package: nic-wireless-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, nic-shared-modules-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di, pcmcia-modules-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di, crypto-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, nic-shared-modules-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di, pcmcia-modules-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di, crypto-modules-5.10.0-29-alpha-generic-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-alpha-generic-di +Package: nic-shared-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: serial-modules-5.10.0-28-alpha-generic-di +Package: serial-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, pcmcia-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, pcmcia-modules-5.10.0-29-alpha-generic-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-alpha-generic-di +Package: usb-serial-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: ppp-modules-5.10.0-28-alpha-generic-di +Package: ppp-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, serial-modules-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, serial-modules-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: pata-modules-5.10.0-28-alpha-generic-di +Package: pata-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, ata-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, ata-modules-5.10.0-29-alpha-generic-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-alpha-generic-di +Package: cdrom-core-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-alpha-generic-di +Package: scsi-core-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: scsi-modules-5.10.0-28-alpha-generic-di +Package: scsi-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di, cdrom-core-modules-5.10.0-28-alpha-generic-di, ata-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di, cdrom-core-modules-5.10.0-29-alpha-generic-di, ata-modules-5.10.0-29-alpha-generic-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-alpha-generic-di +Package: scsi-nic-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-alpha-generic-di, nic-modules-5.10.0-28-alpha-generic-di +Depends: scsi-modules-5.10.0-29-alpha-generic-di, nic-modules-5.10.0-29-alpha-generic-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: loop-modules-5.10.0-28-alpha-generic-di +Package: loop-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: btrfs-modules-5.10.0-28-alpha-generic-di +Package: btrfs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di, md-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di, md-modules-5.10.0-29-alpha-generic-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: ext4-modules-5.10.0-28-alpha-generic-di +Package: ext4-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: isofs-modules-5.10.0-28-alpha-generic-di +Package: isofs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, cdrom-core-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, cdrom-core-modules-5.10.0-29-alpha-generic-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: jfs-modules-5.10.0-28-alpha-generic-di +Package: jfs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: xfs-modules-5.10.0-28-alpha-generic-di +Package: xfs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: fat-modules-5.10.0-28-alpha-generic-di +Package: fat-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: squashfs-modules-5.10.0-28-alpha-generic-di +Package: squashfs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: fuse-modules-5.10.0-28-alpha-generic-di +Package: fuse-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: f2fs-modules-5.10.0-28-alpha-generic-di +Package: f2fs-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: md-modules-5.10.0-28-alpha-generic-di +Package: md-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: multipath-modules-5.10.0-28-alpha-generic-di +Package: multipath-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, md-modules-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, md-modules-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: usb-modules-5.10.0-28-alpha-generic-di +Package: usb-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-alpha-generic-di +Package: usb-storage-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: fb-modules-5.10.0-28-alpha-generic-di +Package: fb-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, i2c-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, i2c-modules-5.10.0-29-alpha-generic-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: input-modules-5.10.0-28-alpha-generic-di +Package: input-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di, i2c-modules-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di, i2c-modules-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: event-modules-5.10.0-28-alpha-generic-di +Package: event-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: mouse-modules-5.10.0-28-alpha-generic-di +Package: mouse-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, event-modules-5.10.0-28-alpha-generic-di, input-modules-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, event-modules-5.10.0-29-alpha-generic-di, input-modules-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-alpha-generic-di +Package: nic-pcmcia-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, nic-shared-modules-5.10.0-28-alpha-generic-di, nic-wireless-modules-5.10.0-28-alpha-generic-di, pcmcia-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, nic-shared-modules-5.10.0-29-alpha-generic-di, nic-wireless-modules-5.10.0-29-alpha-generic-di, pcmcia-modules-5.10.0-29-alpha-generic-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-alpha-generic-di +Package: pcmcia-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-alpha-generic-di +Package: nic-usb-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, nic-shared-modules-5.10.0-28-alpha-generic-di, nic-wireless-modules-5.10.0-28-alpha-generic-di, usb-modules-5.10.0-28-alpha-generic-di, crc-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, nic-shared-modules-5.10.0-29-alpha-generic-di, nic-wireless-modules-5.10.0-29-alpha-generic-di, usb-modules-5.10.0-29-alpha-generic-di, crc-modules-5.10.0-29-alpha-generic-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: sata-modules-5.10.0-28-alpha-generic-di +Package: sata-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di, ata-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di, ata-modules-5.10.0-29-alpha-generic-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: i2c-modules-5.10.0-28-alpha-generic-di +Package: i2c-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: crc-modules-5.10.0-28-alpha-generic-di +Package: crc-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: crypto-modules-5.10.0-28-alpha-generic-di +Package: crypto-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-alpha-generic-di +Package: crypto-dm-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, md-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, md-modules-5.10.0-29-alpha-generic-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: ata-modules-5.10.0-28-alpha-generic-di +Package: ata-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di, scsi-core-modules-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di, scsi-core-modules-5.10.0-29-alpha-generic-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: nbd-modules-5.10.0-28-alpha-generic-di +Package: nbd-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: srm-modules-5.10.0-28-alpha-generic-di +Package: srm-modules-5.10.0-29-alpha-generic-di Architecture: alpha Section: debian-installer Priority: standard Provides: srm-modules -Depends: kernel-image-5.10.0-28-alpha-generic-di +Depends: kernel-image-5.10.0-29-alpha-generic-di Description: SRM modules This package contains the srm_env module which provides access to the SRM environment. Build-Profiles: -Kernel-Version: 5.10.0-28-alpha-generic +Kernel-Version: 5.10.0-29-alpha-generic Package-Type: udeb -Package: linux-image-5.10.0-28-alpha-generic +Package: linux-image-5.10.0-29-alpha-generic Architecture: alpha -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha] Recommends: firmware-linux-free, apparmor [alpha] Suggests: linux-doc-5.10, debian-kernel-handbook, aboot [alpha], fdutils [alpha] Breaks: fwupdate (<< 12-7) [alpha], wireless-regdb (<< 2019.06.03-1~) [alpha], initramfs-tools (<< 0.120+deb8u2) @@ -757,22 +757,22 @@ extended kernel start address (Wildfire, Titan, Marvel). Build-Profiles: -Package: linux-headers-5.10.0-28-alpha-generic +Package: linux-headers-5.10.0-29-alpha-generic Architecture: alpha -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-alpha-generic +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-alpha-generic This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-alpha-generic, generally used for building + Linux kernel 5.10.0-29-alpha-generic, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-alpha-generic, and can be used for + /usr/src/linux-headers-5.10.0-29-alpha-generic, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-alpha-generic package. + linux-image-5.10.0-29-alpha-generic package. Build-Profiles: Package: linux-image-alpha-generic Architecture: alpha -Provides: linux-latest-modules-5.10.0-28-alpha-generic, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-alpha-generic (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-alpha-generic, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-alpha-generic (= ${binary:Version}), ${misc:Depends} Description: Linux for Alpha (meta-package) This package depends on the latest Linux kernel and modules for use on DEC Alpha systems with extended kernel start address (Wildfire, Titan, @@ -781,34 +781,34 @@ Package: linux-headers-alpha-generic Architecture: alpha -Depends: linux-headers-5.10.0-28-alpha-generic (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-alpha-generic (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux alpha-generic configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel alpha-generic configuration. Build-Profiles: -Package: linux-image-5.10.0-28-alpha-generic-dbg +Package: linux-image-5.10.0-29-alpha-generic-dbg Architecture: alpha Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-alpha-generic +Description: Debug symbols for linux-image-5.10.0-29-alpha-generic This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-alpha-generic. + modules in linux-image-5.10.0-29-alpha-generic. Build-Profiles: Package: linux-image-alpha-generic-dbg Architecture: alpha Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-alpha-generic-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-alpha-generic-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux alpha-generic configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel alpha-generic configuration. Build-Profiles: -Package: linux-image-5.10.0-28-alpha-smp +Package: linux-image-5.10.0-29-alpha-smp Architecture: alpha -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [alpha] | linux-initramfs-tool [alpha] Recommends: firmware-linux-free, apparmor [alpha] Suggests: linux-doc-5.10, debian-kernel-handbook, aboot [alpha], fdutils [alpha] Breaks: fwupdate (<< 12-7) [alpha], wireless-regdb (<< 2019.06.03-1~) [alpha], initramfs-tools (<< 0.120+deb8u2) @@ -817,22 +817,22 @@ extended kernel start address (Wildfire, Titan, Marvel). Build-Profiles: -Package: linux-headers-5.10.0-28-alpha-smp +Package: linux-headers-5.10.0-29-alpha-smp Architecture: alpha -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-alpha-smp +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-alpha-smp This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-alpha-smp, generally used for building out-of-tree + Linux kernel 5.10.0-29-alpha-smp, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-alpha-smp, and can be used for building + /usr/src/linux-headers-5.10.0-29-alpha-smp, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-alpha-smp package. + linux-image-5.10.0-29-alpha-smp package. Build-Profiles: Package: linux-image-alpha-smp Architecture: alpha -Provides: linux-latest-modules-5.10.0-28-alpha-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-alpha-smp (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-alpha-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-alpha-smp (= ${binary:Version}), ${misc:Depends} Description: Linux for Alpha SMP (meta-package) This package depends on the latest Linux kernel and modules for use on DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, @@ -842,32 +842,32 @@ Package: linux-headers-alpha-smp Architecture: alpha Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-alpha-smp (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-alpha-smp (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux alpha-smp configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel alpha-smp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-alpha-smp-dbg +Package: linux-image-5.10.0-29-alpha-smp-dbg Architecture: alpha Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-alpha-smp +Description: Debug symbols for linux-image-5.10.0-29-alpha-smp This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-alpha-smp. + modules in linux-image-5.10.0-29-alpha-smp. Build-Profiles: Package: linux-image-alpha-smp-dbg Architecture: alpha Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-alpha-smp-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-alpha-smp-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux alpha-smp configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel alpha-smp configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-amd64-di +Package: kernel-image-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard @@ -877,626 +877,626 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nic-modules-5.10.0-28-amd64-di +Package: nic-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-amd64-di, nic-shared-modules-5.10.0-28-amd64-di, i2c-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di, mtd-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, nic-shared-modules-5.10.0-29-amd64-di, i2c-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di, mtd-core-modules-5.10.0-29-amd64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-amd64-di +Package: nic-wireless-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-amd64-di, nic-shared-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di, mmc-core-modules-5.10.0-28-amd64-di, pcmcia-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di, rfkill-modules-5.10.0-28-amd64-di, crypto-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, nic-shared-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di, mmc-core-modules-5.10.0-29-amd64-di, pcmcia-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di, rfkill-modules-5.10.0-29-amd64-di, crypto-modules-5.10.0-29-amd64-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-amd64-di +Package: nic-shared-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: serial-modules-5.10.0-28-amd64-di +Package: serial-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-amd64-di, pcmcia-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, pcmcia-modules-5.10.0-29-amd64-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-amd64-di +Package: usb-serial-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-amd64-di +Package: ppp-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-amd64-di, serial-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, serial-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: pata-modules-5.10.0-28-amd64-di +Package: pata-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-amd64-di, ata-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, ata-modules-5.10.0-29-amd64-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-amd64-di +Package: cdrom-core-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-amd64-di +Package: firewire-core-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-amd64-di +Package: scsi-core-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-amd64-di +Package: scsi-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di, cdrom-core-modules-5.10.0-28-amd64-di, ata-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di, cdrom-core-modules-5.10.0-29-amd64-di, ata-modules-5.10.0-29-amd64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-amd64-di +Package: scsi-nic-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-amd64-di, nic-modules-5.10.0-28-amd64-di +Depends: scsi-modules-5.10.0-29-amd64-di, nic-modules-5.10.0-29-amd64-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: loop-modules-5.10.0-28-amd64-di +Package: loop-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-amd64-di +Package: btrfs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di, md-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di, md-modules-5.10.0-29-amd64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-amd64-di +Package: ext4-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-amd64-di +Package: isofs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-amd64-di, cdrom-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, cdrom-core-modules-5.10.0-29-amd64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-amd64-di +Package: jfs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: xfs-modules-5.10.0-28-amd64-di +Package: xfs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: fat-modules-5.10.0-28-amd64-di +Package: fat-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: fat-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-amd64-di +Package: squashfs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: udf-modules-5.10.0-28-amd64-di +Package: udf-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di, cdrom-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di, cdrom-core-modules-5.10.0-29-amd64-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-amd64-di +Package: fuse-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-amd64-di +Package: f2fs-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: md-modules-5.10.0-28-amd64-di +Package: md-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-amd64-di +Package: multipath-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-amd64-di, md-modules-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, md-modules-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: usb-modules-5.10.0-28-amd64-di +Package: usb-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-amd64-di +Package: usb-storage-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: pcmcia-storage-modules-5.10.0-28-amd64-di +Package: pcmcia-storage-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: pcmcia-storage-modules -Depends: kernel-image-5.10.0-28-amd64-di, cdrom-core-modules-5.10.0-28-amd64-di, pcmcia-modules-5.10.0-28-amd64-di, ata-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, cdrom-core-modules-5.10.0-29-amd64-di, pcmcia-modules-5.10.0-29-amd64-di, ata-modules-5.10.0-29-amd64-di Description: PCMCIA storage drivers This package contains PCMCIA storage drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: fb-modules-5.10.0-28-amd64-di +Package: fb-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-amd64-di, i2c-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, i2c-modules-5.10.0-29-amd64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: input-modules-5.10.0-28-amd64-di +Package: input-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di, i2c-modules-5.10.0-28-amd64-di, rfkill-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di, i2c-modules-5.10.0-29-amd64-di, rfkill-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: event-modules-5.10.0-28-amd64-di +Package: event-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: mouse-modules-5.10.0-28-amd64-di +Package: mouse-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-amd64-di, event-modules-5.10.0-28-amd64-di, input-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, event-modules-5.10.0-29-amd64-di, input-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-amd64-di +Package: nic-pcmcia-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-amd64-di, nic-shared-modules-5.10.0-28-amd64-di, nic-wireless-modules-5.10.0-28-amd64-di, pcmcia-modules-5.10.0-28-amd64-di, mmc-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, nic-shared-modules-5.10.0-29-amd64-di, nic-wireless-modules-5.10.0-29-amd64-di, pcmcia-modules-5.10.0-29-amd64-di, mmc-core-modules-5.10.0-29-amd64-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-amd64-di +Package: pcmcia-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-amd64-di +Package: nic-usb-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-amd64-di, nic-shared-modules-5.10.0-28-amd64-di, nic-wireless-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, nic-shared-modules-5.10.0-29-amd64-di, nic-wireless-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: sata-modules-5.10.0-28-amd64-di +Package: sata-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di, ata-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di, ata-modules-5.10.0-29-amd64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: acpi-modules-5.10.0-28-amd64-di +Package: acpi-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: acpi-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: ACPI support modules This package contains kernel modules for ACPI. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: i2c-modules-5.10.0-28-amd64-di +Package: i2c-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: crc-modules-5.10.0-28-amd64-di +Package: crc-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-amd64-di +Package: crypto-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-amd64-di +Package: crypto-dm-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-amd64-di, md-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, md-modules-5.10.0-29-amd64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: efi-modules-5.10.0-28-amd64-di +Package: efi-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: efi-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: EFI modules This package contains EFI modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: ata-modules-5.10.0-28-amd64-di +Package: ata-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-amd64-di, scsi-core-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, scsi-core-modules-5.10.0-29-amd64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-amd64-di +Package: mmc-core-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: mmc-modules-5.10.0-28-amd64-di +Package: mmc-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-amd64-di, mmc-core-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, mmc-core-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-amd64-di +Package: nbd-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: speakup-modules-5.10.0-28-amd64-di +Package: speakup-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: uinput-modules-5.10.0-28-amd64-di +Package: uinput-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: sound-modules-5.10.0-28-amd64-di +Package: sound-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-amd64-di, i2c-modules-5.10.0-28-amd64-di, usb-modules-5.10.0-28-amd64-di, pcmcia-modules-5.10.0-28-amd64-di, firewire-core-modules-5.10.0-28-amd64-di, crc-modules-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di, i2c-modules-5.10.0-29-amd64-di, usb-modules-5.10.0-29-amd64-di, pcmcia-modules-5.10.0-29-amd64-di, firewire-core-modules-5.10.0-29-amd64-di, crc-modules-5.10.0-29-amd64-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-amd64-di +Package: mtd-core-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb -Package: rfkill-modules-5.10.0-28-amd64-di +Package: rfkill-modules-5.10.0-29-amd64-di Architecture: amd64 Section: debian-installer Priority: optional Provides: rfkill-modules -Depends: kernel-image-5.10.0-28-amd64-di +Depends: kernel-image-5.10.0-29-amd64-di Description: rfkill modules This package contains the rfkill module. Build-Profiles: -Kernel-Version: 5.10.0-28-amd64 +Kernel-Version: 5.10.0-29-amd64 Package-Type: udeb Package: linux-image-amd64-signed-template @@ -1507,102 +1507,102 @@ service. Build-Profiles: -Package: linux-image-5.10.0-28-amd64-unsigned +Package: linux-image-5.10.0-29-amd64-unsigned Architecture: amd64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [amd64] | linux-initramfs-tool [amd64] Recommends: firmware-linux-free, apparmor [amd64] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64] -Replaces: linux-image-5.10.0-28-amd64 +Replaces: linux-image-5.10.0-29-amd64 Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], fwupdate (<< 12-7) [amd64], wireless-regdb (<< 2019.06.03-1~) [amd64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-amd64 +Conflicts: linux-image-5.10.0-29-amd64 Description: Linux 5.10 for 64-bit PCs The Linux kernel 5.10 and modules for use on PCs with AMD64, Intel 64 or VIA Nano processors. Build-Profiles: -Package: linux-headers-5.10.0-28-amd64 +Package: linux-headers-5.10.0-29-amd64 Architecture: amd64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-amd64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-amd64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-amd64, generally used for building out-of-tree + Linux kernel 5.10.0-29-amd64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-amd64, and can be used for building + /usr/src/linux-headers-5.10.0-29-amd64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-amd64 package. + linux-image-5.10.0-29-amd64 package. Build-Profiles: -Package: linux-image-5.10.0-28-amd64-dbg +Package: linux-image-5.10.0-29-amd64-dbg Architecture: amd64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-amd64 +Description: Debug symbols for linux-image-5.10.0-29-amd64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-amd64. + modules in linux-image-5.10.0-29-amd64. Build-Profiles: Package: linux-image-amd64-dbg Architecture: amd64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-amd64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-amd64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux amd64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel amd64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-cloud-amd64-unsigned +Package: linux-image-5.10.0-29-cloud-amd64-unsigned Architecture: amd64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [amd64] | linux-initramfs-tool [amd64] Recommends: firmware-linux-free, apparmor [amd64] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64] -Replaces: linux-image-5.10.0-28-cloud-amd64 +Replaces: linux-image-5.10.0-29-cloud-amd64 Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], fwupdate (<< 12-7) [amd64], wireless-regdb (<< 2019.06.03-1~) [amd64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-cloud-amd64 +Conflicts: linux-image-5.10.0-29-cloud-amd64 Description: Linux 5.10 for x86-64 cloud The Linux kernel 5.10 and modules for use on cloud platforms including Amazon EC2, Microsoft Azure, and Google Compute Engine. Build-Profiles: -Package: linux-headers-5.10.0-28-cloud-amd64 +Package: linux-headers-5.10.0-29-cloud-amd64 Architecture: amd64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-cloud-amd64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-cloud-amd64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-cloud-amd64, generally used for building + Linux kernel 5.10.0-29-cloud-amd64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-cloud-amd64, and can be used for building + /usr/src/linux-headers-5.10.0-29-cloud-amd64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-cloud-amd64 package. + linux-image-5.10.0-29-cloud-amd64 package. Build-Profiles: -Package: linux-image-5.10.0-28-cloud-amd64-dbg +Package: linux-image-5.10.0-29-cloud-amd64-dbg Architecture: amd64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-cloud-amd64 +Description: Debug symbols for linux-image-5.10.0-29-cloud-amd64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-cloud-amd64. + modules in linux-image-5.10.0-29-cloud-amd64. Build-Profiles: Package: linux-image-cloud-amd64-dbg Architecture: amd64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-cloud-amd64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-cloud-amd64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux cloud-amd64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel cloud-amd64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rt-amd64-unsigned +Package: linux-image-5.10.0-29-rt-amd64-unsigned Architecture: amd64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [amd64] | linux-initramfs-tool [amd64] Recommends: firmware-linux-free, apparmor [amd64] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [amd64] | grub-efi-amd64 [amd64] | extlinux [amd64] -Replaces: linux-image-5.10.0-28-rt-amd64 +Replaces: linux-image-5.10.0-29-rt-amd64 Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [amd64], fwupdate (<< 12-7) [amd64], wireless-regdb (<< 2019.06.03-1~) [amd64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-rt-amd64 +Conflicts: linux-image-5.10.0-29-rt-amd64 Description: Linux 5.10 for 64-bit PCs, PREEMPT_RT The Linux kernel 5.10 and modules for use on PCs with AMD64, Intel 64 or VIA Nano processors. @@ -1610,38 +1610,38 @@ This kernel includes the PREEMPT_RT realtime patch set. Build-Profiles: -Package: linux-headers-5.10.0-28-rt-amd64 +Package: linux-headers-5.10.0-29-rt-amd64 Architecture: amd64 -Depends: linux-headers-5.10.0-28-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-rt-amd64 +Depends: linux-headers-5.10.0-29-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-rt-amd64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-rt-amd64, generally used for building out-of-tree + Linux kernel 5.10.0-29-rt-amd64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-rt-amd64, and can be used for building + /usr/src/linux-headers-5.10.0-29-rt-amd64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-rt-amd64 package. + linux-image-5.10.0-29-rt-amd64 package. Build-Profiles: -Package: linux-image-5.10.0-28-rt-amd64-dbg +Package: linux-image-5.10.0-29-rt-amd64-dbg Architecture: amd64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-rt-amd64 +Description: Debug symbols for linux-image-5.10.0-29-rt-amd64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-rt-amd64. + modules in linux-image-5.10.0-29-rt-amd64. Build-Profiles: Package: linux-image-rt-amd64-dbg Architecture: amd64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-rt-amd64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-rt-amd64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux rt-amd64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel rt-amd64 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-arm64-di +Package: kernel-image-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard @@ -1651,494 +1651,494 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: nic-modules-5.10.0-28-arm64-di +Package: nic-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-arm64-di, nic-shared-modules-5.10.0-28-arm64-di, i2c-modules-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di, mtd-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, nic-shared-modules-5.10.0-29-arm64-di, i2c-modules-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di, mtd-core-modules-5.10.0-29-arm64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-arm64-di +Package: nic-wireless-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-arm64-di, nic-shared-modules-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di, crypto-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, nic-shared-modules-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di, crypto-modules-5.10.0-29-arm64-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-arm64-di +Package: nic-shared-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-arm64-di +Package: usb-serial-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-arm64-di +Package: ppp-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-arm64-di +Package: cdrom-core-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-arm64-di +Package: scsi-core-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-arm64-di +Package: scsi-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di, cdrom-core-modules-5.10.0-28-arm64-di, ata-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di, cdrom-core-modules-5.10.0-29-arm64-di, ata-modules-5.10.0-29-arm64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-arm64-di +Package: scsi-nic-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-arm64-di, nic-modules-5.10.0-28-arm64-di +Depends: scsi-modules-5.10.0-29-arm64-di, nic-modules-5.10.0-29-arm64-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: loop-modules-5.10.0-28-arm64-di +Package: loop-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-arm64-di +Package: btrfs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di, md-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di, md-modules-5.10.0-29-arm64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-arm64-di +Package: ext4-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-arm64-di +Package: isofs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-arm64-di, cdrom-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, cdrom-core-modules-5.10.0-29-arm64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-arm64-di +Package: jfs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: xfs-modules-5.10.0-28-arm64-di +Package: xfs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: fat-modules-5.10.0-28-arm64-di +Package: fat-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-arm64-di +Package: squashfs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: udf-modules-5.10.0-28-arm64-di +Package: udf-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di, cdrom-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di, cdrom-core-modules-5.10.0-29-arm64-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-arm64-di +Package: fuse-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-arm64-di +Package: f2fs-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: md-modules-5.10.0-28-arm64-di +Package: md-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-arm64-di +Package: multipath-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-arm64-di, md-modules-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, md-modules-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: usb-modules-5.10.0-28-arm64-di +Package: usb-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-arm64-di +Package: usb-storage-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: fb-modules-5.10.0-28-arm64-di +Package: fb-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-arm64-di, i2c-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, i2c-modules-5.10.0-29-arm64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: input-modules-5.10.0-28-arm64-di +Package: input-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di, i2c-modules-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di, i2c-modules-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: event-modules-5.10.0-28-arm64-di +Package: event-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-arm64-di +Package: nic-usb-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-arm64-di, nic-shared-modules-5.10.0-28-arm64-di, nic-wireless-modules-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, nic-shared-modules-5.10.0-29-arm64-di, nic-wireless-modules-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: sata-modules-5.10.0-28-arm64-di +Package: sata-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di, ata-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di, ata-modules-5.10.0-29-arm64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: i2c-modules-5.10.0-28-arm64-di +Package: i2c-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: crc-modules-5.10.0-28-arm64-di +Package: crc-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-arm64-di +Package: crypto-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-arm64-di +Package: crypto-dm-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-arm64-di, md-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, md-modules-5.10.0-29-arm64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: efi-modules-5.10.0-28-arm64-di +Package: efi-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: efi-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: EFI modules This package contains EFI modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: ata-modules-5.10.0-28-arm64-di +Package: ata-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-arm64-di, scsi-core-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, scsi-core-modules-5.10.0-29-arm64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: mmc-modules-5.10.0-28-arm64-di +Package: mmc-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-arm64-di, usb-modules-5.10.0-28-arm64-di, crc-modules-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di, usb-modules-5.10.0-29-arm64-di, crc-modules-5.10.0-29-arm64-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-arm64-di +Package: nbd-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: uinput-modules-5.10.0-28-arm64-di +Package: uinput-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: leds-modules-5.10.0-28-arm64-di +Package: leds-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: leds-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: LED modules This package contains LED modules. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-arm64-di +Package: mtd-core-modules-5.10.0-29-arm64-di Architecture: arm64 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-arm64-di +Depends: kernel-image-5.10.0-29-arm64-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-arm64 +Kernel-Version: 5.10.0-29-arm64 Package-Type: udeb Package: linux-image-arm64-signed-template @@ -2149,139 +2149,139 @@ service. Build-Profiles: -Package: linux-image-5.10.0-28-arm64-unsigned +Package: linux-image-5.10.0-29-arm64-unsigned Architecture: arm64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [arm64] | linux-initramfs-tool [arm64] Recommends: firmware-linux-free, apparmor [arm64] Suggests: linux-doc-5.10, debian-kernel-handbook -Replaces: linux-image-5.10.0-28-arm64 +Replaces: linux-image-5.10.0-29-arm64 Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], fwupdate (<< 12-7) [arm64], wireless-regdb (<< 2019.06.03-1~) [arm64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-arm64 +Conflicts: linux-image-5.10.0-29-arm64 Description: Linux 5.10 for 64-bit ARMv8 machines The Linux kernel 5.10 and modules for use on 64-bit ARMv8 machines. Build-Profiles: -Package: linux-headers-5.10.0-28-arm64 +Package: linux-headers-5.10.0-29-arm64 Architecture: arm64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-arm64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-arm64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-arm64, generally used for building out-of-tree + Linux kernel 5.10.0-29-arm64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-arm64, and can be used for building + /usr/src/linux-headers-5.10.0-29-arm64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-arm64 package. + linux-image-5.10.0-29-arm64 package. Build-Profiles: -Package: linux-image-5.10.0-28-arm64-dbg +Package: linux-image-5.10.0-29-arm64-dbg Architecture: arm64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-arm64 +Description: Debug symbols for linux-image-5.10.0-29-arm64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-arm64. + modules in linux-image-5.10.0-29-arm64. Build-Profiles: Package: linux-image-arm64-dbg Architecture: arm64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-arm64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-arm64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux arm64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel arm64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-cloud-arm64-unsigned +Package: linux-image-5.10.0-29-cloud-arm64-unsigned Architecture: arm64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [arm64] | linux-initramfs-tool [arm64] Recommends: firmware-linux-free, apparmor [arm64] Suggests: linux-doc-5.10, debian-kernel-handbook -Replaces: linux-image-5.10.0-28-cloud-arm64 +Replaces: linux-image-5.10.0-29-cloud-arm64 Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], fwupdate (<< 12-7) [arm64], wireless-regdb (<< 2019.06.03-1~) [arm64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-cloud-arm64 +Conflicts: linux-image-5.10.0-29-cloud-arm64 Description: Linux 5.10 for arm64 cloud The Linux kernel 5.10 and modules for use on cloud platforms supporting arm64 virtual machines. Build-Profiles: -Package: linux-headers-5.10.0-28-cloud-arm64 +Package: linux-headers-5.10.0-29-cloud-arm64 Architecture: arm64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-cloud-arm64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-cloud-arm64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-cloud-arm64, generally used for building + Linux kernel 5.10.0-29-cloud-arm64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-cloud-arm64, and can be used for building + /usr/src/linux-headers-5.10.0-29-cloud-arm64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-cloud-arm64 package. + linux-image-5.10.0-29-cloud-arm64 package. Build-Profiles: -Package: linux-image-5.10.0-28-cloud-arm64-dbg +Package: linux-image-5.10.0-29-cloud-arm64-dbg Architecture: arm64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-cloud-arm64 +Description: Debug symbols for linux-image-5.10.0-29-cloud-arm64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-cloud-arm64. + modules in linux-image-5.10.0-29-cloud-arm64. Build-Profiles: Package: linux-image-cloud-arm64-dbg Architecture: arm64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-cloud-arm64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-cloud-arm64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux cloud-arm64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel cloud-arm64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rt-arm64-unsigned +Package: linux-image-5.10.0-29-rt-arm64-unsigned Architecture: arm64 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [arm64] | linux-initramfs-tool [arm64] Recommends: firmware-linux-free, apparmor [arm64] Suggests: linux-doc-5.10, debian-kernel-handbook -Replaces: linux-image-5.10.0-28-rt-arm64 +Replaces: linux-image-5.10.0-29-rt-arm64 Breaks: libmozjs185-1.0 [arm64], libmozjs-24-0 (<< 24.2.0-5.1~) [arm64], fwupdate (<< 12-7) [arm64], wireless-regdb (<< 2019.06.03-1~) [arm64], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-rt-arm64 +Conflicts: linux-image-5.10.0-29-rt-arm64 Description: Linux 5.10 for 64-bit ARMv8 machines, PREEMPT_RT The Linux kernel 5.10 and modules for use on 64-bit ARMv8 machines. . This kernel includes the PREEMPT_RT realtime patch set. Build-Profiles: -Package: linux-headers-5.10.0-28-rt-arm64 +Package: linux-headers-5.10.0-29-rt-arm64 Architecture: arm64 -Depends: linux-headers-5.10.0-28-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-rt-arm64 +Depends: linux-headers-5.10.0-29-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-rt-arm64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-rt-arm64, generally used for building out-of-tree + Linux kernel 5.10.0-29-rt-arm64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-rt-arm64, and can be used for building + /usr/src/linux-headers-5.10.0-29-rt-arm64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-rt-arm64 package. + linux-image-5.10.0-29-rt-arm64 package. Build-Profiles: -Package: linux-image-5.10.0-28-rt-arm64-dbg +Package: linux-image-5.10.0-29-rt-arm64-dbg Architecture: arm64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-rt-arm64 +Description: Debug symbols for linux-image-5.10.0-29-rt-arm64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-rt-arm64. + modules in linux-image-5.10.0-29-rt-arm64. Build-Profiles: Package: linux-image-rt-arm64-dbg Architecture: arm64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-rt-arm64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-rt-arm64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux rt-arm64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel rt-arm64 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-marvell-di +Package: kernel-image-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard @@ -2291,485 +2291,485 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: nic-modules-5.10.0-28-marvell-di +Package: nic-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-marvell-di, nic-shared-modules-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di, mtd-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, nic-shared-modules-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di, mtd-core-modules-5.10.0-29-marvell-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-marvell-di +Package: nic-shared-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-marvell-di +Package: usb-serial-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: ppp-modules-5.10.0-28-marvell-di +Package: ppp-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-marvell-di +Package: cdrom-core-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-marvell-di, scsi-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, scsi-core-modules-5.10.0-29-marvell-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-marvell-di +Package: scsi-core-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: loop-modules-5.10.0-28-marvell-di +Package: loop-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: ipv6-modules-5.10.0-28-marvell-di +Package: ipv6-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: ipv6-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: IPv6 driver This package contains the IPv6 driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: btrfs-modules-5.10.0-28-marvell-di +Package: btrfs-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di, md-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di, md-modules-5.10.0-29-marvell-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: ext4-modules-5.10.0-28-marvell-di +Package: ext4-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: isofs-modules-5.10.0-28-marvell-di +Package: isofs-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-marvell-di, cdrom-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, cdrom-core-modules-5.10.0-29-marvell-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: jffs2-modules-5.10.0-28-marvell-di +Package: jffs2-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: jffs2-modules -Depends: kernel-image-5.10.0-28-marvell-di, mtd-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, mtd-modules-5.10.0-29-marvell-di Description: JFFS2 filesystem support This package contains the JFFS2 filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: jfs-modules-5.10.0-28-marvell-di +Package: jfs-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: fat-modules-5.10.0-28-marvell-di +Package: fat-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: minix-modules-5.10.0-28-marvell-di +Package: minix-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: squashfs-modules-5.10.0-28-marvell-di +Package: squashfs-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: udf-modules-5.10.0-28-marvell-di +Package: udf-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di, cdrom-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di, cdrom-core-modules-5.10.0-29-marvell-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: fuse-modules-5.10.0-28-marvell-di +Package: fuse-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: f2fs-modules-5.10.0-28-marvell-di +Package: f2fs-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: md-modules-5.10.0-28-marvell-di +Package: md-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: multipath-modules-5.10.0-28-marvell-di +Package: multipath-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-marvell-di, md-modules-5.10.0-28-marvell-di, scsi-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, md-modules-5.10.0-29-marvell-di, scsi-core-modules-5.10.0-29-marvell-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: usb-modules-5.10.0-28-marvell-di +Package: usb-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-marvell-di +Package: usb-storage-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-marvell-di, scsi-core-modules-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, scsi-core-modules-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: fb-modules-5.10.0-28-marvell-di +Package: fb-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: input-modules-5.10.0-28-marvell-di +Package: input-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: event-modules-5.10.0-28-marvell-di +Package: event-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: mouse-modules-5.10.0-28-marvell-di +Package: mouse-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-marvell-di, event-modules-5.10.0-28-marvell-di, input-modules-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, event-modules-5.10.0-29-marvell-di, input-modules-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-marvell-di +Package: nic-usb-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-marvell-di, nic-shared-modules-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, nic-shared-modules-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: sata-modules-5.10.0-28-marvell-di +Package: sata-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-marvell-di, scsi-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, scsi-core-modules-5.10.0-29-marvell-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: crc-modules-5.10.0-28-marvell-di +Package: crc-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: crypto-modules-5.10.0-28-marvell-di +Package: crypto-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-marvell-di +Package: crypto-dm-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-marvell-di, md-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, md-modules-5.10.0-29-marvell-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-marvell-di +Package: mmc-core-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: mmc-modules-5.10.0-28-marvell-di +Package: mmc-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-marvell-di, mmc-core-modules-5.10.0-28-marvell-di, usb-modules-5.10.0-28-marvell-di, crc-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, mmc-core-modules-5.10.0-29-marvell-di, usb-modules-5.10.0-29-marvell-di, crc-modules-5.10.0-29-marvell-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: nbd-modules-5.10.0-28-marvell-di +Package: nbd-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: uinput-modules-5.10.0-28-marvell-di +Package: uinput-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: leds-modules-5.10.0-28-marvell-di +Package: leds-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: leds-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: LED modules This package contains LED modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: mtd-modules-5.10.0-28-marvell-di +Package: mtd-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: mtd-modules -Depends: kernel-image-5.10.0-28-marvell-di, mtd-core-modules-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di, mtd-core-modules-5.10.0-29-marvell-di Description: MTD driver modules This package contains MTD driver modules. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-marvell-di +Package: mtd-core-modules-5.10.0-29-marvell-di Architecture: armel Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-marvell-di +Depends: kernel-image-5.10.0-29-marvell-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-marvell +Kernel-Version: 5.10.0-29-marvell Package-Type: udeb -Package: linux-image-5.10.0-28-marvell +Package: linux-image-5.10.0-29-marvell Architecture: armel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel] Recommends: firmware-linux-free, u-boot-tools [armel], apparmor [armel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: flash-kernel (<< 3.57~) [armel], fwupdate (<< 12-7) [armel], wireless-regdb (<< 2019.06.03-1~) [armel], initramfs-tools (<< 0.120+deb8u2) @@ -2778,22 +2778,22 @@ based systems (https://wiki.debian.org/ArmEabiPort#Supported_hardware). Build-Profiles: -Package: linux-headers-5.10.0-28-marvell +Package: linux-headers-5.10.0-29-marvell Architecture: armel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm -Description: Header files for Linux 5.10.0-28-marvell +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm +Description: Header files for Linux 5.10.0-29-marvell This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-marvell, generally used for building out-of-tree + Linux kernel 5.10.0-29-marvell, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-marvell, and can be used for building + /usr/src/linux-headers-5.10.0-29-marvell, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-marvell package. + linux-image-5.10.0-29-marvell package. Build-Profiles: Package: linux-image-marvell Architecture: armel -Provides: linux-latest-modules-5.10.0-28-marvell, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-marvell (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-marvell, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-marvell (= ${binary:Version}), ${misc:Depends} Description: Linux for Marvell Kirkwood/Orion (meta-package) This package depends on the latest Linux kernel and modules for use on Marvell Kirkwood and Orion based systems @@ -2802,34 +2802,34 @@ Package: linux-headers-marvell Architecture: armel -Depends: linux-headers-5.10.0-28-marvell (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-marvell (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux marvell configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel marvell configuration. Build-Profiles: -Package: linux-image-5.10.0-28-marvell-dbg +Package: linux-image-5.10.0-29-marvell-dbg Architecture: armel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-marvell +Description: Debug symbols for linux-image-5.10.0-29-marvell This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-marvell. + modules in linux-image-5.10.0-29-marvell. Build-Profiles: Package: linux-image-marvell-dbg Architecture: armel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-marvell-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-marvell-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux marvell configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel marvell configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rpi +Package: linux-image-5.10.0-29-rpi Architecture: armel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armel] | linux-initramfs-tool [armel] Recommends: firmware-linux-free, apparmor [armel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [armel], wireless-regdb (<< 2019.06.03-1~) [armel], initramfs-tools (<< 0.120+deb8u2) @@ -2838,22 +2838,22 @@ Zero based systems. Build-Profiles: -Package: linux-headers-5.10.0-28-rpi +Package: linux-headers-5.10.0-29-rpi Architecture: armel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm -Description: Header files for Linux 5.10.0-28-rpi +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm +Description: Header files for Linux 5.10.0-29-rpi This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-rpi, generally used for building out-of-tree kernel + Linux kernel 5.10.0-29-rpi, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-rpi, and can be used for building modules - that load into the kernel provided by the linux-image-5.10.0-28-rpi + /usr/src/linux-headers-5.10.0-29-rpi, and can be used for building modules + that load into the kernel provided by the linux-image-5.10.0-29-rpi package. Build-Profiles: Package: linux-image-rpi Architecture: armel -Provides: linux-latest-modules-5.10.0-28-rpi, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-rpi (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-rpi, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-rpi (= ${binary:Version}), ${misc:Depends} Description: Linux for Raspberry Pi and Pi Zero (meta-package) This package depends on the latest Linux kernel and modules for use on Raspberry Pi, Raspberry Pi Zero based systems. @@ -2861,32 +2861,32 @@ Package: linux-headers-rpi Architecture: armel -Depends: linux-headers-5.10.0-28-rpi (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-rpi (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux rpi configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel rpi configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rpi-dbg +Package: linux-image-5.10.0-29-rpi-dbg Architecture: armel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-rpi +Description: Debug symbols for linux-image-5.10.0-29-rpi This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-rpi. + modules in linux-image-5.10.0-29-rpi. Build-Profiles: Package: linux-image-rpi-dbg Architecture: armel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-rpi-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-rpi-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux rpi configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel rpi configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-armmp-di +Package: kernel-image-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard @@ -2896,499 +2896,499 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: nic-modules-5.10.0-28-armmp-di +Package: nic-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-armmp-di, nic-shared-modules-5.10.0-28-armmp-di, i2c-modules-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, nic-shared-modules-5.10.0-29-armmp-di, i2c-modules-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-armmp-di +Package: nic-wireless-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-armmp-di, nic-shared-modules-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di, crypto-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, nic-shared-modules-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di, crypto-modules-5.10.0-29-armmp-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-armmp-di +Package: nic-shared-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-armmp-di +Package: usb-serial-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: ppp-modules-5.10.0-28-armmp-di +Package: ppp-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: pata-modules-5.10.0-28-armmp-di +Package: pata-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: pata-modules -Depends: kernel-image-5.10.0-28-armmp-di, ata-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, ata-modules-5.10.0-29-armmp-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-armmp-di +Package: cdrom-core-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-armmp-di +Package: scsi-core-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: scsi-modules-5.10.0-28-armmp-di +Package: scsi-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di, cdrom-core-modules-5.10.0-28-armmp-di, ata-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di, cdrom-core-modules-5.10.0-29-armmp-di, ata-modules-5.10.0-29-armmp-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-armmp-di +Package: scsi-nic-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-armmp-di, nic-modules-5.10.0-28-armmp-di +Depends: scsi-modules-5.10.0-29-armmp-di, nic-modules-5.10.0-29-armmp-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: loop-modules-5.10.0-28-armmp-di +Package: loop-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: btrfs-modules-5.10.0-28-armmp-di +Package: btrfs-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di, md-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di, md-modules-5.10.0-29-armmp-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: ext4-modules-5.10.0-28-armmp-di +Package: ext4-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: isofs-modules-5.10.0-28-armmp-di +Package: isofs-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-armmp-di, cdrom-core-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, cdrom-core-modules-5.10.0-29-armmp-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: jfs-modules-5.10.0-28-armmp-di +Package: jfs-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: fat-modules-5.10.0-28-armmp-di +Package: fat-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: squashfs-modules-5.10.0-28-armmp-di +Package: squashfs-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: udf-modules-5.10.0-28-armmp-di +Package: udf-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di, cdrom-core-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di, cdrom-core-modules-5.10.0-29-armmp-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: fuse-modules-5.10.0-28-armmp-di +Package: fuse-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: f2fs-modules-5.10.0-28-armmp-di +Package: f2fs-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: md-modules-5.10.0-28-armmp-di +Package: md-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: multipath-modules-5.10.0-28-armmp-di +Package: multipath-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-armmp-di, md-modules-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, md-modules-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: usb-modules-5.10.0-28-armmp-di +Package: usb-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-armmp-di +Package: usb-storage-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: fb-modules-5.10.0-28-armmp-di +Package: fb-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-armmp-di, i2c-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, i2c-modules-5.10.0-29-armmp-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: input-modules-5.10.0-28-armmp-di +Package: input-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di, i2c-modules-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di, i2c-modules-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: event-modules-5.10.0-28-armmp-di +Package: event-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-armmp-di +Package: nic-usb-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-armmp-di, nic-shared-modules-5.10.0-28-armmp-di, nic-wireless-modules-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, nic-shared-modules-5.10.0-29-armmp-di, nic-wireless-modules-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: sata-modules-5.10.0-28-armmp-di +Package: sata-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di, ata-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di, ata-modules-5.10.0-29-armmp-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: i2c-modules-5.10.0-28-armmp-di +Package: i2c-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: crc-modules-5.10.0-28-armmp-di +Package: crc-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: crypto-modules-5.10.0-28-armmp-di +Package: crypto-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-armmp-di +Package: crypto-dm-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-armmp-di, md-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, md-modules-5.10.0-29-armmp-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: efi-modules-5.10.0-28-armmp-di +Package: efi-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: efi-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: EFI modules This package contains EFI modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: ata-modules-5.10.0-28-armmp-di +Package: ata-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-armmp-di, scsi-core-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, scsi-core-modules-5.10.0-29-armmp-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: mmc-modules-5.10.0-28-armmp-di +Package: mmc-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-armmp-di, usb-modules-5.10.0-28-armmp-di, crc-modules-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di, usb-modules-5.10.0-29-armmp-di, crc-modules-5.10.0-29-armmp-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: nbd-modules-5.10.0-28-armmp-di +Package: nbd-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: uinput-modules-5.10.0-28-armmp-di +Package: uinput-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: leds-modules-5.10.0-28-armmp-di +Package: leds-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: leds-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: LED modules This package contains LED modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: mtd-modules-5.10.0-28-armmp-di +Package: mtd-modules-5.10.0-29-armmp-di Architecture: armhf Section: debian-installer Priority: optional Provides: mtd-modules -Depends: kernel-image-5.10.0-28-armmp-di +Depends: kernel-image-5.10.0-29-armmp-di Description: MTD driver modules This package contains MTD driver modules. Build-Profiles: -Kernel-Version: 5.10.0-28-armmp +Kernel-Version: 5.10.0-29-armmp Package-Type: udeb -Package: linux-image-5.10.0-28-armmp +Package: linux-image-5.10.0-29-armmp Architecture: armhf -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] Recommends: firmware-linux-free, apparmor [armhf] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [armhf], wireless-regdb (<< 2019.06.03-1~) [armhf], initramfs-tools (<< 0.120+deb8u2) @@ -3398,22 +3398,22 @@ platforms. Build-Profiles: -Package: linux-headers-5.10.0-28-armmp +Package: linux-headers-5.10.0-29-armmp Architecture: armhf -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm -Description: Header files for Linux 5.10.0-28-armmp +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm +Description: Header files for Linux 5.10.0-29-armmp This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-armmp, generally used for building out-of-tree + Linux kernel 5.10.0-29-armmp, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-armmp, and can be used for building + /usr/src/linux-headers-5.10.0-29-armmp, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-armmp package. + linux-image-5.10.0-29-armmp package. Build-Profiles: Package: linux-image-armmp Architecture: armhf -Provides: linux-latest-modules-5.10.0-28-armmp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-armmp (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-armmp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-armmp (= ${binary:Version}), ${misc:Depends} Description: Linux for ARMv7 multiplatform compatible SoCs (meta-package) This package depends on the latest Linux kernel and modules for use on ARMv7 multiplatform kernel. See @@ -3424,34 +3424,34 @@ Package: linux-headers-armmp Architecture: armhf Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-armmp (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-armmp (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux armmp configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel armmp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-armmp-dbg +Package: linux-image-5.10.0-29-armmp-dbg Architecture: armhf Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-armmp +Description: Debug symbols for linux-image-5.10.0-29-armmp This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-armmp. + modules in linux-image-5.10.0-29-armmp. Build-Profiles: Package: linux-image-armmp-dbg Architecture: armhf Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-armmp-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-armmp-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux armmp configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel armmp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-armmp-lpae +Package: linux-image-5.10.0-29-armmp-lpae Architecture: armhf -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] Recommends: firmware-linux-free, apparmor [armhf] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [armhf], wireless-regdb (<< 2019.06.03-1~) [armhf], initramfs-tools (<< 0.120+deb8u2) @@ -3461,22 +3461,22 @@ details of supported platforms.. Build-Profiles: -Package: linux-headers-5.10.0-28-armmp-lpae +Package: linux-headers-5.10.0-29-armmp-lpae Architecture: armhf -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm -Description: Header files for Linux 5.10.0-28-armmp-lpae +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm +Description: Header files for Linux 5.10.0-29-armmp-lpae This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-armmp-lpae, generally used for building out-of-tree + Linux kernel 5.10.0-29-armmp-lpae, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-armmp-lpae, and can be used for building + /usr/src/linux-headers-5.10.0-29-armmp-lpae, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-armmp-lpae package. + linux-image-5.10.0-29-armmp-lpae package. Build-Profiles: Package: linux-image-armmp-lpae Architecture: armhf -Provides: linux-latest-modules-5.10.0-28-armmp-lpae, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-armmp-lpae (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-armmp-lpae, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-armmp-lpae (= ${binary:Version}), ${misc:Depends} Description: Linux for ARMv7 multiplatform compatible SoCs supporting LPAE (meta-package) This package depends on the latest Linux kernel and modules for use on ARMv7 multiplatform kernel supporting LPAE. See @@ -3486,34 +3486,34 @@ Package: linux-headers-armmp-lpae Architecture: armhf -Depends: linux-headers-5.10.0-28-armmp-lpae (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-armmp-lpae (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux armmp-lpae configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel armmp-lpae configuration. Build-Profiles: -Package: linux-image-5.10.0-28-armmp-lpae-dbg +Package: linux-image-5.10.0-29-armmp-lpae-dbg Architecture: armhf Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-armmp-lpae +Description: Debug symbols for linux-image-5.10.0-29-armmp-lpae This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-armmp-lpae. + modules in linux-image-5.10.0-29-armmp-lpae. Build-Profiles: Package: linux-image-armmp-lpae-dbg Architecture: armhf Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-armmp-lpae-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-armmp-lpae-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux armmp-lpae configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel armmp-lpae configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rt-armmp +Package: linux-image-5.10.0-29-rt-armmp Architecture: armhf -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [armhf] | linux-initramfs-tool [armhf] Recommends: firmware-linux-free, apparmor [armhf] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [armhf], wireless-regdb (<< 2019.06.03-1~) [armhf], initramfs-tools (<< 0.120+deb8u2) @@ -3525,22 +3525,22 @@ This kernel includes the PREEMPT_RT realtime patch set. Build-Profiles: -Package: linux-headers-5.10.0-28-rt-armmp +Package: linux-headers-5.10.0-29-rt-armmp Architecture: armhf -Depends: linux-headers-5.10.0-28-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm -Description: Header files for Linux 5.10.0-28-rt-armmp +Depends: linux-headers-5.10.0-29-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-arm +Description: Header files for Linux 5.10.0-29-rt-armmp This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-rt-armmp, generally used for building out-of-tree + Linux kernel 5.10.0-29-rt-armmp, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-rt-armmp, and can be used for building + /usr/src/linux-headers-5.10.0-29-rt-armmp, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-rt-armmp package. + linux-image-5.10.0-29-rt-armmp package. Build-Profiles: Package: linux-image-rt-armmp Architecture: armhf -Provides: linux-latest-modules-5.10.0-28-rt-armmp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-rt-armmp (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-rt-armmp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-rt-armmp (= ${binary:Version}), ${misc:Depends} Description: Linux for ARMv7 multiplatform compatible SoCs (meta-package) This package depends on the latest Linux kernel and modules for use on ARMv7 multiplatform kernel. See @@ -3550,32 +3550,32 @@ Package: linux-headers-rt-armmp Architecture: armhf -Depends: linux-headers-5.10.0-28-rt-armmp (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-rt-armmp (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux rt-armmp configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel rt-armmp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rt-armmp-dbg +Package: linux-image-5.10.0-29-rt-armmp-dbg Architecture: armhf Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-rt-armmp +Description: Debug symbols for linux-image-5.10.0-29-rt-armmp This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-rt-armmp. + modules in linux-image-5.10.0-29-rt-armmp. Build-Profiles: Package: linux-image-rt-armmp-dbg Architecture: armhf Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-rt-armmp-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-rt-armmp-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux rt-armmp configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel rt-armmp configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-parisc-di +Package: kernel-image-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard @@ -3585,411 +3585,411 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: nic-modules-5.10.0-28-parisc-di +Package: nic-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-parisc-di, nic-shared-modules-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, nic-shared-modules-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-parisc-di +Package: nic-shared-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: serial-modules-5.10.0-28-parisc-di +Package: serial-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-parisc-di +Package: usb-serial-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-parisc-di, usb-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, usb-modules-5.10.0-29-parisc-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: ppp-modules-5.10.0-28-parisc-di +Package: ppp-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-parisc-di, serial-modules-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, serial-modules-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: pata-modules-5.10.0-28-parisc-di +Package: pata-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-parisc-di, ata-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, ata-modules-5.10.0-29-parisc-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-parisc-di +Package: cdrom-core-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-parisc-di +Package: scsi-core-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: scsi-modules-5.10.0-28-parisc-di +Package: scsi-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di, cdrom-core-modules-5.10.0-28-parisc-di, ata-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di, cdrom-core-modules-5.10.0-29-parisc-di, ata-modules-5.10.0-29-parisc-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: loop-modules-5.10.0-28-parisc-di +Package: loop-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: btrfs-modules-5.10.0-28-parisc-di +Package: btrfs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di, md-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di, md-modules-5.10.0-29-parisc-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: ext4-modules-5.10.0-28-parisc-di +Package: ext4-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: isofs-modules-5.10.0-28-parisc-di +Package: isofs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-parisc-di, cdrom-core-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, cdrom-core-modules-5.10.0-29-parisc-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: jfs-modules-5.10.0-28-parisc-di +Package: jfs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: xfs-modules-5.10.0-28-parisc-di +Package: xfs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: fat-modules-5.10.0-28-parisc-di +Package: fat-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: squashfs-modules-5.10.0-28-parisc-di +Package: squashfs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: fuse-modules-5.10.0-28-parisc-di +Package: fuse-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: f2fs-modules-5.10.0-28-parisc-di +Package: f2fs-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: md-modules-5.10.0-28-parisc-di +Package: md-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: multipath-modules-5.10.0-28-parisc-di +Package: multipath-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-parisc-di, md-modules-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, md-modules-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: usb-modules-5.10.0-28-parisc-di +Package: usb-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-parisc-di +Package: usb-storage-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di, usb-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di, usb-modules-5.10.0-29-parisc-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: input-modules-5.10.0-28-parisc-di +Package: input-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-parisc-di, usb-modules-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, usb-modules-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: event-modules-5.10.0-28-parisc-di +Package: event-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: mouse-modules-5.10.0-28-parisc-di +Package: mouse-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-parisc-di, event-modules-5.10.0-28-parisc-di, input-modules-5.10.0-28-parisc-di, usb-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, event-modules-5.10.0-29-parisc-di, input-modules-5.10.0-29-parisc-di, usb-modules-5.10.0-29-parisc-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-parisc-di +Package: nic-usb-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-parisc-di, nic-shared-modules-5.10.0-28-parisc-di, usb-modules-5.10.0-28-parisc-di, crc-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, nic-shared-modules-5.10.0-29-parisc-di, usb-modules-5.10.0-29-parisc-di, crc-modules-5.10.0-29-parisc-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: sata-modules-5.10.0-28-parisc-di +Package: sata-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di, ata-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di, ata-modules-5.10.0-29-parisc-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: crc-modules-5.10.0-28-parisc-di +Package: crc-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: crypto-modules-5.10.0-28-parisc-di +Package: crypto-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-parisc-di +Package: crypto-dm-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-parisc-di, md-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, md-modules-5.10.0-29-parisc-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: ata-modules-5.10.0-28-parisc-di +Package: ata-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-parisc-di, scsi-core-modules-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di, scsi-core-modules-5.10.0-29-parisc-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: nbd-modules-5.10.0-28-parisc-di +Package: nbd-modules-5.10.0-29-parisc-di Architecture: hppa Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-parisc-di +Depends: kernel-image-5.10.0-29-parisc-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-parisc +Kernel-Version: 5.10.0-29-parisc Package-Type: udeb -Package: kernel-image-5.10.0-28-parisc64-di +Package: kernel-image-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard @@ -3999,425 +3999,425 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: nic-modules-5.10.0-28-parisc64-di +Package: nic-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-parisc64-di, nic-shared-modules-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, nic-shared-modules-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-parisc64-di +Package: nic-shared-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: serial-modules-5.10.0-28-parisc64-di +Package: serial-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-parisc64-di +Package: usb-serial-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-parisc64-di, usb-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, usb-modules-5.10.0-29-parisc64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-parisc64-di +Package: ppp-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-parisc64-di, serial-modules-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, serial-modules-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: pata-modules-5.10.0-28-parisc64-di +Package: pata-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-parisc64-di, ata-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, ata-modules-5.10.0-29-parisc64-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-parisc64-di +Package: cdrom-core-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-parisc64-di +Package: scsi-core-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-parisc64-di +Package: scsi-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di, cdrom-core-modules-5.10.0-28-parisc64-di, ata-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di, cdrom-core-modules-5.10.0-29-parisc64-di, ata-modules-5.10.0-29-parisc64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: loop-modules-5.10.0-28-parisc64-di +Package: loop-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-parisc64-di +Package: btrfs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di, md-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di, md-modules-5.10.0-29-parisc64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-parisc64-di +Package: ext4-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-parisc64-di +Package: isofs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-parisc64-di, cdrom-core-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, cdrom-core-modules-5.10.0-29-parisc64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-parisc64-di +Package: jfs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: xfs-modules-5.10.0-28-parisc64-di +Package: xfs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: fat-modules-5.10.0-28-parisc64-di +Package: fat-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-parisc64-di +Package: squashfs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-parisc64-di +Package: fuse-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-parisc64-di +Package: f2fs-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: md-modules-5.10.0-28-parisc64-di +Package: md-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-parisc64-di +Package: multipath-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-parisc64-di, md-modules-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, md-modules-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: usb-modules-5.10.0-28-parisc64-di +Package: usb-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-parisc64-di +Package: usb-storage-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di, usb-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di, usb-modules-5.10.0-29-parisc64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: fb-modules-5.10.0-28-parisc64-di +Package: fb-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: fb-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: input-modules-5.10.0-28-parisc64-di +Package: input-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-parisc64-di, usb-modules-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, usb-modules-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: event-modules-5.10.0-28-parisc64-di +Package: event-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: mouse-modules-5.10.0-28-parisc64-di +Package: mouse-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-parisc64-di, event-modules-5.10.0-28-parisc64-di, input-modules-5.10.0-28-parisc64-di, usb-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, event-modules-5.10.0-29-parisc64-di, input-modules-5.10.0-29-parisc64-di, usb-modules-5.10.0-29-parisc64-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-parisc64-di +Package: nic-usb-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-parisc64-di, nic-shared-modules-5.10.0-28-parisc64-di, usb-modules-5.10.0-28-parisc64-di, crc-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, nic-shared-modules-5.10.0-29-parisc64-di, usb-modules-5.10.0-29-parisc64-di, crc-modules-5.10.0-29-parisc64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: sata-modules-5.10.0-28-parisc64-di +Package: sata-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di, ata-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di, ata-modules-5.10.0-29-parisc64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: crc-modules-5.10.0-28-parisc64-di +Package: crc-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-parisc64-di +Package: crypto-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-parisc64-di +Package: crypto-dm-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-parisc64-di, md-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, md-modules-5.10.0-29-parisc64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: ata-modules-5.10.0-28-parisc64-di +Package: ata-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-parisc64-di, scsi-core-modules-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di, scsi-core-modules-5.10.0-29-parisc64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-parisc64-di +Package: nbd-modules-5.10.0-29-parisc64-di Architecture: hppa Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-parisc64-di +Depends: kernel-image-5.10.0-29-parisc64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-parisc64 +Kernel-Version: 5.10.0-29-parisc64 Package-Type: udeb -Package: linux-image-5.10.0-28-parisc +Package: linux-image-5.10.0-29-parisc Architecture: hppa -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa] Recommends: firmware-linux-free, apparmor [hppa] Suggests: linux-doc-5.10, debian-kernel-handbook, palo [hppa] Breaks: fwupdate (<< 12-7) [hppa], wireless-regdb (<< 2019.06.03-1~) [hppa], initramfs-tools (<< 0.120+deb8u2) @@ -4426,22 +4426,22 @@ with max 4 GB RAM. Build-Profiles: -Package: linux-headers-5.10.0-28-parisc +Package: linux-headers-5.10.0-29-parisc Architecture: hppa -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10, binutils-hppa64-linux-gnu, gcc-10-hppa64-linux-gnu -Description: Header files for Linux 5.10.0-28-parisc +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10, binutils-hppa64-linux-gnu, gcc-10-hppa64-linux-gnu +Description: Header files for Linux 5.10.0-29-parisc This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-parisc, generally used for building out-of-tree + Linux kernel 5.10.0-29-parisc, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-parisc, and can be used for building + /usr/src/linux-headers-5.10.0-29-parisc, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-parisc package. + linux-image-5.10.0-29-parisc package. Build-Profiles: Package: linux-image-parisc Architecture: hppa -Provides: linux-latest-modules-5.10.0-28-parisc, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-parisc (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-parisc, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-parisc (= ${binary:Version}), ${misc:Depends} Description: Linux for 32-bit PA-RISC (meta-package) This package depends on the latest Linux kernel and modules for use on HP PA-RISC 32-bit systems with max 4 GB RAM. @@ -4450,15 +4450,15 @@ Package: linux-headers-parisc Architecture: hppa Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-parisc (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-parisc (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux parisc configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel parisc configuration. Build-Profiles: -Package: linux-image-5.10.0-28-parisc64 +Package: linux-image-5.10.0-29-parisc64 Architecture: hppa -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [hppa] | linux-initramfs-tool [hppa] Recommends: firmware-linux-free, apparmor [hppa] Suggests: linux-doc-5.10, debian-kernel-handbook, palo [hppa] Breaks: fwupdate (<< 12-7) [hppa], wireless-regdb (<< 2019.06.03-1~) [hppa], initramfs-tools (<< 0.120+deb8u2) @@ -4467,22 +4467,22 @@ with support for more than 4 GB RAM. Build-Profiles: -Package: linux-headers-5.10.0-28-parisc64 +Package: linux-headers-5.10.0-29-parisc64 Architecture: hppa -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10, binutils-hppa64-linux-gnu, gcc-10-hppa64-linux-gnu -Description: Header files for Linux 5.10.0-28-parisc64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10, binutils-hppa64-linux-gnu, gcc-10-hppa64-linux-gnu +Description: Header files for Linux 5.10.0-29-parisc64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-parisc64, generally used for building out-of-tree + Linux kernel 5.10.0-29-parisc64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-parisc64, and can be used for building + /usr/src/linux-headers-5.10.0-29-parisc64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-parisc64 package. + linux-image-5.10.0-29-parisc64 package. Build-Profiles: Package: linux-image-parisc64 Architecture: hppa -Provides: linux-latest-modules-5.10.0-28-parisc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-parisc64 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-parisc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-parisc64 (= ${binary:Version}), ${misc:Depends} Description: Linux for 64-bit PA-RISC (meta-package) This package depends on the latest Linux kernel and modules for use on HP PA-RISC 64-bit systems with support for more than 4 GB RAM. @@ -4490,13 +4490,13 @@ Package: linux-headers-parisc64 Architecture: hppa -Depends: linux-headers-5.10.0-28-parisc64 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-parisc64 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux parisc64 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel parisc64 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-686-di +Package: kernel-image-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard @@ -4506,629 +4506,629 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nic-modules-5.10.0-28-686-di +Package: nic-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-686-di, nic-shared-modules-5.10.0-28-686-di, i2c-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di, mtd-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, nic-shared-modules-5.10.0-29-686-di, i2c-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di, mtd-core-modules-5.10.0-29-686-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-686-di +Package: nic-wireless-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-686-di, nic-shared-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di, mmc-core-modules-5.10.0-28-686-di, pcmcia-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di, rfkill-modules-5.10.0-28-686-di, crypto-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, nic-shared-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di, mmc-core-modules-5.10.0-29-686-di, pcmcia-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di, rfkill-modules-5.10.0-29-686-di, crypto-modules-5.10.0-29-686-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-686-di +Package: nic-shared-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: serial-modules-5.10.0-28-686-di +Package: serial-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-686-di, pcmcia-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, pcmcia-modules-5.10.0-29-686-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-686-di +Package: usb-serial-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: ppp-modules-5.10.0-28-686-di +Package: ppp-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-686-di, serial-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, serial-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: pata-modules-5.10.0-28-686-di +Package: pata-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-686-di, ata-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, ata-modules-5.10.0-29-686-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-686-di +Package: cdrom-core-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-686-di +Package: firewire-core-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-686-di +Package: scsi-core-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: scsi-modules-5.10.0-28-686-di +Package: scsi-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di, cdrom-core-modules-5.10.0-28-686-di, ata-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di, cdrom-core-modules-5.10.0-29-686-di, ata-modules-5.10.0-29-686-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-686-di +Package: scsi-nic-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-686-di, nic-modules-5.10.0-28-686-di +Depends: scsi-modules-5.10.0-29-686-di, nic-modules-5.10.0-29-686-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: loop-modules-5.10.0-28-686-di +Package: loop-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-686-di +Package: btrfs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di, md-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di, md-modules-5.10.0-29-686-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: ext4-modules-5.10.0-28-686-di +Package: ext4-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: isofs-modules-5.10.0-28-686-di +Package: isofs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-686-di, cdrom-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, cdrom-core-modules-5.10.0-29-686-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: jfs-modules-5.10.0-28-686-di +Package: jfs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: xfs-modules-5.10.0-28-686-di +Package: xfs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: fat-modules-5.10.0-28-686-di +Package: fat-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: fat-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-686-di +Package: squashfs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: udf-modules-5.10.0-28-686-di +Package: udf-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di, cdrom-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di, cdrom-core-modules-5.10.0-29-686-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: fuse-modules-5.10.0-28-686-di +Package: fuse-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-686-di +Package: f2fs-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: md-modules-5.10.0-28-686-di +Package: md-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: multipath-modules-5.10.0-28-686-di +Package: multipath-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-686-di, md-modules-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, md-modules-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: usb-modules-5.10.0-28-686-di +Package: usb-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-686-di +Package: usb-storage-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: pcmcia-storage-modules-5.10.0-28-686-di +Package: pcmcia-storage-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: pcmcia-storage-modules -Depends: kernel-image-5.10.0-28-686-di, cdrom-core-modules-5.10.0-28-686-di, pcmcia-modules-5.10.0-28-686-di, ata-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, cdrom-core-modules-5.10.0-29-686-di, pcmcia-modules-5.10.0-29-686-di, ata-modules-5.10.0-29-686-di Description: PCMCIA storage drivers This package contains PCMCIA storage drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: fb-modules-5.10.0-28-686-di +Package: fb-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-686-di, i2c-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, i2c-modules-5.10.0-29-686-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: input-modules-5.10.0-28-686-di +Package: input-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di, i2c-modules-5.10.0-28-686-di, rfkill-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di, i2c-modules-5.10.0-29-686-di, rfkill-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: event-modules-5.10.0-28-686-di +Package: event-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: mouse-modules-5.10.0-28-686-di +Package: mouse-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-686-di, event-modules-5.10.0-28-686-di, input-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, event-modules-5.10.0-29-686-di, input-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-686-di +Package: nic-pcmcia-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-686-di, nic-shared-modules-5.10.0-28-686-di, nic-wireless-modules-5.10.0-28-686-di, pcmcia-modules-5.10.0-28-686-di, mmc-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, nic-shared-modules-5.10.0-29-686-di, nic-wireless-modules-5.10.0-29-686-di, pcmcia-modules-5.10.0-29-686-di, mmc-core-modules-5.10.0-29-686-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-686-di +Package: pcmcia-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-686-di +Package: nic-usb-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-686-di, nic-shared-modules-5.10.0-28-686-di, nic-wireless-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, nic-shared-modules-5.10.0-29-686-di, nic-wireless-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: sata-modules-5.10.0-28-686-di +Package: sata-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di, ata-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di, ata-modules-5.10.0-29-686-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: acpi-modules-5.10.0-28-686-di +Package: acpi-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: acpi-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: ACPI support modules This package contains kernel modules for ACPI. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: i2c-modules-5.10.0-28-686-di +Package: i2c-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: crc-modules-5.10.0-28-686-di +Package: crc-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: crypto-modules-5.10.0-28-686-di +Package: crypto-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-686-di +Package: crypto-dm-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-686-di, md-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, md-modules-5.10.0-29-686-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: efi-modules-5.10.0-28-686-di +Package: efi-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: efi-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: EFI modules This package contains EFI modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: ata-modules-5.10.0-28-686-di +Package: ata-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-686-di, scsi-core-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, scsi-core-modules-5.10.0-29-686-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-686-di +Package: mmc-core-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: mmc-modules-5.10.0-28-686-di +Package: mmc-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-686-di, mmc-core-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, mmc-core-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: nbd-modules-5.10.0-28-686-di +Package: nbd-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: speakup-modules-5.10.0-28-686-di +Package: speakup-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: uinput-modules-5.10.0-28-686-di +Package: uinput-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: sound-modules-5.10.0-28-686-di +Package: sound-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-686-di, i2c-modules-5.10.0-28-686-di, usb-modules-5.10.0-28-686-di, pcmcia-modules-5.10.0-28-686-di, firewire-core-modules-5.10.0-28-686-di, crc-modules-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di, i2c-modules-5.10.0-29-686-di, usb-modules-5.10.0-29-686-di, pcmcia-modules-5.10.0-29-686-di, firewire-core-modules-5.10.0-29-686-di, crc-modules-5.10.0-29-686-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-686-di +Package: mtd-core-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: rfkill-modules-5.10.0-28-686-di +Package: rfkill-modules-5.10.0-29-686-di Architecture: i386 Section: debian-installer Priority: optional Provides: rfkill-modules -Depends: kernel-image-5.10.0-28-686-di +Depends: kernel-image-5.10.0-29-686-di Description: rfkill modules This package contains the rfkill module. Build-Profiles: -Kernel-Version: 5.10.0-28-686 +Kernel-Version: 5.10.0-29-686 Package-Type: udeb -Package: kernel-image-5.10.0-28-686-pae-di +Package: kernel-image-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard @@ -5138,626 +5138,626 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nic-modules-5.10.0-28-686-pae-di +Package: nic-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-686-pae-di, nic-shared-modules-5.10.0-28-686-pae-di, i2c-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di, mtd-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, nic-shared-modules-5.10.0-29-686-pae-di, i2c-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di, mtd-core-modules-5.10.0-29-686-pae-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-686-pae-di +Package: nic-wireless-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-686-pae-di, nic-shared-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di, mmc-core-modules-5.10.0-28-686-pae-di, pcmcia-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di, rfkill-modules-5.10.0-28-686-pae-di, crypto-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, nic-shared-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di, mmc-core-modules-5.10.0-29-686-pae-di, pcmcia-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di, rfkill-modules-5.10.0-29-686-pae-di, crypto-modules-5.10.0-29-686-pae-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-686-pae-di +Package: nic-shared-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: serial-modules-5.10.0-28-686-pae-di +Package: serial-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-686-pae-di, pcmcia-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, pcmcia-modules-5.10.0-29-686-pae-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-686-pae-di +Package: usb-serial-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: ppp-modules-5.10.0-28-686-pae-di +Package: ppp-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-686-pae-di, serial-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, serial-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: pata-modules-5.10.0-28-686-pae-di +Package: pata-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-686-pae-di, ata-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, ata-modules-5.10.0-29-686-pae-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-686-pae-di +Package: cdrom-core-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-686-pae-di +Package: firewire-core-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-686-pae-di +Package: scsi-core-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: scsi-modules-5.10.0-28-686-pae-di +Package: scsi-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di, cdrom-core-modules-5.10.0-28-686-pae-di, ata-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di, cdrom-core-modules-5.10.0-29-686-pae-di, ata-modules-5.10.0-29-686-pae-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-686-pae-di +Package: scsi-nic-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-686-pae-di, nic-modules-5.10.0-28-686-pae-di +Depends: scsi-modules-5.10.0-29-686-pae-di, nic-modules-5.10.0-29-686-pae-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: loop-modules-5.10.0-28-686-pae-di +Package: loop-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: btrfs-modules-5.10.0-28-686-pae-di +Package: btrfs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di, md-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di, md-modules-5.10.0-29-686-pae-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: ext4-modules-5.10.0-28-686-pae-di +Package: ext4-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: isofs-modules-5.10.0-28-686-pae-di +Package: isofs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-686-pae-di, cdrom-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, cdrom-core-modules-5.10.0-29-686-pae-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: jfs-modules-5.10.0-28-686-pae-di +Package: jfs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: xfs-modules-5.10.0-28-686-pae-di +Package: xfs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: fat-modules-5.10.0-28-686-pae-di +Package: fat-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: fat-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: squashfs-modules-5.10.0-28-686-pae-di +Package: squashfs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: udf-modules-5.10.0-28-686-pae-di +Package: udf-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di, cdrom-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di, cdrom-core-modules-5.10.0-29-686-pae-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: fuse-modules-5.10.0-28-686-pae-di +Package: fuse-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: f2fs-modules-5.10.0-28-686-pae-di +Package: f2fs-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: md-modules-5.10.0-28-686-pae-di +Package: md-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: multipath-modules-5.10.0-28-686-pae-di +Package: multipath-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-686-pae-di, md-modules-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, md-modules-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: usb-modules-5.10.0-28-686-pae-di +Package: usb-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-686-pae-di +Package: usb-storage-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: pcmcia-storage-modules-5.10.0-28-686-pae-di +Package: pcmcia-storage-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: pcmcia-storage-modules -Depends: kernel-image-5.10.0-28-686-pae-di, cdrom-core-modules-5.10.0-28-686-pae-di, pcmcia-modules-5.10.0-28-686-pae-di, ata-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, cdrom-core-modules-5.10.0-29-686-pae-di, pcmcia-modules-5.10.0-29-686-pae-di, ata-modules-5.10.0-29-686-pae-di Description: PCMCIA storage drivers This package contains PCMCIA storage drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: fb-modules-5.10.0-28-686-pae-di +Package: fb-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-686-pae-di, i2c-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, i2c-modules-5.10.0-29-686-pae-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: input-modules-5.10.0-28-686-pae-di +Package: input-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di, i2c-modules-5.10.0-28-686-pae-di, rfkill-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di, i2c-modules-5.10.0-29-686-pae-di, rfkill-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: event-modules-5.10.0-28-686-pae-di +Package: event-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: mouse-modules-5.10.0-28-686-pae-di +Package: mouse-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-686-pae-di, event-modules-5.10.0-28-686-pae-di, input-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, event-modules-5.10.0-29-686-pae-di, input-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-686-pae-di +Package: nic-pcmcia-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-686-pae-di, nic-shared-modules-5.10.0-28-686-pae-di, nic-wireless-modules-5.10.0-28-686-pae-di, pcmcia-modules-5.10.0-28-686-pae-di, mmc-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, nic-shared-modules-5.10.0-29-686-pae-di, nic-wireless-modules-5.10.0-29-686-pae-di, pcmcia-modules-5.10.0-29-686-pae-di, mmc-core-modules-5.10.0-29-686-pae-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-686-pae-di +Package: pcmcia-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-686-pae-di +Package: nic-usb-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-686-pae-di, nic-shared-modules-5.10.0-28-686-pae-di, nic-wireless-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, nic-shared-modules-5.10.0-29-686-pae-di, nic-wireless-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: sata-modules-5.10.0-28-686-pae-di +Package: sata-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di, ata-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di, ata-modules-5.10.0-29-686-pae-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: acpi-modules-5.10.0-28-686-pae-di +Package: acpi-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: acpi-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: ACPI support modules This package contains kernel modules for ACPI. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: i2c-modules-5.10.0-28-686-pae-di +Package: i2c-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: crc-modules-5.10.0-28-686-pae-di +Package: crc-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: crypto-modules-5.10.0-28-686-pae-di +Package: crypto-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-686-pae-di +Package: crypto-dm-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-686-pae-di, md-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, md-modules-5.10.0-29-686-pae-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: efi-modules-5.10.0-28-686-pae-di +Package: efi-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: efi-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: EFI modules This package contains EFI modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: ata-modules-5.10.0-28-686-pae-di +Package: ata-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-686-pae-di, scsi-core-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, scsi-core-modules-5.10.0-29-686-pae-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-686-pae-di +Package: mmc-core-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: mmc-modules-5.10.0-28-686-pae-di +Package: mmc-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-686-pae-di, mmc-core-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, mmc-core-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: nbd-modules-5.10.0-28-686-pae-di +Package: nbd-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: speakup-modules-5.10.0-28-686-pae-di +Package: speakup-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: uinput-modules-5.10.0-28-686-pae-di +Package: uinput-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: sound-modules-5.10.0-28-686-pae-di +Package: sound-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-686-pae-di, i2c-modules-5.10.0-28-686-pae-di, usb-modules-5.10.0-28-686-pae-di, pcmcia-modules-5.10.0-28-686-pae-di, firewire-core-modules-5.10.0-28-686-pae-di, crc-modules-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di, i2c-modules-5.10.0-29-686-pae-di, usb-modules-5.10.0-29-686-pae-di, pcmcia-modules-5.10.0-29-686-pae-di, firewire-core-modules-5.10.0-29-686-pae-di, crc-modules-5.10.0-29-686-pae-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-686-pae-di +Package: mtd-core-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb -Package: rfkill-modules-5.10.0-28-686-pae-di +Package: rfkill-modules-5.10.0-29-686-pae-di Architecture: i386 Section: debian-installer Priority: optional Provides: rfkill-modules -Depends: kernel-image-5.10.0-28-686-pae-di +Depends: kernel-image-5.10.0-29-686-pae-di Description: rfkill modules This package contains the rfkill module. Build-Profiles: -Kernel-Version: 5.10.0-28-686-pae +Kernel-Version: 5.10.0-29-686-pae Package-Type: udeb Package: linux-image-i386-signed-template @@ -5768,58 +5768,58 @@ service. Build-Profiles: -Package: linux-image-5.10.0-28-686-unsigned +Package: linux-image-5.10.0-29-686-unsigned Architecture: i386 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [i386] | linux-initramfs-tool [i386] Recommends: firmware-linux-free, apparmor [i386] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386] -Replaces: linux-image-5.10.0-28-686 +Replaces: linux-image-5.10.0-29-686 Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], fwupdate (<< 12-7) [i386], wireless-regdb (<< 2019.06.03-1~) [i386], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-686 +Conflicts: linux-image-5.10.0-29-686 Description: Linux 5.10 for older PCs The Linux kernel 5.10 and modules for use on PCs with one or more processors not supporting PAE. Build-Profiles: -Package: linux-headers-5.10.0-28-686 +Package: linux-headers-5.10.0-29-686 Architecture: i386 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-686 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-686 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-686, generally used for building out-of-tree kernel + Linux kernel 5.10.0-29-686, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-686, and can be used for building modules - that load into the kernel provided by the linux-image-5.10.0-28-686 + /usr/src/linux-headers-5.10.0-29-686, and can be used for building modules + that load into the kernel provided by the linux-image-5.10.0-29-686 package. Build-Profiles: -Package: linux-image-5.10.0-28-686-dbg +Package: linux-image-5.10.0-29-686-dbg Architecture: i386 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-686 +Description: Debug symbols for linux-image-5.10.0-29-686 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-686. + modules in linux-image-5.10.0-29-686. Build-Profiles: Package: linux-image-686-dbg Architecture: i386 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-686-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-686-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux 686 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel 686 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-686-pae-unsigned +Package: linux-image-5.10.0-29-686-pae-unsigned Architecture: i386 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [i386] | linux-initramfs-tool [i386] Recommends: firmware-linux-free, apparmor [i386] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386] -Replaces: linux-image-5.10.0-28-686-pae +Replaces: linux-image-5.10.0-29-686-pae Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], fwupdate (<< 12-7) [i386], wireless-regdb (<< 2019.06.03-1~) [i386], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-686-pae +Conflicts: linux-image-5.10.0-29-686-pae Description: Linux 5.10 for modern PCs The Linux kernel 5.10 and modules for use on PCs with one or more processors supporting PAE. @@ -5830,45 +5830,45 @@ Transmeta Efficeon; VIA C7; and some other processors. Build-Profiles: -Package: linux-headers-5.10.0-28-686-pae +Package: linux-headers-5.10.0-29-686-pae Architecture: i386 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-686-pae +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-686-pae This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-686-pae, generally used for building out-of-tree + Linux kernel 5.10.0-29-686-pae, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-686-pae, and can be used for building + /usr/src/linux-headers-5.10.0-29-686-pae, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-686-pae package. + linux-image-5.10.0-29-686-pae package. Build-Profiles: -Package: linux-image-5.10.0-28-686-pae-dbg +Package: linux-image-5.10.0-29-686-pae-dbg Architecture: i386 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-686-pae +Description: Debug symbols for linux-image-5.10.0-29-686-pae This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-686-pae. + modules in linux-image-5.10.0-29-686-pae. Build-Profiles: Package: linux-image-686-pae-dbg Architecture: i386 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-686-pae-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-686-pae-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux 686-pae configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel 686-pae configuration. Build-Profiles: -Package: linux-image-5.10.0-28-rt-686-pae-unsigned +Package: linux-image-5.10.0-29-rt-686-pae-unsigned Architecture: i386 Depends: kmod, linux-base (>= 4.3~), ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [i386] | linux-initramfs-tool [i386] Recommends: firmware-linux-free, apparmor [i386] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-pc [i386] | grub-efi-ia32 [i386] | extlinux [i386] -Replaces: linux-image-5.10.0-28-rt-686-pae +Replaces: linux-image-5.10.0-29-rt-686-pae Breaks: xserver-xorg-input-vmmouse (<< 1:13.0.99) [i386], fwupdate (<< 12-7) [i386], wireless-regdb (<< 2019.06.03-1~) [i386], initramfs-tools (<< 0.120+deb8u2) -Conflicts: linux-image-5.10.0-28-rt-686-pae +Conflicts: linux-image-5.10.0-29-rt-686-pae Description: Linux 5.10 for modern PCs, PREEMPT_RT The Linux kernel 5.10 and modules for use on PCs with one or more processors supporting PAE. @@ -5881,38 +5881,38 @@ This kernel includes the PREEMPT_RT realtime patch set. Build-Profiles: -Package: linux-headers-5.10.0-28-rt-686-pae +Package: linux-headers-5.10.0-29-rt-686-pae Architecture: i386 -Depends: linux-headers-5.10.0-28-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 -Description: Header files for Linux 5.10.0-28-rt-686-pae +Depends: linux-headers-5.10.0-29-common-rt (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-x86 +Description: Header files for Linux 5.10.0-29-rt-686-pae This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-rt-686-pae, generally used for building out-of-tree + Linux kernel 5.10.0-29-rt-686-pae, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-rt-686-pae, and can be used for building + /usr/src/linux-headers-5.10.0-29-rt-686-pae, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-rt-686-pae package. + linux-image-5.10.0-29-rt-686-pae package. Build-Profiles: -Package: linux-image-5.10.0-28-rt-686-pae-dbg +Package: linux-image-5.10.0-29-rt-686-pae-dbg Architecture: i386 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-rt-686-pae +Description: Debug symbols for linux-image-5.10.0-29-rt-686-pae This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-rt-686-pae. + modules in linux-image-5.10.0-29-rt-686-pae. Build-Profiles: Package: linux-image-rt-686-pae-dbg Architecture: i386 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-rt-686-pae-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-rt-686-pae-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux rt-686-pae configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel rt-686-pae configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-itanium-di +Package: kernel-image-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard @@ -5922,533 +5922,533 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: nic-modules-5.10.0-28-itanium-di +Package: nic-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-itanium-di, nic-shared-modules-5.10.0-28-itanium-di, i2c-modules-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di, mtd-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, nic-shared-modules-5.10.0-29-itanium-di, i2c-modules-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di, mtd-core-modules-5.10.0-29-itanium-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-itanium-di +Package: nic-shared-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: serial-modules-5.10.0-28-itanium-di +Package: serial-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-itanium-di, pcmcia-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, pcmcia-modules-5.10.0-29-itanium-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-itanium-di +Package: usb-serial-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-itanium-di, usb-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, usb-modules-5.10.0-29-itanium-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: ppp-modules-5.10.0-28-itanium-di +Package: ppp-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-itanium-di, serial-modules-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, serial-modules-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: pata-modules-5.10.0-28-itanium-di +Package: pata-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-itanium-di, ata-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, ata-modules-5.10.0-29-itanium-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-itanium-di +Package: cdrom-core-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di, ide-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di, ide-modules-5.10.0-29-itanium-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-itanium-di +Package: firewire-core-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-itanium-di +Package: scsi-core-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: scsi-modules-5.10.0-28-itanium-di +Package: scsi-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di, cdrom-core-modules-5.10.0-28-itanium-di, ata-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di, cdrom-core-modules-5.10.0-29-itanium-di, ata-modules-5.10.0-29-itanium-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-itanium-di +Package: scsi-nic-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-itanium-di, nic-modules-5.10.0-28-itanium-di +Depends: scsi-modules-5.10.0-29-itanium-di, nic-modules-5.10.0-29-itanium-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: loop-modules-5.10.0-28-itanium-di +Package: loop-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: btrfs-modules-5.10.0-28-itanium-di +Package: btrfs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di, md-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di, md-modules-5.10.0-29-itanium-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: ext4-modules-5.10.0-28-itanium-di +Package: ext4-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: isofs-modules-5.10.0-28-itanium-di +Package: isofs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-itanium-di, cdrom-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, cdrom-core-modules-5.10.0-29-itanium-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: jfs-modules-5.10.0-28-itanium-di +Package: jfs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: xfs-modules-5.10.0-28-itanium-di +Package: xfs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: fat-modules-5.10.0-28-itanium-di +Package: fat-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: fat-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: squashfs-modules-5.10.0-28-itanium-di +Package: squashfs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: udf-modules-5.10.0-28-itanium-di +Package: udf-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di, cdrom-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di, cdrom-core-modules-5.10.0-29-itanium-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: fuse-modules-5.10.0-28-itanium-di +Package: fuse-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: f2fs-modules-5.10.0-28-itanium-di +Package: f2fs-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: md-modules-5.10.0-28-itanium-di +Package: md-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: multipath-modules-5.10.0-28-itanium-di +Package: multipath-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-itanium-di, md-modules-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, md-modules-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: usb-modules-5.10.0-28-itanium-di +Package: usb-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-itanium-di +Package: usb-storage-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di, usb-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di, usb-modules-5.10.0-29-itanium-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: fb-modules-5.10.0-28-itanium-di +Package: fb-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-itanium-di, i2c-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, i2c-modules-5.10.0-29-itanium-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: input-modules-5.10.0-28-itanium-di +Package: input-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-itanium-di, usb-modules-5.10.0-28-itanium-di, i2c-modules-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, usb-modules-5.10.0-29-itanium-di, i2c-modules-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: event-modules-5.10.0-28-itanium-di +Package: event-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: mouse-modules-5.10.0-28-itanium-di +Package: mouse-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-itanium-di, event-modules-5.10.0-28-itanium-di, input-modules-5.10.0-28-itanium-di, usb-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, event-modules-5.10.0-29-itanium-di, input-modules-5.10.0-29-itanium-di, usb-modules-5.10.0-29-itanium-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-itanium-di +Package: pcmcia-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-itanium-di +Package: nic-usb-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-itanium-di, nic-shared-modules-5.10.0-28-itanium-di, usb-modules-5.10.0-28-itanium-di, crc-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, nic-shared-modules-5.10.0-29-itanium-di, usb-modules-5.10.0-29-itanium-di, crc-modules-5.10.0-29-itanium-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: sata-modules-5.10.0-28-itanium-di +Package: sata-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di, ata-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di, ata-modules-5.10.0-29-itanium-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: i2c-modules-5.10.0-28-itanium-di +Package: i2c-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: crc-modules-5.10.0-28-itanium-di +Package: crc-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: crypto-modules-5.10.0-28-itanium-di +Package: crypto-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-itanium-di +Package: crypto-dm-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-itanium-di, md-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, md-modules-5.10.0-29-itanium-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: ata-modules-5.10.0-28-itanium-di +Package: ata-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-itanium-di, scsi-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, scsi-core-modules-5.10.0-29-itanium-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: nbd-modules-5.10.0-28-itanium-di +Package: nbd-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: uinput-modules-5.10.0-28-itanium-di +Package: uinput-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-itanium-di +Package: mtd-core-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: ide-core-modules-5.10.0-28-itanium-di +Package: ide-core-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: ide-core-modules -Depends: kernel-image-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di Description: IDE support This package contains core IDE support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: ide-modules-5.10.0-28-itanium-di +Package: ide-modules-5.10.0-29-itanium-di Architecture: ia64 Section: debian-installer Priority: standard Provides: ide-modules -Depends: kernel-image-5.10.0-28-itanium-di, ide-core-modules-5.10.0-28-itanium-di +Depends: kernel-image-5.10.0-29-itanium-di, ide-core-modules-5.10.0-29-itanium-di Description: IDE drivers This package contains IDE drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-itanium +Kernel-Version: 5.10.0-29-itanium Package-Type: udeb -Package: linux-image-5.10.0-28-itanium +Package: linux-image-5.10.0-29-itanium Architecture: ia64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64] Recommends: firmware-linux-free, apparmor [ia64] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-efi-ia64 [ia64] Breaks: fwupdate (<< 12-7) [ia64], wireless-regdb (<< 2019.06.03-1~) [ia64], initramfs-tools (<< 0.120+deb8u2) @@ -6457,22 +6457,22 @@ (Merced) processors. Build-Profiles: -Package: linux-headers-5.10.0-28-itanium +Package: linux-headers-5.10.0-29-itanium Architecture: ia64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-itanium +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-itanium This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-itanium, generally used for building out-of-tree + Linux kernel 5.10.0-29-itanium, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-itanium, and can be used for building + /usr/src/linux-headers-5.10.0-29-itanium, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-itanium package. + linux-image-5.10.0-29-itanium package. Build-Profiles: Package: linux-image-itanium Architecture: ia64 -Provides: linux-latest-modules-5.10.0-28-itanium, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-itanium (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-itanium, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-itanium (= ${binary:Version}), ${misc:Depends} Description: Linux for Itanium (Merced) (meta-package) This package depends on the latest Linux kernel and modules for use on systems with original Itanium (Merced) processors. @@ -6481,34 +6481,34 @@ Package: linux-headers-itanium Architecture: ia64 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-itanium (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-itanium (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux itanium configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel itanium configuration. Build-Profiles: -Package: linux-image-5.10.0-28-itanium-dbg +Package: linux-image-5.10.0-29-itanium-dbg Architecture: ia64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-itanium +Description: Debug symbols for linux-image-5.10.0-29-itanium This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-itanium. + modules in linux-image-5.10.0-29-itanium. Build-Profiles: Package: linux-image-itanium-dbg Architecture: ia64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-itanium-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-itanium-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux itanium configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel itanium configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mckinley +Package: linux-image-5.10.0-29-mckinley Architecture: ia64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ia64] | linux-initramfs-tool [ia64] Recommends: firmware-linux-free, apparmor [ia64] Suggests: linux-doc-5.10, debian-kernel-handbook, grub-efi-ia64 [ia64] Breaks: fwupdate (<< 12-7) [ia64], wireless-regdb (<< 2019.06.03-1~) [ia64], initramfs-tools (<< 0.120+deb8u2) @@ -6517,22 +6517,22 @@ 9300/9500/9700-series processors. Build-Profiles: -Package: linux-headers-5.10.0-28-mckinley +Package: linux-headers-5.10.0-29-mckinley Architecture: ia64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-mckinley +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-mckinley This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-mckinley, generally used for building out-of-tree + Linux kernel 5.10.0-29-mckinley, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-mckinley, and can be used for building + /usr/src/linux-headers-5.10.0-29-mckinley, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-mckinley package. + linux-image-5.10.0-29-mckinley package. Build-Profiles: Package: linux-image-mckinley Architecture: ia64 -Provides: linux-latest-modules-5.10.0-28-mckinley, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-mckinley (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-mckinley, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-mckinley (= ${binary:Version}), ${misc:Depends} Description: Linux for Itanium 2+ (meta-package) This package depends on the latest Linux kernel and modules for use on systems with Itanium 2 or 9300/9500/9700-series processors. @@ -6540,32 +6540,32 @@ Package: linux-headers-mckinley Architecture: ia64 -Depends: linux-headers-5.10.0-28-mckinley (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-mckinley (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux mckinley configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel mckinley configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mckinley-dbg +Package: linux-image-5.10.0-29-mckinley-dbg Architecture: ia64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-mckinley +Description: Debug symbols for linux-image-5.10.0-29-mckinley This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-mckinley. + modules in linux-image-5.10.0-29-mckinley. Build-Profiles: Package: linux-image-mckinley-dbg Architecture: ia64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-mckinley-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-mckinley-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux mckinley configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel mckinley configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-m68k-di +Package: kernel-image-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard @@ -6575,305 +6575,305 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: nic-modules-5.10.0-28-m68k-di +Package: nic-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-m68k-di, nic-shared-modules-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, nic-shared-modules-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-m68k-di +Package: nic-shared-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: ppp-modules-5.10.0-28-m68k-di +Package: ppp-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: pata-modules-5.10.0-28-m68k-di +Package: pata-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-m68k-di, ata-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, ata-modules-5.10.0-29-m68k-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-m68k-di +Package: cdrom-core-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-m68k-di, scsi-core-modules-5.10.0-28-m68k-di, ide-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, scsi-core-modules-5.10.0-29-m68k-di, ide-modules-5.10.0-29-m68k-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-m68k-di +Package: scsi-core-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: scsi-modules-5.10.0-28-m68k-di +Package: scsi-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-m68k-di, scsi-core-modules-5.10.0-28-m68k-di, cdrom-core-modules-5.10.0-28-m68k-di, ata-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, scsi-core-modules-5.10.0-29-m68k-di, cdrom-core-modules-5.10.0-29-m68k-di, ata-modules-5.10.0-29-m68k-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: loop-modules-5.10.0-28-m68k-di +Package: loop-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: btrfs-modules-5.10.0-28-m68k-di +Package: btrfs-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di, md-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di, md-modules-5.10.0-29-m68k-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: ext4-modules-5.10.0-28-m68k-di +Package: ext4-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: isofs-modules-5.10.0-28-m68k-di +Package: isofs-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-m68k-di, cdrom-core-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, cdrom-core-modules-5.10.0-29-m68k-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: fat-modules-5.10.0-28-m68k-di +Package: fat-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: hfs-modules-5.10.0-28-m68k-di +Package: hfs-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: hfs-modules -Depends: kernel-image-5.10.0-28-m68k-di, cdrom-core-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, cdrom-core-modules-5.10.0-29-m68k-di Description: HFS filesystem support This package contains the HFS and HFS+ filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: affs-modules-5.10.0-28-m68k-di +Package: affs-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: squashfs-modules-5.10.0-28-m68k-di +Package: squashfs-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: udf-modules-5.10.0-28-m68k-di +Package: udf-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di, cdrom-core-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di, cdrom-core-modules-5.10.0-29-m68k-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: fuse-modules-5.10.0-28-m68k-di +Package: fuse-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: md-modules-5.10.0-28-m68k-di +Package: md-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-m68k-di, crc-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, crc-modules-5.10.0-29-m68k-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: crc-modules-5.10.0-28-m68k-di +Package: crc-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: crypto-modules-5.10.0-28-m68k-di +Package: crypto-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: ata-modules-5.10.0-28-m68k-di +Package: ata-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-m68k-di, scsi-core-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, scsi-core-modules-5.10.0-29-m68k-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: nbd-modules-5.10.0-28-m68k-di +Package: nbd-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: ide-core-modules-5.10.0-28-m68k-di +Package: ide-core-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: ide-core-modules -Depends: kernel-image-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di Description: IDE support This package contains core IDE support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: ide-modules-5.10.0-28-m68k-di +Package: ide-modules-5.10.0-29-m68k-di Architecture: m68k Section: debian-installer Priority: standard Provides: ide-modules -Depends: kernel-image-5.10.0-28-m68k-di, ide-core-modules-5.10.0-28-m68k-di +Depends: kernel-image-5.10.0-29-m68k-di, ide-core-modules-5.10.0-29-m68k-di Description: IDE drivers This package contains IDE drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-m68k +Kernel-Version: 5.10.0-29-m68k Package-Type: udeb -Package: linux-image-5.10.0-28-m68k +Package: linux-image-5.10.0-29-m68k Architecture: m68k -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [m68k] | linux-initramfs-tool [m68k] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [m68k] | linux-initramfs-tool [m68k] Recommends: firmware-linux-free, apparmor [m68k] Suggests: linux-doc-5.10, debian-kernel-handbook, vmelilo [m68k], fdutils [m68k] Breaks: fwupdate (<< 12-7) [m68k], wireless-regdb (<< 2019.06.03-1~) [m68k], initramfs-tools (<< 0.120+deb8u2) @@ -6881,22 +6881,22 @@ The Linux kernel 5.10 and modules for use on Motorola MC68020+ family. Build-Profiles: -Package: linux-headers-5.10.0-28-m68k +Package: linux-headers-5.10.0-29-m68k Architecture: m68k -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-m68k +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-m68k This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-m68k, generally used for building out-of-tree + Linux kernel 5.10.0-29-m68k, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-m68k, and can be used for building + /usr/src/linux-headers-5.10.0-29-m68k, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-m68k package. + linux-image-5.10.0-29-m68k package. Build-Profiles: Package: linux-image-m68k Architecture: m68k -Provides: linux-latest-modules-5.10.0-28-m68k, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-m68k (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-m68k, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-m68k (= ${binary:Version}), ${misc:Depends} Description: Linux for Motorola MC68020+ family (meta-package) This package depends on the latest Linux kernel and modules for use on Motorola MC68020+ family. @@ -6905,32 +6905,32 @@ Package: linux-headers-m68k Architecture: m68k Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-m68k (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-m68k (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux m68k configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel m68k configuration. Build-Profiles: -Package: linux-image-5.10.0-28-m68k-dbg +Package: linux-image-5.10.0-29-m68k-dbg Architecture: m68k Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-m68k +Description: Debug symbols for linux-image-5.10.0-29-m68k This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-m68k. + modules in linux-image-5.10.0-29-m68k. Build-Profiles: Package: linux-image-m68k-dbg Architecture: m68k Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-m68k-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-m68k-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux m68k configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel m68k configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-4kc-malta-di +Package: kernel-image-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard @@ -6940,533 +6940,533 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: nic-modules-5.10.0-28-4kc-malta-di +Package: nic-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, nic-shared-modules-5.10.0-28-4kc-malta-di, i2c-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di, mtd-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, nic-shared-modules-5.10.0-29-4kc-malta-di, i2c-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di, mtd-core-modules-5.10.0-29-4kc-malta-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-4kc-malta-di +Package: nic-wireless-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, nic-shared-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di, mmc-core-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di, crypto-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, nic-shared-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di, mmc-core-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di, crypto-modules-5.10.0-29-4kc-malta-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-4kc-malta-di +Package: nic-shared-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-4kc-malta-di +Package: usb-serial-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: ppp-modules-5.10.0-28-4kc-malta-di +Package: ppp-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: pata-modules-5.10.0-28-4kc-malta-di +Package: pata-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, ata-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, ata-modules-5.10.0-29-4kc-malta-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-4kc-malta-di +Package: cdrom-core-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-4kc-malta-di +Package: scsi-core-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: scsi-modules-5.10.0-28-4kc-malta-di +Package: scsi-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di, cdrom-core-modules-5.10.0-28-4kc-malta-di, ata-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di, cdrom-core-modules-5.10.0-29-4kc-malta-di, ata-modules-5.10.0-29-4kc-malta-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-4kc-malta-di +Package: scsi-nic-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-4kc-malta-di, nic-modules-5.10.0-28-4kc-malta-di +Depends: scsi-modules-5.10.0-29-4kc-malta-di, nic-modules-5.10.0-29-4kc-malta-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: loop-modules-5.10.0-28-4kc-malta-di +Package: loop-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: btrfs-modules-5.10.0-28-4kc-malta-di +Package: btrfs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di, md-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di, md-modules-5.10.0-29-4kc-malta-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: ext4-modules-5.10.0-28-4kc-malta-di +Package: ext4-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: isofs-modules-5.10.0-28-4kc-malta-di +Package: isofs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, cdrom-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, cdrom-core-modules-5.10.0-29-4kc-malta-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: jfs-modules-5.10.0-28-4kc-malta-di +Package: jfs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: xfs-modules-5.10.0-28-4kc-malta-di +Package: xfs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: fat-modules-5.10.0-28-4kc-malta-di +Package: fat-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: affs-modules-5.10.0-28-4kc-malta-di +Package: affs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: minix-modules-5.10.0-28-4kc-malta-di +Package: minix-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: squashfs-modules-5.10.0-28-4kc-malta-di +Package: squashfs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: udf-modules-5.10.0-28-4kc-malta-di +Package: udf-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di, cdrom-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di, cdrom-core-modules-5.10.0-29-4kc-malta-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: fuse-modules-5.10.0-28-4kc-malta-di +Package: fuse-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: f2fs-modules-5.10.0-28-4kc-malta-di +Package: f2fs-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: md-modules-5.10.0-28-4kc-malta-di +Package: md-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: multipath-modules-5.10.0-28-4kc-malta-di +Package: multipath-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, md-modules-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, md-modules-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: usb-modules-5.10.0-28-4kc-malta-di +Package: usb-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-4kc-malta-di +Package: usb-storage-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: fb-modules-5.10.0-28-4kc-malta-di +Package: fb-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, i2c-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, i2c-modules-5.10.0-29-4kc-malta-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: input-modules-5.10.0-28-4kc-malta-di +Package: input-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di, i2c-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di, i2c-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: event-modules-5.10.0-28-4kc-malta-di +Package: event-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: mouse-modules-5.10.0-28-4kc-malta-di +Package: mouse-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, event-modules-5.10.0-28-4kc-malta-di, input-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, event-modules-5.10.0-29-4kc-malta-di, input-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-4kc-malta-di +Package: nic-usb-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, nic-shared-modules-5.10.0-28-4kc-malta-di, nic-wireless-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, nic-shared-modules-5.10.0-29-4kc-malta-di, nic-wireless-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: sata-modules-5.10.0-28-4kc-malta-di +Package: sata-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di, ata-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di, ata-modules-5.10.0-29-4kc-malta-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: i2c-modules-5.10.0-28-4kc-malta-di +Package: i2c-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: crc-modules-5.10.0-28-4kc-malta-di +Package: crc-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: crypto-modules-5.10.0-28-4kc-malta-di +Package: crypto-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-4kc-malta-di +Package: crypto-dm-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, md-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, md-modules-5.10.0-29-4kc-malta-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: ata-modules-5.10.0-28-4kc-malta-di +Package: ata-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, scsi-core-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, scsi-core-modules-5.10.0-29-4kc-malta-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-4kc-malta-di +Package: mmc-core-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: mmc-modules-5.10.0-28-4kc-malta-di +Package: mmc-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, mmc-core-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, mmc-core-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: nbd-modules-5.10.0-28-4kc-malta-di +Package: nbd-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: sound-modules-5.10.0-28-4kc-malta-di +Package: sound-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di, i2c-modules-5.10.0-28-4kc-malta-di, usb-modules-5.10.0-28-4kc-malta-di, crc-modules-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di, i2c-modules-5.10.0-29-4kc-malta-di, usb-modules-5.10.0-29-4kc-malta-di, crc-modules-5.10.0-29-4kc-malta-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-4kc-malta-di +Package: mtd-core-modules-5.10.0-29-4kc-malta-di Architecture: mips mipsel Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-4kc-malta-di +Depends: kernel-image-5.10.0-29-4kc-malta-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-4kc-malta +Kernel-Version: 5.10.0-29-4kc-malta Package-Type: udeb -Package: kernel-image-5.10.0-28-octeon-di +Package: kernel-image-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard @@ -7476,461 +7476,461 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: nic-modules-5.10.0-28-octeon-di +Package: nic-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-octeon-di, nic-shared-modules-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, nic-shared-modules-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-octeon-di +Package: nic-wireless-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-octeon-di, nic-shared-modules-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di, crypto-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, nic-shared-modules-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di, crypto-modules-5.10.0-29-octeon-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-octeon-di +Package: nic-shared-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-octeon-di +Package: usb-serial-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: ppp-modules-5.10.0-28-octeon-di +Package: ppp-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: pata-modules-5.10.0-28-octeon-di +Package: pata-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-octeon-di +Package: cdrom-core-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-octeon-di, scsi-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, scsi-core-modules-5.10.0-29-octeon-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-octeon-di +Package: scsi-core-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: scsi-modules-5.10.0-28-octeon-di +Package: scsi-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-octeon-di, scsi-core-modules-5.10.0-28-octeon-di, cdrom-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, scsi-core-modules-5.10.0-29-octeon-di, cdrom-core-modules-5.10.0-29-octeon-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-octeon-di +Package: scsi-nic-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-octeon-di, nic-modules-5.10.0-28-octeon-di +Depends: scsi-modules-5.10.0-29-octeon-di, nic-modules-5.10.0-29-octeon-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: loop-modules-5.10.0-28-octeon-di +Package: loop-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: btrfs-modules-5.10.0-28-octeon-di +Package: btrfs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di, md-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di, md-modules-5.10.0-29-octeon-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: ext4-modules-5.10.0-28-octeon-di +Package: ext4-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: isofs-modules-5.10.0-28-octeon-di +Package: isofs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-octeon-di, cdrom-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, cdrom-core-modules-5.10.0-29-octeon-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: jfs-modules-5.10.0-28-octeon-di +Package: jfs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: xfs-modules-5.10.0-28-octeon-di +Package: xfs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: fat-modules-5.10.0-28-octeon-di +Package: fat-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: affs-modules-5.10.0-28-octeon-di +Package: affs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: minix-modules-5.10.0-28-octeon-di +Package: minix-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: squashfs-modules-5.10.0-28-octeon-di +Package: squashfs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: udf-modules-5.10.0-28-octeon-di +Package: udf-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di, cdrom-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di, cdrom-core-modules-5.10.0-29-octeon-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: fuse-modules-5.10.0-28-octeon-di +Package: fuse-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: f2fs-modules-5.10.0-28-octeon-di +Package: f2fs-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: md-modules-5.10.0-28-octeon-di +Package: md-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: multipath-modules-5.10.0-28-octeon-di +Package: multipath-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-octeon-di, md-modules-5.10.0-28-octeon-di, scsi-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, md-modules-5.10.0-29-octeon-di, scsi-core-modules-5.10.0-29-octeon-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: usb-modules-5.10.0-28-octeon-di +Package: usb-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-octeon-di +Package: usb-storage-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-octeon-di, scsi-core-modules-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, scsi-core-modules-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: input-modules-5.10.0-28-octeon-di +Package: input-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: event-modules-5.10.0-28-octeon-di +Package: event-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-octeon-di +Package: nic-usb-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-octeon-di, nic-shared-modules-5.10.0-28-octeon-di, nic-wireless-modules-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, nic-shared-modules-5.10.0-29-octeon-di, nic-wireless-modules-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: sata-modules-5.10.0-28-octeon-di +Package: sata-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-octeon-di, scsi-core-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, scsi-core-modules-5.10.0-29-octeon-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: crc-modules-5.10.0-28-octeon-di +Package: crc-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: crypto-modules-5.10.0-28-octeon-di +Package: crypto-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-octeon-di +Package: crypto-dm-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-octeon-di, md-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, md-modules-5.10.0-29-octeon-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: nbd-modules-5.10.0-28-octeon-di +Package: nbd-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: rtc-modules-5.10.0-28-octeon-di +Package: rtc-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: rtc-modules -Depends: kernel-image-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di Description: RTC modules This package contains RTC modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: sound-modules-5.10.0-28-octeon-di +Package: sound-modules-5.10.0-29-octeon-di Architecture: mips mips64 mips64el mipsel Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-octeon-di, usb-modules-5.10.0-28-octeon-di, crc-modules-5.10.0-28-octeon-di +Depends: kernel-image-5.10.0-29-octeon-di, usb-modules-5.10.0-29-octeon-di, crc-modules-5.10.0-29-octeon-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-octeon +Kernel-Version: 5.10.0-29-octeon Package-Type: udeb -Package: linux-image-5.10.0-28-4kc-malta +Package: linux-image-5.10.0-29-4kc-malta Architecture: mips mipsel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mipsel] | linux-initramfs-tool [mips mipsel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mipsel] | linux-initramfs-tool [mips mipsel] Recommends: firmware-linux-free, apparmor [mips mipsel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips], wireless-regdb (<< 2019.06.03-1~) [mips], initramfs-tools (<< 0.120+deb8u2) @@ -7938,22 +7938,22 @@ The Linux kernel 5.10 and modules for use on MIPS Malta boards. Build-Profiles: -Package: linux-headers-5.10.0-28-4kc-malta +Package: linux-headers-5.10.0-29-4kc-malta Architecture: mips mipsel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-4kc-malta +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-4kc-malta This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-4kc-malta, generally used for building out-of-tree + Linux kernel 5.10.0-29-4kc-malta, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-4kc-malta, and can be used for building + /usr/src/linux-headers-5.10.0-29-4kc-malta, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-4kc-malta package. + linux-image-5.10.0-29-4kc-malta package. Build-Profiles: Package: linux-image-4kc-malta Architecture: mips mipsel -Provides: linux-latest-modules-5.10.0-28-4kc-malta, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-4kc-malta (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-4kc-malta, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-4kc-malta (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS Malta (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS Malta boards. @@ -7961,34 +7961,34 @@ Package: linux-headers-4kc-malta Architecture: mips mipsel -Depends: linux-headers-5.10.0-28-4kc-malta (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-4kc-malta (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux 4kc-malta configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel 4kc-malta configuration. Build-Profiles: -Package: linux-image-5.10.0-28-4kc-malta-dbg +Package: linux-image-5.10.0-29-4kc-malta-dbg Architecture: mips mipsel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-4kc-malta +Description: Debug symbols for linux-image-5.10.0-29-4kc-malta This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-4kc-malta. + modules in linux-image-5.10.0-29-4kc-malta. Build-Profiles: Package: linux-image-4kc-malta-dbg Architecture: mips mipsel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-4kc-malta-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-4kc-malta-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux 4kc-malta configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel 4kc-malta configuration. Build-Profiles: -Package: linux-image-5.10.0-28-5kc-malta +Package: linux-image-5.10.0-29-5kc-malta Architecture: mips mips64 mips64el mipsel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel] Recommends: firmware-linux-free, apparmor [mips mips64 mips64el mipsel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips], wireless-regdb (<< 2019.06.03-1~) [mips], initramfs-tools (<< 0.120+deb8u2) @@ -7996,22 +7996,22 @@ The Linux kernel 5.10 and modules for use on MIPS Malta boards (64-bit). Build-Profiles: -Package: linux-headers-5.10.0-28-5kc-malta +Package: linux-headers-5.10.0-29-5kc-malta Architecture: mips mips64 mips64el mipsel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-5kc-malta +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-5kc-malta This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-5kc-malta, generally used for building out-of-tree + Linux kernel 5.10.0-29-5kc-malta, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-5kc-malta, and can be used for building + /usr/src/linux-headers-5.10.0-29-5kc-malta, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-5kc-malta package. + linux-image-5.10.0-29-5kc-malta package. Build-Profiles: Package: linux-image-5kc-malta Architecture: mips mips64 mips64el mipsel -Provides: linux-latest-modules-5.10.0-28-5kc-malta, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-5kc-malta (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-5kc-malta, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-5kc-malta (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS Malta (64-bit) (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS Malta boards (64-bit). @@ -8019,34 +8019,34 @@ Package: linux-headers-5kc-malta Architecture: mips mips64 mips64el mipsel -Depends: linux-headers-5.10.0-28-5kc-malta (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-5kc-malta (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux 5kc-malta configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel 5kc-malta configuration. Build-Profiles: -Package: linux-image-5.10.0-28-5kc-malta-dbg +Package: linux-image-5.10.0-29-5kc-malta-dbg Architecture: mips mips64 mips64el mipsel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-5kc-malta +Description: Debug symbols for linux-image-5.10.0-29-5kc-malta This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-5kc-malta. + modules in linux-image-5.10.0-29-5kc-malta. Build-Profiles: Package: linux-image-5kc-malta-dbg Architecture: mips mips64 mips64el mipsel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-5kc-malta-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-5kc-malta-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux 5kc-malta configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel 5kc-malta configuration. Build-Profiles: -Package: linux-image-5.10.0-28-octeon +Package: linux-image-5.10.0-29-octeon Architecture: mips mips64 mips64el mipsel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips mips64 mips64el mipsel] | linux-initramfs-tool [mips mips64 mips64el mipsel] Recommends: firmware-linux-free, apparmor [mips mips64 mips64el mipsel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips], wireless-regdb (<< 2019.06.03-1~) [mips], initramfs-tools (<< 0.120+deb8u2) @@ -8054,22 +8054,22 @@ The Linux kernel 5.10 and modules for use on Cavium Networks Octeon. Build-Profiles: -Package: linux-headers-5.10.0-28-octeon +Package: linux-headers-5.10.0-29-octeon Architecture: mips mips64 mips64el mipsel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-octeon +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-octeon This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-octeon, generally used for building out-of-tree + Linux kernel 5.10.0-29-octeon, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-octeon, and can be used for building + /usr/src/linux-headers-5.10.0-29-octeon, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-octeon package. + linux-image-5.10.0-29-octeon package. Build-Profiles: Package: linux-image-octeon Architecture: mips mips64 mips64el mipsel -Provides: linux-latest-modules-5.10.0-28-octeon, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-octeon (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-octeon, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-octeon (= ${binary:Version}), ${misc:Depends} Description: Linux for Octeon (meta-package) This package depends on the latest Linux kernel and modules for use on Cavium Networks Octeon. @@ -8077,32 +8077,32 @@ Package: linux-headers-octeon Architecture: mips mips64 mips64el mipsel -Depends: linux-headers-5.10.0-28-octeon (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-octeon (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux octeon configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel octeon configuration. Build-Profiles: -Package: linux-image-5.10.0-28-octeon-dbg +Package: linux-image-5.10.0-29-octeon-dbg Architecture: mips mips64 mips64el mipsel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-octeon +Description: Debug symbols for linux-image-5.10.0-29-octeon This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-octeon. + modules in linux-image-5.10.0-29-octeon. Build-Profiles: Package: linux-image-octeon-dbg Architecture: mips mips64 mips64el mipsel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-octeon-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-octeon-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux octeon configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel octeon configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-5kc-malta-di +Package: kernel-image-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard @@ -8112,533 +8112,533 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: nic-modules-5.10.0-28-5kc-malta-di +Package: nic-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, nic-shared-modules-5.10.0-28-5kc-malta-di, i2c-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di, mtd-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, nic-shared-modules-5.10.0-29-5kc-malta-di, i2c-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di, mtd-core-modules-5.10.0-29-5kc-malta-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-5kc-malta-di +Package: nic-wireless-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, nic-shared-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di, mmc-core-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di, crypto-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, nic-shared-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di, mmc-core-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di, crypto-modules-5.10.0-29-5kc-malta-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-5kc-malta-di +Package: nic-shared-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-5kc-malta-di +Package: usb-serial-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: ppp-modules-5.10.0-28-5kc-malta-di +Package: ppp-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: pata-modules-5.10.0-28-5kc-malta-di +Package: pata-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, ata-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, ata-modules-5.10.0-29-5kc-malta-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-5kc-malta-di +Package: cdrom-core-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-5kc-malta-di +Package: scsi-core-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: scsi-modules-5.10.0-28-5kc-malta-di +Package: scsi-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di, cdrom-core-modules-5.10.0-28-5kc-malta-di, ata-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di, cdrom-core-modules-5.10.0-29-5kc-malta-di, ata-modules-5.10.0-29-5kc-malta-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-5kc-malta-di +Package: scsi-nic-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-5kc-malta-di, nic-modules-5.10.0-28-5kc-malta-di +Depends: scsi-modules-5.10.0-29-5kc-malta-di, nic-modules-5.10.0-29-5kc-malta-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: loop-modules-5.10.0-28-5kc-malta-di +Package: loop-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: btrfs-modules-5.10.0-28-5kc-malta-di +Package: btrfs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di, md-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di, md-modules-5.10.0-29-5kc-malta-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: ext4-modules-5.10.0-28-5kc-malta-di +Package: ext4-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: isofs-modules-5.10.0-28-5kc-malta-di +Package: isofs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, cdrom-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, cdrom-core-modules-5.10.0-29-5kc-malta-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: jfs-modules-5.10.0-28-5kc-malta-di +Package: jfs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: xfs-modules-5.10.0-28-5kc-malta-di +Package: xfs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: fat-modules-5.10.0-28-5kc-malta-di +Package: fat-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: affs-modules-5.10.0-28-5kc-malta-di +Package: affs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: minix-modules-5.10.0-28-5kc-malta-di +Package: minix-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: squashfs-modules-5.10.0-28-5kc-malta-di +Package: squashfs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: udf-modules-5.10.0-28-5kc-malta-di +Package: udf-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di, cdrom-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di, cdrom-core-modules-5.10.0-29-5kc-malta-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: fuse-modules-5.10.0-28-5kc-malta-di +Package: fuse-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: f2fs-modules-5.10.0-28-5kc-malta-di +Package: f2fs-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: md-modules-5.10.0-28-5kc-malta-di +Package: md-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: multipath-modules-5.10.0-28-5kc-malta-di +Package: multipath-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, md-modules-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, md-modules-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: usb-modules-5.10.0-28-5kc-malta-di +Package: usb-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-5kc-malta-di +Package: usb-storage-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: fb-modules-5.10.0-28-5kc-malta-di +Package: fb-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, i2c-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, i2c-modules-5.10.0-29-5kc-malta-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: input-modules-5.10.0-28-5kc-malta-di +Package: input-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di, i2c-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di, i2c-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: event-modules-5.10.0-28-5kc-malta-di +Package: event-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: mouse-modules-5.10.0-28-5kc-malta-di +Package: mouse-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, event-modules-5.10.0-28-5kc-malta-di, input-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, event-modules-5.10.0-29-5kc-malta-di, input-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-5kc-malta-di +Package: nic-usb-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, nic-shared-modules-5.10.0-28-5kc-malta-di, nic-wireless-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, nic-shared-modules-5.10.0-29-5kc-malta-di, nic-wireless-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: sata-modules-5.10.0-28-5kc-malta-di +Package: sata-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di, ata-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di, ata-modules-5.10.0-29-5kc-malta-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: i2c-modules-5.10.0-28-5kc-malta-di +Package: i2c-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: crc-modules-5.10.0-28-5kc-malta-di +Package: crc-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: crypto-modules-5.10.0-28-5kc-malta-di +Package: crypto-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-5kc-malta-di +Package: crypto-dm-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, md-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, md-modules-5.10.0-29-5kc-malta-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: ata-modules-5.10.0-28-5kc-malta-di +Package: ata-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, scsi-core-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, scsi-core-modules-5.10.0-29-5kc-malta-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-5kc-malta-di +Package: mmc-core-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: mmc-modules-5.10.0-28-5kc-malta-di +Package: mmc-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, mmc-core-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, mmc-core-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: nbd-modules-5.10.0-28-5kc-malta-di +Package: nbd-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: sound-modules-5.10.0-28-5kc-malta-di +Package: sound-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di, i2c-modules-5.10.0-28-5kc-malta-di, usb-modules-5.10.0-28-5kc-malta-di, crc-modules-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di, i2c-modules-5.10.0-29-5kc-malta-di, usb-modules-5.10.0-29-5kc-malta-di, crc-modules-5.10.0-29-5kc-malta-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-5kc-malta-di +Package: mtd-core-modules-5.10.0-29-5kc-malta-di Architecture: mips64 mips64el Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-5kc-malta-di +Depends: kernel-image-5.10.0-29-5kc-malta-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-5kc-malta +Kernel-Version: 5.10.0-29-5kc-malta Package-Type: udeb -Package: kernel-image-5.10.0-28-loongson-3-di +Package: kernel-image-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard @@ -8648,522 +8648,522 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nic-modules-5.10.0-28-loongson-3-di +Package: nic-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, nic-shared-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di, mtd-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, nic-shared-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di, mtd-core-modules-5.10.0-29-loongson-3-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-loongson-3-di +Package: nic-wireless-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, nic-shared-modules-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di, crypto-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, nic-shared-modules-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di, crypto-modules-5.10.0-29-loongson-3-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-loongson-3-di +Package: nic-shared-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-loongson-3-di +Package: usb-serial-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: ppp-modules-5.10.0-28-loongson-3-di +Package: ppp-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: pata-modules-5.10.0-28-loongson-3-di +Package: pata-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, ata-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, ata-modules-5.10.0-29-loongson-3-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-loongson-3-di +Package: cdrom-core-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-loongson-3-di +Package: firewire-core-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-loongson-3-di +Package: scsi-core-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: scsi-modules-5.10.0-28-loongson-3-di +Package: scsi-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di, cdrom-core-modules-5.10.0-28-loongson-3-di, ata-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di, cdrom-core-modules-5.10.0-29-loongson-3-di, ata-modules-5.10.0-29-loongson-3-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-loongson-3-di +Package: scsi-nic-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-loongson-3-di, nic-modules-5.10.0-28-loongson-3-di +Depends: scsi-modules-5.10.0-29-loongson-3-di, nic-modules-5.10.0-29-loongson-3-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: loop-modules-5.10.0-28-loongson-3-di +Package: loop-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-loongson-3-di +Package: btrfs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di, md-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di, md-modules-5.10.0-29-loongson-3-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: ext4-modules-5.10.0-28-loongson-3-di +Package: ext4-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: isofs-modules-5.10.0-28-loongson-3-di +Package: isofs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, cdrom-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, cdrom-core-modules-5.10.0-29-loongson-3-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: jfs-modules-5.10.0-28-loongson-3-di +Package: jfs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: xfs-modules-5.10.0-28-loongson-3-di +Package: xfs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: fat-modules-5.10.0-28-loongson-3-di +Package: fat-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: affs-modules-5.10.0-28-loongson-3-di +Package: affs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: minix-modules-5.10.0-28-loongson-3-di +Package: minix-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nfs-modules-5.10.0-28-loongson-3-di +Package: nfs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: nfs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: NFS filesystem support This package contains the NFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-loongson-3-di +Package: squashfs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: udf-modules-5.10.0-28-loongson-3-di +Package: udf-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di, cdrom-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di, cdrom-core-modules-5.10.0-29-loongson-3-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: fuse-modules-5.10.0-28-loongson-3-di +Package: fuse-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-loongson-3-di +Package: f2fs-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: md-modules-5.10.0-28-loongson-3-di +Package: md-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: multipath-modules-5.10.0-28-loongson-3-di +Package: multipath-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, md-modules-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, md-modules-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: usb-modules-5.10.0-28-loongson-3-di +Package: usb-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-loongson-3-di +Package: usb-storage-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: fb-modules-5.10.0-28-loongson-3-di +Package: fb-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: input-modules-5.10.0-28-loongson-3-di +Package: input-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: event-modules-5.10.0-28-loongson-3-di +Package: event-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-loongson-3-di +Package: nic-usb-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, nic-shared-modules-5.10.0-28-loongson-3-di, nic-wireless-modules-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, nic-shared-modules-5.10.0-29-loongson-3-di, nic-wireless-modules-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: sata-modules-5.10.0-28-loongson-3-di +Package: sata-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di, ata-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di, ata-modules-5.10.0-29-loongson-3-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: crc-modules-5.10.0-28-loongson-3-di +Package: crc-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: crypto-modules-5.10.0-28-loongson-3-di +Package: crypto-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-loongson-3-di +Package: crypto-dm-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, md-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, md-modules-5.10.0-29-loongson-3-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: ata-modules-5.10.0-28-loongson-3-di +Package: ata-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, scsi-core-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, scsi-core-modules-5.10.0-29-loongson-3-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: nbd-modules-5.10.0-28-loongson-3-di +Package: nbd-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: speakup-modules-5.10.0-28-loongson-3-di +Package: speakup-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: sound-modules-5.10.0-28-loongson-3-di +Package: sound-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-loongson-3-di, usb-modules-5.10.0-28-loongson-3-di, firewire-core-modules-5.10.0-28-loongson-3-di, crc-modules-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di, usb-modules-5.10.0-29-loongson-3-di, firewire-core-modules-5.10.0-29-loongson-3-di, crc-modules-5.10.0-29-loongson-3-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-loongson-3-di +Package: mtd-core-modules-5.10.0-29-loongson-3-di Architecture: mips64el mipsel Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-loongson-3-di +Depends: kernel-image-5.10.0-29-loongson-3-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-loongson-3 +Kernel-Version: 5.10.0-29-loongson-3 Package-Type: udeb -Package: linux-image-5.10.0-28-loongson-3 +Package: linux-image-5.10.0-29-loongson-3 Architecture: mips64el mipsel -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64el mipsel] | linux-initramfs-tool [mips64el mipsel] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64el mipsel] | linux-initramfs-tool [mips64el mipsel] Recommends: firmware-linux-free, apparmor [mips64el mipsel] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips64el], wireless-regdb (<< 2019.06.03-1~) [mips64el], initramfs-tools (<< 0.120+deb8u2) @@ -9172,22 +9172,22 @@ systems (e.g. from Loongson or Lemote). Build-Profiles: -Package: linux-headers-5.10.0-28-loongson-3 +Package: linux-headers-5.10.0-29-loongson-3 Architecture: mips64el mipsel -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-loongson-3 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-loongson-3 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-loongson-3, generally used for building out-of-tree + Linux kernel 5.10.0-29-loongson-3, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-loongson-3, and can be used for building + /usr/src/linux-headers-5.10.0-29-loongson-3, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-loongson-3 package. + linux-image-5.10.0-29-loongson-3 package. Build-Profiles: Package: linux-image-loongson-3 Architecture: mips64el mipsel -Provides: linux-latest-modules-5.10.0-28-loongson-3, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-loongson-3 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-loongson-3, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-loongson-3 (= ${binary:Version}), ${misc:Depends} Description: Linux for Loongson 3A/3B (meta-package) This package depends on the latest Linux kernel and modules for use on Loongson 3A or 3B based systems (e.g. from Loongson or Lemote). @@ -9195,32 +9195,32 @@ Package: linux-headers-loongson-3 Architecture: mips64el mipsel -Depends: linux-headers-5.10.0-28-loongson-3 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-loongson-3 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux loongson-3 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel loongson-3 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-loongson-3-dbg +Package: linux-image-5.10.0-29-loongson-3-dbg Architecture: mips64el mipsel Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-loongson-3 +Description: Debug symbols for linux-image-5.10.0-29-loongson-3 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-loongson-3. + modules in linux-image-5.10.0-29-loongson-3. Build-Profiles: Package: linux-image-loongson-3-dbg Architecture: mips64el mipsel Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-loongson-3-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-loongson-3-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux loongson-3 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel loongson-3 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-mips64r6-di +Package: kernel-image-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard @@ -9230,219 +9230,219 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-mips64r6-di +Package: nic-shared-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: loop-modules-5.10.0-28-mips64r6-di +Package: loop-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-mips64r6-di +Package: btrfs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di, md-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di, md-modules-5.10.0-29-mips64r6-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: ext4-modules-5.10.0-28-mips64r6-di +Package: ext4-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: isofs-modules-5.10.0-28-mips64r6-di +Package: isofs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: jfs-modules-5.10.0-28-mips64r6-di +Package: jfs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: xfs-modules-5.10.0-28-mips64r6-di +Package: xfs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-mips64r6-di +Package: squashfs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: udf-modules-5.10.0-28-mips64r6-di +Package: udf-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: fuse-modules-5.10.0-28-mips64r6-di +Package: fuse-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-mips64r6-di +Package: f2fs-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: md-modules-5.10.0-28-mips64r6-di +Package: md-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, crc-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, crc-modules-5.10.0-29-mips64r6-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: multipath-modules-5.10.0-28-mips64r6-di +Package: multipath-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, md-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, md-modules-5.10.0-29-mips64r6-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: crc-modules-5.10.0-28-mips64r6-di +Package: crc-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: crypto-modules-5.10.0-28-mips64r6-di +Package: crypto-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-mips64r6-di +Package: crypto-dm-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-mips64r6-di, md-modules-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di, md-modules-5.10.0-29-mips64r6-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: nbd-modules-5.10.0-28-mips64r6-di +Package: nbd-modules-5.10.0-29-mips64r6-di Architecture: mips64r6 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-mips64r6-di +Depends: kernel-image-5.10.0-29-mips64r6-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6 +Kernel-Version: 5.10.0-29-mips64r6 Package-Type: udeb -Package: linux-image-5.10.0-28-mips64r6 +Package: linux-image-5.10.0-29-mips64r6 Architecture: mips64r6 mipsr6 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6 mipsr6] | linux-initramfs-tool [mips64r6 mipsr6] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6 mipsr6] | linux-initramfs-tool [mips64r6 mipsr6] Recommends: firmware-linux-free, apparmor [mips64r6 mipsr6] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips64r6], wireless-regdb (<< 2019.06.03-1~) [mips64r6], initramfs-tools (<< 0.120+deb8u2) @@ -9450,22 +9450,22 @@ The Linux kernel 5.10 and modules for use on MIPS R6 (64 bit, big endian). Build-Profiles: -Package: linux-headers-5.10.0-28-mips64r6 +Package: linux-headers-5.10.0-29-mips64r6 Architecture: mips64r6 mipsr6 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-mips64r6 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-mips64r6 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-mips64r6, generally used for building out-of-tree + Linux kernel 5.10.0-29-mips64r6, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-mips64r6, and can be used for building + /usr/src/linux-headers-5.10.0-29-mips64r6, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-mips64r6 package. + linux-image-5.10.0-29-mips64r6 package. Build-Profiles: Package: linux-image-mips64r6 Architecture: mips64r6 mipsr6 -Provides: linux-latest-modules-5.10.0-28-mips64r6, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-mips64r6 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-mips64r6, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-mips64r6 (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS R6 (64 bit, big endian) (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS R6 (64 bit, big endian). @@ -9474,32 +9474,32 @@ Package: linux-headers-mips64r6 Architecture: mips64r6 mipsr6 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-mips64r6 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-mips64r6 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux mips64r6 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel mips64r6 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mips64r6-dbg +Package: linux-image-5.10.0-29-mips64r6-dbg Architecture: mips64r6 mipsr6 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-mips64r6 +Description: Debug symbols for linux-image-5.10.0-29-mips64r6 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-mips64r6. + modules in linux-image-5.10.0-29-mips64r6. Build-Profiles: Package: linux-image-mips64r6-dbg Architecture: mips64r6 mipsr6 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-mips64r6-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-mips64r6-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux mips64r6 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel mips64r6 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-mips64r6el-di +Package: kernel-image-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard @@ -9509,219 +9509,219 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-mips64r6el-di +Package: nic-shared-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: loop-modules-5.10.0-28-mips64r6el-di +Package: loop-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: btrfs-modules-5.10.0-28-mips64r6el-di +Package: btrfs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di, md-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di, md-modules-5.10.0-29-mips64r6el-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: ext4-modules-5.10.0-28-mips64r6el-di +Package: ext4-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: isofs-modules-5.10.0-28-mips64r6el-di +Package: isofs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: jfs-modules-5.10.0-28-mips64r6el-di +Package: jfs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: xfs-modules-5.10.0-28-mips64r6el-di +Package: xfs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: squashfs-modules-5.10.0-28-mips64r6el-di +Package: squashfs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: udf-modules-5.10.0-28-mips64r6el-di +Package: udf-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: fuse-modules-5.10.0-28-mips64r6el-di +Package: fuse-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: f2fs-modules-5.10.0-28-mips64r6el-di +Package: f2fs-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: md-modules-5.10.0-28-mips64r6el-di +Package: md-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, crc-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, crc-modules-5.10.0-29-mips64r6el-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: multipath-modules-5.10.0-28-mips64r6el-di +Package: multipath-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, md-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, md-modules-5.10.0-29-mips64r6el-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: crc-modules-5.10.0-28-mips64r6el-di +Package: crc-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: crypto-modules-5.10.0-28-mips64r6el-di +Package: crypto-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-mips64r6el-di +Package: crypto-dm-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di, md-modules-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di, md-modules-5.10.0-29-mips64r6el-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: nbd-modules-5.10.0-28-mips64r6el-di +Package: nbd-modules-5.10.0-29-mips64r6el-di Architecture: mips64r6el Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-mips64r6el-di +Depends: kernel-image-5.10.0-29-mips64r6el-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-mips64r6el +Kernel-Version: 5.10.0-29-mips64r6el Package-Type: udeb -Package: linux-image-5.10.0-28-mips64r6el +Package: linux-image-5.10.0-29-mips64r6el Architecture: mips64r6el mipsr6el -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6el mipsr6el] | linux-initramfs-tool [mips64r6el mipsr6el] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mips64r6el mipsr6el] | linux-initramfs-tool [mips64r6el mipsr6el] Recommends: firmware-linux-free, apparmor [mips64r6el mipsr6el] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mips64r6el], wireless-regdb (<< 2019.06.03-1~) [mips64r6el], initramfs-tools (<< 0.120+deb8u2) @@ -9730,22 +9730,22 @@ endian). Build-Profiles: -Package: linux-headers-5.10.0-28-mips64r6el +Package: linux-headers-5.10.0-29-mips64r6el Architecture: mips64r6el mipsr6el -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-mips64r6el +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-mips64r6el This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-mips64r6el, generally used for building out-of-tree + Linux kernel 5.10.0-29-mips64r6el, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-mips64r6el, and can be used for building + /usr/src/linux-headers-5.10.0-29-mips64r6el, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-mips64r6el package. + linux-image-5.10.0-29-mips64r6el package. Build-Profiles: Package: linux-image-mips64r6el Architecture: mips64r6el mipsr6el -Provides: linux-latest-modules-5.10.0-28-mips64r6el, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-mips64r6el (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-mips64r6el, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-mips64r6el (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS R6 (64 bit, little endian) (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS R6 (64 bit, little endian). @@ -9754,32 +9754,32 @@ Package: linux-headers-mips64r6el Architecture: mips64r6el mipsr6el Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-mips64r6el (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-mips64r6el (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux mips64r6el configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel mips64r6el configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mips64r6el-dbg +Package: linux-image-5.10.0-29-mips64r6el-dbg Architecture: mips64r6el mipsr6el Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-mips64r6el +Description: Debug symbols for linux-image-5.10.0-29-mips64r6el This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-mips64r6el. + modules in linux-image-5.10.0-29-mips64r6el. Build-Profiles: Package: linux-image-mips64r6el-dbg Architecture: mips64r6el mipsr6el Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-mips64r6el-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-mips64r6el-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux mips64r6el configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel mips64r6el configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-mips32r6-di +Package: kernel-image-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard @@ -9789,219 +9789,219 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-mips32r6-di +Package: nic-shared-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: loop-modules-5.10.0-28-mips32r6-di +Package: loop-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-mips32r6-di +Package: btrfs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di, md-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di, md-modules-5.10.0-29-mips32r6-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: ext4-modules-5.10.0-28-mips32r6-di +Package: ext4-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: isofs-modules-5.10.0-28-mips32r6-di +Package: isofs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: jfs-modules-5.10.0-28-mips32r6-di +Package: jfs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: xfs-modules-5.10.0-28-mips32r6-di +Package: xfs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-mips32r6-di +Package: squashfs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: udf-modules-5.10.0-28-mips32r6-di +Package: udf-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: fuse-modules-5.10.0-28-mips32r6-di +Package: fuse-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-mips32r6-di +Package: f2fs-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: md-modules-5.10.0-28-mips32r6-di +Package: md-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, crc-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, crc-modules-5.10.0-29-mips32r6-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: multipath-modules-5.10.0-28-mips32r6-di +Package: multipath-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, md-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, md-modules-5.10.0-29-mips32r6-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: crc-modules-5.10.0-28-mips32r6-di +Package: crc-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: crypto-modules-5.10.0-28-mips32r6-di +Package: crypto-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-mips32r6-di +Package: crypto-dm-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-mips32r6-di, md-modules-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di, md-modules-5.10.0-29-mips32r6-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: nbd-modules-5.10.0-28-mips32r6-di +Package: nbd-modules-5.10.0-29-mips32r6-di Architecture: mipsr6 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-mips32r6-di +Depends: kernel-image-5.10.0-29-mips32r6-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6 +Kernel-Version: 5.10.0-29-mips32r6 Package-Type: udeb -Package: linux-image-5.10.0-28-mips32r6 +Package: linux-image-5.10.0-29-mips32r6 Architecture: mipsr6 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6] | linux-initramfs-tool [mipsr6] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6] | linux-initramfs-tool [mipsr6] Recommends: firmware-linux-free, apparmor [mipsr6] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mipsr6], wireless-regdb (<< 2019.06.03-1~) [mipsr6], initramfs-tools (<< 0.120+deb8u2) @@ -10009,22 +10009,22 @@ The Linux kernel 5.10 and modules for use on MIPS R6 (32 bit, big endian). Build-Profiles: -Package: linux-headers-5.10.0-28-mips32r6 +Package: linux-headers-5.10.0-29-mips32r6 Architecture: mipsr6 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-mips32r6 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-mips32r6 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-mips32r6, generally used for building out-of-tree + Linux kernel 5.10.0-29-mips32r6, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-mips32r6, and can be used for building + /usr/src/linux-headers-5.10.0-29-mips32r6, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-mips32r6 package. + linux-image-5.10.0-29-mips32r6 package. Build-Profiles: Package: linux-image-mips32r6 Architecture: mipsr6 -Provides: linux-latest-modules-5.10.0-28-mips32r6, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-mips32r6 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-mips32r6, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-mips32r6 (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS R6 (32 bit, big endian) (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS R6 (32 bit, big endian). @@ -10033,32 +10033,32 @@ Package: linux-headers-mips32r6 Architecture: mipsr6 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-mips32r6 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-mips32r6 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux mips32r6 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel mips32r6 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mips32r6-dbg +Package: linux-image-5.10.0-29-mips32r6-dbg Architecture: mipsr6 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-mips32r6 +Description: Debug symbols for linux-image-5.10.0-29-mips32r6 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-mips32r6. + modules in linux-image-5.10.0-29-mips32r6. Build-Profiles: Package: linux-image-mips32r6-dbg Architecture: mipsr6 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-mips32r6-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-mips32r6-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux mips32r6 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel mips32r6 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-mips32r6el-di +Package: kernel-image-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard @@ -10068,219 +10068,219 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-mips32r6el-di +Package: nic-shared-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: loop-modules-5.10.0-28-mips32r6el-di +Package: loop-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: btrfs-modules-5.10.0-28-mips32r6el-di +Package: btrfs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di, md-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di, md-modules-5.10.0-29-mips32r6el-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: ext4-modules-5.10.0-28-mips32r6el-di +Package: ext4-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: isofs-modules-5.10.0-28-mips32r6el-di +Package: isofs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: jfs-modules-5.10.0-28-mips32r6el-di +Package: jfs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: xfs-modules-5.10.0-28-mips32r6el-di +Package: xfs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: squashfs-modules-5.10.0-28-mips32r6el-di +Package: squashfs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: udf-modules-5.10.0-28-mips32r6el-di +Package: udf-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: fuse-modules-5.10.0-28-mips32r6el-di +Package: fuse-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: f2fs-modules-5.10.0-28-mips32r6el-di +Package: f2fs-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: md-modules-5.10.0-28-mips32r6el-di +Package: md-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, crc-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, crc-modules-5.10.0-29-mips32r6el-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: multipath-modules-5.10.0-28-mips32r6el-di +Package: multipath-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, md-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, md-modules-5.10.0-29-mips32r6el-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: crc-modules-5.10.0-28-mips32r6el-di +Package: crc-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: crypto-modules-5.10.0-28-mips32r6el-di +Package: crypto-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-mips32r6el-di +Package: crypto-dm-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di, md-modules-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di, md-modules-5.10.0-29-mips32r6el-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: nbd-modules-5.10.0-28-mips32r6el-di +Package: nbd-modules-5.10.0-29-mips32r6el-di Architecture: mipsr6el Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-mips32r6el-di +Depends: kernel-image-5.10.0-29-mips32r6el-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-mips32r6el +Kernel-Version: 5.10.0-29-mips32r6el Package-Type: udeb -Package: linux-image-5.10.0-28-mips32r6el +Package: linux-image-5.10.0-29-mips32r6el Architecture: mipsr6el -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6el] | linux-initramfs-tool [mipsr6el] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [mipsr6el] | linux-initramfs-tool [mipsr6el] Recommends: firmware-linux-free, apparmor [mipsr6el] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [mipsr6el], wireless-regdb (<< 2019.06.03-1~) [mipsr6el], initramfs-tools (<< 0.120+deb8u2) @@ -10289,22 +10289,22 @@ endian). Build-Profiles: -Package: linux-headers-5.10.0-28-mips32r6el +Package: linux-headers-5.10.0-29-mips32r6el Architecture: mipsr6el -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-mips32r6el +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-mips32r6el This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-mips32r6el, generally used for building out-of-tree + Linux kernel 5.10.0-29-mips32r6el, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-mips32r6el, and can be used for building + /usr/src/linux-headers-5.10.0-29-mips32r6el, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-mips32r6el package. + linux-image-5.10.0-29-mips32r6el package. Build-Profiles: Package: linux-image-mips32r6el Architecture: mipsr6el -Provides: linux-latest-modules-5.10.0-28-mips32r6el, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-mips32r6el (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-mips32r6el, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-mips32r6el (= ${binary:Version}), ${misc:Depends} Description: Linux for MIPS R6 (32 bit, little endian) (meta-package) This package depends on the latest Linux kernel and modules for use on MIPS R6 (32 bit, little endian). @@ -10313,32 +10313,32 @@ Package: linux-headers-mips32r6el Architecture: mipsr6el Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-mips32r6el (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-mips32r6el (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux mips32r6el configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel mips32r6el configuration. Build-Profiles: -Package: linux-image-5.10.0-28-mips32r6el-dbg +Package: linux-image-5.10.0-29-mips32r6el-dbg Architecture: mipsr6el Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-mips32r6el +Description: Debug symbols for linux-image-5.10.0-29-mips32r6el This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-mips32r6el. + modules in linux-image-5.10.0-29-mips32r6el. Build-Profiles: Package: linux-image-mips32r6el-dbg Architecture: mipsr6el Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-mips32r6el-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-mips32r6el-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux mips32r6el configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel mips32r6el configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-powerpc-di +Package: kernel-image-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard @@ -10348,556 +10348,556 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nic-modules-5.10.0-28-powerpc-di +Package: nic-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-powerpc-di, nic-shared-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, nic-shared-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-powerpc-di +Package: nic-wireless-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-powerpc-di, nic-shared-modules-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di, mmc-core-modules-5.10.0-28-powerpc-di, pcmcia-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di, crypto-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, nic-shared-modules-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di, mmc-core-modules-5.10.0-29-powerpc-di, pcmcia-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di, crypto-modules-5.10.0-29-powerpc-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-powerpc-di +Package: nic-shared-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: serial-modules-5.10.0-28-powerpc-di +Package: serial-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-powerpc-di, pcmcia-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, pcmcia-modules-5.10.0-29-powerpc-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-powerpc-di +Package: usb-serial-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: ppp-modules-5.10.0-28-powerpc-di +Package: ppp-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-powerpc-di, serial-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, serial-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: pata-modules-5.10.0-28-powerpc-di +Package: pata-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-powerpc-di, ata-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, ata-modules-5.10.0-29-powerpc-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-powerpc-di +Package: cdrom-core-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-powerpc-di +Package: firewire-core-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-powerpc-di +Package: scsi-core-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: scsi-modules-5.10.0-28-powerpc-di +Package: scsi-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di, cdrom-core-modules-5.10.0-28-powerpc-di, ata-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di, cdrom-core-modules-5.10.0-29-powerpc-di, ata-modules-5.10.0-29-powerpc-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-powerpc-di +Package: scsi-nic-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-powerpc-di, nic-modules-5.10.0-28-powerpc-di +Depends: scsi-modules-5.10.0-29-powerpc-di, nic-modules-5.10.0-29-powerpc-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: loop-modules-5.10.0-28-powerpc-di +Package: loop-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: btrfs-modules-5.10.0-28-powerpc-di +Package: btrfs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di, md-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di, md-modules-5.10.0-29-powerpc-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: ext4-modules-5.10.0-28-powerpc-di +Package: ext4-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: isofs-modules-5.10.0-28-powerpc-di +Package: isofs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-powerpc-di, cdrom-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, cdrom-core-modules-5.10.0-29-powerpc-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: jfs-modules-5.10.0-28-powerpc-di +Package: jfs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: xfs-modules-5.10.0-28-powerpc-di +Package: xfs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: fat-modules-5.10.0-28-powerpc-di +Package: fat-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: hfs-modules-5.10.0-28-powerpc-di +Package: hfs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: hfs-modules -Depends: kernel-image-5.10.0-28-powerpc-di, cdrom-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, cdrom-core-modules-5.10.0-29-powerpc-di Description: HFS filesystem support This package contains the HFS and HFS+ filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: affs-modules-5.10.0-28-powerpc-di +Package: affs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: squashfs-modules-5.10.0-28-powerpc-di +Package: squashfs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: udf-modules-5.10.0-28-powerpc-di +Package: udf-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di, cdrom-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di, cdrom-core-modules-5.10.0-29-powerpc-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: fuse-modules-5.10.0-28-powerpc-di +Package: fuse-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: f2fs-modules-5.10.0-28-powerpc-di +Package: f2fs-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: md-modules-5.10.0-28-powerpc-di +Package: md-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: multipath-modules-5.10.0-28-powerpc-di +Package: multipath-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-powerpc-di, md-modules-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, md-modules-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: usb-modules-5.10.0-28-powerpc-di +Package: usb-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-powerpc-di +Package: usb-storage-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: pcmcia-storage-modules-5.10.0-28-powerpc-di +Package: pcmcia-storage-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: pcmcia-storage-modules -Depends: kernel-image-5.10.0-28-powerpc-di, cdrom-core-modules-5.10.0-28-powerpc-di, pcmcia-modules-5.10.0-28-powerpc-di, ata-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, cdrom-core-modules-5.10.0-29-powerpc-di, pcmcia-modules-5.10.0-29-powerpc-di, ata-modules-5.10.0-29-powerpc-di Description: PCMCIA storage drivers This package contains PCMCIA storage drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: fb-modules-5.10.0-28-powerpc-di +Package: fb-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: input-modules-5.10.0-28-powerpc-di +Package: input-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: event-modules-5.10.0-28-powerpc-di +Package: event-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: mouse-modules-5.10.0-28-powerpc-di +Package: mouse-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-powerpc-di, event-modules-5.10.0-28-powerpc-di, input-modules-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, event-modules-5.10.0-29-powerpc-di, input-modules-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-powerpc-di +Package: nic-pcmcia-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-powerpc-di, nic-shared-modules-5.10.0-28-powerpc-di, nic-wireless-modules-5.10.0-28-powerpc-di, pcmcia-modules-5.10.0-28-powerpc-di, mmc-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, nic-shared-modules-5.10.0-29-powerpc-di, nic-wireless-modules-5.10.0-29-powerpc-di, pcmcia-modules-5.10.0-29-powerpc-di, mmc-core-modules-5.10.0-29-powerpc-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-powerpc-di +Package: pcmcia-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-powerpc-di +Package: nic-usb-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-powerpc-di, nic-shared-modules-5.10.0-28-powerpc-di, nic-wireless-modules-5.10.0-28-powerpc-di, usb-modules-5.10.0-28-powerpc-di, crc-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, nic-shared-modules-5.10.0-29-powerpc-di, nic-wireless-modules-5.10.0-29-powerpc-di, usb-modules-5.10.0-29-powerpc-di, crc-modules-5.10.0-29-powerpc-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: sata-modules-5.10.0-28-powerpc-di +Package: sata-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di, ata-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di, ata-modules-5.10.0-29-powerpc-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: crc-modules-5.10.0-28-powerpc-di +Package: crc-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: crypto-modules-5.10.0-28-powerpc-di +Package: crypto-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-powerpc-di +Package: crypto-dm-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-powerpc-di, md-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, md-modules-5.10.0-29-powerpc-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: ata-modules-5.10.0-28-powerpc-di +Package: ata-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-powerpc-di, scsi-core-modules-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di, scsi-core-modules-5.10.0-29-powerpc-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-powerpc-di +Package: mmc-core-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: nbd-modules-5.10.0-28-powerpc-di +Package: nbd-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: uinput-modules-5.10.0-28-powerpc-di +Package: uinput-modules-5.10.0-29-powerpc-di Architecture: powerpc Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-powerpc-di +Depends: kernel-image-5.10.0-29-powerpc-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc +Kernel-Version: 5.10.0-29-powerpc Package-Type: udeb -Package: kernel-image-5.10.0-28-powerpc64-di +Package: kernel-image-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard @@ -10907,609 +10907,609 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nic-modules-5.10.0-28-powerpc64-di +Package: nic-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, nic-shared-modules-5.10.0-28-powerpc64-di, i2c-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di, mtd-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, nic-shared-modules-5.10.0-29-powerpc64-di, i2c-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di, mtd-core-modules-5.10.0-29-powerpc64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-powerpc64-di +Package: nic-wireless-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, nic-shared-modules-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di, mmc-core-modules-5.10.0-28-powerpc64-di, pcmcia-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di, crypto-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, nic-shared-modules-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di, mmc-core-modules-5.10.0-29-powerpc64-di, pcmcia-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di, crypto-modules-5.10.0-29-powerpc64-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-powerpc64-di +Package: nic-shared-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: serial-modules-5.10.0-28-powerpc64-di +Package: serial-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, pcmcia-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, pcmcia-modules-5.10.0-29-powerpc64-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-powerpc64-di +Package: usb-serial-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-powerpc64-di +Package: ppp-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, serial-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, serial-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: pata-modules-5.10.0-28-powerpc64-di +Package: pata-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, ata-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, ata-modules-5.10.0-29-powerpc64-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-powerpc64-di +Package: cdrom-core-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-powerpc64-di +Package: firewire-core-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-powerpc64-di +Package: scsi-core-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-powerpc64-di +Package: scsi-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di, cdrom-core-modules-5.10.0-28-powerpc64-di, ata-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di, cdrom-core-modules-5.10.0-29-powerpc64-di, ata-modules-5.10.0-29-powerpc64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-powerpc64-di +Package: scsi-nic-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-powerpc64-di, nic-modules-5.10.0-28-powerpc64-di +Depends: scsi-modules-5.10.0-29-powerpc64-di, nic-modules-5.10.0-29-powerpc64-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: loop-modules-5.10.0-28-powerpc64-di +Package: loop-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-powerpc64-di +Package: btrfs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di, md-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di, md-modules-5.10.0-29-powerpc64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-powerpc64-di +Package: ext4-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-powerpc64-di +Package: isofs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, cdrom-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, cdrom-core-modules-5.10.0-29-powerpc64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-powerpc64-di +Package: jfs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: xfs-modules-5.10.0-28-powerpc64-di +Package: xfs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: fat-modules-5.10.0-28-powerpc64-di +Package: fat-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: hfs-modules-5.10.0-28-powerpc64-di +Package: hfs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: hfs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, cdrom-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, cdrom-core-modules-5.10.0-29-powerpc64-di Description: HFS filesystem support This package contains the HFS and HFS+ filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: affs-modules-5.10.0-28-powerpc64-di +Package: affs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: affs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Amiga filesystem support This package contains the Amiga filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-powerpc64-di +Package: squashfs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: udf-modules-5.10.0-28-powerpc64-di +Package: udf-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di, cdrom-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di, cdrom-core-modules-5.10.0-29-powerpc64-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-powerpc64-di +Package: fuse-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-powerpc64-di +Package: f2fs-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: md-modules-5.10.0-28-powerpc64-di +Package: md-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-powerpc64-di +Package: multipath-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, md-modules-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, md-modules-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: usb-modules-5.10.0-28-powerpc64-di +Package: usb-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-powerpc64-di +Package: usb-storage-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: pcmcia-storage-modules-5.10.0-28-powerpc64-di +Package: pcmcia-storage-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: pcmcia-storage-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, cdrom-core-modules-5.10.0-28-powerpc64-di, pcmcia-modules-5.10.0-28-powerpc64-di, ata-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, cdrom-core-modules-5.10.0-29-powerpc64-di, pcmcia-modules-5.10.0-29-powerpc64-di, ata-modules-5.10.0-29-powerpc64-di Description: PCMCIA storage drivers This package contains PCMCIA storage drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: fb-modules-5.10.0-28-powerpc64-di +Package: fb-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, i2c-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, i2c-modules-5.10.0-29-powerpc64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: input-modules-5.10.0-28-powerpc64-di +Package: input-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di, i2c-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di, i2c-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: event-modules-5.10.0-28-powerpc64-di +Package: event-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: mouse-modules-5.10.0-28-powerpc64-di +Package: mouse-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, event-modules-5.10.0-28-powerpc64-di, input-modules-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, event-modules-5.10.0-29-powerpc64-di, input-modules-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nic-pcmcia-modules-5.10.0-28-powerpc64-di +Package: nic-pcmcia-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: nic-pcmcia-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, nic-shared-modules-5.10.0-28-powerpc64-di, nic-wireless-modules-5.10.0-28-powerpc64-di, pcmcia-modules-5.10.0-28-powerpc64-di, mmc-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, nic-shared-modules-5.10.0-29-powerpc64-di, nic-wireless-modules-5.10.0-29-powerpc64-di, pcmcia-modules-5.10.0-29-powerpc64-di, mmc-core-modules-5.10.0-29-powerpc64-di Description: Common PCMCIA NIC drivers This package contains common PCMCIA NIC drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: pcmcia-modules-5.10.0-28-powerpc64-di +Package: pcmcia-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: pcmcia-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Common PCMCIA drivers This package contains common PCMCIA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-powerpc64-di +Package: nic-usb-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, nic-shared-modules-5.10.0-28-powerpc64-di, nic-wireless-modules-5.10.0-28-powerpc64-di, usb-modules-5.10.0-28-powerpc64-di, crc-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, nic-shared-modules-5.10.0-29-powerpc64-di, nic-wireless-modules-5.10.0-29-powerpc64-di, usb-modules-5.10.0-29-powerpc64-di, crc-modules-5.10.0-29-powerpc64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: sata-modules-5.10.0-28-powerpc64-di +Package: sata-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di, ata-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di, ata-modules-5.10.0-29-powerpc64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: i2c-modules-5.10.0-28-powerpc64-di +Package: i2c-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: crc-modules-5.10.0-28-powerpc64-di +Package: crc-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-powerpc64-di +Package: crypto-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-powerpc64-di +Package: crypto-dm-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, md-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, md-modules-5.10.0-29-powerpc64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: ata-modules-5.10.0-28-powerpc64-di +Package: ata-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-powerpc64-di, scsi-core-modules-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di, scsi-core-modules-5.10.0-29-powerpc64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-powerpc64-di +Package: mmc-core-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-powerpc64-di +Package: nbd-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: uinput-modules-5.10.0-28-powerpc64-di +Package: uinput-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-powerpc64-di +Package: mtd-core-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: hypervisor-modules-5.10.0-28-powerpc64-di +Package: hypervisor-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: hypervisor-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: IBM 64bit hypervisor console modules Contains drivers for the hypervisor console, used as console for linux running in logical partitions of IBM hardware supporting it. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: fancontrol-modules-5.10.0-28-powerpc64-di +Package: fancontrol-modules-5.10.0-29-powerpc64-di Architecture: powerpc ppc64 Section: debian-installer Priority: standard Provides: fancontrol-modules -Depends: kernel-image-5.10.0-28-powerpc64-di +Depends: kernel-image-5.10.0-29-powerpc64-di Description: Apple powermac fancontrol modules Contains drivers for macintosh i2c bus as well as for the monitoring devices connected to it. This allows to control the fans during installation. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64 +Kernel-Version: 5.10.0-29-powerpc64 Package-Type: udeb -Package: linux-image-5.10.0-28-powerpc +Package: linux-image-5.10.0-29-powerpc Architecture: powerpc -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc] Recommends: firmware-linux-free, apparmor [powerpc] Suggests: linux-doc-5.10, debian-kernel-handbook, mkvmlinuz [powerpc], grub-ieee1275 [powerpc] Breaks: fwupdate (<< 12-7) [powerpc], wireless-regdb (<< 2019.06.03-1~) [powerpc], initramfs-tools (<< 0.120+deb8u2) @@ -11517,22 +11517,22 @@ The Linux kernel 5.10 and modules for use on uniprocessor 32-bit PowerPC. Build-Profiles: -Package: linux-headers-5.10.0-28-powerpc +Package: linux-headers-5.10.0-29-powerpc Architecture: powerpc -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-powerpc +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-powerpc This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-powerpc, generally used for building out-of-tree + Linux kernel 5.10.0-29-powerpc, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-powerpc, and can be used for building + /usr/src/linux-headers-5.10.0-29-powerpc, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-powerpc package. + linux-image-5.10.0-29-powerpc package. Build-Profiles: Package: linux-image-powerpc Architecture: powerpc -Provides: linux-latest-modules-5.10.0-28-powerpc, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-powerpc (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-powerpc, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-powerpc (= ${binary:Version}), ${misc:Depends} Description: Linux for uniprocessor 32-bit PowerPC (meta-package) This package depends on the latest Linux kernel and modules for use on uniprocessor 32-bit PowerPC. @@ -11540,34 +11540,34 @@ Package: linux-headers-powerpc Architecture: powerpc -Depends: linux-headers-5.10.0-28-powerpc (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-powerpc (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux powerpc configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel powerpc configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc-dbg +Package: linux-image-5.10.0-29-powerpc-dbg Architecture: powerpc Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-powerpc +Description: Debug symbols for linux-image-5.10.0-29-powerpc This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-powerpc. + modules in linux-image-5.10.0-29-powerpc. Build-Profiles: Package: linux-image-powerpc-dbg Architecture: powerpc Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-powerpc-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-powerpc-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux powerpc configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel powerpc configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc-smp +Package: linux-image-5.10.0-29-powerpc-smp Architecture: powerpc -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc] | linux-initramfs-tool [powerpc] Recommends: firmware-linux-free, apparmor [powerpc] Suggests: linux-doc-5.10, debian-kernel-handbook, mkvmlinuz [powerpc], grub-ieee1275 [powerpc] Breaks: fwupdate (<< 12-7) [powerpc], wireless-regdb (<< 2019.06.03-1~) [powerpc], initramfs-tools (<< 0.120+deb8u2) @@ -11576,22 +11576,22 @@ PowerPC. Build-Profiles: -Package: linux-headers-5.10.0-28-powerpc-smp +Package: linux-headers-5.10.0-29-powerpc-smp Architecture: powerpc -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-powerpc-smp +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-powerpc-smp This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-powerpc-smp, generally used for building + Linux kernel 5.10.0-29-powerpc-smp, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-powerpc-smp, and can be used for building + /usr/src/linux-headers-5.10.0-29-powerpc-smp, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-powerpc-smp package. + linux-image-5.10.0-29-powerpc-smp package. Build-Profiles: Package: linux-image-powerpc-smp Architecture: powerpc -Provides: linux-latest-modules-5.10.0-28-powerpc-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-powerpc-smp (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-powerpc-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-powerpc-smp (= ${binary:Version}), ${misc:Depends} Description: Linux for multiprocessor 32-bit PowerPC (meta-package) This package depends on the latest Linux kernel and modules for use on multiprocessor 32-bit PowerPC. @@ -11599,34 +11599,34 @@ Package: linux-headers-powerpc-smp Architecture: powerpc -Depends: linux-headers-5.10.0-28-powerpc-smp (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-powerpc-smp (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux powerpc-smp configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel powerpc-smp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc-smp-dbg +Package: linux-image-5.10.0-29-powerpc-smp-dbg Architecture: powerpc Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-powerpc-smp +Description: Debug symbols for linux-image-5.10.0-29-powerpc-smp This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-powerpc-smp. + modules in linux-image-5.10.0-29-powerpc-smp. Build-Profiles: Package: linux-image-powerpc-smp-dbg Architecture: powerpc Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-powerpc-smp-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-powerpc-smp-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux powerpc-smp configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel powerpc-smp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc64 +Package: linux-image-5.10.0-29-powerpc64 Architecture: powerpc ppc64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc ppc64] | linux-initramfs-tool [powerpc ppc64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [powerpc ppc64] | linux-initramfs-tool [powerpc ppc64] Recommends: firmware-linux-free, apparmor [powerpc ppc64] Suggests: linux-doc-5.10, debian-kernel-handbook, mkvmlinuz [powerpc ppc64], grub-ieee1275 [powerpc ppc64] Breaks: fwupdate (<< 12-7) [powerpc], wireless-regdb (<< 2019.06.03-1~) [powerpc], initramfs-tools (<< 0.120+deb8u2) @@ -11634,22 +11634,22 @@ The Linux kernel 5.10 and modules for use on 64-bit PowerPC. Build-Profiles: -Package: linux-headers-5.10.0-28-powerpc64 +Package: linux-headers-5.10.0-29-powerpc64 Architecture: powerpc ppc64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-powerpc64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-powerpc64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-powerpc64, generally used for building out-of-tree + Linux kernel 5.10.0-29-powerpc64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-powerpc64, and can be used for building + /usr/src/linux-headers-5.10.0-29-powerpc64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-powerpc64 package. + linux-image-5.10.0-29-powerpc64 package. Build-Profiles: Package: linux-image-powerpc64 Architecture: powerpc ppc64 -Provides: linux-latest-modules-5.10.0-28-powerpc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-powerpc64 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-powerpc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-powerpc64 (= ${binary:Version}), ${misc:Depends} Description: Linux for 64-bit PowerPC (meta-package) This package depends on the latest Linux kernel and modules for use on 64-bit PowerPC. @@ -11658,32 +11658,32 @@ Package: linux-headers-powerpc64 Architecture: powerpc ppc64 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-powerpc64 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-powerpc64 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux powerpc64 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel powerpc64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc64-dbg +Package: linux-image-5.10.0-29-powerpc64-dbg Architecture: powerpc ppc64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-powerpc64 +Description: Debug symbols for linux-image-5.10.0-29-powerpc64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-powerpc64. + modules in linux-image-5.10.0-29-powerpc64. Build-Profiles: Package: linux-image-powerpc64-dbg Architecture: powerpc ppc64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-powerpc64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-powerpc64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux powerpc64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel powerpc64 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-powerpc64le-di +Package: kernel-image-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard @@ -11693,525 +11693,525 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: nic-modules-5.10.0-28-powerpc64le-di +Package: nic-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, nic-shared-modules-5.10.0-28-powerpc64le-di, i2c-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di, mtd-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, nic-shared-modules-5.10.0-29-powerpc64le-di, i2c-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di, mtd-core-modules-5.10.0-29-powerpc64le-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-powerpc64le-di +Package: nic-wireless-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, nic-shared-modules-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di, crypto-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, nic-shared-modules-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di, crypto-modules-5.10.0-29-powerpc64le-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-powerpc64le-di +Package: nic-shared-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: serial-modules-5.10.0-28-powerpc64le-di +Package: serial-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: serial-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Serial drivers This package contains serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-powerpc64le-di +Package: usb-serial-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: ppp-modules-5.10.0-28-powerpc64le-di +Package: ppp-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, serial-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, serial-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-powerpc64le-di +Package: cdrom-core-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-powerpc64le-di +Package: firewire-core-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-powerpc64le-di +Package: scsi-core-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: scsi-modules-5.10.0-28-powerpc64le-di +Package: scsi-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di, cdrom-core-modules-5.10.0-28-powerpc64le-di, ata-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di, cdrom-core-modules-5.10.0-29-powerpc64le-di, ata-modules-5.10.0-29-powerpc64le-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-powerpc64le-di +Package: scsi-nic-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-powerpc64le-di, nic-modules-5.10.0-28-powerpc64le-di +Depends: scsi-modules-5.10.0-29-powerpc64le-di, nic-modules-5.10.0-29-powerpc64le-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: loop-modules-5.10.0-28-powerpc64le-di +Package: loop-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: btrfs-modules-5.10.0-28-powerpc64le-di +Package: btrfs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di, md-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di, md-modules-5.10.0-29-powerpc64le-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: ext4-modules-5.10.0-28-powerpc64le-di +Package: ext4-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: isofs-modules-5.10.0-28-powerpc64le-di +Package: isofs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, cdrom-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, cdrom-core-modules-5.10.0-29-powerpc64le-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: jfs-modules-5.10.0-28-powerpc64le-di +Package: jfs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: xfs-modules-5.10.0-28-powerpc64le-di +Package: xfs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: fat-modules-5.10.0-28-powerpc64le-di +Package: fat-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: squashfs-modules-5.10.0-28-powerpc64le-di +Package: squashfs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: udf-modules-5.10.0-28-powerpc64le-di +Package: udf-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di, cdrom-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di, cdrom-core-modules-5.10.0-29-powerpc64le-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: fuse-modules-5.10.0-28-powerpc64le-di +Package: fuse-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: f2fs-modules-5.10.0-28-powerpc64le-di +Package: f2fs-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: md-modules-5.10.0-28-powerpc64le-di +Package: md-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: multipath-modules-5.10.0-28-powerpc64le-di +Package: multipath-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, md-modules-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, md-modules-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: usb-modules-5.10.0-28-powerpc64le-di +Package: usb-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-powerpc64le-di +Package: usb-storage-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: fb-modules-5.10.0-28-powerpc64le-di +Package: fb-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, i2c-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, i2c-modules-5.10.0-29-powerpc64le-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: input-modules-5.10.0-28-powerpc64le-di +Package: input-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di, i2c-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di, i2c-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: event-modules-5.10.0-28-powerpc64le-di +Package: event-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: mouse-modules-5.10.0-28-powerpc64le-di +Package: mouse-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: mouse-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, event-modules-5.10.0-28-powerpc64le-di, input-modules-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, event-modules-5.10.0-29-powerpc64le-di, input-modules-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di Description: Mouse support This package contains mouse drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-powerpc64le-di +Package: nic-usb-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, nic-shared-modules-5.10.0-28-powerpc64le-di, nic-wireless-modules-5.10.0-28-powerpc64le-di, usb-modules-5.10.0-28-powerpc64le-di, crc-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, nic-shared-modules-5.10.0-29-powerpc64le-di, nic-wireless-modules-5.10.0-29-powerpc64le-di, usb-modules-5.10.0-29-powerpc64le-di, crc-modules-5.10.0-29-powerpc64le-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: sata-modules-5.10.0-28-powerpc64le-di +Package: sata-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di, ata-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di, ata-modules-5.10.0-29-powerpc64le-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: i2c-modules-5.10.0-28-powerpc64le-di +Package: i2c-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: crc-modules-5.10.0-28-powerpc64le-di +Package: crc-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: crypto-modules-5.10.0-28-powerpc64le-di +Package: crypto-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-powerpc64le-di +Package: crypto-dm-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, md-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, md-modules-5.10.0-29-powerpc64le-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: ata-modules-5.10.0-28-powerpc64le-di +Package: ata-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di, scsi-core-modules-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di, scsi-core-modules-5.10.0-29-powerpc64le-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: nbd-modules-5.10.0-28-powerpc64le-di +Package: nbd-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: uinput-modules-5.10.0-28-powerpc64le-di +Package: uinput-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: uinput-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: uinput support This package contains the uinput module. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-powerpc64le-di +Package: mtd-core-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: hypervisor-modules-5.10.0-28-powerpc64le-di +Package: hypervisor-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: hypervisor-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: IBM 64bit hypervisor console modules Contains drivers for the hypervisor console, used as console for linux running in logical partitions of IBM hardware supporting it. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: fancontrol-modules-5.10.0-28-powerpc64le-di +Package: fancontrol-modules-5.10.0-29-powerpc64le-di Architecture: ppc64el Section: debian-installer Priority: standard Provides: fancontrol-modules -Depends: kernel-image-5.10.0-28-powerpc64le-di +Depends: kernel-image-5.10.0-29-powerpc64le-di Description: Apple powermac fancontrol modules Contains drivers for macintosh i2c bus as well as for the monitoring devices connected to it. This allows to control the fans during installation. Build-Profiles: -Kernel-Version: 5.10.0-28-powerpc64le +Kernel-Version: 5.10.0-29-powerpc64le Package-Type: udeb -Package: linux-image-5.10.0-28-powerpc64le +Package: linux-image-5.10.0-29-powerpc64le Architecture: ppc64el -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ppc64el] | linux-initramfs-tool [ppc64el] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [ppc64el] | linux-initramfs-tool [ppc64el] Recommends: firmware-linux-free, apparmor [ppc64el] Suggests: linux-doc-5.10, debian-kernel-handbook, mkvmlinuz [ppc64el], grub-ieee1275 [ppc64el] Breaks: fwupdate (<< 12-7) [ppc64el], wireless-regdb (<< 2019.06.03-1~) [ppc64el], initramfs-tools (<< 0.120+deb8u2) @@ -12219,22 +12219,22 @@ The Linux kernel 5.10 and modules for use on Little-endian 64-bit PowerPC. Build-Profiles: -Package: linux-headers-5.10.0-28-powerpc64le +Package: linux-headers-5.10.0-29-powerpc64le Architecture: ppc64el -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-powerpc64le +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-powerpc64le This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-powerpc64le, generally used for building + Linux kernel 5.10.0-29-powerpc64le, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-powerpc64le, and can be used for building + /usr/src/linux-headers-5.10.0-29-powerpc64le, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-powerpc64le package. + linux-image-5.10.0-29-powerpc64le package. Build-Profiles: Package: linux-image-powerpc64le Architecture: ppc64el -Provides: linux-latest-modules-5.10.0-28-powerpc64le, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-powerpc64le (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-powerpc64le, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-powerpc64le (= ${binary:Version}), ${misc:Depends} Description: Linux for Little-endian 64-bit PowerPC (meta-package) This package depends on the latest Linux kernel and modules for use on Little-endian 64-bit PowerPC. @@ -12243,32 +12243,32 @@ Package: linux-headers-powerpc64le Architecture: ppc64el Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-powerpc64le (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-powerpc64le (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux powerpc64le configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel powerpc64le configuration. Build-Profiles: -Package: linux-image-5.10.0-28-powerpc64le-dbg +Package: linux-image-5.10.0-29-powerpc64le-dbg Architecture: ppc64el Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-powerpc64le +Description: Debug symbols for linux-image-5.10.0-29-powerpc64le This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-powerpc64le. + modules in linux-image-5.10.0-29-powerpc64le. Build-Profiles: Package: linux-image-powerpc64le-dbg Architecture: ppc64el Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-powerpc64le-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-powerpc64le-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux powerpc64le configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel powerpc64le configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-riscv64-di +Package: kernel-image-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard @@ -12278,487 +12278,487 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: nic-modules-5.10.0-28-riscv64-di +Package: nic-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-riscv64-di, nic-shared-modules-5.10.0-28-riscv64-di, i2c-modules-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di, mtd-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, nic-shared-modules-5.10.0-29-riscv64-di, i2c-modules-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di, mtd-core-modules-5.10.0-29-riscv64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: nic-wireless-modules-5.10.0-28-riscv64-di +Package: nic-wireless-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: nic-wireless-modules -Depends: kernel-image-5.10.0-28-riscv64-di, nic-shared-modules-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di, mmc-core-modules-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di, crypto-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, nic-shared-modules-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di, mmc-core-modules-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di, crypto-modules-5.10.0-29-riscv64-di Description: Wireless NIC drivers This package contains wireless NIC drivers for the kernel. Includes crypto modules only needed for wireless (WEP, WPA). Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-riscv64-di +Package: nic-shared-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-riscv64-di +Package: usb-serial-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-riscv64-di +Package: ppp-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: pata-modules-5.10.0-28-riscv64-di +Package: pata-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-riscv64-di, ata-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, ata-modules-5.10.0-29-riscv64-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-riscv64-di +Package: cdrom-core-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-riscv64-di +Package: scsi-core-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-riscv64-di +Package: scsi-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di, cdrom-core-modules-5.10.0-28-riscv64-di, ata-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di, cdrom-core-modules-5.10.0-29-riscv64-di, ata-modules-5.10.0-29-riscv64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: scsi-nic-modules-5.10.0-28-riscv64-di +Package: scsi-nic-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: scsi-nic-modules -Depends: scsi-modules-5.10.0-28-riscv64-di, nic-modules-5.10.0-28-riscv64-di +Depends: scsi-modules-5.10.0-29-riscv64-di, nic-modules-5.10.0-29-riscv64-di Description: SCSI drivers for converged NICs This package contains SCSI drivers that depend on net drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: loop-modules-5.10.0-28-riscv64-di +Package: loop-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-riscv64-di +Package: btrfs-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di, md-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di, md-modules-5.10.0-29-riscv64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-riscv64-di +Package: ext4-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-riscv64-di +Package: isofs-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-riscv64-di, cdrom-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, cdrom-core-modules-5.10.0-29-riscv64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-riscv64-di +Package: jfs-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: fat-modules-5.10.0-28-riscv64-di +Package: fat-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-riscv64-di +Package: squashfs-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: udf-modules-5.10.0-28-riscv64-di +Package: udf-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di, cdrom-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di, cdrom-core-modules-5.10.0-29-riscv64-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-riscv64-di +Package: fuse-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-riscv64-di +Package: f2fs-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: md-modules-5.10.0-28-riscv64-di +Package: md-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-riscv64-di +Package: multipath-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-riscv64-di, md-modules-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, md-modules-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: usb-modules-5.10.0-28-riscv64-di +Package: usb-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-riscv64-di +Package: usb-storage-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: fb-modules-5.10.0-28-riscv64-di +Package: fb-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-riscv64-di, i2c-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, i2c-modules-5.10.0-29-riscv64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: input-modules-5.10.0-28-riscv64-di +Package: input-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di, i2c-modules-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di, i2c-modules-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: event-modules-5.10.0-28-riscv64-di +Package: event-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: event-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: Event support This package contains event drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-riscv64-di +Package: nic-usb-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-riscv64-di, nic-shared-modules-5.10.0-28-riscv64-di, nic-wireless-modules-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, nic-shared-modules-5.10.0-29-riscv64-di, nic-wireless-modules-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: sata-modules-5.10.0-28-riscv64-di +Package: sata-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di, ata-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di, ata-modules-5.10.0-29-riscv64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: i2c-modules-5.10.0-28-riscv64-di +Package: i2c-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: crc-modules-5.10.0-28-riscv64-di +Package: crc-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-riscv64-di +Package: crypto-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-riscv64-di +Package: crypto-dm-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-riscv64-di, md-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, md-modules-5.10.0-29-riscv64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: ata-modules-5.10.0-28-riscv64-di +Package: ata-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-riscv64-di, scsi-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, scsi-core-modules-5.10.0-29-riscv64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: mmc-core-modules-5.10.0-28-riscv64-di +Package: mmc-core-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: mmc-core-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: MMC/SD/SDIO core modules This package contains core modules for MMC/SD/SDIO support. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: mmc-modules-5.10.0-28-riscv64-di +Package: mmc-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: mmc-modules -Depends: kernel-image-5.10.0-28-riscv64-di, mmc-core-modules-5.10.0-28-riscv64-di, usb-modules-5.10.0-28-riscv64-di, crc-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, mmc-core-modules-5.10.0-29-riscv64-di, usb-modules-5.10.0-29-riscv64-di, crc-modules-5.10.0-29-riscv64-di Description: MMC/SD card modules This package contains modules needed to support MMC (multimedia) and SD cards. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-riscv64-di +Package: nbd-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: mtd-modules-5.10.0-28-riscv64-di +Package: mtd-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: mtd-modules -Depends: kernel-image-5.10.0-28-riscv64-di, mtd-core-modules-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di, mtd-core-modules-5.10.0-29-riscv64-di Description: MTD driver modules This package contains MTD driver modules. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-riscv64-di +Package: mtd-core-modules-5.10.0-29-riscv64-di Architecture: riscv64 Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-riscv64-di +Depends: kernel-image-5.10.0-29-riscv64-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-riscv64 +Kernel-Version: 5.10.0-29-riscv64 Package-Type: udeb -Package: linux-image-5.10.0-28-riscv64 +Package: linux-image-5.10.0-29-riscv64 Architecture: riscv64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [riscv64] | linux-initramfs-tool [riscv64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [riscv64] | linux-initramfs-tool [riscv64] Recommends: firmware-linux-free, apparmor [riscv64] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [riscv64], wireless-regdb (<< 2019.06.03-1~) [riscv64], initramfs-tools (<< 0.120+deb8u2) @@ -12766,22 +12766,22 @@ The Linux kernel 5.10 and modules for use on 64-bit RISC-V platforms. Build-Profiles: -Package: linux-headers-5.10.0-28-riscv64 +Package: linux-headers-5.10.0-29-riscv64 Architecture: riscv64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-riscv64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-riscv64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-riscv64, generally used for building out-of-tree + Linux kernel 5.10.0-29-riscv64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-riscv64, and can be used for building + /usr/src/linux-headers-5.10.0-29-riscv64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-riscv64 package. + linux-image-5.10.0-29-riscv64 package. Build-Profiles: Package: linux-image-riscv64 Architecture: riscv64 -Provides: linux-latest-modules-5.10.0-28-riscv64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-riscv64 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-riscv64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-riscv64 (= ${binary:Version}), ${misc:Depends} Description: Linux for 64-bit RISC-V platforms (meta-package) This package depends on the latest Linux kernel and modules for use on 64-bit RISC-V platforms. @@ -12790,32 +12790,32 @@ Package: linux-headers-riscv64 Architecture: riscv64 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-riscv64 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-riscv64 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux riscv64 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel riscv64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-riscv64-dbg +Package: linux-image-5.10.0-29-riscv64-dbg Architecture: riscv64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-riscv64 +Description: Debug symbols for linux-image-5.10.0-29-riscv64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-riscv64. + modules in linux-image-5.10.0-29-riscv64. Build-Profiles: Package: linux-image-riscv64-dbg Architecture: riscv64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-riscv64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-riscv64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux riscv64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel riscv64 configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-s390x-di +Package: kernel-image-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard @@ -12825,281 +12825,281 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: nic-modules-5.10.0-28-s390x-di +Package: nic-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di, mtd-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di, mtd-core-modules-5.10.0-29-s390x-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-s390x-di +Package: cdrom-core-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-s390x-di, scsi-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, scsi-core-modules-5.10.0-29-s390x-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-s390x-di +Package: scsi-core-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: scsi-modules-5.10.0-28-s390x-di +Package: scsi-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-s390x-di, scsi-core-modules-5.10.0-28-s390x-di, cdrom-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, scsi-core-modules-5.10.0-29-s390x-di, cdrom-core-modules-5.10.0-29-s390x-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: loop-modules-5.10.0-28-s390x-di +Package: loop-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: btrfs-modules-5.10.0-28-s390x-di +Package: btrfs-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di, md-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di, md-modules-5.10.0-29-s390x-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: ext4-modules-5.10.0-28-s390x-di +Package: ext4-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: isofs-modules-5.10.0-28-s390x-di +Package: isofs-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-s390x-di, cdrom-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, cdrom-core-modules-5.10.0-29-s390x-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: xfs-modules-5.10.0-28-s390x-di +Package: xfs-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: fat-modules-5.10.0-28-s390x-di +Package: fat-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: udf-modules-5.10.0-28-s390x-di +Package: udf-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di, cdrom-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di, cdrom-core-modules-5.10.0-29-s390x-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: fuse-modules-5.10.0-28-s390x-di +Package: fuse-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: f2fs-modules-5.10.0-28-s390x-di +Package: f2fs-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: md-modules-5.10.0-28-s390x-di +Package: md-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-s390x-di, crc-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, crc-modules-5.10.0-29-s390x-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: multipath-modules-5.10.0-28-s390x-di +Package: multipath-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-s390x-di, md-modules-5.10.0-28-s390x-di, scsi-core-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, md-modules-5.10.0-29-s390x-di, scsi-core-modules-5.10.0-29-s390x-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: crc-modules-5.10.0-28-s390x-di +Package: crc-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: crypto-modules-5.10.0-28-s390x-di +Package: crypto-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-s390x-di +Package: crypto-dm-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-s390x-di, md-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, md-modules-5.10.0-29-s390x-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: nbd-modules-5.10.0-28-s390x-di +Package: nbd-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: mtd-core-modules-5.10.0-28-s390x-di +Package: mtd-core-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: mtd-core-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: MTD core This package contains the MTD core. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: dasd-modules-5.10.0-28-s390x-di +Package: dasd-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: standard Provides: dasd-modules -Depends: kernel-image-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di Description: dasd modules This package contains dasd modules. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: dasd-extra-modules-5.10.0-28-s390x-di +Package: dasd-extra-modules-5.10.0-29-s390x-di Architecture: s390x Section: debian-installer Priority: optional Provides: dasd-extra-modules -Depends: kernel-image-5.10.0-28-s390x-di, dasd-modules-5.10.0-28-s390x-di +Depends: kernel-image-5.10.0-29-s390x-di, dasd-modules-5.10.0-29-s390x-di Description: optional dasd DIAG support This package contains the module for dasd DIAG support. The udeb is not loaded by default as the installer does not actually support this. It can however be useful to have available in rescue situations. Build-Profiles: -Kernel-Version: 5.10.0-28-s390x +Kernel-Version: 5.10.0-29-s390x Package-Type: udeb -Package: linux-image-5.10.0-28-s390x +Package: linux-image-5.10.0-29-s390x Architecture: s390x -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [s390x] | linux-initramfs-tool [s390x] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [s390x] | linux-initramfs-tool [s390x] Recommends: firmware-linux-free, apparmor [s390x] Suggests: linux-doc-5.10, debian-kernel-handbook, s390-tools [s390x] Breaks: fwupdate (<< 12-7) [s390x], wireless-regdb (<< 2019.06.03-1~) [s390x], initramfs-tools (<< 0.120+deb8u2) @@ -13107,22 +13107,22 @@ The Linux kernel 5.10 and modules for use on IBM zSeries. Build-Profiles: -Package: linux-headers-5.10.0-28-s390x +Package: linux-headers-5.10.0-29-s390x Architecture: s390x -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-s390 -Description: Header files for Linux 5.10.0-28-s390x +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, linux-compiler-gcc-10-s390 +Description: Header files for Linux 5.10.0-29-s390x This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-s390x, generally used for building out-of-tree + Linux kernel 5.10.0-29-s390x, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-s390x, and can be used for building + /usr/src/linux-headers-5.10.0-29-s390x, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-s390x package. + linux-image-5.10.0-29-s390x package. Build-Profiles: Package: linux-image-s390x Architecture: s390x -Provides: linux-latest-modules-5.10.0-28-s390x, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-s390x (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-s390x, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-s390x (= ${binary:Version}), ${misc:Depends} Description: Linux for IBM zSeries (meta-package) This package depends on the latest Linux kernel and modules for use on IBM zSeries. @@ -13131,32 +13131,32 @@ Package: linux-headers-s390x Architecture: s390x Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-s390x (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-s390x (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux s390x configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel s390x configuration. Build-Profiles: -Package: linux-image-5.10.0-28-s390x-dbg +Package: linux-image-5.10.0-29-s390x-dbg Architecture: s390x Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-s390x +Description: Debug symbols for linux-image-5.10.0-29-s390x This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-s390x. + modules in linux-image-5.10.0-29-s390x. Build-Profiles: Package: linux-image-s390x-dbg Architecture: s390x Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-s390x-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-s390x-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux s390x configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel s390x configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-sh7751r-di +Package: kernel-image-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard @@ -13166,386 +13166,386 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: nic-modules-5.10.0-28-sh7751r-di +Package: nic-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, nic-shared-modules-5.10.0-28-sh7751r-di, i2c-modules-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, nic-shared-modules-5.10.0-29-sh7751r-di, i2c-modules-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-sh7751r-di +Package: nic-shared-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-sh7751r-di +Package: usb-serial-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: ppp-modules-5.10.0-28-sh7751r-di +Package: ppp-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: pata-modules-5.10.0-28-sh7751r-di +Package: pata-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-sh7751r-di +Package: cdrom-core-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-sh7751r-di +Package: firewire-core-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: loop-modules-5.10.0-28-sh7751r-di +Package: loop-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: btrfs-modules-5.10.0-28-sh7751r-di +Package: btrfs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di, md-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di, md-modules-5.10.0-29-sh7751r-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: ext4-modules-5.10.0-28-sh7751r-di +Package: ext4-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: isofs-modules-5.10.0-28-sh7751r-di +Package: isofs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, cdrom-core-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, cdrom-core-modules-5.10.0-29-sh7751r-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: jfs-modules-5.10.0-28-sh7751r-di +Package: jfs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: xfs-modules-5.10.0-28-sh7751r-di +Package: xfs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: fat-modules-5.10.0-28-sh7751r-di +Package: fat-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: minix-modules-5.10.0-28-sh7751r-di +Package: minix-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: squashfs-modules-5.10.0-28-sh7751r-di +Package: squashfs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: udf-modules-5.10.0-28-sh7751r-di +Package: udf-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di, cdrom-core-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di, cdrom-core-modules-5.10.0-29-sh7751r-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: fuse-modules-5.10.0-28-sh7751r-di +Package: fuse-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: f2fs-modules-5.10.0-28-sh7751r-di +Package: f2fs-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: md-modules-5.10.0-28-sh7751r-di +Package: md-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: multipath-modules-5.10.0-28-sh7751r-di +Package: multipath-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, md-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, md-modules-5.10.0-29-sh7751r-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-sh7751r-di +Package: usb-storage-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-sh7751r-di +Package: nic-usb-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, nic-shared-modules-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, nic-shared-modules-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: sata-modules-5.10.0-28-sh7751r-di +Package: sata-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: i2c-modules-5.10.0-28-sh7751r-di +Package: i2c-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: crc-modules-5.10.0-28-sh7751r-di +Package: crc-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: crypto-modules-5.10.0-28-sh7751r-di +Package: crypto-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-sh7751r-di +Package: crypto-dm-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, md-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, md-modules-5.10.0-29-sh7751r-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: nbd-modules-5.10.0-28-sh7751r-di +Package: nbd-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: speakup-modules-5.10.0-28-sh7751r-di +Package: speakup-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: sound-modules-5.10.0-28-sh7751r-di +Package: sound-modules-5.10.0-29-sh7751r-di Architecture: sh4 Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-sh7751r-di, i2c-modules-5.10.0-28-sh7751r-di, firewire-core-modules-5.10.0-28-sh7751r-di, crc-modules-5.10.0-28-sh7751r-di +Depends: kernel-image-5.10.0-29-sh7751r-di, i2c-modules-5.10.0-29-sh7751r-di, firewire-core-modules-5.10.0-29-sh7751r-di, crc-modules-5.10.0-29-sh7751r-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7751r +Kernel-Version: 5.10.0-29-sh7751r Package-Type: udeb -Package: kernel-image-5.10.0-28-sh7785lcr-di +Package: kernel-image-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard @@ -13555,364 +13555,364 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: nic-modules-5.10.0-28-sh7785lcr-di +Package: nic-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, nic-shared-modules-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, nic-shared-modules-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-sh7785lcr-di +Package: nic-shared-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-sh7785lcr-di +Package: usb-serial-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: ppp-modules-5.10.0-28-sh7785lcr-di +Package: ppp-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: pata-modules-5.10.0-28-sh7785lcr-di +Package: pata-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-sh7785lcr-di +Package: cdrom-core-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: firewire-core-modules-5.10.0-28-sh7785lcr-di +Package: firewire-core-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: firewire-core-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: Core FireWire drivers This package contains core FireWire drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: loop-modules-5.10.0-28-sh7785lcr-di +Package: loop-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: loop-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: Loopback filesystem support This package contains loopback filesystem support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: btrfs-modules-5.10.0-28-sh7785lcr-di +Package: btrfs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di, md-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di, md-modules-5.10.0-29-sh7785lcr-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: ext4-modules-5.10.0-28-sh7785lcr-di +Package: ext4-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: isofs-modules-5.10.0-28-sh7785lcr-di +Package: isofs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, cdrom-core-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, cdrom-core-modules-5.10.0-29-sh7785lcr-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: jfs-modules-5.10.0-28-sh7785lcr-di +Package: jfs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: xfs-modules-5.10.0-28-sh7785lcr-di +Package: xfs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: fat-modules-5.10.0-28-sh7785lcr-di +Package: fat-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: minix-modules-5.10.0-28-sh7785lcr-di +Package: minix-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: minix-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: Minix filesystem support This package contains the Minix filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: squashfs-modules-5.10.0-28-sh7785lcr-di +Package: squashfs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: udf-modules-5.10.0-28-sh7785lcr-di +Package: udf-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di, cdrom-core-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di, cdrom-core-modules-5.10.0-29-sh7785lcr-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: fuse-modules-5.10.0-28-sh7785lcr-di +Package: fuse-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: f2fs-modules-5.10.0-28-sh7785lcr-di +Package: f2fs-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: md-modules-5.10.0-28-sh7785lcr-di +Package: md-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: multipath-modules-5.10.0-28-sh7785lcr-di +Package: multipath-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, md-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, md-modules-5.10.0-29-sh7785lcr-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-sh7785lcr-di +Package: nic-usb-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, nic-shared-modules-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, nic-shared-modules-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: sata-modules-5.10.0-28-sh7785lcr-di +Package: sata-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: crc-modules-5.10.0-28-sh7785lcr-di +Package: crc-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: crypto-modules-5.10.0-28-sh7785lcr-di +Package: crypto-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-sh7785lcr-di +Package: crypto-dm-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, md-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, md-modules-5.10.0-29-sh7785lcr-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: nbd-modules-5.10.0-28-sh7785lcr-di +Package: nbd-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: speakup-modules-5.10.0-28-sh7785lcr-di +Package: speakup-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: speakup-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di Description: speakup modules This package contains speakup modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: sound-modules-5.10.0-28-sh7785lcr-di +Package: sound-modules-5.10.0-29-sh7785lcr-di Architecture: sh4 Section: debian-installer Priority: optional Provides: sound-modules -Depends: kernel-image-5.10.0-28-sh7785lcr-di, firewire-core-modules-5.10.0-28-sh7785lcr-di, crc-modules-5.10.0-28-sh7785lcr-di +Depends: kernel-image-5.10.0-29-sh7785lcr-di, firewire-core-modules-5.10.0-29-sh7785lcr-di, crc-modules-5.10.0-29-sh7785lcr-di Description: sound support This package contains sound modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sh7785lcr +Kernel-Version: 5.10.0-29-sh7785lcr Package-Type: udeb -Package: linux-image-5.10.0-28-sh7751r +Package: linux-image-5.10.0-29-sh7751r Architecture: sh4 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4] Recommends: firmware-linux-free, apparmor [sh4] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [sh4], wireless-regdb (<< 2019.06.03-1~) [sh4], initramfs-tools (<< 0.120+deb8u2) @@ -13921,22 +13921,22 @@ board. Build-Profiles: -Package: linux-headers-5.10.0-28-sh7751r +Package: linux-headers-5.10.0-29-sh7751r Architecture: sh4 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-sh7751r +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-sh7751r This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-sh7751r, generally used for building out-of-tree + Linux kernel 5.10.0-29-sh7751r, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-sh7751r, and can be used for building + /usr/src/linux-headers-5.10.0-29-sh7751r, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-sh7751r package. + linux-image-5.10.0-29-sh7751r package. Build-Profiles: Package: linux-image-sh7751r Architecture: sh4 -Provides: linux-latest-modules-5.10.0-28-sh7751r, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-sh7751r (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-sh7751r, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-sh7751r (= ${binary:Version}), ${misc:Depends} Description: Linux for sh7751r (meta-package) This package depends on the latest Linux kernel and modules for use on Renesas SH7751R R2D plus board. @@ -13944,34 +13944,34 @@ Package: linux-headers-sh7751r Architecture: sh4 -Depends: linux-headers-5.10.0-28-sh7751r (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-sh7751r (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux sh7751r configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel sh7751r configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sh7751r-dbg +Package: linux-image-5.10.0-29-sh7751r-dbg Architecture: sh4 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-sh7751r +Description: Debug symbols for linux-image-5.10.0-29-sh7751r This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-sh7751r. + modules in linux-image-5.10.0-29-sh7751r. Build-Profiles: Package: linux-image-sh7751r-dbg Architecture: sh4 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-sh7751r-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-sh7751r-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux sh7751r configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel sh7751r configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sh7785lcr +Package: linux-image-5.10.0-29-sh7785lcr Architecture: sh4 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sh4] | linux-initramfs-tool [sh4] Recommends: firmware-linux-free, u-boot-tools [sh4], apparmor [sh4] Suggests: linux-doc-5.10, debian-kernel-handbook Breaks: fwupdate (<< 12-7) [sh4], wireless-regdb (<< 2019.06.03-1~) [sh4], initramfs-tools (<< 0.120+deb8u2) @@ -13980,22 +13980,22 @@ board. Build-Profiles: -Package: linux-headers-5.10.0-28-sh7785lcr +Package: linux-headers-5.10.0-29-sh7785lcr Architecture: sh4 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-sh7785lcr +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-sh7785lcr This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-sh7785lcr, generally used for building out-of-tree + Linux kernel 5.10.0-29-sh7785lcr, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-sh7785lcr, and can be used for building + /usr/src/linux-headers-5.10.0-29-sh7785lcr, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-sh7785lcr package. + linux-image-5.10.0-29-sh7785lcr package. Build-Profiles: Package: linux-image-sh7785lcr Architecture: sh4 -Provides: linux-latest-modules-5.10.0-28-sh7785lcr, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-sh7785lcr (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-sh7785lcr, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-sh7785lcr (= ${binary:Version}), ${misc:Depends} Description: Linux for sh7785lcr (meta-package) This package depends on the latest Linux kernel and modules for use on Renesas SH7785 reference board. @@ -14003,32 +14003,32 @@ Package: linux-headers-sh7785lcr Architecture: sh4 -Depends: linux-headers-5.10.0-28-sh7785lcr (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-sh7785lcr (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux sh7785lcr configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel sh7785lcr configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sh7785lcr-dbg +Package: linux-image-5.10.0-29-sh7785lcr-dbg Architecture: sh4 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-sh7785lcr +Description: Debug symbols for linux-image-5.10.0-29-sh7785lcr This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-sh7785lcr. + modules in linux-image-5.10.0-29-sh7785lcr. Build-Profiles: Package: linux-image-sh7785lcr-dbg Architecture: sh4 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-sh7785lcr-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-sh7785lcr-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux sh7785lcr configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel sh7785lcr configuration. Build-Profiles: -Package: kernel-image-5.10.0-28-sparc64-di +Package: kernel-image-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard @@ -14038,413 +14038,413 @@ installer boot images. It does _not_ provide a usable kernel for your full Debian system. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: nic-modules-5.10.0-28-sparc64-di +Package: nic-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: nic-modules, nic-extra-modules -Depends: kernel-image-5.10.0-28-sparc64-di, nic-shared-modules-5.10.0-28-sparc64-di, i2c-modules-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, nic-shared-modules-5.10.0-29-sparc64-di, i2c-modules-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: NIC drivers This package contains Ethernet and some paravirtualised network drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: nic-shared-modules-5.10.0-28-sparc64-di +Package: nic-shared-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: nic-shared-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: Shared NIC drivers This package contains NIC drivers needed by combinations of nic-modules, nic-pcmcia-modules, nic-usb-modules and nic-wireless-modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: usb-serial-modules-5.10.0-28-sparc64-di +Package: usb-serial-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: usb-serial-modules -Depends: kernel-image-5.10.0-28-sparc64-di, usb-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, usb-modules-5.10.0-29-sparc64-di Description: USB serial drivers This package contains USB serial drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: ppp-modules-5.10.0-28-sparc64-di +Package: ppp-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: ppp-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: PPP drivers This package contains PPP drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: pata-modules-5.10.0-28-sparc64-di +Package: pata-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: pata-modules -Depends: kernel-image-5.10.0-28-sparc64-di, ata-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, ata-modules-5.10.0-29-sparc64-di Description: PATA drivers This package contains PATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: cdrom-core-modules-5.10.0-28-sparc64-di +Package: cdrom-core-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: cdrom-core-modules -Depends: kernel-image-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di Description: CDROM support This package contains core CDROM support for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: scsi-core-modules-5.10.0-28-sparc64-di +Package: scsi-core-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: scsi-core-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: Core SCSI subsystem This package contains the core SCSI subsystem for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: scsi-modules-5.10.0-28-sparc64-di +Package: scsi-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: scsi-modules -Depends: kernel-image-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di, cdrom-core-modules-5.10.0-28-sparc64-di, ata-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di, cdrom-core-modules-5.10.0-29-sparc64-di, ata-modules-5.10.0-29-sparc64-di Description: SCSI drivers This package contains SCSI drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: btrfs-modules-5.10.0-28-sparc64-di +Package: btrfs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: btrfs-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di, md-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di, md-modules-5.10.0-29-sparc64-di Description: BTRFS filesystem support This package contains the BTRFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: ext4-modules-5.10.0-28-sparc64-di +Package: ext4-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: ext4-modules, ext2-modules, ext3-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: ext2/ext3/ext4 filesystem support This package contains the ext4 filesystem module for the kernel, which also supports ext2 and ext3. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: isofs-modules-5.10.0-28-sparc64-di +Package: isofs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: isofs-modules -Depends: kernel-image-5.10.0-28-sparc64-di, cdrom-core-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, cdrom-core-modules-5.10.0-29-sparc64-di Description: ISOFS filesystem support This package contains the ISOFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: jfs-modules-5.10.0-28-sparc64-di +Package: jfs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: jfs-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: JFS filesystem support This package contains the JFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: ufs-modules-5.10.0-28-sparc64-di +Package: ufs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: ufs-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: UFS filesystem support This package contains the UFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: xfs-modules-5.10.0-28-sparc64-di +Package: xfs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: xfs-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: XFS filesystem support This package contains the XFS filesystem module for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: fat-modules-5.10.0-28-sparc64-di +Package: fat-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: fat-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: FAT filesystem support This package contains the FAT and VFAT filesystem modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: squashfs-modules-5.10.0-28-sparc64-di +Package: squashfs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: squashfs-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: squashfs modules This package contains squashfs modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: udf-modules-5.10.0-28-sparc64-di +Package: udf-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: udf-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di, cdrom-core-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di, cdrom-core-modules-5.10.0-29-sparc64-di Description: UDF modules This package contains the UDF filesystem module. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: fuse-modules-5.10.0-28-sparc64-di +Package: fuse-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: fuse-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: FUSE modules This package contains the Filesystem in Userspace (FUSE) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: f2fs-modules-5.10.0-28-sparc64-di +Package: f2fs-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: f2fs-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: f2fs filesystem support This package contains the f2fs (Flash-Friendly Filesystem) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: md-modules-5.10.0-28-sparc64-di +Package: md-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: md-modules -Depends: kernel-image-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: RAID and LVM support This package contains RAID and LVM modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: multipath-modules-5.10.0-28-sparc64-di +Package: multipath-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: multipath-modules -Depends: kernel-image-5.10.0-28-sparc64-di, md-modules-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, md-modules-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di Description: Multipath support This package contains DM-Multipath modules for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: usb-modules-5.10.0-28-sparc64-di +Package: usb-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: usb-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: USB support This package contains core USB drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: usb-storage-modules-5.10.0-28-sparc64-di +Package: usb-storage-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: usb-storage-modules -Depends: kernel-image-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di, usb-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di, usb-modules-5.10.0-29-sparc64-di Description: USB storage support This package contains the USB storage driver for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: fb-modules-5.10.0-28-sparc64-di +Package: fb-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: fb-modules -Depends: kernel-image-5.10.0-28-sparc64-di, i2c-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, i2c-modules-5.10.0-29-sparc64-di Description: Frame buffer support This package contains Frame buffer drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: input-modules-5.10.0-28-sparc64-di +Package: input-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: input-modules -Depends: kernel-image-5.10.0-28-sparc64-di, usb-modules-5.10.0-28-sparc64-di, i2c-modules-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, usb-modules-5.10.0-29-sparc64-di, i2c-modules-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: Input devices support This package contains input device drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: nic-usb-modules-5.10.0-28-sparc64-di +Package: nic-usb-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: nic-usb-modules -Depends: kernel-image-5.10.0-28-sparc64-di, nic-shared-modules-5.10.0-28-sparc64-di, usb-modules-5.10.0-28-sparc64-di, crc-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, nic-shared-modules-5.10.0-29-sparc64-di, usb-modules-5.10.0-29-sparc64-di, crc-modules-5.10.0-29-sparc64-di Description: USB NIC drivers This package contains USB network adapter drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: sata-modules-5.10.0-28-sparc64-di +Package: sata-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: standard Provides: sata-modules -Depends: kernel-image-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di, ata-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di, ata-modules-5.10.0-29-sparc64-di Description: SATA drivers This package contains SATA drivers for the kernel. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: i2c-modules-5.10.0-28-sparc64-di +Package: i2c-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: i2c-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: i2c support modules This package contains basic i2c support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: crc-modules-5.10.0-28-sparc64-di +Package: crc-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: crc-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: CRC modules This package contains CRC support modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: crypto-modules-5.10.0-28-sparc64-di +Package: crypto-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: crypto-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: crypto modules This package contains crypto modules. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: crypto-dm-modules-5.10.0-28-sparc64-di +Package: crypto-dm-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: crypto-dm-modules -Depends: kernel-image-5.10.0-28-sparc64-di, md-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, md-modules-5.10.0-29-sparc64-di Description: devicemapper crypto module This package contains the devicemapper crypto (dm-crypt) module. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: ata-modules-5.10.0-28-sparc64-di +Package: ata-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: ata-modules -Depends: kernel-image-5.10.0-28-sparc64-di, scsi-core-modules-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di, scsi-core-modules-5.10.0-29-sparc64-di Description: ATA disk modules This package contains core ATA disk modules used by both PATA and SATA disk drivers. Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: nbd-modules-5.10.0-28-sparc64-di +Package: nbd-modules-5.10.0-29-sparc64-di Architecture: sparc64 Section: debian-installer Priority: optional Provides: nbd-modules -Depends: kernel-image-5.10.0-28-sparc64-di +Depends: kernel-image-5.10.0-29-sparc64-di Description: Network Block Device modules This package contains the modules required for support of the Network Block Device Build-Profiles: -Kernel-Version: 5.10.0-28-sparc64 +Kernel-Version: 5.10.0-29-sparc64 Package-Type: udeb -Package: linux-image-5.10.0-28-sparc64 +Package: linux-image-5.10.0-29-sparc64 Architecture: sparc64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64] Recommends: firmware-linux-free, apparmor [sparc64] Suggests: linux-doc-5.10, debian-kernel-handbook, fdutils [sparc64], grub-ieee1275 [sparc64] Breaks: fwupdate (<< 12-7) [sparc64], wireless-regdb (<< 2019.06.03-1~) [sparc64], initramfs-tools (<< 0.120+deb8u2) @@ -14453,22 +14453,22 @@ UltraSPARC. Build-Profiles: -Package: linux-headers-5.10.0-28-sparc64 +Package: linux-headers-5.10.0-29-sparc64 Architecture: sparc64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-sparc64 +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-sparc64 This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-sparc64, generally used for building out-of-tree + Linux kernel 5.10.0-29-sparc64, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-sparc64, and can be used for building + /usr/src/linux-headers-5.10.0-29-sparc64, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-sparc64 package. + linux-image-5.10.0-29-sparc64 package. Build-Profiles: Package: linux-image-sparc64 Architecture: sparc64 -Provides: linux-latest-modules-5.10.0-28-sparc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] -Depends: linux-image-5.10.0-28-sparc64 (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-sparc64, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386] +Depends: linux-image-5.10.0-29-sparc64 (= ${binary:Version}), ${misc:Depends} Description: Linux for uniprocessor 64-bit UltraSPARC (meta-package) This package depends on the latest Linux kernel and modules for use on uniprocessor 64-bit UltraSPARC. @@ -14476,34 +14476,34 @@ Package: linux-headers-sparc64 Architecture: sparc64 -Depends: linux-headers-5.10.0-28-sparc64 (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-sparc64 (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux sparc64 configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel sparc64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sparc64-dbg +Package: linux-image-5.10.0-29-sparc64-dbg Architecture: sparc64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-sparc64 +Description: Debug symbols for linux-image-5.10.0-29-sparc64 This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-sparc64. + modules in linux-image-5.10.0-29-sparc64. Build-Profiles: Package: linux-image-sparc64-dbg Architecture: sparc64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-sparc64-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-sparc64-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux sparc64 configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel sparc64 configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sparc64-smp +Package: linux-image-5.10.0-29-sparc64-smp Architecture: sparc64 -Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-28 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64] +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-5.10.0-29 [powerpc ppc64], ${misc:Depends}, initramfs-tools (>= 0.120+deb8u2) [sparc64] | linux-initramfs-tool [sparc64] Recommends: firmware-linux-free, apparmor [sparc64] Suggests: linux-doc-5.10, debian-kernel-handbook, fdutils [sparc64], grub-ieee1275 [sparc64] Breaks: fwupdate (<< 12-7) [sparc64], wireless-regdb (<< 2019.06.03-1~) [sparc64], initramfs-tools (<< 0.120+deb8u2) @@ -14512,22 +14512,22 @@ UltraSPARC. Build-Profiles: -Package: linux-headers-5.10.0-28-sparc64-smp +Package: linux-headers-5.10.0-29-sparc64-smp Architecture: sparc64 -Depends: linux-headers-5.10.0-28-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 -Description: Header files for Linux 5.10.0-28-sparc64-smp +Depends: linux-headers-5.10.0-29-common (= ${source:Version}), linux-kbuild-5.10 (>= ${source:Version}), ${misc:Depends}, gcc-10 +Description: Header files for Linux 5.10.0-29-sparc64-smp This package provides the architecture-specific kernel header files for - Linux kernel 5.10.0-28-sparc64-smp, generally used for building + Linux kernel 5.10.0-29-sparc64-smp, generally used for building out-of-tree kernel modules. These files are going to be installed into - /usr/src/linux-headers-5.10.0-28-sparc64-smp, and can be used for building + /usr/src/linux-headers-5.10.0-29-sparc64-smp, and can be used for building modules that load into the kernel provided by the - linux-image-5.10.0-28-sparc64-smp package. + linux-image-5.10.0-29-sparc64-smp package. Build-Profiles: Package: linux-image-sparc64-smp Architecture: sparc64 -Provides: linux-latest-modules-5.10.0-28-sparc64-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic -Depends: linux-image-5.10.0-28-sparc64-smp (= ${binary:Version}), ${misc:Depends} +Provides: linux-latest-modules-5.10.0-29-sparc64-smp, wireguard-modules (= 1.0.0), virtualbox-guest-modules [amd64 i386], linux-image-generic +Depends: linux-image-5.10.0-29-sparc64-smp (= ${binary:Version}), ${misc:Depends} Description: Linux for multiprocessor 64-bit UltraSPARC (meta-package) This package depends on the latest Linux kernel and modules for use on multiprocessor 64-bit UltraSPARC. @@ -14536,26 +14536,26 @@ Package: linux-headers-sparc64-smp Architecture: sparc64 Provides: linux-headers-generic -Depends: linux-headers-5.10.0-28-sparc64-smp (= ${binary:Version}), ${misc:Depends} +Depends: linux-headers-5.10.0-29-sparc64-smp (= ${binary:Version}), ${misc:Depends} Description: Header files for Linux sparc64-smp configuration (meta-package) This package depends on the architecture-specific header files for the latest Linux kernel sparc64-smp configuration. Build-Profiles: -Package: linux-image-5.10.0-28-sparc64-smp-dbg +Package: linux-image-5.10.0-29-sparc64-smp-dbg Architecture: sparc64 Section: debug Priority: optional Depends: ${misc:Depends} -Description: Debug symbols for linux-image-5.10.0-28-sparc64-smp +Description: Debug symbols for linux-image-5.10.0-29-sparc64-smp This package provides the detached debug symbols for the Linux kernel and - modules in linux-image-5.10.0-28-sparc64-smp. + modules in linux-image-5.10.0-29-sparc64-smp. Build-Profiles: Package: linux-image-sparc64-smp-dbg Architecture: sparc64 Provides: linux-latest-image-dbg -Depends: linux-image-5.10.0-28-sparc64-smp-dbg (= ${binary:Version}), ${misc:Depends} +Depends: linux-image-5.10.0-29-sparc64-smp-dbg (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for Linux sparc64-smp configuration (meta-package) This package depends on the detached debugging symbols for the latest Linux kernel sparc64-smp configuration. diff -Nru linux-5.10.209/debian/control.md5sum linux-5.10.216/debian/control.md5sum --- linux-5.10.209/debian/control.md5sum 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/control.md5sum 2024-05-03 12:40:24.000000000 +0000 @@ -1,5 +1,5 @@ 4910c50c27288d791de01121b7694bea debian/bin/gencontrol.py -601849584e6fa76a7beed99195e4314b debian/build/version-info +954622b24d6f44646f0791959d78acd0 debian/build/version-info fe4456d48e3218fb8980c8577d03a7ae debian/templates/control.config.in 9509e39d8e60906ebd5ee4a8b0355d25 debian/templates/control.docs.in 358db3af53a223fe60ae89c7a481609f debian/templates/control.docs.meta.in @@ -38,7 +38,7 @@ 381bc892fd36ef7ea5327f649b99cb98 debian/templates/sourcebin.meta.maintscript.in 814dda166c7e3ef02e6e259e805ac66a debian/templates/tests-control.image.in 33d71bfd398d2f9b3bc5c0193b67d17e debian/templates/tests-control.main.in -2c58f232bf56ec54c477f31a77cdfd63 debian/config/defines +f99b5a4f4df6ac84031f000095837a6e debian/config/defines 59a811890d2e7129bec940075850f11f debian/config/alpha/defines 026ce5cdad7814c28f4fd87589786719 debian/config/amd64/defines 44bff3917069a99eeb20ceff24609dda debian/config/arm64/defines diff -Nru linux-5.10.209/debian/linux-headers-4kc-malta.maintscript linux-5.10.216/debian/linux-headers-4kc-malta.maintscript --- linux-5.10.209/debian/linux-headers-4kc-malta.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-4kc-malta.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-4kc-malta linux-headers-5.10.0-28-4kc-malta 5.7~rc5-1~exp1 linux-headers-4kc-malta +dir_to_symlink /usr/share/doc/linux-headers-4kc-malta linux-headers-5.10.0-29-4kc-malta 5.7~rc5-1~exp1 linux-headers-4kc-malta diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-4kc-malta.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-4kc-malta.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-4kc-malta.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-4kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-4kc-malta"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-5kc-malta.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-5kc-malta.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-5kc-malta.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-5kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-5kc-malta"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-686-pae.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-686-pae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-686-pae.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-686-pae.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-686-pae"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-686.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-686.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-686.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-686.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-686"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-alpha-generic.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-alpha-generic.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-alpha-generic.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-alpha-generic.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-alpha-generic"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-alpha-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-alpha-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-alpha-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-alpha-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-alpha-smp"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-amd64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-amd64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-arm64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-arm64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-armmp-lpae.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-armmp-lpae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-armmp-lpae.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-armmp-lpae.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-armmp-lpae"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-armmp.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-armmp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-armmp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-armmp"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-cloud-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-cloud-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-cloud-amd64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-cloud-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-cloud-amd64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-cloud-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-cloud-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-cloud-arm64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-cloud-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-cloud-arm64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-itanium.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-itanium.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-itanium.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-itanium.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-itanium"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-loongson-3.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-loongson-3.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-loongson-3.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-loongson-3.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-loongson-3"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-m68k.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-m68k.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-m68k.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-m68k.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-m68k"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-marvell.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-marvell.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-marvell.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-marvell.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-marvell"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-mckinley.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-mckinley.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-mckinley.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-mckinley.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-mckinley"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-mips32r6.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-mips32r6.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-mips32r6.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-mips32r6.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-mips32r6"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-mips32r6el.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-mips32r6el.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-mips32r6el.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-mips32r6el.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-mips32r6el"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-mips64r6.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-mips64r6.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-mips64r6.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-mips64r6.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-mips64r6"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-mips64r6el.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-mips64r6el.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-mips64r6el.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-mips64r6el.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-mips64r6el"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-octeon.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-octeon.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-octeon.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-octeon.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-octeon"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-parisc.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-parisc.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-parisc.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-parisc.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-parisc"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-parisc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-parisc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-parisc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-parisc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-parisc64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-powerpc-smp"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-powerpc"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-powerpc64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc64le.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc64le.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-powerpc64le.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-powerpc64le.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-powerpc64le"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-riscv64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-riscv64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-riscv64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-riscv64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-riscv64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-rpi.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-rpi.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-rpi.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-rpi.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-rpi"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-rt-686-pae.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-rt-686-pae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-rt-686-pae.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-rt-686-pae.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-rt-686-pae"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-rt-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-rt-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-rt-amd64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-rt-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-rt-amd64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-rt-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-rt-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-rt-arm64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-rt-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-rt-arm64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-rt-armmp.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-rt-armmp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-rt-armmp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-rt-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-rt-armmp"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-s390x.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-s390x.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-s390x.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-s390x.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-s390x"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-sh7751r.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-sh7751r.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-sh7751r.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-sh7751r.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-sh7751r"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-sh7785lcr.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-sh7785lcr.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-sh7785lcr.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-sh7785lcr.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-sh7785lcr"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-sparc64-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-sparc64-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-sparc64-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-sparc64-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-sparc64-smp"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-28-sparc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-28-sparc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-28-sparc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-28-sparc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -#!/usr/bin/perl -# Author: Michael Gilbert -# Origin: Stripped down version of the linux-headers postinst from Ubuntu's -# 2.6.32-14-generic kernel, which was itself derived from a -# Debian linux-image postinst script. - -$|=1; -my $version = "5.10.0-28-sparc64"; - -if (-d "/etc/kernel/header_postinst.d") { - system ("run-parts --report --exit-on-error --arg=$version " . - "/etc/kernel/header_postinst.d") && - die "Failed to process /etc/kernel/header_postinst.d"; -} - -exit 0; - -__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-4kc-malta.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-4kc-malta.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-4kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-4kc-malta.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-4kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-5kc-malta.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-5kc-malta.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-5kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-5kc-malta.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-5kc-malta"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-686-pae.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-686-pae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-686-pae.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-686-pae.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-686.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-686.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-686.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-686.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-686"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-alpha-generic.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-alpha-generic.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-alpha-generic.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-alpha-generic.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-alpha-generic"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-alpha-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-alpha-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-alpha-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-alpha-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-alpha-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-amd64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-arm64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-armmp-lpae.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-armmp-lpae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-armmp-lpae.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-armmp-lpae.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-armmp-lpae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-armmp.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-armmp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-armmp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-armmp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-cloud-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-cloud-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-cloud-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-cloud-amd64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-cloud-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-cloud-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-cloud-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-cloud-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-cloud-arm64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-cloud-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-itanium.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-itanium.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-itanium.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-itanium.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-itanium"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-loongson-3.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-loongson-3.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-loongson-3.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-loongson-3.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-loongson-3"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-m68k.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-m68k.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-m68k.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-m68k.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-m68k"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-marvell.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-marvell.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-marvell.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-marvell.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-marvell"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-mckinley.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-mckinley.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-mckinley.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-mckinley.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-mckinley"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-mips32r6.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-mips32r6.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-mips32r6.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-mips32r6.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-mips32r6"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-mips32r6el.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-mips32r6el.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-mips32r6el.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-mips32r6el.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-mips32r6el"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-mips64r6.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-mips64r6.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-mips64r6.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-mips64r6.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-mips64r6"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-mips64r6el.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-mips64r6el.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-mips64r6el.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-mips64r6el.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-mips64r6el"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-octeon.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-octeon.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-octeon.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-octeon.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-octeon"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-parisc.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-parisc.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-parisc.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-parisc.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-parisc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-parisc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-parisc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-parisc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-parisc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-parisc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-powerpc-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-powerpc"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-powerpc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc64le.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc64le.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-powerpc64le.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-powerpc64le.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-powerpc64le"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-riscv64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-riscv64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-riscv64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-riscv64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-riscv64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-rpi.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-rpi.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-rpi.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-rpi.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-rpi"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-rt-686-pae.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-rt-686-pae.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-rt-686-pae.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-rt-686-pae.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-rt-686-pae"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-rt-amd64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-rt-amd64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-rt-amd64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-rt-amd64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-rt-amd64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-rt-arm64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-rt-arm64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-rt-arm64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-rt-arm64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-rt-arm64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-rt-armmp.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-rt-armmp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-rt-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-rt-armmp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-rt-armmp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-s390x.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-s390x.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-s390x.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-s390x.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-s390x"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-sh7751r.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-sh7751r.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-sh7751r.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-sh7751r.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-sh7751r"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-sh7785lcr.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-sh7785lcr.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-sh7785lcr.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-sh7785lcr.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-sh7785lcr"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-sparc64-smp.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-sparc64-smp.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-sparc64-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-sparc64-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-sparc64-smp"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5.10.0-29-sparc64.postinst linux-5.10.216/debian/linux-headers-5.10.0-29-sparc64.postinst --- linux-5.10.209/debian/linux-headers-5.10.0-29-sparc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5.10.0-29-sparc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/perl +# Author: Michael Gilbert +# Origin: Stripped down version of the linux-headers postinst from Ubuntu's +# 2.6.32-14-generic kernel, which was itself derived from a +# Debian linux-image postinst script. + +$|=1; +my $version = "5.10.0-29-sparc64"; + +if (-d "/etc/kernel/header_postinst.d") { + system ("run-parts --report --exit-on-error --arg=$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +exit 0; + +__END__ diff -Nru linux-5.10.209/debian/linux-headers-5kc-malta.maintscript linux-5.10.216/debian/linux-headers-5kc-malta.maintscript --- linux-5.10.209/debian/linux-headers-5kc-malta.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-5kc-malta.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-5kc-malta linux-headers-5.10.0-28-5kc-malta 5.7~rc5-1~exp1 linux-headers-5kc-malta +dir_to_symlink /usr/share/doc/linux-headers-5kc-malta linux-headers-5.10.0-29-5kc-malta 5.7~rc5-1~exp1 linux-headers-5kc-malta diff -Nru linux-5.10.209/debian/linux-headers-alpha-generic.maintscript linux-5.10.216/debian/linux-headers-alpha-generic.maintscript --- linux-5.10.209/debian/linux-headers-alpha-generic.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-alpha-generic.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-alpha-generic linux-headers-5.10.0-28-alpha-generic 5.7~rc5-1~exp1 linux-headers-alpha-generic +dir_to_symlink /usr/share/doc/linux-headers-alpha-generic linux-headers-5.10.0-29-alpha-generic 5.7~rc5-1~exp1 linux-headers-alpha-generic diff -Nru linux-5.10.209/debian/linux-headers-alpha-smp.maintscript linux-5.10.216/debian/linux-headers-alpha-smp.maintscript --- linux-5.10.209/debian/linux-headers-alpha-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-alpha-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-alpha-smp linux-headers-5.10.0-28-alpha-smp 5.7~rc5-1~exp1 linux-headers-alpha-smp +dir_to_symlink /usr/share/doc/linux-headers-alpha-smp linux-headers-5.10.0-29-alpha-smp 5.7~rc5-1~exp1 linux-headers-alpha-smp diff -Nru linux-5.10.209/debian/linux-headers-armmp-lpae.maintscript linux-5.10.216/debian/linux-headers-armmp-lpae.maintscript --- linux-5.10.209/debian/linux-headers-armmp-lpae.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-armmp-lpae.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-armmp-lpae linux-headers-5.10.0-28-armmp-lpae 5.7~rc5-1~exp1 linux-headers-armmp-lpae +dir_to_symlink /usr/share/doc/linux-headers-armmp-lpae linux-headers-5.10.0-29-armmp-lpae 5.7~rc5-1~exp1 linux-headers-armmp-lpae diff -Nru linux-5.10.209/debian/linux-headers-armmp.maintscript linux-5.10.216/debian/linux-headers-armmp.maintscript --- linux-5.10.209/debian/linux-headers-armmp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-armmp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-armmp linux-headers-5.10.0-28-armmp 5.7~rc5-1~exp1 linux-headers-armmp +dir_to_symlink /usr/share/doc/linux-headers-armmp linux-headers-5.10.0-29-armmp 5.7~rc5-1~exp1 linux-headers-armmp diff -Nru linux-5.10.209/debian/linux-headers-itanium.maintscript linux-5.10.216/debian/linux-headers-itanium.maintscript --- linux-5.10.209/debian/linux-headers-itanium.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-itanium.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-itanium linux-headers-5.10.0-28-itanium 5.7~rc5-1~exp1 linux-headers-itanium +dir_to_symlink /usr/share/doc/linux-headers-itanium linux-headers-5.10.0-29-itanium 5.7~rc5-1~exp1 linux-headers-itanium diff -Nru linux-5.10.209/debian/linux-headers-loongson-3.maintscript linux-5.10.216/debian/linux-headers-loongson-3.maintscript --- linux-5.10.209/debian/linux-headers-loongson-3.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-loongson-3.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-loongson-3 linux-headers-5.10.0-28-loongson-3 5.7~rc5-1~exp1 linux-headers-loongson-3 +dir_to_symlink /usr/share/doc/linux-headers-loongson-3 linux-headers-5.10.0-29-loongson-3 5.7~rc5-1~exp1 linux-headers-loongson-3 diff -Nru linux-5.10.209/debian/linux-headers-m68k.maintscript linux-5.10.216/debian/linux-headers-m68k.maintscript --- linux-5.10.209/debian/linux-headers-m68k.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-m68k.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-m68k linux-headers-5.10.0-28-m68k 5.7~rc5-1~exp1 linux-headers-m68k +dir_to_symlink /usr/share/doc/linux-headers-m68k linux-headers-5.10.0-29-m68k 5.7~rc5-1~exp1 linux-headers-m68k diff -Nru linux-5.10.209/debian/linux-headers-marvell.maintscript linux-5.10.216/debian/linux-headers-marvell.maintscript --- linux-5.10.209/debian/linux-headers-marvell.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-marvell.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-marvell linux-headers-5.10.0-28-marvell 5.7~rc5-1~exp1 linux-headers-marvell +dir_to_symlink /usr/share/doc/linux-headers-marvell linux-headers-5.10.0-29-marvell 5.7~rc5-1~exp1 linux-headers-marvell diff -Nru linux-5.10.209/debian/linux-headers-mckinley.maintscript linux-5.10.216/debian/linux-headers-mckinley.maintscript --- linux-5.10.209/debian/linux-headers-mckinley.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-mckinley.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-mckinley linux-headers-5.10.0-28-mckinley 5.7~rc5-1~exp1 linux-headers-mckinley +dir_to_symlink /usr/share/doc/linux-headers-mckinley linux-headers-5.10.0-29-mckinley 5.7~rc5-1~exp1 linux-headers-mckinley diff -Nru linux-5.10.209/debian/linux-headers-mips32r6.maintscript linux-5.10.216/debian/linux-headers-mips32r6.maintscript --- linux-5.10.209/debian/linux-headers-mips32r6.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-mips32r6.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-mips32r6 linux-headers-5.10.0-28-mips32r6 5.7~rc5-1~exp1 linux-headers-mips32r6 +dir_to_symlink /usr/share/doc/linux-headers-mips32r6 linux-headers-5.10.0-29-mips32r6 5.7~rc5-1~exp1 linux-headers-mips32r6 diff -Nru linux-5.10.209/debian/linux-headers-mips32r6el.maintscript linux-5.10.216/debian/linux-headers-mips32r6el.maintscript --- linux-5.10.209/debian/linux-headers-mips32r6el.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-mips32r6el.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-mips32r6el linux-headers-5.10.0-28-mips32r6el 5.7~rc5-1~exp1 linux-headers-mips32r6el +dir_to_symlink /usr/share/doc/linux-headers-mips32r6el linux-headers-5.10.0-29-mips32r6el 5.7~rc5-1~exp1 linux-headers-mips32r6el diff -Nru linux-5.10.209/debian/linux-headers-mips64r6.maintscript linux-5.10.216/debian/linux-headers-mips64r6.maintscript --- linux-5.10.209/debian/linux-headers-mips64r6.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-mips64r6.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-mips64r6 linux-headers-5.10.0-28-mips64r6 5.7~rc5-1~exp1 linux-headers-mips64r6 +dir_to_symlink /usr/share/doc/linux-headers-mips64r6 linux-headers-5.10.0-29-mips64r6 5.7~rc5-1~exp1 linux-headers-mips64r6 diff -Nru linux-5.10.209/debian/linux-headers-mips64r6el.maintscript linux-5.10.216/debian/linux-headers-mips64r6el.maintscript --- linux-5.10.209/debian/linux-headers-mips64r6el.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-mips64r6el.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-mips64r6el linux-headers-5.10.0-28-mips64r6el 5.7~rc5-1~exp1 linux-headers-mips64r6el +dir_to_symlink /usr/share/doc/linux-headers-mips64r6el linux-headers-5.10.0-29-mips64r6el 5.7~rc5-1~exp1 linux-headers-mips64r6el diff -Nru linux-5.10.209/debian/linux-headers-octeon.maintscript linux-5.10.216/debian/linux-headers-octeon.maintscript --- linux-5.10.209/debian/linux-headers-octeon.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-octeon.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-octeon linux-headers-5.10.0-28-octeon 5.7~rc5-1~exp1 linux-headers-octeon +dir_to_symlink /usr/share/doc/linux-headers-octeon linux-headers-5.10.0-29-octeon 5.7~rc5-1~exp1 linux-headers-octeon diff -Nru linux-5.10.209/debian/linux-headers-parisc.maintscript linux-5.10.216/debian/linux-headers-parisc.maintscript --- linux-5.10.209/debian/linux-headers-parisc.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-parisc.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-parisc linux-headers-5.10.0-28-parisc 5.7~rc5-1~exp1 linux-headers-parisc +dir_to_symlink /usr/share/doc/linux-headers-parisc linux-headers-5.10.0-29-parisc 5.7~rc5-1~exp1 linux-headers-parisc diff -Nru linux-5.10.209/debian/linux-headers-parisc64.maintscript linux-5.10.216/debian/linux-headers-parisc64.maintscript --- linux-5.10.209/debian/linux-headers-parisc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-parisc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-parisc64 linux-headers-5.10.0-28-parisc64 5.7~rc5-1~exp1 linux-headers-parisc64 +dir_to_symlink /usr/share/doc/linux-headers-parisc64 linux-headers-5.10.0-29-parisc64 5.7~rc5-1~exp1 linux-headers-parisc64 diff -Nru linux-5.10.209/debian/linux-headers-powerpc-smp.maintscript linux-5.10.216/debian/linux-headers-powerpc-smp.maintscript --- linux-5.10.209/debian/linux-headers-powerpc-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-powerpc-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-powerpc-smp linux-headers-5.10.0-28-powerpc-smp 5.7~rc5-1~exp1 linux-headers-powerpc-smp +dir_to_symlink /usr/share/doc/linux-headers-powerpc-smp linux-headers-5.10.0-29-powerpc-smp 5.7~rc5-1~exp1 linux-headers-powerpc-smp diff -Nru linux-5.10.209/debian/linux-headers-powerpc.maintscript linux-5.10.216/debian/linux-headers-powerpc.maintscript --- linux-5.10.209/debian/linux-headers-powerpc.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-powerpc.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-powerpc linux-headers-5.10.0-28-powerpc 5.7~rc5-1~exp1 linux-headers-powerpc +dir_to_symlink /usr/share/doc/linux-headers-powerpc linux-headers-5.10.0-29-powerpc 5.7~rc5-1~exp1 linux-headers-powerpc diff -Nru linux-5.10.209/debian/linux-headers-powerpc64.maintscript linux-5.10.216/debian/linux-headers-powerpc64.maintscript --- linux-5.10.209/debian/linux-headers-powerpc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-powerpc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-powerpc64 linux-headers-5.10.0-28-powerpc64 5.7~rc5-1~exp1 linux-headers-powerpc64 +dir_to_symlink /usr/share/doc/linux-headers-powerpc64 linux-headers-5.10.0-29-powerpc64 5.7~rc5-1~exp1 linux-headers-powerpc64 diff -Nru linux-5.10.209/debian/linux-headers-powerpc64le.maintscript linux-5.10.216/debian/linux-headers-powerpc64le.maintscript --- linux-5.10.209/debian/linux-headers-powerpc64le.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-powerpc64le.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-powerpc64le linux-headers-5.10.0-28-powerpc64le 5.7~rc5-1~exp1 linux-headers-powerpc64le +dir_to_symlink /usr/share/doc/linux-headers-powerpc64le linux-headers-5.10.0-29-powerpc64le 5.7~rc5-1~exp1 linux-headers-powerpc64le diff -Nru linux-5.10.209/debian/linux-headers-riscv64.maintscript linux-5.10.216/debian/linux-headers-riscv64.maintscript --- linux-5.10.209/debian/linux-headers-riscv64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-riscv64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-riscv64 linux-headers-5.10.0-28-riscv64 5.7~rc5-1~exp1 linux-headers-riscv64 +dir_to_symlink /usr/share/doc/linux-headers-riscv64 linux-headers-5.10.0-29-riscv64 5.7~rc5-1~exp1 linux-headers-riscv64 diff -Nru linux-5.10.209/debian/linux-headers-rpi.maintscript linux-5.10.216/debian/linux-headers-rpi.maintscript --- linux-5.10.209/debian/linux-headers-rpi.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-rpi.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-rpi linux-headers-5.10.0-28-rpi 5.7~rc5-1~exp1 linux-headers-rpi +dir_to_symlink /usr/share/doc/linux-headers-rpi linux-headers-5.10.0-29-rpi 5.7~rc5-1~exp1 linux-headers-rpi diff -Nru linux-5.10.209/debian/linux-headers-rt-armmp.maintscript linux-5.10.216/debian/linux-headers-rt-armmp.maintscript --- linux-5.10.209/debian/linux-headers-rt-armmp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-rt-armmp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-rt-armmp linux-headers-5.10.0-28-rt-armmp 5.7~rc5-1~exp1 linux-headers-rt-armmp +dir_to_symlink /usr/share/doc/linux-headers-rt-armmp linux-headers-5.10.0-29-rt-armmp 5.7~rc5-1~exp1 linux-headers-rt-armmp diff -Nru linux-5.10.209/debian/linux-headers-s390x.maintscript linux-5.10.216/debian/linux-headers-s390x.maintscript --- linux-5.10.209/debian/linux-headers-s390x.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-s390x.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-s390x linux-headers-5.10.0-28-s390x 5.7~rc5-1~exp1 linux-headers-s390x +dir_to_symlink /usr/share/doc/linux-headers-s390x linux-headers-5.10.0-29-s390x 5.7~rc5-1~exp1 linux-headers-s390x diff -Nru linux-5.10.209/debian/linux-headers-sh7751r.maintscript linux-5.10.216/debian/linux-headers-sh7751r.maintscript --- linux-5.10.209/debian/linux-headers-sh7751r.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-sh7751r.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-sh7751r linux-headers-5.10.0-28-sh7751r 5.7~rc5-1~exp1 linux-headers-sh7751r +dir_to_symlink /usr/share/doc/linux-headers-sh7751r linux-headers-5.10.0-29-sh7751r 5.7~rc5-1~exp1 linux-headers-sh7751r diff -Nru linux-5.10.209/debian/linux-headers-sh7785lcr.maintscript linux-5.10.216/debian/linux-headers-sh7785lcr.maintscript --- linux-5.10.209/debian/linux-headers-sh7785lcr.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-sh7785lcr.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-sh7785lcr linux-headers-5.10.0-28-sh7785lcr 5.7~rc5-1~exp1 linux-headers-sh7785lcr +dir_to_symlink /usr/share/doc/linux-headers-sh7785lcr linux-headers-5.10.0-29-sh7785lcr 5.7~rc5-1~exp1 linux-headers-sh7785lcr diff -Nru linux-5.10.209/debian/linux-headers-sparc64-smp.maintscript linux-5.10.216/debian/linux-headers-sparc64-smp.maintscript --- linux-5.10.209/debian/linux-headers-sparc64-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-sparc64-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-sparc64-smp linux-headers-5.10.0-28-sparc64-smp 5.7~rc5-1~exp1 linux-headers-sparc64-smp +dir_to_symlink /usr/share/doc/linux-headers-sparc64-smp linux-headers-5.10.0-29-sparc64-smp 5.7~rc5-1~exp1 linux-headers-sparc64-smp diff -Nru linux-5.10.209/debian/linux-headers-sparc64.maintscript linux-5.10.216/debian/linux-headers-sparc64.maintscript --- linux-5.10.209/debian/linux-headers-sparc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-headers-sparc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-headers-sparc64 linux-headers-5.10.0-28-sparc64 5.7~rc5-1~exp1 linux-headers-sparc64 +dir_to_symlink /usr/share/doc/linux-headers-sparc64 linux-headers-5.10.0-29-sparc64 5.7~rc5-1~exp1 linux-headers-sparc64 diff -Nru linux-5.10.209/debian/linux-image-4kc-malta-dbg.maintscript linux-5.10.216/debian/linux-image-4kc-malta-dbg.maintscript --- linux-5.10.209/debian/linux-image-4kc-malta-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-4kc-malta-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-4kc-malta-dbg linux-image-5.10.0-28-4kc-malta-dbg 5.7~rc5-1~exp1 linux-image-4kc-malta-dbg +dir_to_symlink /usr/share/doc/linux-image-4kc-malta-dbg linux-image-5.10.0-29-4kc-malta-dbg 5.7~rc5-1~exp1 linux-image-4kc-malta-dbg diff -Nru linux-5.10.209/debian/linux-image-4kc-malta.bug-presubj linux-5.10.216/debian/linux-image-4kc-malta.bug-presubj --- linux-5.10.209/debian/linux-image-4kc-malta.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-4kc-malta.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-4kc-malta instead. +the package name linux-image-5.10.0-29-4kc-malta instead. diff -Nru linux-5.10.209/debian/linux-image-4kc-malta.maintscript linux-5.10.216/debian/linux-image-4kc-malta.maintscript --- linux-5.10.209/debian/linux-image-4kc-malta.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-4kc-malta.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-4kc-malta linux-image-5.10.0-28-4kc-malta 5.7~rc5-1~exp1 linux-image-4kc-malta +dir_to_symlink /usr/share/doc/linux-image-4kc-malta linux-image-5.10.0-29-4kc-malta 5.7~rc5-1~exp1 linux-image-4kc-malta diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-4kc-malta-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-4kc-malta/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.postinst linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-4kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.postrm linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-4kc-malta -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.preinst linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-4kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.prerm linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-4kc-malta.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-4kc-malta.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-4kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-5kc-malta-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-5kc-malta/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.postinst linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-5kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.postrm linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-5kc-malta -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.preinst linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-5kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.prerm linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-5kc-malta.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-5kc-malta.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-5kc-malta -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-686-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-686-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-686-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-686/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-686-pae-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-686-pae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686-pae -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-686-pae-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-pae-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-686-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-686-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-686 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-alpha-generic-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-alpha-generic/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.postinst linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-generic -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.postrm linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-generic -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.preinst linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-generic -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.prerm linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-generic.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-generic.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-generic -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-alpha-smp-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-alpha-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-smp -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-smp -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-smp -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-alpha-smp.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-alpha-smp.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-alpha-smp -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-amd64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-amd64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-amd64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-amd64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-arm64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-arm64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-arm64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-arm64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-armmp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-armmp-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-armmp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-armmp-lpae-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-armmp-lpae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.postinst linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp-lpae -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.postrm linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp-lpae -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.preinst linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp-lpae -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.prerm linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp-lpae.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp-lpae.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp-lpae -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp.postinst linux-5.10.216/debian/linux-image-5.10.0-28-armmp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp.postrm linux-5.10.216/debian/linux-image-5.10.0-28-armmp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp.preinst linux-5.10.216/debian/linux-image-5.10.0-28-armmp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-armmp.prerm linux-5.10.216/debian/linux-image-5.10.0-28-armmp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-armmp.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-armmp.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-cloud-amd64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-cloud-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-amd64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-cloud-arm64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-cloud-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-cloud-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-cloud-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-arm64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-cloud-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-cloud-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-itanium-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-itanium-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-itanium-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-itanium-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-itanium-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-itanium/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-itanium.postinst linux-5.10.216/debian/linux-image-5.10.0-28-itanium.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-itanium.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-itanium.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-itanium -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-itanium.postrm linux-5.10.216/debian/linux-image-5.10.0-28-itanium.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-itanium.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-itanium.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-itanium -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-itanium.preinst linux-5.10.216/debian/linux-image-5.10.0-28-itanium.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-itanium.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-itanium.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-itanium -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-itanium.prerm linux-5.10.216/debian/linux-image-5.10.0-28-itanium.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-itanium.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-itanium.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-itanium -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-loongson-3-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-loongson-3/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.postinst linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-loongson-3 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.postrm linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-loongson-3 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.preinst linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-loongson-3 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.prerm linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-loongson-3.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-loongson-3.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-loongson-3 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-m68k-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-m68k-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-m68k-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-m68k-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-m68k-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-m68k/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-m68k.postinst linux-5.10.216/debian/linux-image-5.10.0-28-m68k.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-m68k.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-m68k.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-m68k -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-m68k.postrm linux-5.10.216/debian/linux-image-5.10.0-28-m68k.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-m68k.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-m68k.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-m68k -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-m68k.preinst linux-5.10.216/debian/linux-image-5.10.0-28-m68k.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-m68k.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-m68k.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-m68k -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-m68k.prerm linux-5.10.216/debian/linux-image-5.10.0-28-m68k.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-m68k.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-m68k.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-m68k -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-marvell-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-marvell-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-marvell-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-marvell-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-marvell-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-marvell/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-marvell.postinst linux-5.10.216/debian/linux-image-5.10.0-28-marvell.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-marvell.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-marvell.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-marvell -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-marvell.postrm linux-5.10.216/debian/linux-image-5.10.0-28-marvell.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-marvell.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-marvell.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-marvell -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-marvell.preinst linux-5.10.216/debian/linux-image-5.10.0-28-marvell.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-marvell.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-marvell.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-marvell -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-marvell.prerm linux-5.10.216/debian/linux-image-5.10.0-28-marvell.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-marvell.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-marvell.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-marvell -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mckinley-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-mckinley-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-mckinley-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mckinley-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-mckinley-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mckinley/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.postinst linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mckinley -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.postrm linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mckinley -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.preinst linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mckinley -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.prerm linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-mckinley.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mckinley.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mckinley -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-mips32r6-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips32r6/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.postinst linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6 -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.postrm linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6 -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.preinst linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6 -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.prerm linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6 -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-mips32r6el-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips32r6el/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.postinst linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6el -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.postrm linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6el -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.preinst linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6el -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.prerm linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips32r6el.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips32r6el.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips32r6el -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-mips64r6-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips64r6/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.postinst linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6 -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.postrm linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6 -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.preinst linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6 -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.prerm linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6 -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-mips64r6el-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-mips64r6el/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.postinst linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6el -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.postrm linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6el -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.preinst linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6el -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.prerm linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-mips64r6el.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-mips64r6el.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-mips64r6el -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-octeon-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-octeon-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-octeon-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-octeon-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-octeon-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-octeon/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-octeon.postinst linux-5.10.216/debian/linux-image-5.10.0-28-octeon.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-octeon.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-octeon.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-octeon -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-octeon.postrm linux-5.10.216/debian/linux-image-5.10.0-28-octeon.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-octeon.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-octeon.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-octeon -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-octeon.preinst linux-5.10.216/debian/linux-image-5.10.0-28-octeon.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-octeon.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-octeon.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-octeon -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-octeon.prerm linux-5.10.216/debian/linux-image-5.10.0-28-octeon.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-octeon.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-octeon.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-octeon -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc.postinst linux-5.10.216/debian/linux-image-5.10.0-28-parisc.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc.postrm linux-5.10.216/debian/linux-image-5.10.0-28-parisc.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc.preinst linux-5.10.216/debian/linux-image-5.10.0-28-parisc.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc.prerm linux-5.10.216/debian/linux-image-5.10.0-28-parisc.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.postinst linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.postrm linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.preinst linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.prerm linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-parisc64.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-parisc64.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-parisc64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-powerpc-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-powerpc-smp-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc-smp -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc-smp -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc-smp -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc-smp.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc-smp.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc-smp -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.postinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.postrm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.preinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.prerm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-powerpc64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.postinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64 -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.postrm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64 -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.preinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64 -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.prerm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64 -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-powerpc64le-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-powerpc64le/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.postinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64le -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.postrm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64le -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.preinst linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64le -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.prerm linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-powerpc64le.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-powerpc64le.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-powerpc64le -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-riscv64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-riscv64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-riscv64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-riscv64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-riscv64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-riscv64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.postinst linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-riscv64 -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.postrm linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-riscv64 -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.preinst linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-riscv64 -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.prerm linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-riscv64.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-riscv64.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-riscv64 -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rpi-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-rpi-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-rpi-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rpi-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-rpi-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rpi/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rpi.postinst linux-5.10.216/debian/linux-image-5.10.0-28-rpi.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rpi.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rpi.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rpi -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rpi.postrm linux-5.10.216/debian/linux-image-5.10.0-28-rpi.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-rpi.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rpi.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rpi -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rpi.preinst linux-5.10.216/debian/linux-image-5.10.0-28-rpi.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rpi.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rpi.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rpi -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rpi.prerm linux-5.10.216/debian/linux-image-5.10.0-28-rpi.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-rpi.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rpi.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rpi -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-rt-686-pae-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-686-pae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-686-pae -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-686-pae-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-686-pae -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-rt-amd64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-amd64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-amd64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-amd64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-rt-arm64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-arm64 -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-arm64-unsigned.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-arm64 -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-rt-armmp-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-rt-armmp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.postinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.postrm linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-armmp -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.preinst linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.prerm linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-rt-armmp.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-rt-armmp.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-rt-armmp -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-s390x-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-s390x-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-s390x-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-s390x-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-s390x-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-s390x/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-s390x.postinst linux-5.10.216/debian/linux-image-5.10.0-28-s390x.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-s390x.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-s390x.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-s390x -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-s390x.postrm linux-5.10.216/debian/linux-image-5.10.0-28-s390x.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-s390x.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-s390x.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-s390x -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-s390x.preinst linux-5.10.216/debian/linux-image-5.10.0-28-s390x.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-s390x.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-s390x.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-s390x -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-s390x.prerm linux-5.10.216/debian/linux-image-5.10.0-28-s390x.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-s390x.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-s390x.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-s390x -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-sh7751r-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sh7751r/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.postinst linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7751r -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.postrm linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7751r -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.preinst linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7751r -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.prerm linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7751r.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7751r.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7751r -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-sh7785lcr-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sh7785lcr/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.postinst linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7785lcr -image_path=/boot/vmlinuz-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.postrm linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7785lcr -image_path=/boot/vmlinuz-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.preinst linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7785lcr -image_path=/boot/vmlinuz-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.prerm linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-sh7785lcr.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sh7785lcr.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sh7785lcr -image_path=/boot/vmlinuz-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-sparc64-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sparc64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp-dbg.lintian-overrides 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/dh-exec - -# Kernel dbg packages contain a full image with debug data -linux-image-5.10.0-28-sparc64-smp-dbg: dbg-package-missing-depends - -# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so -# it's OK that they don't have it -[arm64 armhf] linux-image-5.10.0-28-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdso.so -[amd64 i386 ppc64el s390x] linux-image-5.10.0-28-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdso32.so -[amd64 ppc64el s390x] linux-image-5.10.0-28-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdso64.so -[amd64] linux-image-5.10.0-28-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdsox32.so - -# It is intended that 64-bit kernels provide vDSOs for 32-bit executables -[amd64 ppc64el s390x] linux-image-5.10.0-28-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdso32.so -[amd64] linux-image-5.10.0-28-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-28-sparc64-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64-smp -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64-smp -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64-smp -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64-smp.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64-smp.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64-smp -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.postinst linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.postinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64 -image_path=/boot/vmlinux-$version - -if [ "$1" != configure ]; then - exit 0 -fi - -depmod $version - -if [ -f /lib/modules/$version/.fresh-install ]; then - change=install -else - change=upgrade -fi -linux-update-symlinks $change $version $image_path -rm -f /lib/modules/$version/.fresh-install - -if [ -d /etc/kernel/postinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.postrm linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.postrm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64 -image_path=/boot/vmlinux-$version - -rm -f /lib/modules/$version/.fresh-install - -if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then - linux-update-symlinks remove $version $image_path -fi - -if [ -d /etc/kernel/postrm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/postrm.d -fi - -if [ "$1" = purge ]; then - for extra_file in modules.dep modules.isapnpmap modules.pcimap \ - modules.usbmap modules.parportmap \ - modules.generic_string modules.ieee1394map \ - modules.ieee1394map modules.pnpbiosmap \ - modules.alias modules.ccwmap modules.inputmap \ - modules.symbols modules.ofmap \ - modules.seriomap modules.\*.bin \ - modules.softdep modules.devname; do - eval rm -f /lib/modules/$version/$extra_file - done - rmdir /lib/modules/$version || true -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.preinst linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.preinst 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.preinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64 -image_path=/boot/vmlinux-$version - -if [ "$1" = abort-upgrade ]; then - exit 0 -fi - -if [ "$1" = install ]; then - # Create a flag file for postinst - mkdir -p /lib/modules/$version - touch /lib/modules/$version/.fresh-install -fi - -if [ -d /etc/kernel/preinst.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/preinst.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.prerm linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-28-sparc64.prerm 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-28-sparc64.prerm 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh -e - -version=5.10.0-28-sparc64 -image_path=/boot/vmlinux-$version - -if [ "$1" != remove ]; then - exit 0 -fi - -linux-check-removal $version - -if [ -d /etc/kernel/prerm.d ]; then - DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ - --arg=$image_path /etc/kernel/prerm.d -fi - -exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-4kc-malta-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-4kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-4kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-4kc-malta/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.postinst linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-4kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.postrm linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-4kc-malta +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.preinst linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-4kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.prerm linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-4kc-malta.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-4kc-malta.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-4kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-5kc-malta-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-5kc-malta-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-5kc-malta-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-5kc-malta/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.postinst linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-5kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.postrm linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-5kc-malta +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.preinst linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-5kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.prerm linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-5kc-malta.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-5kc-malta.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-5kc-malta +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-686-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-686-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-686-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-686-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-686-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-686/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-686-pae-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-686-pae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-686-pae-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-pae-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-686 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-686-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-686-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-686 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-alpha-generic-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-alpha-generic-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-alpha-generic-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-alpha-generic/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.postinst linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.postrm linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-generic +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.preinst linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.prerm linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-generic.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-generic.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-generic +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-alpha-smp-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-alpha-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-alpha-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-alpha-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-smp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-alpha-smp.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-alpha-smp.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-alpha-smp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-amd64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-amd64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-amd64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-arm64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-arm64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-arm64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-armmp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-armmp-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-armmp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-armmp-lpae-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-armmp-lpae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-armmp-lpae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-armmp-lpae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.postinst linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.postrm linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp-lpae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.preinst linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.prerm linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp-lpae.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp-lpae.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp-lpae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp.postinst linux-5.10.216/debian/linux-image-5.10.0-29-armmp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp.postrm linux-5.10.216/debian/linux-image-5.10.0-29-armmp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp.preinst linux-5.10.216/debian/linux-image-5.10.0-29-armmp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-armmp.prerm linux-5.10.216/debian/linux-image-5.10.0-29-armmp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-armmp.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-armmp.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-cloud-amd64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-cloud-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-cloud-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-cloud-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-amd64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-cloud-arm64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-cloud-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-cloud-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-cloud-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-cloud-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-cloud-arm64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-cloud-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-itanium-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-itanium-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-itanium-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-itanium-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-itanium-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-itanium-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-itanium-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-itanium/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-itanium.postinst linux-5.10.216/debian/linux-image-5.10.0-29-itanium.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-itanium.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-itanium.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-itanium +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-itanium.postrm linux-5.10.216/debian/linux-image-5.10.0-29-itanium.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-itanium.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-itanium.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-itanium +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-itanium.preinst linux-5.10.216/debian/linux-image-5.10.0-29-itanium.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-itanium.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-itanium.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-itanium +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-itanium.prerm linux-5.10.216/debian/linux-image-5.10.0-29-itanium.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-itanium.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-itanium.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-itanium +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-loongson-3-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-loongson-3-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-loongson-3-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-loongson-3/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.postinst linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-loongson-3 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.postrm linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-loongson-3 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.preinst linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-loongson-3 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.prerm linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-loongson-3.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-loongson-3.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-loongson-3 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-m68k-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-m68k-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-m68k-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-m68k-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-m68k-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-m68k-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-m68k-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-m68k/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-m68k.postinst linux-5.10.216/debian/linux-image-5.10.0-29-m68k.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-m68k.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-m68k.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-m68k +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-m68k.postrm linux-5.10.216/debian/linux-image-5.10.0-29-m68k.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-m68k.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-m68k.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-m68k +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-m68k.preinst linux-5.10.216/debian/linux-image-5.10.0-29-m68k.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-m68k.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-m68k.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-m68k +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-m68k.prerm linux-5.10.216/debian/linux-image-5.10.0-29-m68k.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-m68k.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-m68k.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-m68k +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-marvell-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-marvell-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-marvell-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-marvell-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-marvell-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-marvell-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-marvell-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-marvell/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-marvell.postinst linux-5.10.216/debian/linux-image-5.10.0-29-marvell.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-marvell.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-marvell.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-marvell.postrm linux-5.10.216/debian/linux-image-5.10.0-29-marvell.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-marvell.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-marvell.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-marvell +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-marvell.preinst linux-5.10.216/debian/linux-image-5.10.0-29-marvell.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-marvell.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-marvell.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-marvell.prerm linux-5.10.216/debian/linux-image-5.10.0-29-marvell.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-marvell.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-marvell.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-marvell +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mckinley-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-mckinley-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-mckinley-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mckinley-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-mckinley-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-mckinley-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-mckinley-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mckinley/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.postinst linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-mckinley +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.postrm linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-mckinley +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.preinst linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-mckinley +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.prerm linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-mckinley.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mckinley.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-mckinley +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-mips32r6-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-mips32r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-mips32r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips32r6/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.postinst linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.postrm linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.preinst linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.prerm linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-mips32r6el-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-mips32r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-mips32r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips32r6el/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.postinst linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6el +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.postrm linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6el +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.preinst linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6el +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.prerm linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips32r6el.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips32r6el.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-mips32r6el +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-mips64r6-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-mips64r6-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-mips64r6-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips64r6/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.postinst linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.postrm linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.preinst linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.prerm linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-mips64r6el-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-mips64r6el-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-mips64r6el-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-mips64r6el/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.postinst linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6el +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.postrm linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6el +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.preinst linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6el +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.prerm linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-mips64r6el.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-mips64r6el.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-mips64r6el +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-octeon-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-octeon-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-octeon-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-octeon-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-octeon-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-octeon-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-octeon-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-octeon/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-octeon.postinst linux-5.10.216/debian/linux-image-5.10.0-29-octeon.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-octeon.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-octeon.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-octeon.postrm linux-5.10.216/debian/linux-image-5.10.0-29-octeon.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-octeon.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-octeon.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-octeon +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-octeon.preinst linux-5.10.216/debian/linux-image-5.10.0-29-octeon.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-octeon.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-octeon.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-octeon.prerm linux-5.10.216/debian/linux-image-5.10.0-29-octeon.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-octeon.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-octeon.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-octeon +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc.postinst linux-5.10.216/debian/linux-image-5.10.0-29-parisc.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc.postrm linux-5.10.216/debian/linux-image-5.10.0-29-parisc.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc.preinst linux-5.10.216/debian/linux-image-5.10.0-29-parisc.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc.prerm linux-5.10.216/debian/linux-image-5.10.0-29-parisc.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.postinst linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.postrm linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.preinst linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.prerm linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-parisc64.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-parisc64.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-parisc64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-powerpc-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-powerpc-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-powerpc-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-powerpc-smp-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-powerpc-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-powerpc-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc-smp.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc-smp.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.postinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.postrm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.preinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.prerm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-powerpc64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-powerpc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-powerpc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.postinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.postrm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.preinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.prerm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-powerpc64le-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-powerpc64le-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-powerpc64le-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-powerpc64le/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.postinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.postrm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64le +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.preinst linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.prerm linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-powerpc64le.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-powerpc64le.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-powerpc64le +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-riscv64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-riscv64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-riscv64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-riscv64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-riscv64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-riscv64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-riscv64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-riscv64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.postinst linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-riscv64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.postrm linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-riscv64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.preinst linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-riscv64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.prerm linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-riscv64.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-riscv64.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-riscv64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rpi-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-rpi-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-rpi-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rpi-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-rpi-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-rpi-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-rpi-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rpi/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rpi.postinst linux-5.10.216/debian/linux-image-5.10.0-29-rpi.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rpi.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rpi.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-rpi +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rpi.postrm linux-5.10.216/debian/linux-image-5.10.0-29-rpi.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-rpi.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rpi.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-rpi +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rpi.preinst linux-5.10.216/debian/linux-image-5.10.0-29-rpi.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rpi.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rpi.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-rpi +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rpi.prerm linux-5.10.216/debian/linux-image-5.10.0-29-rpi.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-rpi.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rpi.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-rpi +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-rt-686-pae-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-rt-686-pae-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-rt-686-pae-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-686-pae/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-686-pae +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-686-pae-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-686-pae +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-rt-amd64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-rt-amd64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-rt-amd64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-amd64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-amd64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-amd64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-amd64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-amd64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-rt-arm64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-rt-arm64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-rt-arm64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-arm64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postrm linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-arm64 +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.preinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.prerm linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-arm64-unsigned.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-arm64-unsigned.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-arm64 +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-rt-armmp-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-rt-armmp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-rt-armmp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-rt-armmp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.postinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.postrm linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-armmp +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.preinst linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.prerm linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-rt-armmp.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-rt-armmp.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-rt-armmp +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-s390x-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-s390x-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-s390x-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-s390x-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-s390x-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-s390x-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-s390x-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-s390x/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-s390x.postinst linux-5.10.216/debian/linux-image-5.10.0-29-s390x.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-s390x.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-s390x.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-s390x.postrm linux-5.10.216/debian/linux-image-5.10.0-29-s390x.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-s390x.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-s390x.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-s390x +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-s390x.preinst linux-5.10.216/debian/linux-image-5.10.0-29-s390x.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-s390x.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-s390x.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-s390x.prerm linux-5.10.216/debian/linux-image-5.10.0-29-s390x.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-s390x.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-s390x.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-s390x +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-sh7751r-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-sh7751r-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-sh7751r-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sh7751r/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.postinst linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.postrm linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7751r +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.preinst linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.prerm linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7751r.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7751r.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7751r +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-sh7785lcr-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-sh7785lcr-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-sh7785lcr-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sh7785lcr/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.postinst linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.postrm linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7785lcr +image_path=/boot/vmlinuz-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.preinst linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.prerm linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-sh7785lcr.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sh7785lcr.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-sh7785lcr +image_path=/boot/vmlinuz-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-sparc64-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-sparc64-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-sparc64-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sparc64/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp-dbg.lintian-overrides linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp-dbg.lintian-overrides --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp-dbg.lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp-dbg.lintian-overrides 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/usr/bin/dh-exec + +# Kernel dbg packages contain a full image with debug data +linux-image-5.10.0-29-sparc64-smp-dbg: dbg-package-missing-depends + +# glibc doesn't seem to check for a PT_GNU_STACK section in vDSOs, so +# it's OK that they don't have it +[arm64 armhf] linux-image-5.10.0-29-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdso.so +[amd64 i386 ppc64el s390x] linux-image-5.10.0-29-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdso32.so +[amd64 ppc64el s390x] linux-image-5.10.0-29-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdso64.so +[amd64] linux-image-5.10.0-29-sparc64-smp-dbg: shlib-without-PT_GNU_STACK-section usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdsox32.so + +# It is intended that 64-bit kernels provide vDSOs for 32-bit executables +[amd64 ppc64el s390x] linux-image-5.10.0-29-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdso32.so +[amd64] linux-image-5.10.0-29-sparc64-smp-dbg: binary-from-other-architecture usr/lib/debug/lib/modules/5.10.0-29-sparc64-smp/vdso/vdsox32.so diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.postinst linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.postrm linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64-smp +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.preinst linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.prerm linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64-smp.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64-smp.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64-smp +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.postinst linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.postinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.postinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.postinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,25 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != configure ]; then + exit 0 +fi + +depmod $version + +if [ -f /lib/modules/$version/.fresh-install ]; then + change=install +else + change=upgrade +fi +linux-update-symlinks $change $version $image_path +rm -f /lib/modules/$version/.fresh-install + +if [ -d /etc/kernel/postinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.postrm linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.postrm --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.postrm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.postrm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64 +image_path=/boot/vmlinux-$version + +rm -f /lib/modules/$version/.fresh-install + +if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then + linux-update-symlinks remove $version $image_path +fi + +if [ -d /etc/kernel/postrm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/postrm.d +fi + +if [ "$1" = purge ]; then + for extra_file in modules.dep modules.isapnpmap modules.pcimap \ + modules.usbmap modules.parportmap \ + modules.generic_string modules.ieee1394map \ + modules.ieee1394map modules.pnpbiosmap \ + modules.alias modules.ccwmap modules.inputmap \ + modules.symbols modules.ofmap \ + modules.seriomap modules.\*.bin \ + modules.softdep modules.devname; do + eval rm -f /lib/modules/$version/$extra_file + done + rmdir /lib/modules/$version || true +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.preinst linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.preinst --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.preinst 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.preinst 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64 +image_path=/boot/vmlinux-$version + +if [ "$1" = abort-upgrade ]; then + exit 0 +fi + +if [ "$1" = install ]; then + # Create a flag file for postinst + mkdir -p /lib/modules/$version + touch /lib/modules/$version/.fresh-install +fi + +if [ -d /etc/kernel/preinst.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/preinst.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.prerm linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.prerm --- linux-5.10.209/debian/linux-image-5.10.0-29-sparc64.prerm 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5.10.0-29-sparc64.prerm 2024-05-03 12:40:24.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +version=5.10.0-29-sparc64 +image_path=/boot/vmlinux-$version + +if [ "$1" != remove ]; then + exit 0 +fi + +linux-check-removal $version + +if [ -d /etc/kernel/prerm.d ]; then + DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \ + --arg=$image_path /etc/kernel/prerm.d +fi + +exit 0 diff -Nru linux-5.10.209/debian/linux-image-5kc-malta-dbg.maintscript linux-5.10.216/debian/linux-image-5kc-malta-dbg.maintscript --- linux-5.10.209/debian/linux-image-5kc-malta-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5kc-malta-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-5kc-malta-dbg linux-image-5.10.0-28-5kc-malta-dbg 5.7~rc5-1~exp1 linux-image-5kc-malta-dbg +dir_to_symlink /usr/share/doc/linux-image-5kc-malta-dbg linux-image-5.10.0-29-5kc-malta-dbg 5.7~rc5-1~exp1 linux-image-5kc-malta-dbg diff -Nru linux-5.10.209/debian/linux-image-5kc-malta.bug-presubj linux-5.10.216/debian/linux-image-5kc-malta.bug-presubj --- linux-5.10.209/debian/linux-image-5kc-malta.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5kc-malta.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-5kc-malta instead. +the package name linux-image-5.10.0-29-5kc-malta instead. diff -Nru linux-5.10.209/debian/linux-image-5kc-malta.maintscript linux-5.10.216/debian/linux-image-5kc-malta.maintscript --- linux-5.10.209/debian/linux-image-5kc-malta.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-5kc-malta.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-5kc-malta linux-image-5.10.0-28-5kc-malta 5.7~rc5-1~exp1 linux-image-5kc-malta +dir_to_symlink /usr/share/doc/linux-image-5kc-malta linux-image-5.10.0-29-5kc-malta 5.7~rc5-1~exp1 linux-image-5kc-malta diff -Nru linux-5.10.209/debian/linux-image-686-dbg.maintscript linux-5.10.216/debian/linux-image-686-dbg.maintscript --- linux-5.10.209/debian/linux-image-686-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-686-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-686-dbg linux-image-5.10.0-28-686-dbg 5.7~rc5-1~exp1 linux-image-686-dbg +dir_to_symlink /usr/share/doc/linux-image-686-dbg linux-image-5.10.0-29-686-dbg 5.7~rc5-1~exp1 linux-image-686-dbg diff -Nru linux-5.10.209/debian/linux-image-686-pae-dbg.maintscript linux-5.10.216/debian/linux-image-686-pae-dbg.maintscript --- linux-5.10.209/debian/linux-image-686-pae-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-686-pae-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-686-pae-dbg linux-image-5.10.0-28-686-pae-dbg 5.7~rc5-1~exp1 linux-image-686-pae-dbg +dir_to_symlink /usr/share/doc/linux-image-686-pae-dbg linux-image-5.10.0-29-686-pae-dbg 5.7~rc5-1~exp1 linux-image-686-pae-dbg diff -Nru linux-5.10.209/debian/linux-image-alpha-generic-dbg.maintscript linux-5.10.216/debian/linux-image-alpha-generic-dbg.maintscript --- linux-5.10.209/debian/linux-image-alpha-generic-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-generic-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-alpha-generic-dbg linux-image-5.10.0-28-alpha-generic-dbg 5.7~rc5-1~exp1 linux-image-alpha-generic-dbg +dir_to_symlink /usr/share/doc/linux-image-alpha-generic-dbg linux-image-5.10.0-29-alpha-generic-dbg 5.7~rc5-1~exp1 linux-image-alpha-generic-dbg diff -Nru linux-5.10.209/debian/linux-image-alpha-generic.bug-presubj linux-5.10.216/debian/linux-image-alpha-generic.bug-presubj --- linux-5.10.209/debian/linux-image-alpha-generic.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-generic.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-alpha-generic instead. +the package name linux-image-5.10.0-29-alpha-generic instead. diff -Nru linux-5.10.209/debian/linux-image-alpha-generic.maintscript linux-5.10.216/debian/linux-image-alpha-generic.maintscript --- linux-5.10.209/debian/linux-image-alpha-generic.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-generic.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-alpha-generic linux-image-5.10.0-28-alpha-generic 5.7~rc5-1~exp1 linux-image-alpha-generic +dir_to_symlink /usr/share/doc/linux-image-alpha-generic linux-image-5.10.0-29-alpha-generic 5.7~rc5-1~exp1 linux-image-alpha-generic diff -Nru linux-5.10.209/debian/linux-image-alpha-smp-dbg.maintscript linux-5.10.216/debian/linux-image-alpha-smp-dbg.maintscript --- linux-5.10.209/debian/linux-image-alpha-smp-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-smp-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-alpha-smp-dbg linux-image-5.10.0-28-alpha-smp-dbg 5.7~rc5-1~exp1 linux-image-alpha-smp-dbg +dir_to_symlink /usr/share/doc/linux-image-alpha-smp-dbg linux-image-5.10.0-29-alpha-smp-dbg 5.7~rc5-1~exp1 linux-image-alpha-smp-dbg diff -Nru linux-5.10.209/debian/linux-image-alpha-smp.bug-presubj linux-5.10.216/debian/linux-image-alpha-smp.bug-presubj --- linux-5.10.209/debian/linux-image-alpha-smp.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-smp.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-alpha-smp instead. +the package name linux-image-5.10.0-29-alpha-smp instead. diff -Nru linux-5.10.209/debian/linux-image-alpha-smp.maintscript linux-5.10.216/debian/linux-image-alpha-smp.maintscript --- linux-5.10.209/debian/linux-image-alpha-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-alpha-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-alpha-smp linux-image-5.10.0-28-alpha-smp 5.7~rc5-1~exp1 linux-image-alpha-smp +dir_to_symlink /usr/share/doc/linux-image-alpha-smp linux-image-5.10.0-29-alpha-smp 5.7~rc5-1~exp1 linux-image-alpha-smp diff -Nru linux-5.10.209/debian/linux-image-amd64-dbg.maintscript linux-5.10.216/debian/linux-image-amd64-dbg.maintscript --- linux-5.10.209/debian/linux-image-amd64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-amd64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-amd64-dbg linux-image-5.10.0-28-amd64-dbg 5.7~rc5-1~exp1 linux-image-amd64-dbg +dir_to_symlink /usr/share/doc/linux-image-amd64-dbg linux-image-5.10.0-29-amd64-dbg 5.7~rc5-1~exp1 linux-image-amd64-dbg diff -Nru linux-5.10.209/debian/linux-image-arm64-dbg.maintscript linux-5.10.216/debian/linux-image-arm64-dbg.maintscript --- linux-5.10.209/debian/linux-image-arm64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-arm64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-arm64-dbg linux-image-5.10.0-28-arm64-dbg 5.7~rc5-1~exp1 linux-image-arm64-dbg +dir_to_symlink /usr/share/doc/linux-image-arm64-dbg linux-image-5.10.0-29-arm64-dbg 5.7~rc5-1~exp1 linux-image-arm64-dbg diff -Nru linux-5.10.209/debian/linux-image-armmp-dbg.maintscript linux-5.10.216/debian/linux-image-armmp-dbg.maintscript --- linux-5.10.209/debian/linux-image-armmp-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-armmp-dbg linux-image-5.10.0-28-armmp-dbg 5.7~rc5-1~exp1 linux-image-armmp-dbg +dir_to_symlink /usr/share/doc/linux-image-armmp-dbg linux-image-5.10.0-29-armmp-dbg 5.7~rc5-1~exp1 linux-image-armmp-dbg diff -Nru linux-5.10.209/debian/linux-image-armmp-lpae-dbg.maintscript linux-5.10.216/debian/linux-image-armmp-lpae-dbg.maintscript --- linux-5.10.209/debian/linux-image-armmp-lpae-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp-lpae-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-armmp-lpae-dbg linux-image-5.10.0-28-armmp-lpae-dbg 5.7~rc5-1~exp1 linux-image-armmp-lpae-dbg +dir_to_symlink /usr/share/doc/linux-image-armmp-lpae-dbg linux-image-5.10.0-29-armmp-lpae-dbg 5.7~rc5-1~exp1 linux-image-armmp-lpae-dbg diff -Nru linux-5.10.209/debian/linux-image-armmp-lpae.bug-presubj linux-5.10.216/debian/linux-image-armmp-lpae.bug-presubj --- linux-5.10.209/debian/linux-image-armmp-lpae.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp-lpae.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-armmp-lpae instead. +the package name linux-image-5.10.0-29-armmp-lpae instead. diff -Nru linux-5.10.209/debian/linux-image-armmp-lpae.maintscript linux-5.10.216/debian/linux-image-armmp-lpae.maintscript --- linux-5.10.209/debian/linux-image-armmp-lpae.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp-lpae.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-armmp-lpae linux-image-5.10.0-28-armmp-lpae 5.7~rc5-1~exp1 linux-image-armmp-lpae +dir_to_symlink /usr/share/doc/linux-image-armmp-lpae linux-image-5.10.0-29-armmp-lpae 5.7~rc5-1~exp1 linux-image-armmp-lpae diff -Nru linux-5.10.209/debian/linux-image-armmp.bug-presubj linux-5.10.216/debian/linux-image-armmp.bug-presubj --- linux-5.10.209/debian/linux-image-armmp.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-armmp instead. +the package name linux-image-5.10.0-29-armmp instead. diff -Nru linux-5.10.209/debian/linux-image-armmp.maintscript linux-5.10.216/debian/linux-image-armmp.maintscript --- linux-5.10.209/debian/linux-image-armmp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-armmp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-armmp linux-image-5.10.0-28-armmp 5.7~rc5-1~exp1 linux-image-armmp +dir_to_symlink /usr/share/doc/linux-image-armmp linux-image-5.10.0-29-armmp 5.7~rc5-1~exp1 linux-image-armmp diff -Nru linux-5.10.209/debian/linux-image-cloud-amd64-dbg.maintscript linux-5.10.216/debian/linux-image-cloud-amd64-dbg.maintscript --- linux-5.10.209/debian/linux-image-cloud-amd64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-cloud-amd64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-cloud-amd64-dbg linux-image-5.10.0-28-cloud-amd64-dbg 5.7~rc5-1~exp1 linux-image-cloud-amd64-dbg +dir_to_symlink /usr/share/doc/linux-image-cloud-amd64-dbg linux-image-5.10.0-29-cloud-amd64-dbg 5.7~rc5-1~exp1 linux-image-cloud-amd64-dbg diff -Nru linux-5.10.209/debian/linux-image-cloud-arm64-dbg.maintscript linux-5.10.216/debian/linux-image-cloud-arm64-dbg.maintscript --- linux-5.10.209/debian/linux-image-cloud-arm64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-cloud-arm64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-cloud-arm64-dbg linux-image-5.10.0-28-cloud-arm64-dbg 5.7~rc5-1~exp1 linux-image-cloud-arm64-dbg +dir_to_symlink /usr/share/doc/linux-image-cloud-arm64-dbg linux-image-5.10.0-29-cloud-arm64-dbg 5.7~rc5-1~exp1 linux-image-cloud-arm64-dbg diff -Nru linux-5.10.209/debian/linux-image-itanium-dbg.maintscript linux-5.10.216/debian/linux-image-itanium-dbg.maintscript --- linux-5.10.209/debian/linux-image-itanium-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-itanium-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-itanium-dbg linux-image-5.10.0-28-itanium-dbg 5.7~rc5-1~exp1 linux-image-itanium-dbg +dir_to_symlink /usr/share/doc/linux-image-itanium-dbg linux-image-5.10.0-29-itanium-dbg 5.7~rc5-1~exp1 linux-image-itanium-dbg diff -Nru linux-5.10.209/debian/linux-image-itanium.bug-presubj linux-5.10.216/debian/linux-image-itanium.bug-presubj --- linux-5.10.209/debian/linux-image-itanium.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-itanium.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-itanium instead. +the package name linux-image-5.10.0-29-itanium instead. diff -Nru linux-5.10.209/debian/linux-image-itanium.maintscript linux-5.10.216/debian/linux-image-itanium.maintscript --- linux-5.10.209/debian/linux-image-itanium.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-itanium.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-itanium linux-image-5.10.0-28-itanium 5.7~rc5-1~exp1 linux-image-itanium +dir_to_symlink /usr/share/doc/linux-image-itanium linux-image-5.10.0-29-itanium 5.7~rc5-1~exp1 linux-image-itanium diff -Nru linux-5.10.209/debian/linux-image-loongson-3-dbg.maintscript linux-5.10.216/debian/linux-image-loongson-3-dbg.maintscript --- linux-5.10.209/debian/linux-image-loongson-3-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-loongson-3-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-loongson-3-dbg linux-image-5.10.0-28-loongson-3-dbg 5.7~rc5-1~exp1 linux-image-loongson-3-dbg +dir_to_symlink /usr/share/doc/linux-image-loongson-3-dbg linux-image-5.10.0-29-loongson-3-dbg 5.7~rc5-1~exp1 linux-image-loongson-3-dbg diff -Nru linux-5.10.209/debian/linux-image-loongson-3.bug-presubj linux-5.10.216/debian/linux-image-loongson-3.bug-presubj --- linux-5.10.209/debian/linux-image-loongson-3.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-loongson-3.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-loongson-3 instead. +the package name linux-image-5.10.0-29-loongson-3 instead. diff -Nru linux-5.10.209/debian/linux-image-loongson-3.maintscript linux-5.10.216/debian/linux-image-loongson-3.maintscript --- linux-5.10.209/debian/linux-image-loongson-3.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-loongson-3.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-loongson-3 linux-image-5.10.0-28-loongson-3 5.7~rc5-1~exp1 linux-image-loongson-3 +dir_to_symlink /usr/share/doc/linux-image-loongson-3 linux-image-5.10.0-29-loongson-3 5.7~rc5-1~exp1 linux-image-loongson-3 diff -Nru linux-5.10.209/debian/linux-image-m68k-dbg.maintscript linux-5.10.216/debian/linux-image-m68k-dbg.maintscript --- linux-5.10.209/debian/linux-image-m68k-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-m68k-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-m68k-dbg linux-image-5.10.0-28-m68k-dbg 5.7~rc5-1~exp1 linux-image-m68k-dbg +dir_to_symlink /usr/share/doc/linux-image-m68k-dbg linux-image-5.10.0-29-m68k-dbg 5.7~rc5-1~exp1 linux-image-m68k-dbg diff -Nru linux-5.10.209/debian/linux-image-m68k.bug-presubj linux-5.10.216/debian/linux-image-m68k.bug-presubj --- linux-5.10.209/debian/linux-image-m68k.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-m68k.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-m68k instead. +the package name linux-image-5.10.0-29-m68k instead. diff -Nru linux-5.10.209/debian/linux-image-m68k.maintscript linux-5.10.216/debian/linux-image-m68k.maintscript --- linux-5.10.209/debian/linux-image-m68k.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-m68k.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-m68k linux-image-5.10.0-28-m68k 5.7~rc5-1~exp1 linux-image-m68k +dir_to_symlink /usr/share/doc/linux-image-m68k linux-image-5.10.0-29-m68k 5.7~rc5-1~exp1 linux-image-m68k diff -Nru linux-5.10.209/debian/linux-image-marvell-dbg.maintscript linux-5.10.216/debian/linux-image-marvell-dbg.maintscript --- linux-5.10.209/debian/linux-image-marvell-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-marvell-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-marvell-dbg linux-image-5.10.0-28-marvell-dbg 5.7~rc5-1~exp1 linux-image-marvell-dbg +dir_to_symlink /usr/share/doc/linux-image-marvell-dbg linux-image-5.10.0-29-marvell-dbg 5.7~rc5-1~exp1 linux-image-marvell-dbg diff -Nru linux-5.10.209/debian/linux-image-marvell.bug-presubj linux-5.10.216/debian/linux-image-marvell.bug-presubj --- linux-5.10.209/debian/linux-image-marvell.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-marvell.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-marvell instead. +the package name linux-image-5.10.0-29-marvell instead. diff -Nru linux-5.10.209/debian/linux-image-marvell.maintscript linux-5.10.216/debian/linux-image-marvell.maintscript --- linux-5.10.209/debian/linux-image-marvell.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-marvell.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-marvell linux-image-5.10.0-28-marvell 5.7~rc5-1~exp1 linux-image-marvell +dir_to_symlink /usr/share/doc/linux-image-marvell linux-image-5.10.0-29-marvell 5.7~rc5-1~exp1 linux-image-marvell diff -Nru linux-5.10.209/debian/linux-image-mckinley-dbg.maintscript linux-5.10.216/debian/linux-image-mckinley-dbg.maintscript --- linux-5.10.209/debian/linux-image-mckinley-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mckinley-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mckinley-dbg linux-image-5.10.0-28-mckinley-dbg 5.7~rc5-1~exp1 linux-image-mckinley-dbg +dir_to_symlink /usr/share/doc/linux-image-mckinley-dbg linux-image-5.10.0-29-mckinley-dbg 5.7~rc5-1~exp1 linux-image-mckinley-dbg diff -Nru linux-5.10.209/debian/linux-image-mckinley.bug-presubj linux-5.10.216/debian/linux-image-mckinley.bug-presubj --- linux-5.10.209/debian/linux-image-mckinley.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mckinley.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-mckinley instead. +the package name linux-image-5.10.0-29-mckinley instead. diff -Nru linux-5.10.209/debian/linux-image-mckinley.maintscript linux-5.10.216/debian/linux-image-mckinley.maintscript --- linux-5.10.209/debian/linux-image-mckinley.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mckinley.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mckinley linux-image-5.10.0-28-mckinley 5.7~rc5-1~exp1 linux-image-mckinley +dir_to_symlink /usr/share/doc/linux-image-mckinley linux-image-5.10.0-29-mckinley 5.7~rc5-1~exp1 linux-image-mckinley diff -Nru linux-5.10.209/debian/linux-image-mips32r6-dbg.maintscript linux-5.10.216/debian/linux-image-mips32r6-dbg.maintscript --- linux-5.10.209/debian/linux-image-mips32r6-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips32r6-dbg linux-image-5.10.0-28-mips32r6-dbg 5.7~rc5-1~exp1 linux-image-mips32r6-dbg +dir_to_symlink /usr/share/doc/linux-image-mips32r6-dbg linux-image-5.10.0-29-mips32r6-dbg 5.7~rc5-1~exp1 linux-image-mips32r6-dbg diff -Nru linux-5.10.209/debian/linux-image-mips32r6.bug-presubj linux-5.10.216/debian/linux-image-mips32r6.bug-presubj --- linux-5.10.209/debian/linux-image-mips32r6.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-mips32r6 instead. +the package name linux-image-5.10.0-29-mips32r6 instead. diff -Nru linux-5.10.209/debian/linux-image-mips32r6.maintscript linux-5.10.216/debian/linux-image-mips32r6.maintscript --- linux-5.10.209/debian/linux-image-mips32r6.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips32r6 linux-image-5.10.0-28-mips32r6 5.7~rc5-1~exp1 linux-image-mips32r6 +dir_to_symlink /usr/share/doc/linux-image-mips32r6 linux-image-5.10.0-29-mips32r6 5.7~rc5-1~exp1 linux-image-mips32r6 diff -Nru linux-5.10.209/debian/linux-image-mips32r6el-dbg.maintscript linux-5.10.216/debian/linux-image-mips32r6el-dbg.maintscript --- linux-5.10.209/debian/linux-image-mips32r6el-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6el-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips32r6el-dbg linux-image-5.10.0-28-mips32r6el-dbg 5.7~rc5-1~exp1 linux-image-mips32r6el-dbg +dir_to_symlink /usr/share/doc/linux-image-mips32r6el-dbg linux-image-5.10.0-29-mips32r6el-dbg 5.7~rc5-1~exp1 linux-image-mips32r6el-dbg diff -Nru linux-5.10.209/debian/linux-image-mips32r6el.bug-presubj linux-5.10.216/debian/linux-image-mips32r6el.bug-presubj --- linux-5.10.209/debian/linux-image-mips32r6el.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6el.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-mips32r6el instead. +the package name linux-image-5.10.0-29-mips32r6el instead. diff -Nru linux-5.10.209/debian/linux-image-mips32r6el.maintscript linux-5.10.216/debian/linux-image-mips32r6el.maintscript --- linux-5.10.209/debian/linux-image-mips32r6el.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips32r6el.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips32r6el linux-image-5.10.0-28-mips32r6el 5.7~rc5-1~exp1 linux-image-mips32r6el +dir_to_symlink /usr/share/doc/linux-image-mips32r6el linux-image-5.10.0-29-mips32r6el 5.7~rc5-1~exp1 linux-image-mips32r6el diff -Nru linux-5.10.209/debian/linux-image-mips64r6-dbg.maintscript linux-5.10.216/debian/linux-image-mips64r6-dbg.maintscript --- linux-5.10.209/debian/linux-image-mips64r6-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips64r6-dbg linux-image-5.10.0-28-mips64r6-dbg 5.7~rc5-1~exp1 linux-image-mips64r6-dbg +dir_to_symlink /usr/share/doc/linux-image-mips64r6-dbg linux-image-5.10.0-29-mips64r6-dbg 5.7~rc5-1~exp1 linux-image-mips64r6-dbg diff -Nru linux-5.10.209/debian/linux-image-mips64r6.bug-presubj linux-5.10.216/debian/linux-image-mips64r6.bug-presubj --- linux-5.10.209/debian/linux-image-mips64r6.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-mips64r6 instead. +the package name linux-image-5.10.0-29-mips64r6 instead. diff -Nru linux-5.10.209/debian/linux-image-mips64r6.maintscript linux-5.10.216/debian/linux-image-mips64r6.maintscript --- linux-5.10.209/debian/linux-image-mips64r6.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips64r6 linux-image-5.10.0-28-mips64r6 5.7~rc5-1~exp1 linux-image-mips64r6 +dir_to_symlink /usr/share/doc/linux-image-mips64r6 linux-image-5.10.0-29-mips64r6 5.7~rc5-1~exp1 linux-image-mips64r6 diff -Nru linux-5.10.209/debian/linux-image-mips64r6el-dbg.maintscript linux-5.10.216/debian/linux-image-mips64r6el-dbg.maintscript --- linux-5.10.209/debian/linux-image-mips64r6el-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6el-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips64r6el-dbg linux-image-5.10.0-28-mips64r6el-dbg 5.7~rc5-1~exp1 linux-image-mips64r6el-dbg +dir_to_symlink /usr/share/doc/linux-image-mips64r6el-dbg linux-image-5.10.0-29-mips64r6el-dbg 5.7~rc5-1~exp1 linux-image-mips64r6el-dbg diff -Nru linux-5.10.209/debian/linux-image-mips64r6el.bug-presubj linux-5.10.216/debian/linux-image-mips64r6el.bug-presubj --- linux-5.10.209/debian/linux-image-mips64r6el.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6el.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-mips64r6el instead. +the package name linux-image-5.10.0-29-mips64r6el instead. diff -Nru linux-5.10.209/debian/linux-image-mips64r6el.maintscript linux-5.10.216/debian/linux-image-mips64r6el.maintscript --- linux-5.10.209/debian/linux-image-mips64r6el.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-mips64r6el.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-mips64r6el linux-image-5.10.0-28-mips64r6el 5.7~rc5-1~exp1 linux-image-mips64r6el +dir_to_symlink /usr/share/doc/linux-image-mips64r6el linux-image-5.10.0-29-mips64r6el 5.7~rc5-1~exp1 linux-image-mips64r6el diff -Nru linux-5.10.209/debian/linux-image-octeon-dbg.maintscript linux-5.10.216/debian/linux-image-octeon-dbg.maintscript --- linux-5.10.209/debian/linux-image-octeon-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-octeon-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-octeon-dbg linux-image-5.10.0-28-octeon-dbg 5.7~rc5-1~exp1 linux-image-octeon-dbg +dir_to_symlink /usr/share/doc/linux-image-octeon-dbg linux-image-5.10.0-29-octeon-dbg 5.7~rc5-1~exp1 linux-image-octeon-dbg diff -Nru linux-5.10.209/debian/linux-image-octeon.bug-presubj linux-5.10.216/debian/linux-image-octeon.bug-presubj --- linux-5.10.209/debian/linux-image-octeon.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-octeon.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-octeon instead. +the package name linux-image-5.10.0-29-octeon instead. diff -Nru linux-5.10.209/debian/linux-image-octeon.maintscript linux-5.10.216/debian/linux-image-octeon.maintscript --- linux-5.10.209/debian/linux-image-octeon.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-octeon.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-octeon linux-image-5.10.0-28-octeon 5.7~rc5-1~exp1 linux-image-octeon +dir_to_symlink /usr/share/doc/linux-image-octeon linux-image-5.10.0-29-octeon 5.7~rc5-1~exp1 linux-image-octeon diff -Nru linux-5.10.209/debian/linux-image-parisc.bug-presubj linux-5.10.216/debian/linux-image-parisc.bug-presubj --- linux-5.10.209/debian/linux-image-parisc.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-parisc.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-parisc instead. +the package name linux-image-5.10.0-29-parisc instead. diff -Nru linux-5.10.209/debian/linux-image-parisc.maintscript linux-5.10.216/debian/linux-image-parisc.maintscript --- linux-5.10.209/debian/linux-image-parisc.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-parisc.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-parisc linux-image-5.10.0-28-parisc 5.7~rc5-1~exp1 linux-image-parisc +dir_to_symlink /usr/share/doc/linux-image-parisc linux-image-5.10.0-29-parisc 5.7~rc5-1~exp1 linux-image-parisc diff -Nru linux-5.10.209/debian/linux-image-parisc64.bug-presubj linux-5.10.216/debian/linux-image-parisc64.bug-presubj --- linux-5.10.209/debian/linux-image-parisc64.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-parisc64.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-parisc64 instead. +the package name linux-image-5.10.0-29-parisc64 instead. diff -Nru linux-5.10.209/debian/linux-image-parisc64.maintscript linux-5.10.216/debian/linux-image-parisc64.maintscript --- linux-5.10.209/debian/linux-image-parisc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-parisc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-parisc64 linux-image-5.10.0-28-parisc64 5.7~rc5-1~exp1 linux-image-parisc64 +dir_to_symlink /usr/share/doc/linux-image-parisc64 linux-image-5.10.0-29-parisc64 5.7~rc5-1~exp1 linux-image-parisc64 diff -Nru linux-5.10.209/debian/linux-image-powerpc-dbg.maintscript linux-5.10.216/debian/linux-image-powerpc-dbg.maintscript --- linux-5.10.209/debian/linux-image-powerpc-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc-dbg linux-image-5.10.0-28-powerpc-dbg 5.7~rc5-1~exp1 linux-image-powerpc-dbg +dir_to_symlink /usr/share/doc/linux-image-powerpc-dbg linux-image-5.10.0-29-powerpc-dbg 5.7~rc5-1~exp1 linux-image-powerpc-dbg diff -Nru linux-5.10.209/debian/linux-image-powerpc-smp-dbg.maintscript linux-5.10.216/debian/linux-image-powerpc-smp-dbg.maintscript --- linux-5.10.209/debian/linux-image-powerpc-smp-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc-smp-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc-smp-dbg linux-image-5.10.0-28-powerpc-smp-dbg 5.7~rc5-1~exp1 linux-image-powerpc-smp-dbg +dir_to_symlink /usr/share/doc/linux-image-powerpc-smp-dbg linux-image-5.10.0-29-powerpc-smp-dbg 5.7~rc5-1~exp1 linux-image-powerpc-smp-dbg diff -Nru linux-5.10.209/debian/linux-image-powerpc-smp.bug-presubj linux-5.10.216/debian/linux-image-powerpc-smp.bug-presubj --- linux-5.10.209/debian/linux-image-powerpc-smp.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc-smp.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-powerpc-smp instead. +the package name linux-image-5.10.0-29-powerpc-smp instead. diff -Nru linux-5.10.209/debian/linux-image-powerpc-smp.maintscript linux-5.10.216/debian/linux-image-powerpc-smp.maintscript --- linux-5.10.209/debian/linux-image-powerpc-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc-smp linux-image-5.10.0-28-powerpc-smp 5.7~rc5-1~exp1 linux-image-powerpc-smp +dir_to_symlink /usr/share/doc/linux-image-powerpc-smp linux-image-5.10.0-29-powerpc-smp 5.7~rc5-1~exp1 linux-image-powerpc-smp diff -Nru linux-5.10.209/debian/linux-image-powerpc.bug-presubj linux-5.10.216/debian/linux-image-powerpc.bug-presubj --- linux-5.10.209/debian/linux-image-powerpc.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-powerpc instead. +the package name linux-image-5.10.0-29-powerpc instead. diff -Nru linux-5.10.209/debian/linux-image-powerpc.maintscript linux-5.10.216/debian/linux-image-powerpc.maintscript --- linux-5.10.209/debian/linux-image-powerpc.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc linux-image-5.10.0-28-powerpc 5.7~rc5-1~exp1 linux-image-powerpc +dir_to_symlink /usr/share/doc/linux-image-powerpc linux-image-5.10.0-29-powerpc 5.7~rc5-1~exp1 linux-image-powerpc diff -Nru linux-5.10.209/debian/linux-image-powerpc64-dbg.maintscript linux-5.10.216/debian/linux-image-powerpc64-dbg.maintscript --- linux-5.10.209/debian/linux-image-powerpc64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc64-dbg linux-image-5.10.0-28-powerpc64-dbg 5.7~rc5-1~exp1 linux-image-powerpc64-dbg +dir_to_symlink /usr/share/doc/linux-image-powerpc64-dbg linux-image-5.10.0-29-powerpc64-dbg 5.7~rc5-1~exp1 linux-image-powerpc64-dbg diff -Nru linux-5.10.209/debian/linux-image-powerpc64.bug-presubj linux-5.10.216/debian/linux-image-powerpc64.bug-presubj --- linux-5.10.209/debian/linux-image-powerpc64.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-powerpc64 instead. +the package name linux-image-5.10.0-29-powerpc64 instead. diff -Nru linux-5.10.209/debian/linux-image-powerpc64.maintscript linux-5.10.216/debian/linux-image-powerpc64.maintscript --- linux-5.10.209/debian/linux-image-powerpc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc64 linux-image-5.10.0-28-powerpc64 5.7~rc5-1~exp1 linux-image-powerpc64 +dir_to_symlink /usr/share/doc/linux-image-powerpc64 linux-image-5.10.0-29-powerpc64 5.7~rc5-1~exp1 linux-image-powerpc64 diff -Nru linux-5.10.209/debian/linux-image-powerpc64le-dbg.maintscript linux-5.10.216/debian/linux-image-powerpc64le-dbg.maintscript --- linux-5.10.209/debian/linux-image-powerpc64le-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64le-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc64le-dbg linux-image-5.10.0-28-powerpc64le-dbg 5.7~rc5-1~exp1 linux-image-powerpc64le-dbg +dir_to_symlink /usr/share/doc/linux-image-powerpc64le-dbg linux-image-5.10.0-29-powerpc64le-dbg 5.7~rc5-1~exp1 linux-image-powerpc64le-dbg diff -Nru linux-5.10.209/debian/linux-image-powerpc64le.bug-presubj linux-5.10.216/debian/linux-image-powerpc64le.bug-presubj --- linux-5.10.209/debian/linux-image-powerpc64le.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64le.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-powerpc64le instead. +the package name linux-image-5.10.0-29-powerpc64le instead. diff -Nru linux-5.10.209/debian/linux-image-powerpc64le.maintscript linux-5.10.216/debian/linux-image-powerpc64le.maintscript --- linux-5.10.209/debian/linux-image-powerpc64le.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-powerpc64le.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-powerpc64le linux-image-5.10.0-28-powerpc64le 5.7~rc5-1~exp1 linux-image-powerpc64le +dir_to_symlink /usr/share/doc/linux-image-powerpc64le linux-image-5.10.0-29-powerpc64le 5.7~rc5-1~exp1 linux-image-powerpc64le diff -Nru linux-5.10.209/debian/linux-image-riscv64-dbg.maintscript linux-5.10.216/debian/linux-image-riscv64-dbg.maintscript --- linux-5.10.209/debian/linux-image-riscv64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-riscv64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-riscv64-dbg linux-image-5.10.0-28-riscv64-dbg 5.7~rc5-1~exp1 linux-image-riscv64-dbg +dir_to_symlink /usr/share/doc/linux-image-riscv64-dbg linux-image-5.10.0-29-riscv64-dbg 5.7~rc5-1~exp1 linux-image-riscv64-dbg diff -Nru linux-5.10.209/debian/linux-image-riscv64.bug-presubj linux-5.10.216/debian/linux-image-riscv64.bug-presubj --- linux-5.10.209/debian/linux-image-riscv64.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-riscv64.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-riscv64 instead. +the package name linux-image-5.10.0-29-riscv64 instead. diff -Nru linux-5.10.209/debian/linux-image-riscv64.maintscript linux-5.10.216/debian/linux-image-riscv64.maintscript --- linux-5.10.209/debian/linux-image-riscv64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-riscv64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-riscv64 linux-image-5.10.0-28-riscv64 5.7~rc5-1~exp1 linux-image-riscv64 +dir_to_symlink /usr/share/doc/linux-image-riscv64 linux-image-5.10.0-29-riscv64 5.7~rc5-1~exp1 linux-image-riscv64 diff -Nru linux-5.10.209/debian/linux-image-rpi-dbg.maintscript linux-5.10.216/debian/linux-image-rpi-dbg.maintscript --- linux-5.10.209/debian/linux-image-rpi-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rpi-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rpi-dbg linux-image-5.10.0-28-rpi-dbg 5.7~rc5-1~exp1 linux-image-rpi-dbg +dir_to_symlink /usr/share/doc/linux-image-rpi-dbg linux-image-5.10.0-29-rpi-dbg 5.7~rc5-1~exp1 linux-image-rpi-dbg diff -Nru linux-5.10.209/debian/linux-image-rpi.bug-presubj linux-5.10.216/debian/linux-image-rpi.bug-presubj --- linux-5.10.209/debian/linux-image-rpi.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rpi.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-rpi instead. +the package name linux-image-5.10.0-29-rpi instead. diff -Nru linux-5.10.209/debian/linux-image-rpi.maintscript linux-5.10.216/debian/linux-image-rpi.maintscript --- linux-5.10.209/debian/linux-image-rpi.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rpi.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rpi linux-image-5.10.0-28-rpi 5.7~rc5-1~exp1 linux-image-rpi +dir_to_symlink /usr/share/doc/linux-image-rpi linux-image-5.10.0-29-rpi 5.7~rc5-1~exp1 linux-image-rpi diff -Nru linux-5.10.209/debian/linux-image-rt-686-pae-dbg.maintscript linux-5.10.216/debian/linux-image-rt-686-pae-dbg.maintscript --- linux-5.10.209/debian/linux-image-rt-686-pae-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-686-pae-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rt-686-pae-dbg linux-image-5.10.0-28-rt-686-pae-dbg 5.7~rc5-1~exp1 linux-image-rt-686-pae-dbg +dir_to_symlink /usr/share/doc/linux-image-rt-686-pae-dbg linux-image-5.10.0-29-rt-686-pae-dbg 5.7~rc5-1~exp1 linux-image-rt-686-pae-dbg diff -Nru linux-5.10.209/debian/linux-image-rt-amd64-dbg.maintscript linux-5.10.216/debian/linux-image-rt-amd64-dbg.maintscript --- linux-5.10.209/debian/linux-image-rt-amd64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-amd64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rt-amd64-dbg linux-image-5.10.0-28-rt-amd64-dbg 5.7~rc5-1~exp1 linux-image-rt-amd64-dbg +dir_to_symlink /usr/share/doc/linux-image-rt-amd64-dbg linux-image-5.10.0-29-rt-amd64-dbg 5.7~rc5-1~exp1 linux-image-rt-amd64-dbg diff -Nru linux-5.10.209/debian/linux-image-rt-arm64-dbg.maintscript linux-5.10.216/debian/linux-image-rt-arm64-dbg.maintscript --- linux-5.10.209/debian/linux-image-rt-arm64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-arm64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rt-arm64-dbg linux-image-5.10.0-28-rt-arm64-dbg 5.7~rc5-1~exp1 linux-image-rt-arm64-dbg +dir_to_symlink /usr/share/doc/linux-image-rt-arm64-dbg linux-image-5.10.0-29-rt-arm64-dbg 5.7~rc5-1~exp1 linux-image-rt-arm64-dbg diff -Nru linux-5.10.209/debian/linux-image-rt-armmp-dbg.maintscript linux-5.10.216/debian/linux-image-rt-armmp-dbg.maintscript --- linux-5.10.209/debian/linux-image-rt-armmp-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-armmp-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rt-armmp-dbg linux-image-5.10.0-28-rt-armmp-dbg 5.7~rc5-1~exp1 linux-image-rt-armmp-dbg +dir_to_symlink /usr/share/doc/linux-image-rt-armmp-dbg linux-image-5.10.0-29-rt-armmp-dbg 5.7~rc5-1~exp1 linux-image-rt-armmp-dbg diff -Nru linux-5.10.209/debian/linux-image-rt-armmp.bug-presubj linux-5.10.216/debian/linux-image-rt-armmp.bug-presubj --- linux-5.10.209/debian/linux-image-rt-armmp.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-armmp.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-rt-armmp instead. +the package name linux-image-5.10.0-29-rt-armmp instead. diff -Nru linux-5.10.209/debian/linux-image-rt-armmp.maintscript linux-5.10.216/debian/linux-image-rt-armmp.maintscript --- linux-5.10.209/debian/linux-image-rt-armmp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-rt-armmp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-rt-armmp linux-image-5.10.0-28-rt-armmp 5.7~rc5-1~exp1 linux-image-rt-armmp +dir_to_symlink /usr/share/doc/linux-image-rt-armmp linux-image-5.10.0-29-rt-armmp 5.7~rc5-1~exp1 linux-image-rt-armmp diff -Nru linux-5.10.209/debian/linux-image-s390x-dbg.maintscript linux-5.10.216/debian/linux-image-s390x-dbg.maintscript --- linux-5.10.209/debian/linux-image-s390x-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-s390x-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-s390x-dbg linux-image-5.10.0-28-s390x-dbg 5.7~rc5-1~exp1 linux-image-s390x-dbg +dir_to_symlink /usr/share/doc/linux-image-s390x-dbg linux-image-5.10.0-29-s390x-dbg 5.7~rc5-1~exp1 linux-image-s390x-dbg diff -Nru linux-5.10.209/debian/linux-image-s390x.bug-presubj linux-5.10.216/debian/linux-image-s390x.bug-presubj --- linux-5.10.209/debian/linux-image-s390x.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-s390x.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-s390x instead. +the package name linux-image-5.10.0-29-s390x instead. diff -Nru linux-5.10.209/debian/linux-image-s390x.maintscript linux-5.10.216/debian/linux-image-s390x.maintscript --- linux-5.10.209/debian/linux-image-s390x.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-s390x.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-s390x linux-image-5.10.0-28-s390x 5.7~rc5-1~exp1 linux-image-s390x +dir_to_symlink /usr/share/doc/linux-image-s390x linux-image-5.10.0-29-s390x 5.7~rc5-1~exp1 linux-image-s390x diff -Nru linux-5.10.209/debian/linux-image-sh7751r-dbg.maintscript linux-5.10.216/debian/linux-image-sh7751r-dbg.maintscript --- linux-5.10.209/debian/linux-image-sh7751r-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7751r-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sh7751r-dbg linux-image-5.10.0-28-sh7751r-dbg 5.7~rc5-1~exp1 linux-image-sh7751r-dbg +dir_to_symlink /usr/share/doc/linux-image-sh7751r-dbg linux-image-5.10.0-29-sh7751r-dbg 5.7~rc5-1~exp1 linux-image-sh7751r-dbg diff -Nru linux-5.10.209/debian/linux-image-sh7751r.bug-presubj linux-5.10.216/debian/linux-image-sh7751r.bug-presubj --- linux-5.10.209/debian/linux-image-sh7751r.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7751r.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-sh7751r instead. +the package name linux-image-5.10.0-29-sh7751r instead. diff -Nru linux-5.10.209/debian/linux-image-sh7751r.maintscript linux-5.10.216/debian/linux-image-sh7751r.maintscript --- linux-5.10.209/debian/linux-image-sh7751r.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7751r.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sh7751r linux-image-5.10.0-28-sh7751r 5.7~rc5-1~exp1 linux-image-sh7751r +dir_to_symlink /usr/share/doc/linux-image-sh7751r linux-image-5.10.0-29-sh7751r 5.7~rc5-1~exp1 linux-image-sh7751r diff -Nru linux-5.10.209/debian/linux-image-sh7785lcr-dbg.maintscript linux-5.10.216/debian/linux-image-sh7785lcr-dbg.maintscript --- linux-5.10.209/debian/linux-image-sh7785lcr-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7785lcr-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sh7785lcr-dbg linux-image-5.10.0-28-sh7785lcr-dbg 5.7~rc5-1~exp1 linux-image-sh7785lcr-dbg +dir_to_symlink /usr/share/doc/linux-image-sh7785lcr-dbg linux-image-5.10.0-29-sh7785lcr-dbg 5.7~rc5-1~exp1 linux-image-sh7785lcr-dbg diff -Nru linux-5.10.209/debian/linux-image-sh7785lcr.bug-presubj linux-5.10.216/debian/linux-image-sh7785lcr.bug-presubj --- linux-5.10.209/debian/linux-image-sh7785lcr.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7785lcr.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-sh7785lcr instead. +the package name linux-image-5.10.0-29-sh7785lcr instead. diff -Nru linux-5.10.209/debian/linux-image-sh7785lcr.maintscript linux-5.10.216/debian/linux-image-sh7785lcr.maintscript --- linux-5.10.209/debian/linux-image-sh7785lcr.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sh7785lcr.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sh7785lcr linux-image-5.10.0-28-sh7785lcr 5.7~rc5-1~exp1 linux-image-sh7785lcr +dir_to_symlink /usr/share/doc/linux-image-sh7785lcr linux-image-5.10.0-29-sh7785lcr 5.7~rc5-1~exp1 linux-image-sh7785lcr diff -Nru linux-5.10.209/debian/linux-image-sparc64-dbg.maintscript linux-5.10.216/debian/linux-image-sparc64-dbg.maintscript --- linux-5.10.209/debian/linux-image-sparc64-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sparc64-dbg linux-image-5.10.0-28-sparc64-dbg 5.7~rc5-1~exp1 linux-image-sparc64-dbg +dir_to_symlink /usr/share/doc/linux-image-sparc64-dbg linux-image-5.10.0-29-sparc64-dbg 5.7~rc5-1~exp1 linux-image-sparc64-dbg diff -Nru linux-5.10.209/debian/linux-image-sparc64-smp-dbg.maintscript linux-5.10.216/debian/linux-image-sparc64-smp-dbg.maintscript --- linux-5.10.209/debian/linux-image-sparc64-smp-dbg.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64-smp-dbg.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sparc64-smp-dbg linux-image-5.10.0-28-sparc64-smp-dbg 5.7~rc5-1~exp1 linux-image-sparc64-smp-dbg +dir_to_symlink /usr/share/doc/linux-image-sparc64-smp-dbg linux-image-5.10.0-29-sparc64-smp-dbg 5.7~rc5-1~exp1 linux-image-sparc64-smp-dbg diff -Nru linux-5.10.209/debian/linux-image-sparc64-smp.bug-presubj linux-5.10.216/debian/linux-image-sparc64-smp.bug-presubj --- linux-5.10.209/debian/linux-image-sparc64-smp.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64-smp.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-sparc64-smp instead. +the package name linux-image-5.10.0-29-sparc64-smp instead. diff -Nru linux-5.10.209/debian/linux-image-sparc64-smp.maintscript linux-5.10.216/debian/linux-image-sparc64-smp.maintscript --- linux-5.10.209/debian/linux-image-sparc64-smp.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64-smp.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sparc64-smp linux-image-5.10.0-28-sparc64-smp 5.7~rc5-1~exp1 linux-image-sparc64-smp +dir_to_symlink /usr/share/doc/linux-image-sparc64-smp linux-image-5.10.0-29-sparc64-smp 5.7~rc5-1~exp1 linux-image-sparc64-smp diff -Nru linux-5.10.209/debian/linux-image-sparc64.bug-presubj linux-5.10.216/debian/linux-image-sparc64.bug-presubj --- linux-5.10.209/debian/linux-image-sparc64.bug-presubj 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64.bug-presubj 2024-05-03 12:40:24.000000000 +0000 @@ -2,4 +2,4 @@ This is probably not what you intended to do. If you want to report a bug in the Linux kernel or modules, you should use -the package name linux-image-5.10.0-28-sparc64 instead. +the package name linux-image-5.10.0-29-sparc64 instead. diff -Nru linux-5.10.209/debian/linux-image-sparc64.maintscript linux-5.10.216/debian/linux-image-sparc64.maintscript --- linux-5.10.209/debian/linux-image-sparc64.maintscript 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/linux-image-sparc64.maintscript 2024-05-03 12:40:24.000000000 +0000 @@ -1 +1 @@ -dir_to_symlink /usr/share/doc/linux-image-sparc64 linux-image-5.10.0-28-sparc64 5.7~rc5-1~exp1 linux-image-sparc64 +dir_to_symlink /usr/share/doc/linux-image-sparc64 linux-image-5.10.0-29-sparc64 5.7~rc5-1~exp1 linux-image-sparc64 diff -Nru linux-5.10.209/debian/patches/bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch linux-5.10.216/debian/patches/bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch --- linux-5.10.209/debian/patches/bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch 2024-01-31 20:49:27.000000000 +0000 +++ linux-5.10.216/debian/patches/bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -From: Florian Westphal -Date: Sat, 20 Jan 2024 22:50:04 +0100 -Subject: netfilter: nf_tables: reject QUEUE/DROP verdict parameters -Origin: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit?id=11351dcb86e3eec82492e20a63bb36f5a340dc85 -Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-1086 - -commit f342de4e2f33e0e39165d8639387aa6c19dff660 upstream. - -This reverts commit e0abdadcc6e1. - -core.c:nf_hook_slow assumes that the upper 16 bits of NF_DROP -verdicts contain a valid errno, i.e. -EPERM, -EHOSTUNREACH or similar, -or 0. - -Due to the reverted commit, its possible to provide a positive -value, e.g. NF_ACCEPT (1), which results in use-after-free. - -Its not clear to me why this commit was made. - -NF_QUEUE is not used by nftables; "queue" rules in nftables -will result in use of "nft_queue" expression. - -If we later need to allow specifiying errno values from userspace -(do not know why), this has to call NF_DROP_GETERR and check that -"err <= 0" holds true. - -Fixes: e0abdadcc6e1 ("netfilter: nf_tables: accept QUEUE/DROP verdict parameters") -Cc: stable@vger.kernel.org -Reported-by: Notselwyn -Signed-off-by: Florian Westphal -Signed-off-by: Pablo Neira Ayuso -Signed-off-by: Greg Kroah-Hartman ---- - net/netfilter/nf_tables_api.c | 16 ++++++---------- - 1 file changed, 6 insertions(+), 10 deletions(-) - -diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c -index 0d0b76a5ddfa..f586e8b3c6cf 100644 ---- a/net/netfilter/nf_tables_api.c -+++ b/net/netfilter/nf_tables_api.c -@@ -9340,16 +9340,10 @@ static int nft_verdict_init(const struct nft_ctx *ctx, struct nft_data *data, - data->verdict.code = ntohl(nla_get_be32(tb[NFTA_VERDICT_CODE])); - - switch (data->verdict.code) { -- default: -- switch (data->verdict.code & NF_VERDICT_MASK) { -- case NF_ACCEPT: -- case NF_DROP: -- case NF_QUEUE: -- break; -- default: -- return -EINVAL; -- } -- fallthrough; -+ case NF_ACCEPT: -+ case NF_DROP: -+ case NF_QUEUE: -+ break; - case NFT_CONTINUE: - case NFT_BREAK: - case NFT_RETURN: -@@ -9384,6 +9378,8 @@ static int nft_verdict_init(const struct nft_ctx *ctx, struct nft_data *data, - - data->verdict.chain = chain; - break; -+ default: -+ return -EINVAL; - } - - desc->len = sizeof(data->verdict); --- -2.43.0 - diff -Nru linux-5.10.209/debian/patches/bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch linux-5.10.216/debian/patches/bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch --- linux-5.10.209/debian/patches/bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches/bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,375 +0,0 @@ -From: Kees Cook -Date: Fri, 26 Jan 2024 22:31:43 +0300 -Subject: smb3: Replace smb2pdu 1-element arrays with flex-arrays -Origin: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit?id=06aa6eff7b243891c631b40852a0c453e274955d - -commit eb3e28c1e89b4984308777231887e41aa8a0151f upstream. - -The kernel is globally removing the ambiguous 0-length and 1-element -arrays in favor of flexible arrays, so that we can gain both compile-time -and run-time array bounds checking[1]. - -Replace the trailing 1-element array with a flexible array in the -following structures: - - struct smb2_err_rsp - struct smb2_tree_connect_req - struct smb2_negotiate_rsp - struct smb2_sess_setup_req - struct smb2_sess_setup_rsp - struct smb2_read_req - struct smb2_read_rsp - struct smb2_write_req - struct smb2_write_rsp - struct smb2_query_directory_req - struct smb2_query_directory_rsp - struct smb2_set_info_req - struct smb2_change_notify_rsp - struct smb2_create_rsp - struct smb2_query_info_req - struct smb2_query_info_rsp - -Replace the trailing 1-element array with a flexible array, but leave -the existing structure padding: - - struct smb2_file_all_info - struct smb2_lock_req - -Adjust all related size calculations to match the changes to sizeof(). - -No machine code output or .data section differences are produced after -these changes. - -[1] For lots of details, see both: - https://docs.kernel.org/process/deprecated.html#zero-length-and-one-element-arrays - https://people.kernel.org/kees/bounded-flexible-arrays-in-c - -Cc: Steve French -Cc: Paulo Alcantara -Cc: Ronnie Sahlberg -Cc: Shyam Prasad N -Cc: Tom Talpey -Cc: Namjae Jeon -Cc: Sergey Senozhatsky -Cc: linux-cifs@vger.kernel.org -Cc: samba-technical@lists.samba.org -Reviewed-by: Namjae Jeon -Signed-off-by: Kees Cook -Signed-off-by: Steve French -Signed-off-by: Vasiliy Kovalev -Signed-off-by: Greg Kroah-Hartman ---- - fs/cifs/smb2misc.c | 2 +- - fs/cifs/smb2ops.c | 14 +++++++------- - fs/cifs/smb2pdu.c | 13 ++++++------- - fs/cifs/smb2pdu.h | 42 ++++++++++++++++++++++++------------------ - 4 files changed, 38 insertions(+), 33 deletions(-) - -diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c -index b98bba887f84..660e00eb4206 100644 ---- a/fs/cifs/smb2misc.c -+++ b/fs/cifs/smb2misc.c -@@ -117,7 +117,7 @@ static __u32 get_neg_ctxt_len(struct smb2_sync_hdr *hdr, __u32 len, - } else if (nc_offset + 1 == non_ctxlen) { - cifs_dbg(FYI, "no SPNEGO security blob in negprot rsp\n"); - size_of_pad_before_neg_ctxts = 0; -- } else if (non_ctxlen == SMB311_NEGPROT_BASE_SIZE) -+ } else if (non_ctxlen == SMB311_NEGPROT_BASE_SIZE + 1) - /* has padding, but no SPNEGO blob */ - size_of_pad_before_neg_ctxts = nc_offset - non_ctxlen + 1; - else -diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c -index 26edaeb4245d..84850a55c8b7 100644 ---- a/fs/cifs/smb2ops.c -+++ b/fs/cifs/smb2ops.c -@@ -5561,7 +5561,7 @@ struct smb_version_values smb20_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5583,7 +5583,7 @@ struct smb_version_values smb21_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5604,7 +5604,7 @@ struct smb_version_values smb3any_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5625,7 +5625,7 @@ struct smb_version_values smbdefault_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5646,7 +5646,7 @@ struct smb_version_values smb30_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5667,7 +5667,7 @@ struct smb_version_values smb302_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -@@ -5688,7 +5688,7 @@ struct smb_version_values smb311_values = { - .header_size = sizeof(struct smb2_sync_hdr), - .header_preamble_size = 0, - .max_header_size = MAX_SMB2_HDR_SIZE, -- .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, -+ .read_rsp_size = sizeof(struct smb2_read_rsp), - .lock_cmd = SMB2_LOCK, - .cap_unix = 0, - .cap_nt_find = SMB2_NT_FIND, -diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c -index 76679dc4e632..4aec01841f0f 100644 ---- a/fs/cifs/smb2pdu.c -+++ b/fs/cifs/smb2pdu.c -@@ -1261,7 +1261,7 @@ SMB2_sess_sendreceive(struct SMB2_sess_data *sess_data) - - /* Testing shows that buffer offset must be at location of Buffer[0] */ - req->SecurityBufferOffset = -- cpu_to_le16(sizeof(struct smb2_sess_setup_req) - 1 /* pad */); -+ cpu_to_le16(sizeof(struct smb2_sess_setup_req)); - req->SecurityBufferLength = cpu_to_le16(sess_data->iov[1].iov_len); - - memset(&rqst, 0, sizeof(struct smb_rqst)); -@@ -1760,8 +1760,7 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree, - iov[0].iov_len = total_len - 1; - - /* Testing shows that buffer offset must be at location of Buffer[0] */ -- req->PathOffset = cpu_to_le16(sizeof(struct smb2_tree_connect_req) -- - 1 /* pad */); -+ req->PathOffset = cpu_to_le16(sizeof(struct smb2_tree_connect_req)); - req->PathLength = cpu_to_le16(unc_path_len - 2); - iov[1].iov_base = unc_path; - iov[1].iov_len = unc_path_len; -@@ -4676,7 +4675,7 @@ int SMB2_query_directory_init(const unsigned int xid, - memcpy(bufptr, &asteriks, len); - - req->FileNameOffset = -- cpu_to_le16(sizeof(struct smb2_query_directory_req) - 1); -+ cpu_to_le16(sizeof(struct smb2_query_directory_req)); - req->FileNameLength = cpu_to_le16(len); - /* - * BB could be 30 bytes or so longer if we used SMB2 specific -@@ -4873,7 +4872,7 @@ SMB2_set_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, - req->AdditionalInformation = cpu_to_le32(additional_info); - - req->BufferOffset = -- cpu_to_le16(sizeof(struct smb2_set_info_req) - 1); -+ cpu_to_le16(sizeof(struct smb2_set_info_req)); - req->BufferLength = cpu_to_le32(*size); - - memcpy(req->Buffer, *data, *size); -@@ -5105,9 +5104,9 @@ build_qfs_info_req(struct kvec *iov, struct cifs_tcon *tcon, - req->VolatileFileId = volatile_fid; - /* 1 for pad */ - req->InputBufferOffset = -- cpu_to_le16(sizeof(struct smb2_query_info_req) - 1); -+ cpu_to_le16(sizeof(struct smb2_query_info_req)); - req->OutputBufferLength = cpu_to_le32( -- outbuf_len + sizeof(struct smb2_query_info_rsp) - 1); -+ outbuf_len + sizeof(struct smb2_query_info_rsp)); - - iov->iov_base = (char *)req; - iov->iov_len = total_len; -diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h -index 89a732b31390..eaa873175318 100644 ---- a/fs/cifs/smb2pdu.h -+++ b/fs/cifs/smb2pdu.h -@@ -220,7 +220,7 @@ struct smb2_err_rsp { - __le16 StructureSize; - __le16 Reserved; /* MBZ */ - __le32 ByteCount; /* even if zero, at least one byte follows */ -- __u8 ErrorData[1]; /* variable length */ -+ __u8 ErrorData[]; /* variable length */ - } __packed; - - #define SYMLINK_ERROR_TAG 0x4c4d5953 -@@ -464,7 +464,7 @@ struct smb2_negotiate_rsp { - __le16 SecurityBufferOffset; - __le16 SecurityBufferLength; - __le32 NegotiateContextOffset; /* Pre:SMB3.1.1 was reserved/ignored */ -- __u8 Buffer[1]; /* variable length GSS security buffer */ -+ __u8 Buffer[]; /* variable length GSS security buffer */ - } __packed; - - /* Flags */ -@@ -481,7 +481,7 @@ struct smb2_sess_setup_req { - __le16 SecurityBufferOffset; - __le16 SecurityBufferLength; - __u64 PreviousSessionId; -- __u8 Buffer[1]; /* variable length GSS security buffer */ -+ __u8 Buffer[]; /* variable length GSS security buffer */ - } __packed; - - /* Currently defined SessionFlags */ -@@ -494,7 +494,7 @@ struct smb2_sess_setup_rsp { - __le16 SessionFlags; - __le16 SecurityBufferOffset; - __le16 SecurityBufferLength; -- __u8 Buffer[1]; /* variable length GSS security buffer */ -+ __u8 Buffer[]; /* variable length GSS security buffer */ - } __packed; - - struct smb2_logoff_req { -@@ -520,7 +520,7 @@ struct smb2_tree_connect_req { - __le16 Flags; /* Reserved MBZ for dialects prior to SMB3.1.1 */ - __le16 PathOffset; - __le16 PathLength; -- __u8 Buffer[1]; /* variable length */ -+ __u8 Buffer[]; /* variable length */ - } __packed; - - /* See MS-SMB2 section 2.2.9.2 */ -@@ -828,7 +828,7 @@ struct smb2_create_rsp { - __u64 VolatileFileId; /* opaque endianness */ - __le32 CreateContextsOffset; - __le32 CreateContextsLength; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - struct create_context { -@@ -1289,7 +1289,7 @@ struct smb2_read_plain_req { - __le32 RemainingBytes; - __le16 ReadChannelInfoOffset; - __le16 ReadChannelInfoLength; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - /* Read flags */ -@@ -1304,7 +1304,7 @@ struct smb2_read_rsp { - __le32 DataLength; - __le32 DataRemaining; - __u32 Flags; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - /* For write request Flags field below the following flags are defined: */ -@@ -1324,7 +1324,7 @@ struct smb2_write_req { - __le16 WriteChannelInfoOffset; - __le16 WriteChannelInfoLength; - __le32 Flags; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - struct smb2_write_rsp { -@@ -1335,7 +1335,7 @@ struct smb2_write_rsp { - __le32 DataLength; - __le32 DataRemaining; - __u32 Reserved2; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - /* notify flags */ -@@ -1371,7 +1371,7 @@ struct smb2_change_notify_rsp { - __le16 StructureSize; /* Must be 9 */ - __le16 OutputBufferOffset; - __le32 OutputBufferLength; -- __u8 Buffer[1]; /* array of file notify structs */ -+ __u8 Buffer[]; /* array of file notify structs */ - } __packed; - - #define SMB2_LOCKFLAG_SHARED_LOCK 0x0001 -@@ -1394,7 +1394,10 @@ struct smb2_lock_req { - __u64 PersistentFileId; /* opaque endianness */ - __u64 VolatileFileId; /* opaque endianness */ - /* Followed by at least one */ -- struct smb2_lock_element locks[1]; -+ union { -+ struct smb2_lock_element lock; -+ DECLARE_FLEX_ARRAY(struct smb2_lock_element, locks); -+ }; - } __packed; - - struct smb2_lock_rsp { -@@ -1434,7 +1437,7 @@ struct smb2_query_directory_req { - __le16 FileNameOffset; - __le16 FileNameLength; - __le32 OutputBufferLength; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - struct smb2_query_directory_rsp { -@@ -1442,7 +1445,7 @@ struct smb2_query_directory_rsp { - __le16 StructureSize; /* Must be 9 */ - __le16 OutputBufferOffset; - __le32 OutputBufferLength; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - /* Possible InfoType values */ -@@ -1483,7 +1486,7 @@ struct smb2_query_info_req { - __le32 Flags; - __u64 PersistentFileId; /* opaque endianness */ - __u64 VolatileFileId; /* opaque endianness */ -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - struct smb2_query_info_rsp { -@@ -1491,7 +1494,7 @@ struct smb2_query_info_rsp { - __le16 StructureSize; /* Must be 9 */ - __le16 OutputBufferOffset; - __le32 OutputBufferLength; -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - /* -@@ -1514,7 +1517,7 @@ struct smb2_set_info_req { - __le32 AdditionalInformation; - __u64 PersistentFileId; /* opaque endianness */ - __u64 VolatileFileId; /* opaque endianness */ -- __u8 Buffer[1]; -+ __u8 Buffer[]; - } __packed; - - struct smb2_set_info_rsp { -@@ -1716,7 +1719,10 @@ struct smb2_file_all_info { /* data block encoding of response to level 18 */ - __le32 Mode; - __le32 AlignmentRequirement; - __le32 FileNameLength; -- char FileName[1]; -+ union { -+ char __pad; /* Legacy structure padding */ -+ DECLARE_FLEX_ARRAY(char, FileName); -+ }; - } __packed; /* level 18 Query */ - - struct smb2_file_eof_info { /* encoding of request for level 10 */ --- -2.43.0 - diff -Nru linux-5.10.209/debian/patches/bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch linux-5.10.216/debian/patches/bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch --- linux-5.10.209/debian/patches/bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches/bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,156 +0,0 @@ -From: Kees Cook -Date: Fri, 26 Jan 2024 22:31:42 +0300 -Subject: stddef: Introduce DECLARE_FLEX_ARRAY() helper -Origin: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit?id=ef8316e0e29e98d9cf7e0689ddffa37e79d33736 - -commit 3080ea5553cc909b000d1f1d964a9041962f2c5b upstream. - -There are many places where kernel code wants to have several different -typed trailing flexible arrays. This would normally be done with multiple -flexible arrays in a union, but since GCC and Clang don't (on the surface) -allow this, there have been many open-coded workarounds, usually involving -neighboring 0-element arrays at the end of a structure. For example, -instead of something like this: - -struct thing { - ... - union { - struct type1 foo[]; - struct type2 bar[]; - }; -}; - -code works around the compiler with: - -struct thing { - ... - struct type1 foo[0]; - struct type2 bar[]; -}; - -Another case is when a flexible array is wanted as the single member -within a struct (which itself is usually in a union). For example, this -would be worked around as: - -union many { - ... - struct { - struct type3 baz[0]; - }; -}; - -These kinds of work-arounds cause problems with size checks against such -zero-element arrays (for example when building with -Warray-bounds and --Wzero-length-bounds, and with the coming FORTIFY_SOURCE improvements), -so they must all be converted to "real" flexible arrays, avoiding warnings -like this: - -fs/hpfs/anode.c: In function 'hpfs_add_sector_to_btree': -fs/hpfs/anode.c:209:27: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct bplus_internal_node[0]' [-Wzero-length-bounds] - 209 | anode->btree.u.internal[0].down = cpu_to_le32(a); - | ~~~~~~~~~~~~~~~~~~~~~~~^~~ -In file included from fs/hpfs/hpfs_fn.h:26, - from fs/hpfs/anode.c:10: -fs/hpfs/hpfs.h:412:32: note: while referencing 'internal' - 412 | struct bplus_internal_node internal[0]; /* (internal) 2-word entries giving - | ^~~~~~~~ - -drivers/net/can/usb/etas_es58x/es58x_fd.c: In function 'es58x_fd_tx_can_msg': -drivers/net/can/usb/etas_es58x/es58x_fd.c:360:35: warning: array subscript 65535 is outside the bounds of an interior zero-length array 'u8[0]' {aka 'unsigned char[]'} [-Wzero-length-bounds] - 360 | tx_can_msg = (typeof(tx_can_msg))&es58x_fd_urb_cmd->raw_msg[msg_len]; - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In file included from drivers/net/can/usb/etas_es58x/es58x_core.h:22, - from drivers/net/can/usb/etas_es58x/es58x_fd.c:17: -drivers/net/can/usb/etas_es58x/es58x_fd.h:231:6: note: while referencing 'raw_msg' - 231 | u8 raw_msg[0]; - | ^~~~~~~ - -However, it _is_ entirely possible to have one or more flexible arrays -in a struct or union: it just has to be in another struct. And since it -cannot be alone in a struct, such a struct must have at least 1 other -named member -- but that member can be zero sized. Wrap all this nonsense -into the new DECLARE_FLEX_ARRAY() in support of having flexible arrays -in unions (or alone in a struct). - -As with struct_group(), since this is needed in UAPI headers as well, -implement the core there, with a non-UAPI wrapper. - -Additionally update kernel-doc to understand its existence. - -https://github.com/KSPP/linux/issues/137 - -Cc: Arnd Bergmann -Cc: "Gustavo A. R. Silva" -Signed-off-by: Kees Cook -Signed-off-by: Vasiliy Kovalev -Signed-off-by: Greg Kroah-Hartman ---- - include/linux/stddef.h | 13 +++++++++++++ - include/uapi/linux/stddef.h | 16 ++++++++++++++++ - scripts/kernel-doc | 3 ++- - 3 files changed, 31 insertions(+), 1 deletion(-) - -diff --git a/include/linux/stddef.h b/include/linux/stddef.h -index 938216f8ab7e..31fdbb784c24 100644 ---- a/include/linux/stddef.h -+++ b/include/linux/stddef.h -@@ -84,4 +84,17 @@ enum { - #define struct_group_tagged(TAG, NAME, MEMBERS...) \ - __struct_group(TAG, NAME, /* no attrs */, MEMBERS) - -+/** -+ * DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union -+ * -+ * @TYPE: The type of each flexible array element -+ * @NAME: The name of the flexible array member -+ * -+ * In order to have a flexible array member in a union or alone in a -+ * struct, it needs to be wrapped in an anonymous struct with at least 1 -+ * named member, but that member can be empty. -+ */ -+#define DECLARE_FLEX_ARRAY(TYPE, NAME) \ -+ __DECLARE_FLEX_ARRAY(TYPE, NAME) -+ - #endif -diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h -index c3725b492263..7837ba4fe728 100644 ---- a/include/uapi/linux/stddef.h -+++ b/include/uapi/linux/stddef.h -@@ -28,4 +28,20 @@ - struct { MEMBERS } ATTRS; \ - struct TAG { MEMBERS } ATTRS NAME; \ - } -+ -+/** -+ * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union -+ * -+ * @TYPE: The type of each flexible array element -+ * @NAME: The name of the flexible array member -+ * -+ * In order to have a flexible array member in a union or alone in a -+ * struct, it needs to be wrapped in an anonymous struct with at least 1 -+ * named member, but that member can be empty. -+ */ -+#define __DECLARE_FLEX_ARRAY(TYPE, NAME) \ -+ struct { \ -+ struct { } __empty_ ## NAME; \ -+ TYPE NAME[]; \ -+ } - #endif -diff --git a/scripts/kernel-doc b/scripts/kernel-doc -index 19af6dd160e6..7a04d4c05326 100755 ---- a/scripts/kernel-doc -+++ b/scripts/kernel-doc -@@ -1232,7 +1232,8 @@ sub dump_struct($$) { - $members =~ s/DECLARE_KFIFO\s*\(([^,)]+),\s*([^,)]+),\s*([^,)]+)\)/$2 \*$1/gos; - # replace DECLARE_KFIFO_PTR - $members =~ s/DECLARE_KFIFO_PTR\s*\(([^,)]+),\s*([^,)]+)\)/$2 \*$1/gos; -- -+ # replace DECLARE_FLEX_ARRAY -+ $members =~ s/(?:__)?DECLARE_FLEX_ARRAY\s*\($args,\s*$args\)/$1 $2\[\]/gos; - my $declaration = $members; - - # Split nested struct/union elements as newer ones --- -2.43.0 - diff -Nru linux-5.10.209/debian/patches/bugfix/all/tipc-fix-UAF-in-error-path.patch linux-5.10.216/debian/patches/bugfix/all/tipc-fix-UAF-in-error-path.patch --- linux-5.10.209/debian/patches/bugfix/all/tipc-fix-UAF-in-error-path.patch 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/patches/bugfix/all/tipc-fix-UAF-in-error-path.patch 2024-05-03 12:40:20.000000000 +0000 @@ -0,0 +1,141 @@ +From: Paolo Abeni +Date: Tue, 30 Apr 2024 15:53:37 +0200 +Subject: tipc: fix UAF in error path +Origin: https://git.kernel.org/linus/080cbb890286cd794f1ee788bbc5463e2deb7c2b + +Sam Page (sam4k) working with Trend Micro Zero Day Initiative reported +a UAF in the tipc_buf_append() error path: + +BUG: KASAN: slab-use-after-free in kfree_skb_list_reason+0x47e/0x4c0 +linux/net/core/skbuff.c:1183 +Read of size 8 at addr ffff88804d2a7c80 by task poc/8034 + +CPU: 1 PID: 8034 Comm: poc Not tainted 6.8.2 #1 +Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS +1.16.0-debian-1.16.0-5 04/01/2014 +Call Trace: + + __dump_stack linux/lib/dump_stack.c:88 + dump_stack_lvl+0xd9/0x1b0 linux/lib/dump_stack.c:106 + print_address_description linux/mm/kasan/report.c:377 + print_report+0xc4/0x620 linux/mm/kasan/report.c:488 + kasan_report+0xda/0x110 linux/mm/kasan/report.c:601 + kfree_skb_list_reason+0x47e/0x4c0 linux/net/core/skbuff.c:1183 + skb_release_data+0x5af/0x880 linux/net/core/skbuff.c:1026 + skb_release_all linux/net/core/skbuff.c:1094 + __kfree_skb linux/net/core/skbuff.c:1108 + kfree_skb_reason+0x12d/0x210 linux/net/core/skbuff.c:1144 + kfree_skb linux/./include/linux/skbuff.h:1244 + tipc_buf_append+0x425/0xb50 linux/net/tipc/msg.c:186 + tipc_link_input+0x224/0x7c0 linux/net/tipc/link.c:1324 + tipc_link_rcv+0x76e/0x2d70 linux/net/tipc/link.c:1824 + tipc_rcv+0x45f/0x10f0 linux/net/tipc/node.c:2159 + tipc_udp_recv+0x73b/0x8f0 linux/net/tipc/udp_media.c:390 + udp_queue_rcv_one_skb+0xad2/0x1850 linux/net/ipv4/udp.c:2108 + udp_queue_rcv_skb+0x131/0xb00 linux/net/ipv4/udp.c:2186 + udp_unicast_rcv_skb+0x165/0x3b0 linux/net/ipv4/udp.c:2346 + __udp4_lib_rcv+0x2594/0x3400 linux/net/ipv4/udp.c:2422 + ip_protocol_deliver_rcu+0x30c/0x4e0 linux/net/ipv4/ip_input.c:205 + ip_local_deliver_finish+0x2e4/0x520 linux/net/ipv4/ip_input.c:233 + NF_HOOK linux/./include/linux/netfilter.h:314 + NF_HOOK linux/./include/linux/netfilter.h:308 + ip_local_deliver+0x18e/0x1f0 linux/net/ipv4/ip_input.c:254 + dst_input linux/./include/net/dst.h:461 + ip_rcv_finish linux/net/ipv4/ip_input.c:449 + NF_HOOK linux/./include/linux/netfilter.h:314 + NF_HOOK linux/./include/linux/netfilter.h:308 + ip_rcv+0x2c5/0x5d0 linux/net/ipv4/ip_input.c:569 + __netif_receive_skb_one_core+0x199/0x1e0 linux/net/core/dev.c:5534 + __netif_receive_skb+0x1f/0x1c0 linux/net/core/dev.c:5648 + process_backlog+0x101/0x6b0 linux/net/core/dev.c:5976 + __napi_poll.constprop.0+0xba/0x550 linux/net/core/dev.c:6576 + napi_poll linux/net/core/dev.c:6645 + net_rx_action+0x95a/0xe90 linux/net/core/dev.c:6781 + __do_softirq+0x21f/0x8e7 linux/kernel/softirq.c:553 + do_softirq linux/kernel/softirq.c:454 + do_softirq+0xb2/0xf0 linux/kernel/softirq.c:441 + + + __local_bh_enable_ip+0x100/0x120 linux/kernel/softirq.c:381 + local_bh_enable linux/./include/linux/bottom_half.h:33 + rcu_read_unlock_bh linux/./include/linux/rcupdate.h:851 + __dev_queue_xmit+0x871/0x3ee0 linux/net/core/dev.c:4378 + dev_queue_xmit linux/./include/linux/netdevice.h:3169 + neigh_hh_output linux/./include/net/neighbour.h:526 + neigh_output linux/./include/net/neighbour.h:540 + ip_finish_output2+0x169f/0x2550 linux/net/ipv4/ip_output.c:235 + __ip_finish_output linux/net/ipv4/ip_output.c:313 + __ip_finish_output+0x49e/0x950 linux/net/ipv4/ip_output.c:295 + ip_finish_output+0x31/0x310 linux/net/ipv4/ip_output.c:323 + NF_HOOK_COND linux/./include/linux/netfilter.h:303 + ip_output+0x13b/0x2a0 linux/net/ipv4/ip_output.c:433 + dst_output linux/./include/net/dst.h:451 + ip_local_out linux/net/ipv4/ip_output.c:129 + ip_send_skb+0x3e5/0x560 linux/net/ipv4/ip_output.c:1492 + udp_send_skb+0x73f/0x1530 linux/net/ipv4/udp.c:963 + udp_sendmsg+0x1a36/0x2b40 linux/net/ipv4/udp.c:1250 + inet_sendmsg+0x105/0x140 linux/net/ipv4/af_inet.c:850 + sock_sendmsg_nosec linux/net/socket.c:730 + __sock_sendmsg linux/net/socket.c:745 + __sys_sendto+0x42c/0x4e0 linux/net/socket.c:2191 + __do_sys_sendto linux/net/socket.c:2203 + __se_sys_sendto linux/net/socket.c:2199 + __x64_sys_sendto+0xe0/0x1c0 linux/net/socket.c:2199 + do_syscall_x64 linux/arch/x86/entry/common.c:52 + do_syscall_64+0xd8/0x270 linux/arch/x86/entry/common.c:83 + entry_SYSCALL_64_after_hwframe+0x6f/0x77 linux/arch/x86/entry/entry_64.S:120 +RIP: 0033:0x7f3434974f29 +Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 +89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d +01 f0 ff ff 73 01 c3 48 8b 0d 37 8f 0d 00 f7 d8 64 89 01 48 +RSP: 002b:00007fff9154f2b8 EFLAGS: 00000212 ORIG_RAX: 000000000000002c +RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f3434974f29 +RDX: 00000000000032c8 RSI: 00007fff9154f300 RDI: 0000000000000003 +RBP: 00007fff915532e0 R08: 00007fff91553360 R09: 0000000000000010 +R10: 0000000000000000 R11: 0000000000000212 R12: 000055ed86d261d0 +R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 + + +In the critical scenario, either the relevant skb is freed or its +ownership is transferred into a frag_lists. In both cases, the cleanup +code must not free it again: we need to clear the skb reference earlier. + +Fixes: 1149557d64c9 ("tipc: eliminate unnecessary linearization of incoming buffers") +Cc: stable@vger.kernel.org +Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-23852 +Acked-by: Xin Long +Signed-off-by: Paolo Abeni +Reviewed-by: Eric Dumazet +Link: https://lore.kernel.org/r/752f1ccf762223d109845365d07f55414058e5a3.1714484273.git.pabeni@redhat.com +Signed-off-by: Jakub Kicinski +--- + net/tipc/msg.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/net/tipc/msg.c b/net/tipc/msg.c +index 5c9fd4791c4b..9a6e9bcbf694 100644 +--- a/net/tipc/msg.c ++++ b/net/tipc/msg.c +@@ -156,6 +156,11 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) + if (!head) + goto err; + ++ /* Either the input skb ownership is transferred to headskb ++ * or the input skb is freed, clear the reference to avoid ++ * bad access on error path. ++ */ ++ *buf = NULL; + if (skb_try_coalesce(head, frag, &headstolen, &delta)) { + kfree_skb_partial(frag, headstolen); + } else { +@@ -179,7 +184,6 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) + *headbuf = NULL; + return 1; + } +- *buf = NULL; + return 0; + err: + kfree_skb(*buf); +-- +2.43.0 + diff -Nru linux-5.10.209/debian/patches/bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch linux-5.10.216/debian/patches/bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch --- linux-5.10.209/debian/patches/bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/patches/bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch 2024-05-03 12:40:20.000000000 +0000 @@ -0,0 +1,38 @@ +From: Xin Long +Date: Tue, 30 Apr 2024 10:03:38 -0400 +Subject: tipc: fix a possible memleak in tipc_buf_append +Origin: https://git.kernel.org/linus/97bf6f81b29a8efaf5d0983251a7450e5794370d + +__skb_linearize() doesn't free the skb when it fails, so move +'*buf = NULL' after __skb_linearize(), so that the skb can be +freed on the err path. + +Fixes: b7df21cf1b79 ("tipc: skb_linearize the head skb when reassembling msgs") +Reported-by: Paolo Abeni +Signed-off-by: Xin Long +Reviewed-by: Simon Horman +Reviewed-by: Tung Nguyen +Link: https://lore.kernel.org/r/90710748c29a1521efac4f75ea01b3b7e61414cf.1714485818.git.lucien.xin@gmail.com +Signed-off-by: Jakub Kicinski +--- + net/tipc/msg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/tipc/msg.c b/net/tipc/msg.c +index 9a6e9bcbf694..76284fc538eb 100644 +--- a/net/tipc/msg.c ++++ b/net/tipc/msg.c +@@ -142,9 +142,9 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) + if (fragid == FIRST_FRAGMENT) { + if (unlikely(head)) + goto err; +- *buf = NULL; + if (skb_has_frag_list(frag) && __skb_linearize(frag)) + goto err; ++ *buf = NULL; + frag = skb_unshare(frag, GFP_ATOMIC); + if (unlikely(!frag)) + goto err; +-- +2.43.0 + diff -Nru linux-5.10.209/debian/patches/series linux-5.10.216/debian/patches/series --- linux-5.10.209/debian/patches/series 2024-01-31 20:50:43.000000000 +0000 +++ linux-5.10.216/debian/patches/series 2024-05-03 12:40:20.000000000 +0000 @@ -94,8 +94,6 @@ debian/makefile-do-not-check-for-libelf-when-building-oot-module.patch bugfix/all/partially-revert-net-socket-implement-64-bit-timestamps.patch bugfix/all/wireguard-ignore-config_android.patch -bugfix/all/stddef-Introduce-DECLARE_FLEX_ARRAY-helper.patch -bugfix/all/smb3-Replace-smb2pdu-1-element-arrays-with-flex-arra.patch # Miscellaneous features @@ -117,7 +115,8 @@ debian/ntfs-mark-it-as-broken.patch bugfix/all/vfs-move-cap_convert_nscap-call-into-vfs_setxattr.patch bugfix/all/ovl-fail-on-invalid-uid-gid-mapping-at-copy-up.patch -bugfix/all/netfilter-nf_tables-reject-QUEUE-DROP-verdict-parame.patch +bugfix/all/tipc-fix-UAF-in-error-path.patch +bugfix/all/tipc-fix-a-possible-memleak-in-tipc_buf_append.patch # Fix exported symbol versions bugfix/all/module-disable-matching-missing-version-crc.patch diff -Nru linux-5.10.209/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch linux-5.10.216/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch --- linux-5.10.209/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0001-z3fold-remove-preempt-disabled-sections-for-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 373cc1c1427a46b4bf77f0d782d8bd8b2d00bc54 Mon Sep 17 00:00:00 2001 +From f5fbf1dccda26971b16bafd3f861ce1f5956d7d7 Mon Sep 17 00:00:00 2001 From: Vitaly Wool Date: Mon, 14 Dec 2020 19:12:36 -0800 Subject: [PATCH 001/323] z3fold: remove preempt disabled sections for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace get_cpu_ptr() with migrate_disable()+this_cpu_ptr() so RT can take spinlocks that become sleeping locks. @@ -20,7 +20,7 @@ 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mm/z3fold.c b/mm/z3fold.c -index 912ac9a64a15..f3d875fcaeb7 100644 +index 912ac9a64a155..f3d875fcaeb77 100644 --- a/mm/z3fold.c +++ b/mm/z3fold.c @@ -623,14 +623,16 @@ static inline void add_to_unbuddied(struct z3fold_pool *pool, @@ -82,5 +82,5 @@ if (!zhdr) { int cpu; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch linux-5.10.216/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch --- linux-5.10.209/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0002-stop_machine-Add-function-and-caller-debug-info.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 863bc087d69814dc4113ca9ec91ce1895b53480e Mon Sep 17 00:00:00 2001 +From 73242e5fc6930a7741cd1741bb1f1e2fb0ec998d Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:11:59 +0200 Subject: [PATCH 002/323] stop_machine: Add function and caller debug info -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Crashes in stop-machine are hard to connect to the calling code, add a little something to help with that. diff -Nru linux-5.10.209/debian/patches-rt/0003-sched-Fix-balance_callback.patch linux-5.10.216/debian/patches-rt/0003-sched-Fix-balance_callback.patch --- linux-5.10.209/debian/patches-rt/0003-sched-Fix-balance_callback.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0003-sched-Fix-balance_callback.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From db31f287a66b122733214b4a2bac9d59a564b77d Mon Sep 17 00:00:00 2001 +From ed8a8090bdc9f07bb1e75558552361a3619536e6 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:00 +0200 Subject: [PATCH 003/323] sched: Fix balance_callback() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The intent of balance_callback() has always been to delay executing balancing operations until the end of the current rq->lock section. @@ -29,7 +29,7 @@ 2 files changed, 78 insertions(+), 44 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 40f40f359c5d..ab8b7fd46334 100644 +index 40f40f359c5d5..ab8b7fd463344 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3511,6 +3511,69 @@ static inline void finish_task(struct task_struct *prev) @@ -217,7 +217,7 @@ return 0; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 8de07aba8bdd..fd71da3a4f0f 100644 +index 8de07aba8bdd4..fd71da3a4f0fc 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1225,6 +1225,9 @@ static inline void rq_pin_lock(struct rq *rq, struct rq_flags *rf) @@ -231,5 +231,5 @@ static inline void rq_unpin_lock(struct rq *rq, struct rq_flags *rf) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch linux-5.10.216/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch --- linux-5.10.209/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0004-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From bc9c6ea411da55a929b5bc3663c0a89449613d47 Mon Sep 17 00:00:00 2001 +From 0a5c45b4979bae9726dab1a7887292224a911656 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:01 +0200 Subject: [PATCH 004/323] sched/hotplug: Ensure only per-cpu kthreads run during hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for migrate_disable(), make sure only per-cpu kthreads are allowed to run on !active CPUs. @@ -28,7 +28,7 @@ 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index ab8b7fd46334..32c3acef5781 100644 +index ab8b7fd463344..32c3acef57811 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3535,8 +3535,10 @@ static inline struct callback_head *splice_balance_callbacks(struct rq *rq) @@ -203,7 +203,7 @@ return ret; } diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index fd71da3a4f0f..81dc4212423a 100644 +index fd71da3a4f0fc..81dc4212423a6 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -976,6 +976,7 @@ struct rq { @@ -240,5 +240,5 @@ #define rcu_dereference_check_sched_domain(p) \ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch linux-5.10.216/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch --- linux-5.10.209/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0005-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 94b59ab31222fc252603987e1ee316264426a015 Mon Sep 17 00:00:00 2001 +From 92645c89728680835a975aa06735a61a62f6c329 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 23 Oct 2020 12:12:02 +0200 Subject: [PATCH 005/323] sched/core: Wait for tasks being pushed away on hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT kernels need to ensure that all tasks which are not per CPU kthreads have left the outgoing CPU to guarantee that no tasks are force migrated @@ -25,7 +25,7 @@ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 32c3acef5781..b902755615d7 100644 +index 32c3acef57811..b902755615d71 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6896,8 +6896,21 @@ static void balance_push(struct rq *rq) @@ -105,7 +105,7 @@ hrtick_rq_init(rq); atomic_set(&rq->nr_iowait, 0); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 81dc4212423a..a72464d370cd 100644 +index 81dc4212423a6..a72464d370cd1 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1007,6 +1007,10 @@ struct rq { @@ -120,5 +120,5 @@ #ifdef CONFIG_IRQ_TIME_ACCOUNTING -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch linux-5.10.216/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch --- linux-5.10.209/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0006-workqueue-Manually-break-affinity-on-hotplug.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e3372f0d43a35f1070d1689e6aa1f84d6cd9784b Mon Sep 17 00:00:00 2001 +From 35c61b1ed625ce00add22bcd647544d9565ffd62 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:03 +0200 Subject: [PATCH 006/323] workqueue: Manually break affinity on hotplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Don't rely on the scheduler to force break affinity for us -- it will stop doing that for per-cpu-kthreads. @@ -15,7 +15,7 @@ 1 file changed, 4 insertions(+) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 63140e4dd5df..7c14773dc4c4 100644 +index 63140e4dd5dfc..7c14773dc4c40 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4941,6 +4941,10 @@ static void unbind_workers(int cpu) @@ -30,5 +30,5 @@ /* -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch linux-5.10.216/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch --- linux-5.10.209/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0007-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 61ebefbbf2500f6ade2182806061526bbde76a28 Mon Sep 17 00:00:00 2001 +From 9ee7caf54f5b5b01b798b7fbd08dc2f25c662438 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 23 Oct 2020 12:12:04 +0200 Subject: [PATCH 007/323] sched/hotplug: Consolidate task migration on CPU unplug -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With the new mechanism which kicks tasks off the outgoing CPU at the end of schedule() the situation on an outgoing CPU right before the stopper thread @@ -39,7 +39,7 @@ 4 files changed, 46 insertions(+), 120 deletions(-) diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h -index f5a5df3a8cfd..daf39c04a552 100644 +index f5a5df3a8cfd1..daf39c04a552a 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -155,6 +155,7 @@ enum cpuhp_state { @@ -51,7 +51,7 @@ CPUHP_AP_X86_VDSO_VMA_ONLINE, CPUHP_AP_IRQ_AFFINITY_ONLINE, diff --git a/include/linux/sched/hotplug.h b/include/linux/sched/hotplug.h -index 9a62ffdd296f..412cdaba33eb 100644 +index 9a62ffdd296f0..412cdaba33eb4 100644 --- a/include/linux/sched/hotplug.h +++ b/include/linux/sched/hotplug.h @@ -11,8 +11,10 @@ extern int sched_cpu_activate(unsigned int cpu); @@ -66,7 +66,7 @@ #endif diff --git a/kernel/cpu.c b/kernel/cpu.c -index abf717c4f57c..f8280edb679f 100644 +index abf717c4f57c2..f8280edb679f4 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1674,7 +1674,7 @@ static struct cpuhp_step cpuhp_hp_states[] = { @@ -93,7 +93,7 @@ [CPUHP_AP_SMPBOOT_THREADS] = { .name = "smpboot/threads:online", diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index b902755615d7..a26a82c3e939 100644 +index b902755615d71..a26a82c3e939a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6741,120 +6741,6 @@ void idle_task_exit(void) @@ -279,5 +279,5 @@ rq_unlock_irqrestore(rq, &rf); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch linux-5.10.216/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch --- linux-5.10.209/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0008-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 36d2d778f786cb7fd55c549911a6055d6b6f40ef Mon Sep 17 00:00:00 2001 +From dadea36aec2c8d22d9a76383d64e71e9a9f0b33d Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:05 +0200 Subject: [PATCH 008/323] sched: Fix hotplug vs CPU bandwidth control -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since we now migrate tasks away before DYING, we should also move bandwidth unthrottle, otherwise we can gain tasks from unthrottle @@ -25,7 +25,7 @@ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index a26a82c3e939..c5d5576c67fb 100644 +index a26a82c3e939a..c5d5576c67fb6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6979,6 +6979,8 @@ int sched_cpu_activate(unsigned int cpu) @@ -64,7 +64,7 @@ rq_unlock_irqrestore(rq, &rf); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index d91295d3059f..af8569dbdc9c 100644 +index d91295d3059f7..af8569dbdc9c1 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -566,7 +566,7 @@ static int push_dl_task(struct rq *rq); @@ -77,7 +77,7 @@ static DEFINE_PER_CPU(struct callback_head, dl_push_head); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index f690f901b6cc..fdcce04913db 100644 +index 1289991c970e1..32ef35af8f309 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -270,7 +270,7 @@ static void pull_rt_task(struct rq *this_rq); @@ -90,5 +90,5 @@ static inline int rt_overloaded(struct rq *rq) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch linux-5.10.216/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch --- linux-5.10.209/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0009-sched-Massage-set_cpus_allowed.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1125b34b63aa303af592b0ea5be730dc92ce6d53 Mon Sep 17 00:00:00 2001 +From 786f651c60c96b8b31ae64a4f01af3bb9e1a32ba Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:06 +0200 Subject: [PATCH 009/323] sched: Massage set_cpus_allowed() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Thread a u32 flags word through the *set_cpus_allowed*() callchain. This will allow adding behavioural tweaks for future users. @@ -16,7 +16,7 @@ 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c5d5576c67fb..569cc5e48e68 100644 +index c5d5576c67fb6..569cc5e48e681 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1838,13 +1838,14 @@ static int migration_cpu_stop(void *data) @@ -123,7 +123,7 @@ /* * We're having a chicken and egg problem, even though we are diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index af8569dbdc9c..5566f157640b 100644 +index af8569dbdc9c1..5566f157640b7 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2311,7 +2311,8 @@ static void task_woken_dl(struct rq *rq, struct task_struct *p) @@ -146,7 +146,7 @@ /* Assumes rq->lock is held */ diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index a72464d370cd..f0f396cc1bee 100644 +index a72464d370cd1..f0f396cc1bee6 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1818,7 +1818,8 @@ struct sched_class { @@ -171,5 +171,5 @@ #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0010-sched-Add-migrate_disable.patch linux-5.10.216/debian/patches-rt/0010-sched-Add-migrate_disable.patch --- linux-5.10.209/debian/patches-rt/0010-sched-Add-migrate_disable.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0010-sched-Add-migrate_disable.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e9f7c2225ee3e1ce9317762393618c1c81a8febe Mon Sep 17 00:00:00 2001 +From 3cf19c15a535037d72750850355628790cfb36d4 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:07 +0200 Subject: [PATCH 010/323] sched: Add migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add the base migrate_disable() support (under protest). @@ -24,7 +24,7 @@ 5 files changed, 183 insertions(+), 8 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 7d9c1c0e149c..97ba7c920653 100644 +index 7d9c1c0e149c0..97ba7c920653d 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -322,6 +322,69 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -105,7 +105,7 @@ + #endif /* __LINUX_PREEMPT_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index aa015416c569..76907e9876d5 100644 +index aa015416c5693..76907e9876d55 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -726,6 +726,9 @@ struct task_struct { @@ -119,7 +119,7 @@ #ifdef CONFIG_PREEMPT_RCU int rcu_read_lock_nesting; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 569cc5e48e68..5c9db4b2b6ec 100644 +index 569cc5e48e681..5c9db4b2b6ec7 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1710,6 +1710,61 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) @@ -313,7 +313,7 @@ trace_sched_switch(preempt, prev, next); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index f0f396cc1bee..f3109adda484 100644 +index f0f396cc1bee6..f3109adda484e 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1906,14 +1906,16 @@ static inline bool sched_fair_runnable(struct rq *rq) @@ -336,7 +336,7 @@ #endif diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c -index 2916606a9333..dbb96ebf661f 100644 +index 2916606a93337..dbb96ebf661fd 100644 --- a/lib/smp_processor_id.c +++ b/lib/smp_processor_id.c @@ -26,6 +26,11 @@ unsigned int check_preemption_disabled(const char *what1, const char *what2) @@ -352,5 +352,5 @@ * It is valid to assume CPU-locality during early bootup: */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch linux-5.10.216/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch --- linux-5.10.209/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0011-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f6fcadc60ec427b9eeb4b734b77b7b110c050b83 Mon Sep 17 00:00:00 2001 +From 2536c8f77652b826f44567321626bced09bea197 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:08 +0200 Subject: [PATCH 011/323] sched: Fix migrate_disable() vs set_cpus_allowed_ptr() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Concurrent migrate_disable() and set_cpus_allowed_ptr() has interesting features. We rely on set_cpus_allowed_ptr() to not return @@ -44,7 +44,7 @@ 2 files changed, 205 insertions(+), 30 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 76907e9876d5..5b5c194f5a62 100644 +index 76907e9876d55..5b5c194f5a62d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -726,6 +726,7 @@ struct task_struct { @@ -56,7 +56,7 @@ int migration_disabled; #endif diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 5c9db4b2b6ec..3af7c42896c9 100644 +index 5c9db4b2b6ec7..3af7c42896c92 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1746,15 +1746,26 @@ void migrate_enable(void) @@ -366,5 +366,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch linux-5.10.216/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch --- linux-5.10.209/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0012-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 02829fffd43c5fe3e617d07e0a94d5164324449b Mon Sep 17 00:00:00 2001 +From a6bc815b2b9ae11ce4cfbf7fb6832500e7d07cf3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 23 Oct 2020 12:12:09 +0200 Subject: [PATCH 012/323] sched/core: Make migrate disable and CPU hotplug cooperative -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On CPU unplug tasks which are in a migrate disabled region cannot be pushed to a different CPU until they returned to migrateable state. @@ -20,7 +20,7 @@ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3af7c42896c9..2517a003295b 100644 +index 3af7c42896c92..2517a003295b9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1735,10 +1735,17 @@ static void migrate_disable_switch(struct rq *rq, struct task_struct *p) @@ -118,7 +118,7 @@ calc_load_migrate(rq); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index f3109adda484..8237c9ab2bb8 100644 +index f3109adda484e..8237c9ab2bb86 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1057,6 +1057,10 @@ struct rq { @@ -133,5 +133,5 @@ #ifdef CONFIG_FAIR_GROUP_SCHED -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch linux-5.10.216/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch --- linux-5.10.209/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0013-sched-rt-Use-cpumask_any-_distribute.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0d3b4a8d9391d1eb1efb998bfcaff013a01466bf Mon Sep 17 00:00:00 2001 +From 1493a1a2699ab8802f0f6fd30b47b19b966c3d0b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:10 +0200 Subject: [PATCH 013/323] sched,rt: Use cpumask_any*_distribute() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace a bunch of cpumask_any*() instances with cpumask_any*_distribute(), by injecting this little bit of random in @@ -19,7 +19,7 @@ 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h -index f0d895d6ac39..383684e30f12 100644 +index f0d895d6ac39f..383684e30f123 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -199,6 +199,11 @@ static inline int cpumask_any_and_distribute(const struct cpumask *src1p, @@ -43,7 +43,7 @@ /** * for_each_cpu - iterate over every cpu in a mask diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 5566f157640b..e64d378e4e87 100644 +index 5566f157640b7..e64d378e4e875 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2012,8 +2012,8 @@ static int find_later_rq(struct task_struct *task) @@ -67,7 +67,7 @@ return cpu; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index fdcce04913db..695526a54a89 100644 +index 32ef35af8f309..1c3b9cf014a82 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1766,8 +1766,8 @@ static int find_lowest_rq(struct task_struct *task) @@ -91,7 +91,7 @@ return cpu; diff --git a/lib/cpumask.c b/lib/cpumask.c -index fb22fb266f93..c3c76b833384 100644 +index fb22fb266f937..c3c76b8333846 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -261,3 +261,21 @@ int cpumask_any_and_distribute(const struct cpumask *src1p, @@ -117,5 +117,5 @@ +} +EXPORT_SYMBOL(cpumask_any_distribute); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch linux-5.10.216/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch --- linux-5.10.209/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0014-sched-rt-Use-the-full-cpumask-for-balancing.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 75c028b5537f7205cfe5aecf8cf6bb61ef1428f6 Mon Sep 17 00:00:00 2001 +From 4c5447499a3b2c8a792a6dcd84c66eecad4b2906 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:11 +0200 Subject: [PATCH 014/323] sched,rt: Use the full cpumask for balancing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz We want migrate_disable() tasks to get PULLs in order for them to PUSH away the higher priority task. @@ -17,7 +17,7 @@ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c -index 8cb06c8c7eb1..ceb03d76c0cc 100644 +index 8cb06c8c7eb11..ceb03d76c0ccd 100644 --- a/kernel/sched/cpudeadline.c +++ b/kernel/sched/cpudeadline.c @@ -120,7 +120,7 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, @@ -39,7 +39,7 @@ if (later_mask) cpumask_set_cpu(best_cpu, later_mask); diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c -index 0033731a0797..11c4df2010de 100644 +index 0033731a07976..11c4df2010de5 100644 --- a/kernel/sched/cpupri.c +++ b/kernel/sched/cpupri.c @@ -73,11 +73,11 @@ static inline int __cpupri_find(struct cpupri *cp, struct task_struct *p, @@ -57,7 +57,7 @@ /* * We have to ensure that we have at least one bit diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index e64d378e4e87..94977a6ced8b 100644 +index e64d378e4e875..94977a6ced8b8 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1922,7 +1922,7 @@ static void task_fork_dl(struct task_struct *p) @@ -79,7 +79,7 @@ !dl_task(task) || !task_on_rq_queued(task))) { diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index 695526a54a89..f91339c0dee8 100644 +index 1c3b9cf014a82..95c07ef87ce17 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1672,7 +1672,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) @@ -101,5 +101,5 @@ !rt_task(task) || !task_on_rq_queued(task))) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch linux-5.10.216/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch --- linux-5.10.209/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0015-sched-lockdep-Annotate-pi_lock-recursion.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c0e34a5ef4e854220a216e934ab90f04d4432bdd Mon Sep 17 00:00:00 2001 +From 08be58930a1822de1d0df49597950a0a0f43d407 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:12 +0200 Subject: [PATCH 015/323] sched, lockdep: Annotate ->pi_lock recursion -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There's a valid ->pi_lock recursion issue where the actual PI code tries to wake up the stop task. Make lockdep aware so it doesn't @@ -15,7 +15,7 @@ 1 file changed, 15 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 2517a003295b..abbf01f77a76 100644 +index 2517a003295b9..abbf01f77a76f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2670,6 +2670,7 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) @@ -48,5 +48,5 @@ cpu_rq(cpu)->stop = stop; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch linux-5.10.216/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch --- linux-5.10.209/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0016-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8121011ded919f172bbbc7f5c095ca29d83a5aed Mon Sep 17 00:00:00 2001 +From 482622f4a87970b97449709db1b848c96f971fed Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:13 +0200 Subject: [PATCH 016/323] sched: Fix migrate_disable() vs rt/dl balancing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In order to minimize the interference of migrate_disable() on lower priority tasks, which can be deprived of runtime due to being stuck @@ -35,7 +35,7 @@ 6 files changed, 186 insertions(+), 48 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 97ba7c920653..8b43922e65df 100644 +index 97ba7c920653d..8b43922e65dfe 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -325,24 +325,28 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -86,7 +86,7 @@ * * The reason we have it anyway. diff --git a/include/linux/sched.h b/include/linux/sched.h -index 5b5c194f5a62..7ca1f3e740dd 100644 +index 5b5c194f5a62d..7ca1f3e740ddd 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -728,8 +728,9 @@ struct task_struct { @@ -101,7 +101,7 @@ #ifdef CONFIG_PREEMPT_RCU int rcu_read_lock_nesting; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index abbf01f77a76..452fc1dfb143 100644 +index abbf01f77a76f..452fc1dfb1434 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1777,11 +1777,6 @@ void migrate_enable(void) @@ -214,7 +214,7 @@ { return false; diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 94977a6ced8b..7cf3248894a9 100644 +index 94977a6ced8b8..7cf3248894a98 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2139,6 +2139,9 @@ static int push_dl_task(struct rq *rq) @@ -287,7 +287,7 @@ .task_tick = task_tick_dl, diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index f91339c0dee8..c25e35f41555 100644 +index 95c07ef87ce17..c916dbc2a0165 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1873,7 +1873,7 @@ static struct task_struct *pick_next_pushable_task(struct rq *rq) @@ -427,7 +427,7 @@ .task_tick = task_tick_rt, diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 8237c9ab2bb8..69ef7cac3d29 100644 +index 8237c9ab2bb86..69ef7cac3d296 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1061,6 +1061,8 @@ struct rq { @@ -491,5 +491,5 @@ #ifdef CONFIG_CPU_IDLE -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch linux-5.10.216/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch --- linux-5.10.209/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0017-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e8ed7f739c2f8113927b0b3489bc357c36e27040 Mon Sep 17 00:00:00 2001 +From 107d3592a1c9a7ad71756a29d2cc0d7192498c43 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:14 +0200 Subject: [PATCH 017/323] sched/proc: Print accurate cpumask vs migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Ensure /proc/*/status doesn't print 'random' cpumasks due to migrate_disable(). @@ -15,7 +15,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/proc/array.c b/fs/proc/array.c -index 18a4588c35be..decaa7768044 100644 +index 18a4588c35be6..decaa77680448 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -384,9 +384,9 @@ static inline void task_context_switch_counts(struct seq_file *m, @@ -31,5 +31,5 @@ static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch linux-5.10.216/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch --- linux-5.10.209/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0018-sched-Add-migrate_disable-tracepoints.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8b4906578ce683b9bce7df984b4179519152345f Mon Sep 17 00:00:00 2001 +From 8a324e6097c095eff3039bfe9806cdc4c23d6002 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 23 Oct 2020 12:12:15 +0200 Subject: [PATCH 018/323] sched: Add migrate_disable() tracepoints -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz XXX write a tracer: @@ -23,7 +23,7 @@ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h -index c96a4337afe6..e48f584abf5f 100644 +index c96a4337afe6c..e48f584abf5ff 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -650,6 +650,18 @@ DECLARE_TRACE(sched_update_nr_running_tp, @@ -46,7 +46,7 @@ /* This part must be outside protection */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 452fc1dfb143..b5f35b512577 100644 +index 452fc1dfb1434..b5f35b5125777 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1742,6 +1742,8 @@ void migrate_disable(void) @@ -68,7 +68,7 @@ EXPORT_SYMBOL_GPL(migrate_enable); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 7cf3248894a9..fcf546cd2eac 100644 +index 7cf3248894a98..fcf546cd2eac6 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2282,6 +2282,7 @@ static void pull_dl_task(struct rq *this_rq) @@ -80,7 +80,7 @@ } else { deactivate_task(src_rq, p, 0); diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index c25e35f41555..c5038d680c2c 100644 +index c916dbc2a0165..5dc1ee8dcec2d 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1891,7 +1891,12 @@ static int push_rt_task(struct rq *rq, bool pull) @@ -106,5 +106,5 @@ } else { deactivate_task(src_rq, p, 0); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch linux-5.10.216/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch --- linux-5.10.209/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0019-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 5857482efa6b272402feb4b063c4273e70dd67fb Mon Sep 17 00:00:00 2001 +From e02ab370de4119b778b775141dcef7a34103d54f Mon Sep 17 00:00:00 2001 From: Valentin Schneider Date: Fri, 23 Oct 2020 12:12:16 +0200 Subject: [PATCH 019/323] sched: Deny self-issued __set_cpus_allowed_ptr() when migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz migrate_disable(); set_cpus_allowed_ptr(current, {something excluding task_cpu(current)}); @@ -18,7 +18,7 @@ 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index b5f35b512577..3b7bb01eecc0 100644 +index b5f35b5125777..3b7bb01eecc03 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2254,8 +2254,17 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, @@ -42,5 +42,5 @@ /* * Picking a ~random cpu helps in cases where we are changing affinity -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0020-sched-Comment-affine_move_task.patch linux-5.10.216/debian/patches-rt/0020-sched-Comment-affine_move_task.patch --- linux-5.10.209/debian/patches-rt/0020-sched-Comment-affine_move_task.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0020-sched-Comment-affine_move_task.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ef79ed54f47d3ce342809e4914f4d9cf400f1ae0 Mon Sep 17 00:00:00 2001 +From b0d2b09cd94c8e7dde6b99f4eab69e5530984018 Mon Sep 17 00:00:00 2001 From: Valentin Schneider Date: Fri, 23 Oct 2020 12:12:17 +0200 Subject: [PATCH 020/323] sched: Comment affine_move_task() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Valentin Schneider Signed-off-by: Peter Zijlstra (Intel) @@ -13,7 +13,7 @@ 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3b7bb01eecc0..565d8011c832 100644 +index 3b7bb01eecc03..565d8011c832f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2094,7 +2094,75 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) @@ -126,5 +126,5 @@ return 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch linux-5.10.216/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch --- linux-5.10.209/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0021-sched-Unlock-the-rq-in-affine_move_task-error-path.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9a34ae4ec3b4af5cc98c8405ea590096a1380af9 Mon Sep 17 00:00:00 2001 +From a72c480240c6f7cf35fd4cab5093beff1f6e3ee8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 9 Nov 2020 15:54:03 +0100 Subject: [PATCH 021/323] sched: Unlock the rq in affine_move_task() error path -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Unlock the rq if returned early in the error path. @@ -14,7 +14,7 @@ 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 565d8011c832..d12d91510789 100644 +index 565d8011c832f..d12d91510789a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2228,8 +2228,10 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag @@ -30,5 +30,5 @@ if (flags & SCA_MIGRATE_ENABLE) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch linux-5.10.216/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch --- linux-5.10.209/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0022-sched-Fix-migration_cpu_stop-WARN.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 09d09da2b8c97fd09f50deb278f9d4a25b99ad55 Mon Sep 17 00:00:00 2001 +From 9c88a058fa61bf6670f75282f373f885f0d8be52 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 17 Nov 2020 12:14:51 +0100 Subject: [PATCH 022/323] sched: Fix migration_cpu_stop() WARN -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Oleksandr reported hitting the WARN in the 'task_rq(p) != rq' branch of migration_cpu_stop(). Valentin noted that using cpu_of(rq) in that @@ -21,7 +21,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index d12d91510789..7d67a0e03f9a 100644 +index d12d91510789a..7d67a0e03f9a1 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1929,7 +1929,7 @@ static int migration_cpu_stop(void *data) @@ -43,5 +43,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch linux-5.10.216/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch --- linux-5.10.209/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0023-sched-core-Add-missing-completion-for-affine_move_ta.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 5188e4c01f37c8c179cf88261297d546f5d2502e Mon Sep 17 00:00:00 2001 +From 73d693a1b61142541d8fa93f71d0768409641af4 Mon Sep 17 00:00:00 2001 From: Valentin Schneider Date: Fri, 13 Nov 2020 11:24:14 +0000 Subject: [PATCH 023/323] sched/core: Add missing completion for affine_move_task() waiters -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Qian reported that some fuzzer issuing sched_setaffinity() ends up stuck on a wait_for_completion(). The problematic pattern seems to be: @@ -44,7 +44,7 @@ 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 7d67a0e03f9a..c1e52319669d 100644 +index 7d67a0e03f9a1..c1e52319669dd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1941,7 +1941,7 @@ static int migration_cpu_stop(void *data) @@ -75,5 +75,5 @@ * When this was migrate_enable() but we no longer have an * @pending, a concurrent SCA 'fixed' things and we should be -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch linux-5.10.216/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch --- linux-5.10.209/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0024-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 44027cc10df8025d820ea864076dae75fb26626d Mon Sep 17 00:00:00 2001 +From 6a52ed73ef5ae504fab5e4ff9d68d2f8d13a3d71 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:13 +0100 Subject: [PATCH 024/323] mm/highmem: Un-EXPORT __kmap_atomic_idx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing in modules can use that. @@ -16,7 +16,7 @@ 1 file changed, 2 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index 1352a27951e3..6abfd762eee7 100644 +index 1352a27951e3b..6abfd762eee73 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -108,8 +108,6 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color) @@ -29,5 +29,5 @@ { struct zone *zone; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0025-highmem-Remove-unused-functions.patch linux-5.10.216/debian/patches-rt/0025-highmem-Remove-unused-functions.patch --- linux-5.10.209/debian/patches-rt/0025-highmem-Remove-unused-functions.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0025-highmem-Remove-unused-functions.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 2060c9ea726ebd649d8d2e596fa2acebef644cd8 Mon Sep 17 00:00:00 2001 +From 6506b24171031c92ab1326b4b974b0fbaf4e5cee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:14 +0100 Subject: [PATCH 025/323] highmem: Remove unused functions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing uses totalhigh_pages_dec() and totalhigh_pages_set(). @@ -13,7 +13,7 @@ 1 file changed, 10 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index b25df1f8d48d..3297bfca78ed 100644 +index b25df1f8d48d3..3297bfca78edd 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -104,21 +104,11 @@ static inline void totalhigh_pages_inc(void) @@ -39,5 +39,5 @@ struct page *kmap_to_page(void *addr); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch linux-5.10.216/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch --- linux-5.10.209/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0026-fs-Remove-asm-kmap_types.h-includes.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 280d9322736bea3870ae507592e1d2880bff8bd9 Mon Sep 17 00:00:00 2001 +From 022ceb6e24d7538354fab528ef2634b8eee93fdf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:15 +0100 Subject: [PATCH 026/323] fs: Remove asm/kmap_types.h includes -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Historical leftovers from the time where kmap() had fixed slots. @@ -22,7 +22,7 @@ 2 files changed, 2 deletions(-) diff --git a/fs/aio.c b/fs/aio.c -index 5934ea84b499..c90e045a37bc 100644 +index 93b6bbf01d715..43315af1c83ac 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -43,7 +43,6 @@ @@ -34,7 +34,7 @@ #include diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h -index 67831868ef0d..17c920aa6bc2 100644 +index 3ddb09f2b1685..ba39097c44a71 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -17,7 +17,6 @@ @@ -46,5 +46,5 @@ #include #include -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch linux-5.10.216/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch --- linux-5.10.209/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0027-sh-highmem-Remove-all-traces-of-unused-cruft.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 61e1ac8c3bd29dec41ae2f631bb142e26b790de2 Mon Sep 17 00:00:00 2001 +From 9ecea255e4a77ea3c29037da0a6446d6b006d9e6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:16 +0100 Subject: [PATCH 027/323] sh/highmem: Remove all traces of unused cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For whatever reasons SH has highmem bits all over the place but does not enable it via Kconfig. Remove the bitrot. @@ -17,7 +17,7 @@ delete mode 100644 arch/sh/include/asm/kmap_types.h diff --git a/arch/sh/include/asm/fixmap.h b/arch/sh/include/asm/fixmap.h -index f38adc189b83..b07fbc7f7bc6 100644 +index f38adc189b832..b07fbc7f7bc6a 100644 --- a/arch/sh/include/asm/fixmap.h +++ b/arch/sh/include/asm/fixmap.h @@ -13,9 +13,6 @@ @@ -44,7 +44,7 @@ * FIX_IOREMAP entries are useful for mapping physical address diff --git a/arch/sh/include/asm/kmap_types.h b/arch/sh/include/asm/kmap_types.h deleted file mode 100644 -index b78107f923dd..000000000000 +index b78107f923dd3..0000000000000 --- a/arch/sh/include/asm/kmap_types.h +++ /dev/null @@ -1,15 +0,0 @@ @@ -64,7 +64,7 @@ - -#endif diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c -index 3348e0c4d769..0db6919af8d3 100644 +index 3348e0c4d7698..0db6919af8d32 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -362,9 +362,6 @@ void __init mem_init(void) @@ -90,5 +90,5 @@ (VMALLOC_END - VMALLOC_START) >> 20, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch linux-5.10.216/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch --- linux-5.10.209/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0028-asm-generic-Provide-kmap_size.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5ed7d8c8905e639e711f1a21e5f978fc21585f8c Mon Sep 17 00:00:00 2001 +From 0294b3a702b2b9aea24f2e7b5ee766bc4ea65a68 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:17 +0100 Subject: [PATCH 028/323] asm-generic: Provide kmap_size.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmap_types.h is a misnomer because the old atomic MAP based array does not exist anymore and the whole indirection of architectures including @@ -36,7 +36,7 @@ create mode 100644 include/asm-generic/kmap_size.h diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild -index d1300c6e0a47..3114a6da7e56 100644 +index d1300c6e0a471..3114a6da7e561 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild @@ -31,6 +31,7 @@ mandatory-y += irq_regs.h @@ -49,7 +49,7 @@ mandatory-y += local.h diff --git a/include/asm-generic/kmap_size.h b/include/asm-generic/kmap_size.h new file mode 100644 -index 000000000000..9d6c7786a645 +index 0000000000000..9d6c7786a645f --- /dev/null +++ b/include/asm-generic/kmap_size.h @@ -0,0 +1,12 @@ @@ -66,5 +66,5 @@ + +#endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch linux-5.10.216/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch --- linux-5.10.209/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0029-highmem-Provide-generic-variant-of-kmap_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4e1b14787f7a2c71a9347db23c402f5dbe2da206 Mon Sep 17 00:00:00 2001 +From 64953b0dd3343f0296a25b10d108692ab140a56c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:18 +0100 Subject: [PATCH 029/323] highmem: Provide generic variant of kmap_atomic* -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The kmap_atomic* interfaces in all architectures are pretty much the same except for post map operations (flush) and pre- and post unmap operations. @@ -20,7 +20,7 @@ 3 files changed, 211 insertions(+), 18 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 3297bfca78ed..14d5b4020c8c 100644 +index 3297bfca78edd..14d5b4020c8ca 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -31,9 +31,16 @@ static inline void invalidate_kernel_vmap_range(void *vaddr, int size) @@ -164,7 +164,7 @@ #ifndef clear_user_highpage static inline void clear_user_highpage(struct page *page, unsigned long vaddr) diff --git a/mm/Kconfig b/mm/Kconfig -index 390165ffbb0f..8c49d09da214 100644 +index 390165ffbb0fc..8c49d09da2141 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -859,4 +859,7 @@ config ARCH_HAS_HUGEPD @@ -176,7 +176,7 @@ + endmenu diff --git a/mm/highmem.c b/mm/highmem.c -index 6abfd762eee7..bb4ce13ee7e7 100644 +index 6abfd762eee73..bb4ce13ee7e77 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -31,9 +31,11 @@ @@ -342,5 +342,5 @@ #if defined(HASHED_PAGE_VIRTUAL) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch linux-5.10.216/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch --- linux-5.10.209/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0030-highmem-Make-DEBUG_HIGHMEM-functional.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4c9348bc5b225c2de1552b059787335345d30d2c Mon Sep 17 00:00:00 2001 +From e5a80ff0a9d48da992d62b6e25b25eb255b4c20e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:19 +0100 Subject: [PATCH 030/323] highmem: Make DEBUG_HIGHMEM functional -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For some obscure reason when CONFIG_DEBUG_HIGHMEM is enabled the stack depth is increased from 20 to 41. But the only thing DEBUG_HIGHMEM does is @@ -23,7 +23,7 @@ 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index bb4ce13ee7e7..67d2d5983cb0 100644 +index bb4ce13ee7e77..67d2d5983cb06 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -376,9 +376,19 @@ EXPORT_SYMBOL(kunmap_high); @@ -57,5 +57,5 @@ BUG_ON(idx < 0); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch linux-5.10.216/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch --- linux-5.10.209/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0031-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From a6456b1e46c0a3b8ad0a9dd3afaeb69c037ad289 Mon Sep 17 00:00:00 2001 +From 2da90b707245685363c7adcdef8b86137e6a639b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:20 +0100 Subject: [PATCH 031/323] x86/mm/highmem: Use generic kmap atomic implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Convert X86 to the generic kmap atomic implementation and make the iomap_atomic() naming convention consistent while at it. @@ -28,7 +28,7 @@ delete mode 100644 arch/x86/include/asm/kmap_types.h diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 6dc670e36393..54e5284a6ae1 100644 +index 9b3fa05e46226..59db07b61c0f8 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -15,6 +15,7 @@ config X86_32 @@ -40,7 +40,7 @@ select OLD_SIGACTION select GENERIC_VDSO_32 diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h -index 77217bd292bd..8eba66a33e39 100644 +index 77217bd292bd5..8eba66a33e397 100644 --- a/arch/x86/include/asm/fixmap.h +++ b/arch/x86/include/asm/fixmap.h @@ -31,7 +31,7 @@ @@ -70,7 +70,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h -index 0f420b24e0fc..032e020853aa 100644 +index 0f420b24e0fcb..032e020853aa6 100644 --- a/arch/x86/include/asm/highmem.h +++ b/arch/x86/include/asm/highmem.h @@ -23,7 +23,6 @@ @@ -103,7 +103,7 @@ unsigned long end_pfn); diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h -index bacf68c4d70e..0be7a30fd6bc 100644 +index bacf68c4d70e6..0be7a30fd6bc1 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h @@ -9,19 +9,21 @@ @@ -138,7 +138,7 @@ #endif /* _ASM_X86_IOMAP_H */ diff --git a/arch/x86/include/asm/kmap_types.h b/arch/x86/include/asm/kmap_types.h deleted file mode 100644 -index 04ab8266e347..000000000000 +index 04ab8266e347c..0000000000000 --- a/arch/x86/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -156,7 +156,7 @@ - -#endif /* _ASM_X86_KMAP_TYPES_H */ diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h -index 903d71884fa2..130f428b0cc8 100644 +index 903d71884fa25..130f428b0cc8d 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -41,7 +41,6 @@ @@ -168,7 +168,7 @@ #include diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c -index 075fe51317b0..2c54b76d8f84 100644 +index 075fe51317b0f..2c54b76d8f849 100644 --- a/arch/x86/mm/highmem_32.c +++ b/arch/x86/mm/highmem_32.c @@ -4,65 +4,6 @@ @@ -238,7 +238,7 @@ { struct zone *zone; diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c -index 7c055259de3a..da31c2635ee4 100644 +index 7c055259de3a6..da31c2635ee43 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -394,19 +394,6 @@ kernel_physical_mapping_init(unsigned long start, @@ -271,7 +271,7 @@ * NOTE: at this point the bootmem allocator is fully available. */ diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c -index f60398aeb644..e0a40d7cc66c 100644 +index f60398aeb6445..e0a40d7cc66c8 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c @@ -44,28 +44,7 @@ void iomap_free(resource_size_t base, unsigned long size) @@ -346,7 +346,7 @@ -EXPORT_SYMBOL_GPL(iounmap_atomic); +EXPORT_SYMBOL_GPL(iomap_atomic_pfn_prot); diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 14d5b4020c8c..fbede783dc34 100644 +index 14d5b4020c8ca..fbede783dc341 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -217,7 +217,7 @@ static inline void __kunmap_atomic(void *addr) @@ -359,7 +359,7 @@ DECLARE_PER_CPU(int, __kmap_atomic_idx); diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index c75e4d3d8833..3b0940be72e9 100644 +index c75e4d3d8833f..3b0940be72e96 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -69,7 +69,7 @@ io_mapping_map_atomic_wc(struct io_mapping *mapping, @@ -372,7 +372,7 @@ static inline void diff --git a/mm/highmem.c b/mm/highmem.c -index 67d2d5983cb0..77677c6844f7 100644 +index 67d2d5983cb06..77677c6844f73 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -32,7 +32,7 @@ @@ -385,5 +385,5 @@ #endif #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch linux-5.10.216/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch --- linux-5.10.209/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0032-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 7eeaddc0ba0792dd0d8a1f5f167ff44230b77855 Mon Sep 17 00:00:00 2001 +From a971420d2c9f51a81d50f4b89aed96c9300f322f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:21 +0100 Subject: [PATCH 032/323] arc/mm/highmem: Use generic kmap atomic implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Adopt the map ordering to match the other architectures and the generic code. Also make the maximum entries limited and not dependend on the number @@ -43,7 +43,7 @@ delete mode 100644 arch/arc/include/asm/kmap_types.h diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig -index 0a89cc9def65..d8804001d550 100644 +index 0a89cc9def651..d8804001d5507 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -507,6 +507,7 @@ config LINUX_RAM_BASE @@ -55,7 +55,7 @@ With ARC 2G:2G address split, only upper 2G is directly addressable by kernel. Enable this to potentially allow access to rest of 2G and PAE diff --git a/arch/arc/include/asm/highmem.h b/arch/arc/include/asm/highmem.h -index 6e5eafb3afdd..a6b8e2c352c4 100644 +index 6e5eafb3afdd4..a6b8e2c352c44 100644 --- a/arch/arc/include/asm/highmem.h +++ b/arch/arc/include/asm/highmem.h @@ -9,17 +9,29 @@ @@ -110,7 +110,7 @@ #endif diff --git a/arch/arc/include/asm/kmap_types.h b/arch/arc/include/asm/kmap_types.h deleted file mode 100644 -index fecf7851ec32..000000000000 +index fecf7851ec322..0000000000000 --- a/arch/arc/include/asm/kmap_types.h +++ /dev/null @@ -1,14 +0,0 @@ @@ -129,7 +129,7 @@ - */ -#endif diff --git a/arch/arc/mm/highmem.c b/arch/arc/mm/highmem.c -index 1b9f473c6369..c79912a6b196 100644 +index 1b9f473c63693..c79912a6b1961 100644 --- a/arch/arc/mm/highmem.c +++ b/arch/arc/mm/highmem.c @@ -36,9 +36,8 @@ @@ -208,5 +208,5 @@ + alloc_kmap_pgtable(FIXMAP_BASE); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0033-ARM-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 007968641a299ffd9fd631d7f67fc119aaf9ac5d Mon Sep 17 00:00:00 2001 +From c5690ad4aba59626108d65a45b07ce12027d864c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:22 +0100 Subject: [PATCH 033/323] ARM: highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -23,7 +23,7 @@ delete mode 100644 arch/arm/mm/highmem.c diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 335308aff6ce..c01251683018 100644 +index 335308aff6ce0..c01251683018d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1497,6 +1497,7 @@ config HAVE_ARCH_PFN_VALID @@ -35,7 +35,7 @@ The address space of ARM processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/arm/include/asm/fixmap.h b/arch/arm/include/asm/fixmap.h -index 9575b404019c..707068f852c2 100644 +index 9575b404019c9..707068f852c27 100644 --- a/arch/arm/include/asm/fixmap.h +++ b/arch/arm/include/asm/fixmap.h @@ -7,14 +7,14 @@ @@ -56,7 +56,7 @@ /* Support writing RO kernel text via kprobes, jump labels, etc. */ FIX_TEXT_POKE0, diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h -index 31811be38d78..b22dffa8c7eb 100644 +index 31811be38d781..b22dffa8c7eb9 100644 --- a/arch/arm/include/asm/highmem.h +++ b/arch/arm/include/asm/highmem.h @@ -2,7 +2,8 @@ @@ -113,7 +113,7 @@ #endif diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h deleted file mode 100644 -index 5590940ee43d..000000000000 +index 5590940ee43d7..0000000000000 --- a/arch/arm/include/asm/kmap_types.h +++ /dev/null @@ -1,10 +0,0 @@ @@ -128,7 +128,7 @@ - -#endif diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile -index 7cb1699fbfc4..c4ce477c5261 100644 +index 7cb1699fbfc4f..c4ce477c52611 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile @@ -19,7 +19,6 @@ obj-$(CONFIG_MODULES) += proc-syms.o @@ -141,7 +141,7 @@ diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c deleted file mode 100644 -index 187fab227b50..000000000000 +index 187fab227b509..0000000000000 --- a/arch/arm/mm/highmem.c +++ /dev/null @@ -1,121 +0,0 @@ @@ -267,5 +267,5 @@ - return (void *)vaddr; -} -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0034-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3af9ca89d4398239a71471cffb488e3104990e23 Mon Sep 17 00:00:00 2001 +From 0e38df09c184ce7c455dcb4103bc3785bb15d55c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:23 +0100 Subject: [PATCH 034/323] csky/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -17,7 +17,7 @@ 4 files changed, 8 insertions(+), 78 deletions(-) diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig -index 7bf0a617e94c..c9f2533cc53d 100644 +index 7bf0a617e94c3..c9f2533cc53db 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -286,6 +286,7 @@ config NR_CPUS @@ -29,7 +29,7 @@ config FORCE_MAX_ZONEORDER diff --git a/arch/csky/include/asm/fixmap.h b/arch/csky/include/asm/fixmap.h -index 81f9477d5330..4b589cc20900 100644 +index 81f9477d5330c..4b589cc209000 100644 --- a/arch/csky/include/asm/fixmap.h +++ b/arch/csky/include/asm/fixmap.h @@ -8,7 +8,7 @@ @@ -51,7 +51,7 @@ __end_of_fixed_addresses }; diff --git a/arch/csky/include/asm/highmem.h b/arch/csky/include/asm/highmem.h -index 14645e3d5cd5..1f4ed3f4c0d9 100644 +index 14645e3d5cd52..1f4ed3f4c0d9b 100644 --- a/arch/csky/include/asm/highmem.h +++ b/arch/csky/include/asm/highmem.h @@ -9,7 +9,7 @@ @@ -78,7 +78,7 @@ #endif /* __KERNEL__ */ diff --git a/arch/csky/mm/highmem.c b/arch/csky/mm/highmem.c -index 89c10800a002..4161df3c6c15 100644 +index 89c10800a002e..4161df3c6c152 100644 --- a/arch/csky/mm/highmem.c +++ b/arch/csky/mm/highmem.c @@ -9,8 +9,6 @@ @@ -175,5 +175,5 @@ - kmap_pte = pte_offset_kernel((pmd_t *)pgd_offset_k(vaddr), vaddr); -} -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0035-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From bfdad55346f7206cf980bbd6cbc264082c54ae0c Mon Sep 17 00:00:00 2001 +From a8c434c04173397c5a97268fc1fd1b65ecde9736 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:24 +0100 Subject: [PATCH 035/323] microblaze/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture. @@ -20,7 +20,7 @@ delete mode 100644 arch/microblaze/mm/highmem.c diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig -index 33925ffed68f..7f6ca0ab4f81 100644 +index 33925ffed68fd..7f6ca0ab4f81f 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -155,6 +155,7 @@ config XILINX_UNCACHED_SHADOW @@ -32,7 +32,7 @@ The address space of Microblaze processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/microblaze/include/asm/fixmap.h b/arch/microblaze/include/asm/fixmap.h -index 0379ce5229e3..e6e9288bff76 100644 +index 0379ce5229e3a..e6e9288bff761 100644 --- a/arch/microblaze/include/asm/fixmap.h +++ b/arch/microblaze/include/asm/fixmap.h @@ -20,7 +20,7 @@ @@ -54,7 +54,7 @@ __end_of_fixed_addresses }; diff --git a/arch/microblaze/include/asm/highmem.h b/arch/microblaze/include/asm/highmem.h -index 284ca8fb54c1..4418633fb163 100644 +index 284ca8fb54c1d..4418633fb1632 100644 --- a/arch/microblaze/include/asm/highmem.h +++ b/arch/microblaze/include/asm/highmem.h @@ -25,7 +25,6 @@ @@ -78,7 +78,7 @@ #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/microblaze/mm/Makefile b/arch/microblaze/mm/Makefile -index 1b16875cea70..8ced71100047 100644 +index 1b16875cea704..8ced711000471 100644 --- a/arch/microblaze/mm/Makefile +++ b/arch/microblaze/mm/Makefile @@ -6,4 +6,3 @@ @@ -88,7 +88,7 @@ -obj-$(CONFIG_HIGHMEM) += highmem.o diff --git a/arch/microblaze/mm/highmem.c b/arch/microblaze/mm/highmem.c deleted file mode 100644 -index 92e0890416c9..000000000000 +index 92e0890416c91..0000000000000 --- a/arch/microblaze/mm/highmem.c +++ /dev/null @@ -1,78 +0,0 @@ @@ -171,7 +171,7 @@ -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c -index 45da639bd22c..1f4b5b34e600 100644 +index 45da639bd22ca..1f4b5b34e6004 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c @@ -49,17 +49,11 @@ unsigned long lowmem_size; @@ -193,5 +193,5 @@ static void highmem_setup(void) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0036-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5ff7160041ca1461c70a70237f3c6a4b09d54472 Mon Sep 17 00:00:00 2001 +From 4b7084ee83429925ffc66523229bbe655dd93168 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:25 +0100 Subject: [PATCH 036/323] mips/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -21,10 +21,10 @@ delete mode 100644 arch/mips/include/asm/kmap_types.h diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig -index 18ebacf29889..0e02b2e6ee06 100644 +index 57839f63074f7..b725f4799a398 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -2733,6 +2733,7 @@ config WAR_MIPS34K_MISSED_ITLB +@@ -2731,6 +2731,7 @@ config WAR_MIPS34K_MISSED_ITLB config HIGHMEM bool "High Memory Support" depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA @@ -33,7 +33,7 @@ config CPU_SUPPORTS_HIGHMEM bool diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h -index 743535be7528..beea14761cef 100644 +index 743535be7528c..beea14761cef0 100644 --- a/arch/mips/include/asm/fixmap.h +++ b/arch/mips/include/asm/fixmap.h @@ -17,7 +17,7 @@ @@ -55,7 +55,7 @@ __end_of_fixed_addresses }; diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h -index 9f021cf51aa7..1716181ea66d 100644 +index 9f021cf51aa71..1716181ea66dd 100644 --- a/arch/mips/include/asm/highmem.h +++ b/arch/mips/include/asm/highmem.h @@ -24,7 +24,7 @@ @@ -83,7 +83,7 @@ diff --git a/arch/mips/include/asm/kmap_types.h b/arch/mips/include/asm/kmap_types.h deleted file mode 100644 -index 16665dc2431b..000000000000 +index 16665dc2431b6..0000000000000 --- a/arch/mips/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -101,7 +101,7 @@ - -#endif diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c -index 5fec7f45d79a..57e2f08f00d0 100644 +index 5fec7f45d79a8..57e2f08f00d0c 100644 --- a/arch/mips/mm/highmem.c +++ b/arch/mips/mm/highmem.c @@ -8,8 +8,6 @@ @@ -193,7 +193,7 @@ - kmap_pte = virt_to_kpte(kmap_vstart); -} diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c -index 07e84a774938..bc80893e5c0f 100644 +index 32e7b869a2910..f0fcf36dd70b9 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -36,7 +36,6 @@ @@ -215,5 +215,5 @@ max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN; #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0037-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From bc36ab505c69bbf7d37b57cb983ca97b198c44df Mon Sep 17 00:00:00 2001 +From a7653826d1027195159b44c0adb9ce9b5493d9fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:26 +0100 Subject: [PATCH 037/323] nds32/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The mapping code is odd and looks broken. See FIXME in the comment. @@ -23,7 +23,7 @@ delete mode 100644 arch/nds32/mm/highmem.c diff --git a/arch/nds32/Kconfig.cpu b/arch/nds32/Kconfig.cpu -index f88a12fdf0f3..c10759952485 100644 +index f88a12fdf0f35..c107599524855 100644 --- a/arch/nds32/Kconfig.cpu +++ b/arch/nds32/Kconfig.cpu @@ -157,6 +157,7 @@ config HW_SUPPORT_UNALIGNMENT_ACCESS @@ -35,7 +35,7 @@ The address space of Andes processors is only 4 Gigabytes large and it has to accommodate user address space, kernel address diff --git a/arch/nds32/include/asm/fixmap.h b/arch/nds32/include/asm/fixmap.h -index 5a4bf11e5800..2fa09a2de428 100644 +index 5a4bf11e58003..2fa09a2de4281 100644 --- a/arch/nds32/include/asm/fixmap.h +++ b/arch/nds32/include/asm/fixmap.h @@ -6,7 +6,7 @@ @@ -57,7 +57,7 @@ FIX_EARLYCON_MEM_BASE, __end_of_fixed_addresses diff --git a/arch/nds32/include/asm/highmem.h b/arch/nds32/include/asm/highmem.h -index fe986d0e6e3f..16159a8716f2 100644 +index fe986d0e6e3ff..16159a8716f22 100644 --- a/arch/nds32/include/asm/highmem.h +++ b/arch/nds32/include/asm/highmem.h @@ -5,7 +5,6 @@ @@ -97,7 +97,7 @@ #endif diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile -index 897ecaf5cf54..14fb2e8eb036 100644 +index 897ecaf5cf54b..14fb2e8eb0368 100644 --- a/arch/nds32/mm/Makefile +++ b/arch/nds32/mm/Makefile @@ -3,7 +3,6 @@ obj-y := extable.o tlb.o fault.o init.o mmap.o \ @@ -110,7 +110,7 @@ CFLAGS_REMOVE_proc.o = $(CC_FLAGS_FTRACE) diff --git a/arch/nds32/mm/highmem.c b/arch/nds32/mm/highmem.c deleted file mode 100644 -index 4284cd59e21a..000000000000 +index 4284cd59e21ad..0000000000000 --- a/arch/nds32/mm/highmem.c +++ /dev/null @@ -1,48 +0,0 @@ @@ -163,5 +163,5 @@ -} -EXPORT_SYMBOL(kunmap_atomic_high); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0038-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6d7d749a6b27ada63e8be5d1903d336538b40702 Mon Sep 17 00:00:00 2001 +From b055e7a673bff3e7c73b15d091b281e8f7846f3b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:27 +0100 Subject: [PATCH 038/323] powerpc/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -25,7 +25,7 @@ delete mode 100644 arch/powerpc/mm/highmem.c diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index 78dd6be8b31d..b3ab6c2d9f66 100644 +index 78dd6be8b31dd..b3ab6c2d9f66c 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -410,6 +410,7 @@ menu "Kernel options" @@ -37,7 +37,7 @@ source "kernel/Kconfig.hz" diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h -index 897cc68758d4..a832aeafe560 100644 +index 897cc68758d44..a832aeafe5601 100644 --- a/arch/powerpc/include/asm/fixmap.h +++ b/arch/powerpc/include/asm/fixmap.h @@ -20,7 +20,7 @@ @@ -59,7 +59,7 @@ #ifdef CONFIG_PPC_8xx /* For IMMR we need an aligned 512K area */ diff --git a/arch/powerpc/include/asm/highmem.h b/arch/powerpc/include/asm/highmem.h -index 104026f7d6bc..80a5ae771c65 100644 +index 104026f7d6bc2..80a5ae771c653 100644 --- a/arch/powerpc/include/asm/highmem.h +++ b/arch/powerpc/include/asm/highmem.h @@ -24,12 +24,10 @@ @@ -89,7 +89,7 @@ #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h deleted file mode 100644 -index c8fa182d48c8..000000000000 +index c8fa182d48c8e..0000000000000 --- a/arch/powerpc/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -107,7 +107,7 @@ -#endif /* __KERNEL__ */ -#endif /* _ASM_POWERPC_KMAP_TYPES_H */ diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile -index 55b4a8bd408a..3b4e9e4e25ea 100644 +index 55b4a8bd408ab..3b4e9e4e25eaa 100644 --- a/arch/powerpc/mm/Makefile +++ b/arch/powerpc/mm/Makefile @@ -16,7 +16,6 @@ obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o @@ -120,7 +120,7 @@ obj-$(CONFIG_KASAN) += kasan/ diff --git a/arch/powerpc/mm/highmem.c b/arch/powerpc/mm/highmem.c deleted file mode 100644 -index 624b4438aff9..000000000000 +index 624b4438aff9d..0000000000000 --- a/arch/powerpc/mm/highmem.c +++ /dev/null @@ -1,67 +0,0 @@ @@ -192,7 +192,7 @@ -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c -index 08e3422eb792..1faa0789871d 100644 +index 08e3422eb7926..1faa0789871d5 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -63,11 +63,6 @@ @@ -217,5 +217,5 @@ printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%llx\n", -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0039-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 859a29e0206dcd137ea0db376a846246f1071bfb Mon Sep 17 00:00:00 2001 +From 7e2669a664ce1a4269d1a0d68adb58865b822174 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:28 +0100 Subject: [PATCH 039/323] sparc/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -23,7 +23,7 @@ delete mode 100644 arch/sparc/mm/highmem.c diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig -index 7e2ce4c8d657..1a6e4b187861 100644 +index 7e2ce4c8d6571..1a6e4b1878617 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -140,6 +140,7 @@ config MMU @@ -35,7 +35,7 @@ config ZONE_DMA bool diff --git a/arch/sparc/include/asm/highmem.h b/arch/sparc/include/asm/highmem.h -index 6c35f0d27ee1..875116209ec1 100644 +index 6c35f0d27ee1a..875116209ec14 100644 --- a/arch/sparc/include/asm/highmem.h +++ b/arch/sparc/include/asm/highmem.h @@ -24,7 +24,6 @@ @@ -69,7 +69,7 @@ #endif /* _ASM_HIGHMEM_H */ diff --git a/arch/sparc/include/asm/kmap_types.h b/arch/sparc/include/asm/kmap_types.h deleted file mode 100644 -index 55a99b6bd91e..000000000000 +index 55a99b6bd91e0..0000000000000 --- a/arch/sparc/include/asm/kmap_types.h +++ /dev/null @@ -1,11 +0,0 @@ @@ -85,7 +85,7 @@ - -#endif diff --git a/arch/sparc/include/asm/vaddrs.h b/arch/sparc/include/asm/vaddrs.h -index 84d054b07a6f..4fec0341e2a8 100644 +index 84d054b07a6ff..4fec0341e2a81 100644 --- a/arch/sparc/include/asm/vaddrs.h +++ b/arch/sparc/include/asm/vaddrs.h @@ -32,13 +32,13 @@ @@ -105,7 +105,7 @@ __end_of_fixed_addresses }; diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile -index b078205b70e0..68db1f859b02 100644 +index b078205b70e0b..68db1f859b028 100644 --- a/arch/sparc/mm/Makefile +++ b/arch/sparc/mm/Makefile @@ -15,6 +15,3 @@ obj-$(CONFIG_SPARC32) += leon_mm.o @@ -117,7 +117,7 @@ -obj-$(CONFIG_HIGHMEM) += highmem.o diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c deleted file mode 100644 -index 8f2a2afb048a..000000000000 +index 8f2a2afb048a2..0000000000000 --- a/arch/sparc/mm/highmem.c +++ /dev/null @@ -1,115 +0,0 @@ @@ -237,7 +237,7 @@ -} -EXPORT_SYMBOL(kunmap_atomic_high); diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c -index 0070f8b9a753..a03caa5f6628 100644 +index 0070f8b9a753a..a03caa5f6628d 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -971,8 +971,6 @@ void __init srmmu_paging_init(void) @@ -250,5 +250,5 @@ unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 }; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch linux-5.10.216/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch --- linux-5.10.209/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0040-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 716b526a73eff1c6b44a898c5e66ee2569f7280d Mon Sep 17 00:00:00 2001 +From 23574f6f7745b0cb224deea5cc7f455538f31fe3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:29 +0100 Subject: [PATCH 040/323] xtensa/mm/highmem: Switch to generic kmap atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No reason having the same code in every architecture @@ -19,7 +19,7 @@ 4 files changed, 18 insertions(+), 45 deletions(-) diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig -index 87e08ad38ea7..03cbf6b53622 100644 +index 87e08ad38ea71..03cbf6b536220 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -666,6 +666,7 @@ endchoice @@ -31,7 +31,7 @@ Linux can use the full amount of RAM in the system by default. However, the default MMUv2 setup only maps the diff --git a/arch/xtensa/include/asm/fixmap.h b/arch/xtensa/include/asm/fixmap.h -index a06ffb0c61c7..92049b61c351 100644 +index a06ffb0c61c77..92049b61c3511 100644 --- a/arch/xtensa/include/asm/fixmap.h +++ b/arch/xtensa/include/asm/fixmap.h @@ -16,7 +16,7 @@ @@ -53,7 +53,7 @@ __end_of_fixed_addresses }; diff --git a/arch/xtensa/include/asm/highmem.h b/arch/xtensa/include/asm/highmem.h -index eac503215f17..0fc3b1cebc56 100644 +index eac503215f178..0fc3b1cebc56a 100644 --- a/arch/xtensa/include/asm/highmem.h +++ b/arch/xtensa/include/asm/highmem.h @@ -16,9 +16,8 @@ @@ -84,7 +84,7 @@ #endif diff --git a/arch/xtensa/mm/highmem.c b/arch/xtensa/mm/highmem.c -index 673196fe862e..0735ca5e8f86 100644 +index 673196fe862ef..0735ca5e8f869 100644 --- a/arch/xtensa/mm/highmem.c +++ b/arch/xtensa/mm/highmem.c @@ -12,8 +12,6 @@ @@ -162,5 +162,5 @@ kmap_waitqueues_init(); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch linux-5.10.216/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch --- linux-5.10.209/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0041-highmem-Get-rid-of-kmap_types.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 78d1ee2f2f990b4876ce2e64c637a660911a903d Mon Sep 17 00:00:00 2001 +From b9284006af4b038b143935e33d9d29e6060a278b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:30 +0100 Subject: [PATCH 041/323] highmem: Get rid of kmap_types.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The header is not longer used and on alpha, ia64, openrisc, parisc and um it was completely unused anyway as these architectures have no highmem @@ -30,7 +30,7 @@ diff --git a/arch/alpha/include/asm/kmap_types.h b/arch/alpha/include/asm/kmap_types.h deleted file mode 100644 -index 651714b45729..000000000000 +index 651714b45729a..0000000000000 --- a/arch/alpha/include/asm/kmap_types.h +++ /dev/null @@ -1,15 +0,0 @@ @@ -51,7 +51,7 @@ -#endif diff --git a/arch/ia64/include/asm/kmap_types.h b/arch/ia64/include/asm/kmap_types.h deleted file mode 100644 -index 5c268cf7c2bd..000000000000 +index 5c268cf7c2bd5..0000000000000 --- a/arch/ia64/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -69,7 +69,7 @@ - -#endif /* _ASM_IA64_KMAP_TYPES_H */ diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c -index 5e88c351e6a4..f3fa02b8838a 100644 +index 5e88c351e6a45..f3fa02b8838af 100644 --- a/arch/openrisc/mm/init.c +++ b/arch/openrisc/mm/init.c @@ -33,7 +33,6 @@ @@ -81,7 +81,7 @@ #include #include diff --git a/arch/openrisc/mm/ioremap.c b/arch/openrisc/mm/ioremap.c -index a978590d802d..5aed97a18bac 100644 +index a978590d802d0..5aed97a18bac9 100644 --- a/arch/openrisc/mm/ioremap.c +++ b/arch/openrisc/mm/ioremap.c @@ -15,7 +15,6 @@ @@ -94,7 +94,7 @@ #include diff --git a/arch/parisc/include/asm/kmap_types.h b/arch/parisc/include/asm/kmap_types.h deleted file mode 100644 -index 3e70b5cd1123..000000000000 +index 3e70b5cd11231..0000000000000 --- a/arch/parisc/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -112,7 +112,7 @@ - -#endif diff --git a/arch/um/include/asm/fixmap.h b/arch/um/include/asm/fixmap.h -index 2c697a145ac1..2efac5827188 100644 +index 2c697a145ac1b..2efac58271880 100644 --- a/arch/um/include/asm/fixmap.h +++ b/arch/um/include/asm/fixmap.h @@ -3,7 +3,6 @@ @@ -125,7 +125,7 @@ #include diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h deleted file mode 100644 -index b0bd12de1d23..000000000000 +index b0bd12de1d23c..0000000000000 --- a/arch/um/include/asm/kmap_types.h +++ /dev/null @@ -1,13 +0,0 @@ @@ -143,7 +143,7 @@ - -#endif diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild -index 3114a6da7e56..267f6dfb8960 100644 +index 3114a6da7e561..267f6dfb8960b 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild @@ -30,7 +30,6 @@ mandatory-y += irq.h @@ -156,7 +156,7 @@ mandatory-y += linkage.h diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h deleted file mode 100644 -index 9f95b7b63d19..000000000000 +index 9f95b7b63d192..0000000000000 --- a/include/asm-generic/kmap_types.h +++ /dev/null @@ -1,11 +0,0 @@ @@ -172,7 +172,7 @@ - -#endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index fbede783dc34..a5ce45dceae0 100644 +index fbede783dc341..a5ce45dceae0f 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -29,8 +29,6 @@ static inline void invalidate_kernel_vmap_range(void *vaddr, int size) @@ -185,5 +185,5 @@ * Outside of CONFIG_HIGHMEM to support X86 32bit iomap_atomic() cruft. */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch linux-5.10.216/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch --- linux-5.10.209/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0042-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 2840eec439f3e1788047259d10994b555020de40 Mon Sep 17 00:00:00 2001 +From 4e0de4d5db14ba816eba9381e9ffc96b664e1d21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:31 +0100 Subject: [PATCH 042/323] mm/highmem: Remove the old kmap_atomic cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All users gone. @@ -14,7 +14,7 @@ 2 files changed, 5 insertions(+), 65 deletions(-) diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index a5ce45dceae0..e632774cce87 100644 +index a5ce45dceae0f..e632774cce872 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -86,31 +86,16 @@ static inline void kunmap(struct page *page) @@ -110,7 +110,7 @@ /* * Prevent people trying to call kunmap_atomic() as if it were kunmap() diff --git a/mm/highmem.c b/mm/highmem.c -index 77677c6844f7..499dfafd36b7 100644 +index 77677c6844f73..499dfafd36b79 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -31,12 +31,6 @@ @@ -135,5 +135,5 @@ # define arch_kmap_local_pre_unmap(vaddr) do { } while (0) #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch linux-5.10.216/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch --- linux-5.10.209/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0043-io-mapping-Cleanup-atomic-iomap.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d1b454a9410a5cb2d9dcd0ef4bc330d04847f302 Mon Sep 17 00:00:00 2001 +From f91009f26945cd1e4bcce25b5a6db9660067856a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:32 +0100 Subject: [PATCH 043/323] io-mapping: Cleanup atomic iomap -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Switch the atomic iomap implementation over to kmap_local and stick the preempt/pagefault mechanics into the generic code similar to the @@ -19,7 +19,7 @@ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h -index 0be7a30fd6bc..e2de092fc38c 100644 +index 0be7a30fd6bc1..e2de092fc38cb 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h @@ -13,14 +13,7 @@ @@ -39,7 +39,7 @@ int iomap_create_wc(resource_size_t base, unsigned long size, pgprot_t *prot); diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c -index e0a40d7cc66c..9aaa756ddf21 100644 +index e0a40d7cc66c8..9aaa756ddf219 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c @@ -44,7 +44,7 @@ void iomap_free(resource_size_t base, unsigned long size) @@ -62,7 +62,7 @@ -EXPORT_SYMBOL_GPL(iomap_atomic_pfn_prot); +EXPORT_SYMBOL_GPL(__iomap_local_pfn_prot); diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index 3b0940be72e9..60e7c83e4904 100644 +index 3b0940be72e96..60e7c83e49047 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -69,13 +69,17 @@ io_mapping_map_atomic_wc(struct io_mapping *mapping, @@ -86,5 +86,5 @@ static inline void __iomem * -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch linux-5.10.216/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch --- linux-5.10.209/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0044-Documentation-io-mapping-Remove-outdated-blurb.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From edd5c644d78fbd912f6386c97ed2b4eaf2b58b47 Mon Sep 17 00:00:00 2001 +From d45aad297835562a9e75b5d26f4d8b5c5b6a00ad Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:33 +0100 Subject: [PATCH 044/323] Documentation/io-mapping: Remove outdated blurb -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The implementation details in the documentation are outdated and not really helpful. Remove them. @@ -14,7 +14,7 @@ 1 file changed, 22 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index a966239f04e4..e33b88268554 100644 +index a966239f04e48..e33b88268554b 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -73,25 +73,3 @@ for pages mapped with io_mapping_map_wc. @@ -44,5 +44,5 @@ -performs an IPI to inform all processors about the new mapping. This results -in a significant performance penalty. -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch linux-5.10.216/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch --- linux-5.10.209/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0045-highmem-High-implementation-details-and-document-API.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e9f16e3d48ba9b1d37ae050de3e84e147133b84c Mon Sep 17 00:00:00 2001 +From ec6851b3e03ba777e3527ccb486213f068873699 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:34 +0100 Subject: [PATCH 045/323] highmem: High implementation details and document API -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move the gory details of kmap & al into a private header and only document the interfaces which are usable by drivers. @@ -18,7 +18,7 @@ diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h new file mode 100644 -index 000000000000..6ceed907b14e +index 0000000000000..6ceed907b14e2 --- /dev/null +++ b/include/linux/highmem-internal.h @@ -0,0 +1,174 @@ @@ -197,7 +197,7 @@ + +#endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index e632774cce87..5c888525b4c5 100644 +index e632774cce872..5c888525b4c58 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -11,199 +11,125 @@ @@ -497,7 +497,7 @@ /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */ #ifndef clear_user_highpage diff --git a/mm/highmem.c b/mm/highmem.c -index 499dfafd36b7..54bd233846c9 100644 +index 499dfafd36b79..54bd233846c90 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -104,7 +104,7 @@ static inline wait_queue_head_t *get_pkmap_wait_queue_head(unsigned int color) @@ -540,5 +540,5 @@ lock_kmap(); flush_all_zero_pkmaps(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch linux-5.10.216/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch --- linux-5.10.209/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0046-sched-Make-migrate_disable-enable-independent-of-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 2a81a49976b336ce93ef823a5db96ce960096478 Mon Sep 17 00:00:00 2001 +From 0b1707c24dd0c148748dc77607d7be60b1e89a67 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:35 +0100 Subject: [PATCH 046/323] sched: Make migrate_disable/enable() independent of RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that the scheduler can deal with migrate disable properly, there is no real compelling reason to make it only available for RT. @@ -38,7 +38,7 @@ 6 files changed, 56 insertions(+), 56 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index cdd6ed5bbcf2..55d48d5627c7 100644 +index cdd6ed5bbcf20..55d48d5627c71 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -207,6 +207,7 @@ extern int _cond_resched(void); @@ -91,7 +91,7 @@ * abs - return absolute value of an argument * @x: the value. If it is unsigned type, it is converted to signed type first. diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 8b43922e65df..6df63cbe8bb0 100644 +index 8b43922e65dfe..6df63cbe8bb04 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -322,7 +322,7 @@ static inline void preempt_notifier_init(struct preempt_notifier *notifier, @@ -150,7 +150,7 @@ #endif /* __LINUX_PREEMPT_H */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index 7ca1f3e740dd..bff48e9f32db 100644 +index 7ca1f3e740ddd..bff48e9f32db5 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -727,7 +727,7 @@ struct task_struct { @@ -163,7 +163,7 @@ #endif unsigned short migration_flags; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c1e52319669d..8a6135a0b2ee 100644 +index c1e52319669dd..8a6135a0b2ee8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1710,8 +1710,6 @@ void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) @@ -254,7 +254,7 @@ #ifdef CONFIG_MAGIC_SYSRQ diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 69ef7cac3d29..c26b1c7009f4 100644 +index 69ef7cac3d296..c26b1c7009f45 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1058,7 +1058,7 @@ struct rq { @@ -276,7 +276,7 @@ #else return false; diff --git a/lib/smp_processor_id.c b/lib/smp_processor_id.c -index dbb96ebf661f..0c0c42b14370 100644 +index dbb96ebf661fd..0c0c42b143704 100644 --- a/lib/smp_processor_id.c +++ b/lib/smp_processor_id.c @@ -26,7 +26,7 @@ unsigned int check_preemption_disabled(const char *what1, const char *what2) @@ -289,5 +289,5 @@ goto out; #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch linux-5.10.216/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch --- linux-5.10.209/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0047-sched-highmem-Store-local-kmaps-in-task-struct.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7aa261f53a405c0862f4857b46ef3344bbe6385f Mon Sep 17 00:00:00 2001 +From a527bfab6dff28043adab743a6cd53e5edbc3f7f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:36 +0100 Subject: [PATCH 047/323] sched: highmem: Store local kmaps in task struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Instead of storing the map per CPU provide and use per task storage. That prepares for local kmaps which are preemptible. @@ -31,7 +31,7 @@ 6 files changed, 129 insertions(+), 10 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 6ceed907b14e..c5a22177db85 100644 +index 6ceed907b14e2..c5a22177db85b 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -9,6 +9,16 @@ @@ -52,7 +52,7 @@ #ifdef CONFIG_HIGHMEM diff --git a/include/linux/sched.h b/include/linux/sched.h -index bff48e9f32db..82de1ab42497 100644 +index bff48e9f32db5..82de1ab424976 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -34,6 +34,7 @@ @@ -86,7 +86,7 @@ unsigned long task_state_change; #endif diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index 09f58853f692..e6a66de1202a 100644 +index 09f58853f6927..e6a66de1202af 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -2,6 +2,7 @@ @@ -106,7 +106,7 @@ lockdep_sys_exit(); } diff --git a/kernel/fork.c b/kernel/fork.c -index 633b0af1d1a7..32b9d7205ac1 100644 +index 633b0af1d1a73..32b9d7205ac1b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -942,6 +942,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -118,7 +118,7 @@ #ifdef CONFIG_FAULT_INJECTION tsk->fail_nth = 0; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8a6135a0b2ee..390b51366f5e 100644 +index 8a6135a0b2ee8..390b51366f5ef 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4092,6 +4092,22 @@ static inline void finish_lock_switch(struct rq *rq) @@ -161,7 +161,7 @@ fire_sched_in_preempt_notifiers(current); /* diff --git a/mm/highmem.c b/mm/highmem.c -index 54bd233846c9..d7a1c80001d0 100644 +index 54bd233846c90..d7a1c80001d02 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -365,8 +365,6 @@ EXPORT_SYMBOL(kunmap_high); @@ -305,5 +305,5 @@ #if defined(HASHED_PAGE_VIRTUAL) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch linux-5.10.216/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch --- linux-5.10.209/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0048-mm-highmem-Provide-kmap_local.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 452c4c8536ea017ed0f82287834e7cfa2f751488 Mon Sep 17 00:00:00 2001 +From 6a7f5fb7836ec39356bb78e261f3e3a8cf173e26 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:37 +0100 Subject: [PATCH 048/323] mm/highmem: Provide kmap_local* -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that the kmap atomic index is stored in task struct provide a preemptible variant. On context switch the maps of an outgoing task are @@ -28,7 +28,7 @@ 3 files changed, 81 insertions(+), 16 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index c5a22177db85..1bbe96dc8be6 100644 +index c5a22177db85b..1bbe96dc8be65 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -68,6 +68,26 @@ static inline void kmap_flush_unused(void) @@ -99,7 +99,7 @@ + #endif diff --git a/include/linux/highmem.h b/include/linux/highmem.h -index 5c888525b4c5..7a3c6d4b79d8 100644 +index 5c888525b4c58..7a3c6d4b79d82 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -60,24 +60,22 @@ static inline struct page *kmap_to_page(void *addr); @@ -179,7 +179,7 @@ /* Highmem related interfaces for management code */ diff --git a/mm/highmem.c b/mm/highmem.c -index d7a1c80001d0..8db577e5290c 100644 +index d7a1c80001d02..8db577e5290cc 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -450,6 +450,11 @@ void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot) @@ -203,5 +203,5 @@ EXPORT_SYMBOL(kunmap_local_indexed); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch linux-5.10.216/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch --- linux-5.10.209/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0049-io-mapping-Provide-iomap_local-variant.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 223ef1707ad3b008f96df3f4d263d2cdeed3ef65 Mon Sep 17 00:00:00 2001 +From 0e6f15d2a0edd6864ee345a84b16620f75f91bb6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:38 +0100 Subject: [PATCH 049/323] io-mapping: Provide iomap_local variant -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Similar to kmap local provide a iomap local variant which only disables migration, but neither disables pagefaults nor preemption. @@ -15,7 +15,7 @@ 2 files changed, 73 insertions(+), 31 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index e33b88268554..a0cfb15988df 100644 +index e33b88268554b..a0cfb15988dfc 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -20,55 +20,71 @@ A mapping object is created during driver initialization using:: @@ -120,7 +120,7 @@ At driver close time, the io_mapping object must be freed:: diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index 60e7c83e4904..c093e81310a9 100644 +index 60e7c83e49047..c093e81310a9b 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -82,6 +82,21 @@ io_mapping_unmap_atomic(void __iomem *vaddr) @@ -175,5 +175,5 @@ static inline struct io_mapping * io_mapping_create_wc(resource_size_t base, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch linux-5.10.216/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch --- linux-5.10.209/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0050-x86-crashdump-32-Simplify-copy_oldmem_page.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9d9dd47b77d859a1261ac0dc98d94018bb5bb6a0 Mon Sep 17 00:00:00 2001 +From 6109dda978382498ad58575b6ca7290347da1a74 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:39 +0100 Subject: [PATCH 050/323] x86/crashdump/32: Simplify copy_oldmem_page() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace kmap_atomic_pfn() with kmap_local_pfn() which is preemptible and can take page faults. @@ -17,7 +17,7 @@ 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/arch/x86/kernel/crash_dump_32.c b/arch/x86/kernel/crash_dump_32.c -index 33ee47670b99..5fcac46aaf6b 100644 +index 33ee47670b993..5fcac46aaf6b1 100644 --- a/arch/x86/kernel/crash_dump_32.c +++ b/arch/x86/kernel/crash_dump_32.c @@ -13,8 +13,6 @@ @@ -95,5 +95,5 @@ } -arch_initcall(kdump_buf_page_init); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch linux-5.10.216/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch --- linux-5.10.209/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0051-mips-crashdump-Simplify-copy_oldmem_page.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1aeac707162ce43fc0ae9c45df5a8a4535de2332 Mon Sep 17 00:00:00 2001 +From 64d0e583ec61d4eea2d55644654a33fdb13144b7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:40 +0100 Subject: [PATCH 051/323] mips/crashdump: Simplify copy_oldmem_page() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replace kmap_atomic_pfn() with kmap_local_pfn() which is preemptible and can take page faults. @@ -19,7 +19,7 @@ 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/arch/mips/kernel/crash_dump.c b/arch/mips/kernel/crash_dump.c -index 01b2bd95ba1f..9aba83e1eeb4 100644 +index 01b2bd95ba1f7..9aba83e1eeb4e 100644 --- a/arch/mips/kernel/crash_dump.c +++ b/arch/mips/kernel/crash_dump.c @@ -5,8 +5,6 @@ @@ -91,5 +91,5 @@ -} -arch_initcall(kdump_buf_page_init); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch linux-5.10.216/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch --- linux-5.10.209/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0052-ARM-mm-Replace-kmap_atomic_pfn.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d74735ac58543c778598c75bccd45aa527acf03c Mon Sep 17 00:00:00 2001 +From 7663b6728057abea9f61b19e5e04e7246d76cf85 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:41 +0100 Subject: [PATCH 052/323] ARM: mm: Replace kmap_atomic_pfn() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no requirement to disable pagefaults and preemption for these cache management mappings. @@ -20,7 +20,7 @@ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c -index 5c1b7a7b9af6..87328766e910 100644 +index 5c1b7a7b9af63..87328766e9102 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c @@ -49,9 +49,9 @@ static inline unsigned long l2_get_va(unsigned long paddr) @@ -45,7 +45,7 @@ } diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c -index d20d7af02d10..0e0a3abd8174 100644 +index d20d7af02d10f..0e0a3abd81743 100644 --- a/arch/arm/mm/cache-xsc3l2.c +++ b/arch/arm/mm/cache-xsc3l2.c @@ -59,7 +59,7 @@ static inline void l2_unmap_va(unsigned long va) @@ -67,5 +67,5 @@ return va + (pa_offset >> (32 - PAGE_SHIFT)); #else -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch linux-5.10.216/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch --- linux-5.10.209/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0053-highmem-Remove-kmap_atomic_pfn.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 766aabba108ec5697bed86d6ec633151b7f3618e Mon Sep 17 00:00:00 2001 +From 096cf71d9a07e3810a1d2094ba9b6cc413176a7a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:42 +0100 Subject: [PATCH 053/323] highmem: Remove kmap_atomic_pfn() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. @@ -13,7 +13,7 @@ 1 file changed, 12 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 1bbe96dc8be6..3590af5aad96 100644 +index 1bbe96dc8be65..3590af5aad96c 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -100,13 +100,6 @@ static inline void *kmap_atomic(struct page *page) @@ -43,5 +43,5 @@ { #ifdef ARCH_HAS_FLUSH_ON_KUNMAP -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch linux-5.10.216/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch --- linux-5.10.209/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0054-drm-ttm-Replace-kmap_atomic-usage.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 818c332a89ac4310c59f7ad122bdb4a6e0aac518 Mon Sep 17 00:00:00 2001 +From cd9f2293478040e4ee9bb03a5f1bfbc60fe45fa5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:43 +0100 Subject: [PATCH 054/323] drm/ttm: Replace kmap_atomic() usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no reason to disable pagefaults and preemption as a side effect of kmap_atomic_prot(). @@ -26,7 +26,7 @@ 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c -index 1968df9743fc..79b9c883431a 100644 +index 1968df9743fcb..79b9c883431ad 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -181,13 +181,15 @@ static int ttm_copy_io_ttm_page(struct ttm_tt *ttm, void *src, @@ -70,5 +70,5 @@ return 0; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch linux-5.10.216/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch --- linux-5.10.209/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0055-drm-vmgfx-Replace-kmap_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3c21a2a16d681c2be78f257f660f1c8c1b50f7c3 Mon Sep 17 00:00:00 2001 +From 52dc70863ec4a1890efdac04a1684ade2ed9c18c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:44 +0100 Subject: [PATCH 055/323] drm/vmgfx: Replace kmap_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no reason to disable pagefaults and preemption as a side effect of kmap_atomic_prot(). @@ -26,7 +26,7 @@ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c -index e8d66182cd7b..71dba228f68e 100644 +index ea2f2f937eb30..592c2a73fdfda 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c @@ -375,12 +375,12 @@ static int vmw_bo_cpu_blit_line(struct vmw_bo_blit_line_data *d, @@ -100,5 +100,5 @@ return ret; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch linux-5.10.216/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch --- linux-5.10.209/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0056-highmem-Remove-kmap_atomic_prot.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From acac3af33fa7522e3be0f030ec1d80cca2cf215d Mon Sep 17 00:00:00 2001 +From e6d38c3b5927e3f9fc1eed3a8f9aa9bbe7f31d81 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:45 +0100 Subject: [PATCH 056/323] highmem: Remove kmap_atomic_prot() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. @@ -13,7 +13,7 @@ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index 3590af5aad96..bd15bf9164c2 100644 +index 3590af5aad96c..bd15bf9164c23 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -88,16 +88,11 @@ static inline void __kunmap_local(void *vaddr) @@ -48,5 +48,5 @@ { #ifdef ARCH_HAS_FLUSH_ON_KUNMAP -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch linux-5.10.216/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch --- linux-5.10.209/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0057-drm-qxl-Replace-io_mapping_map_atomic_wc.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 2c90fccccea4cffb6ab5cd779da693cfe82194b8 Mon Sep 17 00:00:00 2001 +From 33e14567739465b7abb6bf6c2094cb8f8ad666e4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:46 +0100 Subject: [PATCH 057/323] drm/qxl: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz None of these mapping requires the side effect of disabling pagefaults and preemption. @@ -28,7 +28,7 @@ 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_image.c b/drivers/gpu/drm/qxl/qxl_image.c -index 60ab7151b84d..93f92ccd42e5 100644 +index 60ab7151b84dc..93f92ccd42e58 100644 --- a/drivers/gpu/drm/qxl/qxl_image.c +++ b/drivers/gpu/drm/qxl/qxl_image.c @@ -124,12 +124,12 @@ qxl_image_init_helper(struct qxl_device *qdev, @@ -105,10 +105,10 @@ return 0; } diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c -index 5cea6eea72ab..785023081b79 100644 +index 9a02c48714007..758c484c7986f 100644 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c -@@ -89,11 +89,11 @@ apply_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) +@@ -88,11 +88,11 @@ apply_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) { void *reloc_page; @@ -122,7 +122,7 @@ } static void -@@ -105,9 +105,9 @@ apply_surf_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) +@@ -104,9 +104,9 @@ apply_surf_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info) if (info->src_bo && !info->src_bo->is_primary) id = info->src_bo->surface_id; @@ -134,7 +134,7 @@ } /* return holding the reference to this object */ -@@ -149,7 +149,6 @@ static int qxl_process_single_command(struct qxl_device *qdev, +@@ -148,7 +148,6 @@ static int qxl_process_single_command(struct qxl_device *qdev, struct qxl_bo *cmd_bo; void *fb_cmd; int i, ret, num_relocs; @@ -142,7 +142,7 @@ switch (cmd->type) { case QXL_CMD_DRAW: -@@ -185,21 +184,21 @@ static int qxl_process_single_command(struct qxl_device *qdev, +@@ -184,21 +183,21 @@ static int qxl_process_single_command(struct qxl_device *qdev, goto out_free_reloc; /* TODO copy slow path code from i915 */ @@ -174,7 +174,7 @@ } diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c -index 544a9e4df2a8..5ee5171d46ef 100644 +index 544a9e4df2a86..5ee5171d46ef8 100644 --- a/drivers/gpu/drm/qxl/qxl_object.c +++ b/drivers/gpu/drm/qxl/qxl_object.c @@ -173,8 +173,8 @@ int qxl_bo_kmap(struct qxl_bo *bo, void **ptr) @@ -216,7 +216,7 @@ fallback: qxl_bo_kunmap(bo); diff --git a/drivers/gpu/drm/qxl/qxl_object.h b/drivers/gpu/drm/qxl/qxl_object.h -index 5762ea40d047..6ae89b1b36f4 100644 +index 5762ea40d047c..6ae89b1b36f47 100644 --- a/drivers/gpu/drm/qxl/qxl_object.h +++ b/drivers/gpu/drm/qxl/qxl_object.h @@ -89,8 +89,8 @@ extern int qxl_bo_create(struct qxl_device *qdev, @@ -231,7 +231,7 @@ extern void qxl_bo_unref(struct qxl_bo **bo); extern int qxl_bo_pin(struct qxl_bo *bo); diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c -index b2a475a0ca4a..b665a33b449b 100644 +index b2a475a0ca4aa..b665a33b449b4 100644 --- a/drivers/gpu/drm/qxl/qxl_release.c +++ b/drivers/gpu/drm/qxl/qxl_release.c @@ -414,7 +414,7 @@ union qxl_release_info *qxl_release_map(struct qxl_device *qdev, @@ -253,5 +253,5 @@ void qxl_release_fence_buffer_objects(struct qxl_release *release) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch linux-5.10.216/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch --- linux-5.10.209/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From fa246d15bcd167ad99886a776912530c0ca8d6a7 Mon Sep 17 00:00:00 2001 +From 4ebf134545d871b6bce1ec4ad00a0f99d94a47ee Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:47 +0100 Subject: [PATCH 058/323] drm/nouveau/device: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Neither fbmem_peek() nor fbmem_poke() require to disable pagefaults and preemption as a side effect of io_mapping_map_atomic_wc(). @@ -22,7 +22,7 @@ 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h -index 6c5bbff12eb4..411f91ee20fa 100644 +index 6c5bbff12eb49..411f91ee20fa6 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h @@ -60,19 +60,19 @@ fbmem_fini(struct io_mapping *fb) @@ -50,5 +50,5 @@ static inline bool -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch linux-5.10.216/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch --- linux-5.10.209/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0059-drm-i915-Replace-io_mapping_map_atomic_wc.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 012c96110910f68af41e3914aabb92283a885215 Mon Sep 17 00:00:00 2001 +From 632f2178ce5513881a1ea38b20b62704d79c38e8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:48 +0100 Subject: [PATCH 059/323] drm/i915: Replace io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz None of these mapping requires the side effect of disabling pagefaults and preemption. @@ -28,7 +28,7 @@ 4 files changed, 22 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c -index 0c083af5a59d..2abf043d3d9d 100644 +index 0c083af5a59d5..2abf043d3d9d3 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c @@ -1080,7 +1080,7 @@ static void reloc_cache_reset(struct reloc_cache *cache, struct i915_execbuffer @@ -60,7 +60,7 @@ cache->vaddr = (unsigned long)vaddr; diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 58276694c848..88944c3b1bc8 100644 +index 58276694c848d..88944c3b1bc8a 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -355,22 +355,15 @@ gtt_user_read(struct io_mapping *mapping, @@ -122,7 +122,7 @@ /** diff --git a/drivers/gpu/drm/i915/selftests/i915_gem.c b/drivers/gpu/drm/i915/selftests/i915_gem.c -index 412e21604a05..432493183d20 100644 +index 412e21604a050..432493183d209 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem.c @@ -57,12 +57,12 @@ static void trash_stolen(struct drm_i915_private *i915) @@ -141,7 +141,7 @@ ggtt->vm.clear_range(&ggtt->vm, slot, PAGE_SIZE); diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c -index 65e28c4cd4ce..ca483285f267 100644 +index 65e28c4cd4ce5..ca483285f267c 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c @@ -1201,9 +1201,9 @@ static int igt_ggtt_page(void *arg) @@ -169,5 +169,5 @@ if (val != n) { pr_err("insert page failed: found %d, expected %d\n", -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch linux-5.10.216/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch --- linux-5.10.209/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0060-io-mapping-Remove-io_mapping_map_atomic_wc.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 925f92c53f78436e9242942d1a31a1ecc61ba740 Mon Sep 17 00:00:00 2001 +From 8a390f6d3dc23e6f4f5113b1a6c5e3d2350d1c4d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 3 Nov 2020 10:27:49 +0100 Subject: [PATCH 060/323] io-mapping: Remove io_mapping_map_atomic_wc() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz No more users. Get rid of it and remove the traces in documentation. @@ -14,7 +14,7 @@ 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/Documentation/driver-api/io-mapping.rst b/Documentation/driver-api/io-mapping.rst -index a0cfb15988df..a7830c59481f 100644 +index a0cfb15988dfc..a7830c59481f6 100644 --- a/Documentation/driver-api/io-mapping.rst +++ b/Documentation/driver-api/io-mapping.rst @@ -21,19 +21,15 @@ mappable, while 'size' indicates how large a mapping region to @@ -76,7 +76,7 @@ The mappings are released with:: diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h -index c093e81310a9..4bb8223f2f82 100644 +index c093e81310a9b..4bb8223f2f822 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -60,28 +60,7 @@ io_mapping_fini(struct io_mapping *mapping) @@ -136,5 +136,5 @@ io_mapping_map_local_wc(struct io_mapping *mapping, unsigned long offset) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch linux-5.10.216/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch --- linux-5.10.209/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0061-mm-highmem-Take-kmap_high_get-properly-into-account.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 3df53841fc978eae47eb80dbb4ccaefa880589a7 Mon Sep 17 00:00:00 2001 +From f70839221e9cac6f0e4b3a990bd1f5105a9e62f9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Nov 2020 11:59:32 +0100 Subject: [PATCH 061/323] mm/highmem: Take kmap_high_get() properly into account -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kunmap_local() warns when the virtual address to unmap is below PAGE_OFFSET. This is correct except for the case that the mapping was @@ -27,7 +27,7 @@ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/mm/highmem.c b/mm/highmem.c -index 8db577e5290c..72b9a2d95c72 100644 +index 8db577e5290cc..72b9a2d95c72a 100644 --- a/mm/highmem.c +++ b/mm/highmem.c @@ -422,12 +422,15 @@ static inline void *arch_kmap_local_high_get(struct page *page) @@ -68,5 +68,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch linux-5.10.216/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch --- linux-5.10.209/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0062-highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 09d7bcb6eee1e7c9351535a20f60929daca8632d Mon Sep 17 00:00:00 2001 +From 4a710599720e4ca33cf2161432d93605dd091b8c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 30 Oct 2020 13:59:06 +0100 Subject: [PATCH 062/323] highmem: Don't disable preemption on RT in kmap_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disabling preemption makes it impossible to acquire sleeping locks within kmap_atomic() section. @@ -15,7 +15,7 @@ 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h -index bd15bf9164c2..f9bc6acd3679 100644 +index bd15bf9164c23..f9bc6acd36798 100644 --- a/include/linux/highmem-internal.h +++ b/include/linux/highmem-internal.h @@ -90,7 +90,10 @@ static inline void __kunmap_local(void *vaddr) @@ -67,5 +67,5 @@ static inline unsigned int nr_free_highpages(void) { return 0; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch linux-5.10.216/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch --- linux-5.10.209/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0063-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f7d87d26b4c9bfd083484542889f392867c1c85b Mon Sep 17 00:00:00 2001 +From 8178f88788d35aa8b2543c5a696a206383ee3629 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Dec 2020 20:13:54 +0100 Subject: [PATCH 063/323] blk-mq: Don't complete on a remote CPU in force threaded mode -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With force threaded interrupts enabled, raising softirq from an SMP function call will always result in waking the ksoftirqd thread. This is @@ -25,7 +25,7 @@ 1 file changed, 8 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c -index e153a36c9ba3..cc41373cf346 100644 +index a7a31d7090aed..b7f3b0c218051 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -652,6 +652,14 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) @@ -44,5 +44,5 @@ /* same CPU or cache domain? Complete locally */ if (cpu == rq->mq_ctx->cpu || -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch linux-5.10.216/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch --- linux-5.10.209/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 4397e4a75ac6456a0dd8cf0a99c8250845b022d6 Mon Sep 17 00:00:00 2001 +From 406da46979d4375933da7a3a41f74ba3fa5b095b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 23 Jan 2021 21:10:26 +0100 Subject: [PATCH 064/323] blk-mq: Always complete remote completions requests in softirq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Controllers with multiple queues have their IRQ-handelers pinned to a CPU. The core shouldn't need to complete the request on a remote CPU. @@ -20,7 +20,7 @@ 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index cc41373cf346..87b8377a74fc 100644 +index b7f3b0c218051..a7ca0a1fae234 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -630,19 +630,7 @@ static void __blk_mq_complete_request_remote(void *data) @@ -45,5 +45,5 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch linux-5.10.216/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch --- linux-5.10.209/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0065-blk-mq-Use-llist_head-for-blk_cpu_done.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a958b1b96b5419f3d9372de0c7851daae941bf47 Mon Sep 17 00:00:00 2001 +From a2abe33e6803f3fba8f21af9bed0e6e7b5ad5dd3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 23 Jan 2021 21:10:27 +0100 Subject: [PATCH 065/323] blk-mq: Use llist_head for blk_cpu_done -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With llist_head it is possible to avoid the locking (the irq-off region) when items are added. This makes it possible to add items on a remote @@ -27,7 +27,7 @@ 2 files changed, 44 insertions(+), 59 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index 87b8377a74fc..a6618bf45992 100644 +index a7ca0a1fae234..927b1dc3476a2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -41,7 +41,7 @@ @@ -174,7 +174,7 @@ } EXPORT_SYMBOL_GPL(blk_mq_complete_request_remote); -@@ -3980,7 +3965,7 @@ static int __init blk_mq_init(void) +@@ -3996,7 +3981,7 @@ static int __init blk_mq_init(void) int i; for_each_possible_cpu(i) @@ -184,7 +184,7 @@ cpuhp_setup_state_nocalls(CPUHP_BLOCK_SOFTIRQ_DEAD, diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h -index 98fdf5a31fd6..b35193aec5e3 100644 +index a47e1aebaff24..fddff5d85d1eb 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -161,7 +161,7 @@ struct request { @@ -197,5 +197,5 @@ /* -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch linux-5.10.216/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch --- linux-5.10.209/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0066-lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 11e632bdd63b66d70c365424a1ceb502cb0c02ef Mon Sep 17 00:00:00 2001 +From 21c3e4938cd11adb1a04e8b4070359638699d523 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Oct 2020 18:55:27 +0100 Subject: [PATCH 066/323] lib/test_lockup: Minimum fix to get it compiled on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT the locks are quite different so they can't be tested as it is done below. The alternative is test for the waitlock within @@ -27,7 +27,7 @@ 1 file changed, 16 insertions(+) diff --git a/lib/test_lockup.c b/lib/test_lockup.c -index 78a630bbd03d..d27a80502204 100644 +index 78a630bbd03df..d27a80502204b 100644 --- a/lib/test_lockup.c +++ b/lib/test_lockup.c @@ -485,6 +485,21 @@ static int __init test_lockup_init(void) @@ -61,5 +61,5 @@ if ((wait_state != TASK_RUNNING || -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch linux-5.10.216/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch --- linux-5.10.209/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0067-timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From a7d720657001cb31fc09699861f12726418a4bf8 Mon Sep 17 00:00:00 2001 +From af116ecf443ae48632323179dbb878c0aa24f656 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 2 Nov 2020 14:14:24 +0100 Subject: [PATCH 067/323] timers: Don't block on ->expiry_lock for TIMER_IRQSAFE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT does not spin and wait until a running timer completes its callback but instead it blocks on a sleeping lock to prevent a deadlock. @@ -29,10 +29,10 @@ 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index e87e638c31bd..a4fdc7cfb723 100644 +index c135cefa44ac0..68246a8c31bc2 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1287,7 +1287,7 @@ static void del_timer_wait_running(struct timer_list *timer) +@@ -1316,7 +1316,7 @@ static void del_timer_wait_running(struct timer_list *timer) u32 tf; tf = READ_ONCE(timer->flags); @@ -41,7 +41,7 @@ struct timer_base *base = get_timer_base(tf); /* -@@ -1371,6 +1371,13 @@ int del_timer_sync(struct timer_list *timer) +@@ -1402,6 +1402,13 @@ int timer_delete_sync(struct timer_list *timer) */ WARN_ON(in_irq() && !(timer->flags & TIMER_IRQSAFE)); @@ -56,5 +56,5 @@ ret = try_to_del_timer_sync(timer); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch linux-5.10.216/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch --- linux-5.10.209/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0068-kthread-Move-prio-affinite-change-into-the-newly-cre.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From b0fd4a90cb328b61c6fe14df3a7fc4a79745fd2f Mon Sep 17 00:00:00 2001 +From 6e0c55ee6312997c4a21e3605b678aba3ab705bb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 9 Nov 2020 21:30:41 +0100 Subject: [PATCH 068/323] kthread: Move prio/affinite change into the newly created thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With enabled threaded interrupts the nouveau driver reported the following: @@ -34,7 +34,7 @@ 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/kthread.c b/kernel/kthread.c -index 508fe5278285..3ce6a31db7b4 100644 +index 508fe52782857..3ce6a31db7b4b 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -264,6 +264,7 @@ EXPORT_SYMBOL_GPL(kthread_parkme); @@ -82,5 +82,5 @@ kfree(create); return task; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch linux-5.10.216/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch --- linux-5.10.209/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0069-genirq-Move-prio-assignment-into-the-newly-created-t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 617294b2f33cec584f48c12d914fcc982f317be5 Mon Sep 17 00:00:00 2001 +From 5558737650676f84517f9e74d08d9d3d2eff18e9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 9 Nov 2020 23:32:39 +0100 Subject: [PATCH 069/323] genirq: Move prio assignment into the newly created thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With enabled threaded interrupts the nouveau driver reported the following: @@ -37,7 +37,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 0159925054fa..5ec167fb77b9 100644 +index 0159925054faa..5ec167fb77b91 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -1201,6 +1201,8 @@ static int irq_thread(void *data) @@ -59,5 +59,5 @@ * We keep the reference to the task struct even if * the thread dies to avoid that the interrupt code -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch linux-5.10.216/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch --- linux-5.10.209/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0070-notifier-Make-atomic_notifiers-use-raw_spinlock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f603fbc6eaf37d836e3498b47cef43965730bcda Mon Sep 17 00:00:00 2001 +From 32461195bc594e55e965d4a2cfe6cfa47789b4cf Mon Sep 17 00:00:00 2001 From: Valentin Schneider Date: Sun, 22 Nov 2020 20:19:04 +0000 Subject: [PATCH 070/323] notifier: Make atomic_notifiers use raw_spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Booting a recent PREEMPT_RT kernel (v5.10-rc3-rt7-rebase) on my arm64 Juno leads to the idle task blocking on an RT sleeping spinlock down some @@ -57,7 +57,7 @@ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/notifier.h b/include/linux/notifier.h -index 2fb373a5c1ed..723bc2df6388 100644 +index 2fb373a5c1ede..723bc2df63882 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h @@ -58,7 +58,7 @@ struct notifier_block { @@ -88,7 +88,7 @@ #define BLOCKING_NOTIFIER_INIT(name) { \ .rwsem = __RWSEM_INITIALIZER((name).rwsem), \ diff --git a/kernel/notifier.c b/kernel/notifier.c -index 1b019cbca594..c20782f07643 100644 +index 1b019cbca594a..c20782f076432 100644 --- a/kernel/notifier.c +++ b/kernel/notifier.c @@ -142,9 +142,9 @@ int atomic_notifier_chain_register(struct atomic_notifier_head *nh, @@ -128,5 +128,5 @@ return ret; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch linux-5.10.216/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch --- linux-5.10.209/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0071-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b9c110646f281f521cc06039710f979b363478b9 Mon Sep 17 00:00:00 2001 +From 8d47e3c87b296c500277a63f5c9f116f98546822 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 15 Dec 2020 15:16:45 +0100 Subject: [PATCH 071/323] rcu: Make RCU_BOOST default on CONFIG_PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT kernels, RCU callbacks are deferred to the `rcuc' kthread. This can stall RCU grace periods due to lengthy preemption not only of RCU @@ -22,7 +22,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig -index cd6e11403f1b..0c71197857f6 100644 +index cd6e11403f1b1..0c71197857f68 100644 --- a/kernel/rcu/Kconfig +++ b/kernel/rcu/Kconfig @@ -189,8 +189,8 @@ config RCU_FAST_NO_HZ @@ -37,5 +37,5 @@ This option boosts the priority of preempted RCU readers that block the current preemptible RCU grace period for too long. -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch linux-5.10.216/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch --- linux-5.10.209/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0072-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8cc685c333f0deef6d724211a7f0ff37648d24c7 Mon Sep 17 00:00:00 2001 +From a1fecefde7a9b478af909cc31e07521c4dd721a9 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Tue, 15 Dec 2020 15:16:46 +0100 Subject: [PATCH 072/323] rcu: Unconditionally use rcuc threads on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT systems have long used the rcutree.use_softirq kernel boot parameter to avoid use of RCU_SOFTIRQ handlers, which can disrupt @@ -31,10 +31,10 @@ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index f1f7c068cf65..c2afb3304825 100644 +index 8e4882bb8cf85..2af46bc4c8e2a 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4191,6 +4191,10 @@ +@@ -4212,6 +4212,10 @@ value, meaning that RCU_SOFTIRQ is used by default. Specify rcutree.use_softirq=0 to use rcuc kthreads. @@ -46,7 +46,7 @@ Disable autobalancing of the rcu_node combining tree. This is used by rcutorture, and might diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c -index 06bfe61d3cd3..39b3b56ad92d 100644 +index 06bfe61d3cd38..39b3b56ad92dd 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -101,8 +101,10 @@ static struct rcu_state rcu_state = { @@ -62,5 +62,5 @@ static bool rcu_fanout_exact; module_param(rcu_fanout_exact, bool, 0444); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch linux-5.10.216/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch --- linux-5.10.209/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0073-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From be1e6f72a91c1c6b65594bba32401b029c7699b8 Mon Sep 17 00:00:00 2001 +From 621ec5f2aa6e10ac89c4c569ecb3918ea918d5ed Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Tue, 15 Dec 2020 15:16:47 +0100 Subject: [PATCH 073/323] rcu: Enable rcu_normal_after_boot unconditionally for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Expedited RCU grace periods send IPIs to all non-idle CPUs, and thus can disrupt time-critical code in real-time applications. However, there @@ -34,10 +34,10 @@ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index c2afb3304825..23fd09f5351d 100644 +index 2af46bc4c8e2a..0a6d76815ed29 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4573,6 +4573,13 @@ +@@ -4594,6 +4594,13 @@ only normal grace-period primitives. No effect on CONFIG_TINY_RCU kernels. @@ -52,7 +52,7 @@ Set time in jiffies during which RCU tasks will avoid sending IPIs, starting with the beginning diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c -index 849f0aa99333..dd94a602a6d2 100644 +index 849f0aa99333b..dd94a602a6d25 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@ -56,8 +56,10 @@ @@ -68,5 +68,5 @@ #ifdef CONFIG_DEBUG_LOCK_ALLOC -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch linux-5.10.216/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch --- linux-5.10.209/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0074-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 98e9f8e6202660f2965bc68d54447861280e81b9 Mon Sep 17 00:00:00 2001 +From 68384a4ccf89614ab955a578ac06c3bcd87bf2fa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 15 Dec 2020 15:16:48 +0100 Subject: [PATCH 074/323] doc: Update RCU's requirements page about the PREEMPT_RT wiki. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The PREEMPT_RT wiki moved from kernel.org to the Linux Foundation wiki. The kernel.org wiki is read only. @@ -18,7 +18,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst -index 1ae79a10a8de..0f7e0237ea14 100644 +index 1ae79a10a8de6..0f7e0237ea14f 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@ -2289,7 +2289,7 @@ decides to throw at it. @@ -31,5 +31,5 @@ approach of disabling preemption across RCU read-side critical sections is inappropriate. Kernels built with ``CONFIG_PREEMPT=y`` therefore use -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch linux-5.10.216/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch --- linux-5.10.209/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0075-doc-Use-CONFIG_PREEMPTION.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d9780d88d268b12562427ef709de6ab2b8c85188 Mon Sep 17 00:00:00 2001 +From 30c918c7605e000af86edbc9da15cb28ef2dbf9e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 15 Dec 2020 15:16:49 +0100 Subject: [PATCH 075/323] doc: Use CONFIG_PREEMPTION -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz CONFIG_PREEMPTION is selected by CONFIG_PREEMPT and by CONFIG_PREEMPT_RT. Both PREEMPT and PREEMPT_RT require the same functionality which today @@ -24,7 +24,7 @@ 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst b/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst -index 72f0f6fbd53c..6f89cf1e567d 100644 +index 72f0f6fbd53c0..6f89cf1e567d0 100644 --- a/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst +++ b/Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst @@ -38,7 +38,7 @@ sections. @@ -46,7 +46,7 @@ shown in the following diagram: diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst -index 0f7e0237ea14..17d38480ef5c 100644 +index 0f7e0237ea14f..17d38480ef5c5 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@ -78,7 +78,7 @@ RCU treats a nested set as one big RCU read-side critical section. @@ -141,7 +141,7 @@ for voluntary context switches. diff --git a/Documentation/RCU/checklist.rst b/Documentation/RCU/checklist.rst -index 2efed9926c3f..7ed4956043bd 100644 +index 2efed9926c3f9..7ed4956043bd9 100644 --- a/Documentation/RCU/checklist.rst +++ b/Documentation/RCU/checklist.rst @@ -214,7 +214,7 @@ over a rather long period of time, but improvements are always welcome! @@ -154,7 +154,7 @@ then the corresponding readers my use rcu_read_lock() and rcu_read_unlock(), rcu_read_lock_bh() and rcu_read_unlock_bh(), diff --git a/Documentation/RCU/rcubarrier.rst b/Documentation/RCU/rcubarrier.rst -index f64f4413a47c..3b4a24877496 100644 +index f64f4413a47c4..3b4a248774961 100644 --- a/Documentation/RCU/rcubarrier.rst +++ b/Documentation/RCU/rcubarrier.rst @@ -9,7 +9,7 @@ RCU (read-copy update) is a synchronization mechanism that can be thought @@ -180,7 +180,7 @@ Therefore, on_each_cpu() disables preemption across its call to smp_call_function() and also across the local call to diff --git a/Documentation/RCU/stallwarn.rst b/Documentation/RCU/stallwarn.rst -index c9ab6af4d3be..e97d1b4876ef 100644 +index c9ab6af4d3be9..e97d1b4876ef4 100644 --- a/Documentation/RCU/stallwarn.rst +++ b/Documentation/RCU/stallwarn.rst @@ -25,7 +25,7 @@ warnings: @@ -202,7 +202,7 @@ read-side critical section. This is especially damaging if that low-priority task is not permitted to run on any other CPU, diff --git a/Documentation/RCU/whatisRCU.rst b/Documentation/RCU/whatisRCU.rst -index fb3ff76c3e73..3b2b1479fd0f 100644 +index fb3ff76c3e737..3b2b1479fd0f7 100644 --- a/Documentation/RCU/whatisRCU.rst +++ b/Documentation/RCU/whatisRCU.rst @@ -684,7 +684,7 @@ Quick Quiz #1: @@ -246,5 +246,5 @@ read-side critical sections. It also permits spinlocks blocking while in RCU read-side critical -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch linux-5.10.216/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch --- linux-5.10.209/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0076-tracing-Merge-irqflags-preempt-counter.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,11 +1,11 @@ -From 1ab76ef52a7db4158a5d86604c2a318cfe847e9d Mon Sep 17 00:00:00 2001 +From a740baf29593f6257f2b1790a1f659514167e2da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 3 Feb 2021 11:05:23 -0500 Subject: [PATCH 076/323] tracing: Merge irqflags + preempt counter. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The state of the interrupts (irqflags) and the preemption counter are both passed down to tracing_generic_entry_update(). Only one bit of @@ -79,7 +79,7 @@ 17 files changed, 286 insertions(+), 307 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index f7ed0471d5a8..2a98c40526a0 100644 +index f7ed0471d5a85..2a98c40526a0a 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -152,17 +152,29 @@ enum print_line_t { @@ -128,7 +128,7 @@ }; diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c -index ab912cc60760..a95a2027eefd 100644 +index ab912cc60760a..a95a2027eefda 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -72,17 +72,17 @@ static void trace_note(struct blk_trace *bt, pid_t pid, int action, @@ -195,10 +195,10 @@ } } diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 4e0411b19ef9..376eb8a1c913 100644 +index 22e1e57118698..348cbbb9a39b5 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -176,7 +176,7 @@ static union trace_eval_map_item *trace_eval_maps; +@@ -177,7 +177,7 @@ static union trace_eval_map_item *trace_eval_maps; int tracing_set_tracer(struct trace_array *tr, const char *buf); static void ftrace_trace_userstack(struct trace_array *tr, struct trace_buffer *buffer, @@ -207,7 +207,7 @@ #define MAX_TRACER_SIZE 100 static char bootup_tracer_buf[MAX_TRACER_SIZE] __initdata; -@@ -909,23 +909,23 @@ static inline void trace_access_lock_init(void) +@@ -910,23 +910,23 @@ static inline void trace_access_lock_init(void) #ifdef CONFIG_STACKTRACE static void __ftrace_trace_stack(struct trace_buffer *buffer, @@ -239,7 +239,7 @@ { } -@@ -933,24 +933,24 @@ static inline void ftrace_trace_stack(struct trace_array *tr, +@@ -934,24 +934,24 @@ static inline void ftrace_trace_stack(struct trace_array *tr, static __always_inline void trace_event_setup(struct ring_buffer_event *event, @@ -268,7 +268,7 @@ return event; } -@@ -1011,25 +1011,22 @@ int __trace_puts(unsigned long ip, const char *str, int size) +@@ -1012,25 +1012,22 @@ int __trace_puts(unsigned long ip, const char *str, int size) struct ring_buffer_event *event; struct trace_buffer *buffer; struct print_entry *entry; @@ -298,7 +298,7 @@ if (!event) { size = 0; goto out; -@@ -1048,7 +1045,7 @@ int __trace_puts(unsigned long ip, const char *str, int size) +@@ -1049,7 +1046,7 @@ int __trace_puts(unsigned long ip, const char *str, int size) entry->buf[size] = '\0'; __buffer_unlock_commit(buffer, event); @@ -307,7 +307,7 @@ out: ring_buffer_nest_end(buffer); return size; -@@ -1065,25 +1062,22 @@ int __trace_bputs(unsigned long ip, const char *str) +@@ -1066,25 +1063,22 @@ int __trace_bputs(unsigned long ip, const char *str) struct ring_buffer_event *event; struct trace_buffer *buffer; struct bputs_entry *entry; @@ -336,7 +336,7 @@ if (!event) goto out; -@@ -1092,7 +1086,7 @@ int __trace_bputs(unsigned long ip, const char *str) +@@ -1093,7 +1087,7 @@ int __trace_bputs(unsigned long ip, const char *str) entry->str = str; __buffer_unlock_commit(buffer, event); @@ -345,7 +345,7 @@ ret = 1; out: -@@ -2581,36 +2575,69 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2609,36 +2603,69 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -433,7 +433,7 @@ } DEFINE_PER_CPU(struct ring_buffer_event *, trace_buffered_event); -@@ -2729,7 +2756,7 @@ struct ring_buffer_event * +@@ -2757,7 +2784,7 @@ struct ring_buffer_event * trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, struct trace_event_file *trace_file, int type, unsigned long len, @@ -442,7 +442,7 @@ { struct ring_buffer_event *entry; int val; -@@ -2742,7 +2769,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2770,7 +2797,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, /* Try to use the per cpu buffer first */ val = this_cpu_inc_return(trace_buffered_event_cnt); if ((len < (PAGE_SIZE - sizeof(*entry) - sizeof(entry->array[0]))) && val == 1) { @@ -451,7 +451,7 @@ entry->array[0] = len; return entry; } -@@ -2750,7 +2777,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2778,7 +2805,7 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, } entry = __trace_buffer_lock_reserve(*current_rb, @@ -460,7 +460,7 @@ /* * If tracing is off, but we have triggers enabled * we still need to look at the event data. Use the temp_buffer -@@ -2759,8 +2786,8 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, +@@ -2787,8 +2814,8 @@ trace_event_buffer_lock_reserve(struct trace_buffer **current_rb, */ if (!entry && trace_file->flags & EVENT_FILE_FL_TRIGGER_COND) { *current_rb = temp_buffer; @@ -471,7 +471,7 @@ } return entry; } -@@ -2846,7 +2873,7 @@ void trace_event_buffer_commit(struct trace_event_buffer *fbuffer) +@@ -2874,7 +2901,7 @@ void trace_event_buffer_commit(struct trace_event_buffer *fbuffer) ftrace_exports(fbuffer->event, TRACE_EXPORT_EVENT); event_trigger_unlock_commit_regs(fbuffer->trace_file, fbuffer->buffer, fbuffer->event, fbuffer->entry, @@ -480,7 +480,7 @@ } EXPORT_SYMBOL_GPL(trace_event_buffer_commit); -@@ -2862,7 +2889,7 @@ EXPORT_SYMBOL_GPL(trace_event_buffer_commit); +@@ -2890,7 +2917,7 @@ EXPORT_SYMBOL_GPL(trace_event_buffer_commit); void trace_buffer_unlock_commit_regs(struct trace_array *tr, struct trace_buffer *buffer, struct ring_buffer_event *event, @@ -489,7 +489,7 @@ struct pt_regs *regs) { __buffer_unlock_commit(buffer, event); -@@ -2873,8 +2900,8 @@ void trace_buffer_unlock_commit_regs(struct trace_array *tr, +@@ -2901,8 +2928,8 @@ void trace_buffer_unlock_commit_regs(struct trace_array *tr, * and mmiotrace, but that's ok if they lose a function or * two. They are not that meaningful. */ @@ -500,7 +500,7 @@ } /* -@@ -2888,9 +2915,8 @@ trace_buffer_unlock_commit_nostack(struct trace_buffer *buffer, +@@ -2916,9 +2943,8 @@ trace_buffer_unlock_commit_nostack(struct trace_buffer *buffer, } void @@ -512,7 +512,7 @@ { struct trace_event_call *call = &event_function; struct trace_buffer *buffer = tr->array_buffer.buffer; -@@ -2898,7 +2924,7 @@ trace_function(struct trace_array *tr, +@@ -2926,7 +2952,7 @@ trace_function(struct trace_array *tr, struct ftrace_entry *entry; event = __trace_buffer_lock_reserve(buffer, TRACE_FN, sizeof(*entry), @@ -521,7 +521,7 @@ if (!event) return; entry = ring_buffer_event_data(event); -@@ -2932,8 +2958,8 @@ static DEFINE_PER_CPU(struct ftrace_stacks, ftrace_stacks); +@@ -2960,8 +2986,8 @@ static DEFINE_PER_CPU(struct ftrace_stacks, ftrace_stacks); static DEFINE_PER_CPU(int, ftrace_stack_reserve); static void __ftrace_trace_stack(struct trace_buffer *buffer, @@ -532,7 +532,7 @@ { struct trace_event_call *call = &event_kernel_stack; struct ring_buffer_event *event; -@@ -2981,7 +3007,7 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, +@@ -3009,7 +3035,7 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, size = nr_entries * sizeof(unsigned long); event = __trace_buffer_lock_reserve(buffer, TRACE_STACK, (sizeof(*entry) - sizeof(entry->caller)) + size, @@ -541,7 +541,7 @@ if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3002,22 +3028,22 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, +@@ -3030,22 +3056,22 @@ static void __ftrace_trace_stack(struct trace_buffer *buffer, static inline void ftrace_trace_stack(struct trace_array *tr, struct trace_buffer *buffer, @@ -570,7 +570,7 @@ return; } -@@ -3031,7 +3057,7 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, +@@ -3059,7 +3085,7 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, return; rcu_irq_enter_irqson(); @@ -579,7 +579,7 @@ rcu_irq_exit_irqson(); } -@@ -3041,19 +3067,15 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, +@@ -3069,19 +3095,15 @@ void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, */ void trace_dump_stack(int skip) { @@ -600,7 +600,7 @@ } EXPORT_SYMBOL_GPL(trace_dump_stack); -@@ -3062,7 +3084,7 @@ static DEFINE_PER_CPU(int, user_stack_count); +@@ -3090,7 +3112,7 @@ static DEFINE_PER_CPU(int, user_stack_count); static void ftrace_trace_userstack(struct trace_array *tr, @@ -609,7 +609,7 @@ { struct trace_event_call *call = &event_user_stack; struct ring_buffer_event *event; -@@ -3089,7 +3111,7 @@ ftrace_trace_userstack(struct trace_array *tr, +@@ -3117,7 +3139,7 @@ ftrace_trace_userstack(struct trace_array *tr, __this_cpu_inc(user_stack_count); event = __trace_buffer_lock_reserve(buffer, TRACE_USER_STACK, @@ -618,7 +618,7 @@ if (!event) goto out_drop_count; entry = ring_buffer_event_data(event); -@@ -3109,7 +3131,7 @@ ftrace_trace_userstack(struct trace_array *tr, +@@ -3137,7 +3159,7 @@ ftrace_trace_userstack(struct trace_array *tr, #else /* CONFIG_USER_STACKTRACE_SUPPORT */ static void ftrace_trace_userstack(struct trace_array *tr, struct trace_buffer *buffer, @@ -627,7 +627,7 @@ { } #endif /* !CONFIG_USER_STACKTRACE_SUPPORT */ -@@ -3239,9 +3261,9 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3267,9 +3289,9 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) struct trace_buffer *buffer; struct trace_array *tr = &global_trace; struct bprint_entry *entry; @@ -639,7 +639,7 @@ if (unlikely(tracing_selftest_running || tracing_disabled)) return 0; -@@ -3249,7 +3271,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3277,7 +3299,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) /* Don't pollute graph traces with trace_vprintk internals */ pause_graph_tracing(); @@ -648,7 +648,7 @@ preempt_disable_notrace(); tbuffer = get_trace_buf(); -@@ -3263,12 +3285,11 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3291,12 +3313,11 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) if (len > TRACE_BUF_SIZE/sizeof(int) || len < 0) goto out_put; @@ -662,7 +662,7 @@ if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3278,7 +3299,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) +@@ -3306,7 +3327,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) memcpy(entry->buf, tbuffer, sizeof(u32) * len); if (!call_filter_check_discard(call, entry, buffer, event)) { __buffer_unlock_commit(buffer, event); @@ -671,7 +671,7 @@ } out: -@@ -3301,9 +3322,9 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3329,9 +3350,9 @@ __trace_array_vprintk(struct trace_buffer *buffer, { struct trace_event_call *call = &event_print; struct ring_buffer_event *event; @@ -683,7 +683,7 @@ char *tbuffer; if (tracing_disabled || tracing_selftest_running) -@@ -3312,7 +3333,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3340,7 +3361,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, /* Don't pollute graph traces with trace_vprintk internals */ pause_graph_tracing(); @@ -692,7 +692,7 @@ preempt_disable_notrace(); -@@ -3324,11 +3345,10 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3352,11 +3373,10 @@ __trace_array_vprintk(struct trace_buffer *buffer, len = vscnprintf(tbuffer, TRACE_BUF_SIZE, fmt, args); @@ -705,7 +705,7 @@ if (!event) goto out; entry = ring_buffer_event_data(event); -@@ -3337,7 +3357,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, +@@ -3365,7 +3385,7 @@ __trace_array_vprintk(struct trace_buffer *buffer, memcpy(&entry->buf, tbuffer, len + 1); if (!call_filter_check_discard(call, entry, buffer, event)) { __buffer_unlock_commit(buffer, event); @@ -714,7 +714,7 @@ } out: -@@ -6831,7 +6851,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6851,7 +6871,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, enum event_trigger_type tt = ETT_NONE; struct trace_buffer *buffer; struct print_entry *entry; @@ -722,7 +722,7 @@ ssize_t written; int size; int len; -@@ -6851,7 +6870,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6871,7 +6890,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, BUILD_BUG_ON(TRACE_BUF_SIZE >= PAGE_SIZE); @@ -730,7 +730,7 @@ size = sizeof(*entry) + cnt + 2; /* add '\0' and possible '\n' */ /* If less than "", then make sure we can still add that */ -@@ -6860,7 +6878,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, +@@ -6880,7 +6898,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, buffer = tr->array_buffer.buffer; event = __trace_buffer_lock_reserve(buffer, TRACE_PRINT, size, @@ -739,7 +739,7 @@ if (unlikely(!event)) /* Ring buffer disabled, return as if not open for write */ return -EBADF; -@@ -6912,7 +6930,6 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, +@@ -6932,7 +6950,6 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, struct ring_buffer_event *event; struct trace_buffer *buffer; struct raw_data_entry *entry; @@ -747,7 +747,7 @@ ssize_t written; int size; int len; -@@ -6934,14 +6951,13 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, +@@ -6954,14 +6971,13 @@ tracing_mark_raw_write(struct file *filp, const char __user *ubuf, BUILD_BUG_ON(TRACE_BUF_SIZE >= PAGE_SIZE); @@ -764,7 +764,7 @@ /* Ring buffer disabled, return as if not open for write */ return -EBADF; diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h -index 7c90872f2435..27ed42bccd7f 100644 +index 7c90872f2435d..27ed42bccd7f7 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -750,8 +750,7 @@ struct ring_buffer_event * @@ -891,7 +891,7 @@ if (tt) event_triggers_post_call(file, tt); diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c -index eff099123aa2..e47fdb4c92fb 100644 +index eff099123aa27..e47fdb4c92fbc 100644 --- a/kernel/trace/trace_branch.c +++ b/kernel/trace/trace_branch.c @@ -37,7 +37,7 @@ probe_likely_condition(struct ftrace_likely_data *f, int val, int expect) @@ -917,7 +917,7 @@ goto out; diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c -index 643e0b19920d..0443dd61667b 100644 +index 643e0b19920d2..0443dd61667b9 100644 --- a/kernel/trace/trace_event_perf.c +++ b/kernel/trace/trace_event_perf.c @@ -421,11 +421,8 @@ NOKPROBE_SYMBOL(perf_trace_buf_alloc); @@ -934,7 +934,7 @@ NOKPROBE_SYMBOL(perf_trace_buf_update); diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index 4b5a8d7275be..df64b92c5edc 100644 +index 4b5a8d7275be7..df64b92c5edc3 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -259,22 +259,19 @@ void *trace_event_buffer_reserve(struct trace_event_buffer *fbuffer, @@ -1000,7 +1000,7 @@ atomic_dec(&per_cpu(ftrace_test_event_disable, cpu)); preempt_enable_notrace(); diff --git a/kernel/trace/trace_events_inject.c b/kernel/trace/trace_events_inject.c -index 149c7dc6a447..b1fce64e126c 100644 +index 149c7dc6a4473..b1fce64e126c0 100644 --- a/kernel/trace/trace_events_inject.c +++ b/kernel/trace/trace_events_inject.c @@ -192,7 +192,6 @@ static void *trace_alloc_entry(struct trace_event_call *call, int *size) @@ -1024,7 +1024,7 @@ while ((len = parse_field(str, call, &field, &val)) > 0) { if (is_function_field(field)) diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c -index 93e20ed642e5..8606cb73341e 100644 +index 93e20ed642e53..8606cb73341ed 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c @@ -133,15 +133,14 @@ function_trace_call(unsigned long ip, unsigned long parent_ip, @@ -1099,7 +1099,7 @@ static void diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c -index 60d66278aa0d..b086ba8bb3d6 100644 +index 60d66278aa0d8..b086ba8bb3d65 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c @@ -96,8 +96,7 @@ print_graph_duration(struct trace_array *tr, unsigned long long duration, @@ -1213,7 +1213,7 @@ atomic_dec(&data->disabled); local_irq_restore(flags); diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c -index d071fc271eef..4c01c5d8b9a7 100644 +index d071fc271eef7..4c01c5d8b9a7a 100644 --- a/kernel/trace/trace_hwlat.c +++ b/kernel/trace/trace_hwlat.c @@ -108,14 +108,9 @@ static void trace_hwlat_sample(struct hwlat_sample *sample) @@ -1233,7 +1233,7 @@ return; entry = ring_buffer_event_data(event); diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c -index 619a60944bb6..4a11967c8daa 100644 +index 619a60944bb6d..4a11967c8daa1 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c @@ -143,11 +143,14 @@ irqsoff_tracer_call(unsigned long ip, unsigned long parent_ip, @@ -1467,7 +1467,7 @@ static int preemptoff_tracer_init(struct trace_array *tr) diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c -index 718357289899..a2478605e761 100644 +index 7183572898998..a2478605e7617 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -1394,8 +1394,7 @@ __kprobe_trace_func(struct trace_kprobe *tk, struct pt_regs *regs, @@ -1509,7 +1509,7 @@ return; diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c -index 84582bf1ed5f..7221ae0b4c47 100644 +index 84582bf1ed5fb..7221ae0b4c477 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c @@ -300,10 +300,11 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, @@ -1559,7 +1559,7 @@ void mmio_trace_mapping(struct mmiotrace_map *map) diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c -index 037e1e863b17..c1f582e0e97f 100644 +index 037e1e863b17f..c1f582e0e97f0 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c @@ -67,7 +67,7 @@ static bool function_enabled; @@ -1800,7 +1800,7 @@ out_locked: arch_spin_unlock(&wakeup_lock); diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c -index d85a2f0f316b..8bfcd3b09422 100644 +index d85a2f0f316b3..8bfcd3b094226 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c @@ -298,9 +298,8 @@ static void ftrace_syscall_enter(void *data, struct pt_regs *regs, long id) @@ -1874,7 +1874,7 @@ static int reg_event_syscall_enter(struct trace_event_file *file, diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c -index 60ff36f5d7f9..0b07bb07127d 100644 +index 60ff36f5d7f9e..0b07bb07127d8 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -966,7 +966,7 @@ static void __uprobe_trace_func(struct trace_uprobe *tu, @@ -1896,5 +1896,5 @@ /* uprobe handler */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch linux-5.10.216/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch --- linux-5.10.209/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0077-tracing-Inline-tracing_gen_ctx_flags.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 49d76ea7e195eb08b5c73a3a11dba066afd40070 Mon Sep 17 00:00:00 2001 +From c0c9a28c1277a9d402f7b527018fe98ac589dd4b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 3 Feb 2021 11:05:24 -0500 Subject: [PATCH 077/323] tracing: Inline tracing_gen_ctx_flags() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Inline tracing_gen_ctx_flags(). This allows to have one ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT. @@ -24,7 +24,7 @@ 3 files changed, 53 insertions(+), 58 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2a98c40526a0..c4b0524582d8 100644 +index 2a98c40526a0a..c4b0524582d87 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -164,9 +164,57 @@ static inline void tracing_generic_entry_update(struct trace_entry *entry, @@ -89,10 +89,10 @@ struct trace_event_file; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 376eb8a1c913..733ef9230c73 100644 +index 348cbbb9a39b5..4145776513273 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2575,20 +2575,13 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2603,20 +2603,13 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -115,7 +115,7 @@ if (pc & NMI_MASK) trace_flags |= TRACE_FLAG_NMI; if (pc & HARDIRQ_MASK) -@@ -2604,33 +2597,6 @@ unsigned int tracing_gen_ctx_flags(unsigned long irqflags) +@@ -2632,33 +2625,6 @@ unsigned int tracing_gen_ctx_flags(unsigned long irqflags) return (trace_flags << 16) | (pc & 0xff); } @@ -150,7 +150,7 @@ trace_buffer_lock_reserve(struct trace_buffer *buffer, int type, diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h -index 27ed42bccd7f..40e5ee987578 100644 +index 27ed42bccd7f7..40e5ee9875786 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -136,25 +136,6 @@ struct kretprobe_trace_entry_head { @@ -180,5 +180,5 @@ struct trace_array; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch linux-5.10.216/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch --- linux-5.10.209/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0078-tracing-Use-in_serving_softirq-to-deduct-softirq-sta.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 1a49f21b61e919dbef7c948009870a1f1ba31270 Mon Sep 17 00:00:00 2001 +From f0bcb9dfe5ca2c9140a79df84aa35e5fd130abd0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 3 Feb 2021 11:05:25 -0500 Subject: [PATCH 078/323] tracing: Use in_serving_softirq() to deduct softirq status. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT does not report "serving softirq" because the tracing core looks at the preemption counter while PREEMPT_RT does not update it @@ -30,10 +30,10 @@ 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 733ef9230c73..70ab6b46ef8f 100644 +index 4145776513273..db3b3b2455894 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2586,8 +2586,7 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2614,8 +2614,7 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NMI; if (pc & HARDIRQ_MASK) trace_flags |= TRACE_FLAG_HARDIRQ; @@ -44,5 +44,5 @@ if (tif_need_resched()) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch linux-5.10.216/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch --- linux-5.10.209/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0079-tracing-Remove-NULL-check-from-current-in-tracing_ge.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 76993b5cd21ad0898e6d940ea5fe0449dec94465 Mon Sep 17 00:00:00 2001 +From e7051cf76ef2b2c5f8af1949e902463a8e4b1d12 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 3 Feb 2021 11:05:26 -0500 Subject: [PATCH 079/323] tracing: Remove NULL check from current in tracing_generic_entry_update(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz I can't imagine when or why `current' would return a NULL pointer. This check was added in commit @@ -23,7 +23,7 @@ 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index c4b0524582d8..2fea9fcd4d4e 100644 +index c4b0524582d87..2fea9fcd4d4e9 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -156,10 +156,8 @@ static inline void tracing_generic_entry_update(struct trace_entry *entry, @@ -39,5 +39,5 @@ entry->flags = trace_ctx >> 16; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch linux-5.10.216/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch --- linux-5.10.209/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0080-printk-inline-log_output-log_store-in-vprintk_store.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From fe124333809d2e0a0926d5609f78bafffc62f539 Mon Sep 17 00:00:00 2001 +From c2702a48b0ebec18337aa5e56139902a8572ee43 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 9 Dec 2020 01:50:52 +0106 Subject: [PATCH 080/323] printk: inline log_output(),log_store() in vprintk_store() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for removing logbuf_lock, inline log_output() and log_store() into vprintk_store(). This will simplify dealing @@ -20,7 +20,7 @@ 1 file changed, 67 insertions(+), 78 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 17a310dcb6d9..9a7c2b561e6d 100644 +index a8af93cbc2936..5af0b0e0259c4 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -493,52 +493,6 @@ static void truncate_msg(u16 *text_len, u16 *trunc_msg_len) @@ -76,7 +76,7 @@ int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT); static int syslog_action_restricted(int type) -@@ -1933,44 +1887,28 @@ static inline u32 printk_caller_id(void) +@@ -1939,44 +1893,28 @@ static inline u32 printk_caller_id(void) 0x80000000 + raw_smp_processor_id(); } @@ -136,7 +136,7 @@ /* * The printf needs to come first; we need the syslog -@@ -2009,7 +1947,58 @@ int vprintk_store(int facility, int level, +@@ -2015,7 +1953,58 @@ int vprintk_store(int facility, int level, if (dev_info) lflags |= LOG_NEWLINE; @@ -197,5 +197,5 @@ asmlinkage int vprintk_emit(int facility, int level, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch linux-5.10.216/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch --- linux-5.10.209/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0081-printk-remove-logbuf_lock-writer-protection-of-ringb.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From c2d6c379547a29aa25202641659917ecd9ae7712 Mon Sep 17 00:00:00 2001 +From 44d0ef377836a4bcab77b9ac890447665f723c7d Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 9 Dec 2020 01:50:53 +0106 Subject: [PATCH 081/323] printk: remove logbuf_lock writer-protection of ringbuffer -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since the ringbuffer is lockless, there is no need for it to be protected by @logbuf_lock. Remove @logbuf_lock writer-protection of @@ -34,7 +34,7 @@ 1 file changed, 98 insertions(+), 40 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 9a7c2b561e6d..b0a3f7827819 100644 +index 5af0b0e0259c4..14b4c3ea1a6b6 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1129,7 +1129,7 @@ void __init setup_log_buf(int early) @@ -55,7 +55,7 @@ if (seq != prb_next_seq(&printk_rb_static)) { pr_err("dropped %llu messages\n", -@@ -1887,18 +1887,90 @@ static inline u32 printk_caller_id(void) +@@ -1893,18 +1893,90 @@ static inline u32 printk_caller_id(void) 0x80000000 + raw_smp_processor_id(); } @@ -149,7 +149,7 @@ u16 text_len; u64 ts_nsec; -@@ -1911,35 +1983,21 @@ int vprintk_store(int facility, int level, +@@ -1917,35 +1989,21 @@ int vprintk_store(int facility, int level, ts_nsec = local_clock(); /* @@ -197,7 +197,7 @@ if (level == LOGLEVEL_DEFAULT) level = default_message_loglevel; -@@ -1948,9 +2006,10 @@ int vprintk_store(int facility, int level, +@@ -1954,9 +2012,10 @@ int vprintk_store(int facility, int level, lflags |= LOG_NEWLINE; if (lflags & LOG_CONT) { @@ -210,7 +210,7 @@ r.info->text_len += text_len; if (lflags & LOG_NEWLINE) { -@@ -1969,18 +2028,18 @@ int vprintk_store(int facility, int level, +@@ -1975,18 +2034,18 @@ int vprintk_store(int facility, int level, * prb_reserve_in_last() and prb_reserve() purposely invalidate the * structure when they fail. */ @@ -233,7 +233,7 @@ if (trunc_msg_len) memcpy(&r.text_buf[text_len], trunc_msg, trunc_msg_len); r.info->text_len = text_len + trunc_msg_len; -@@ -2021,10 +2080,9 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2027,10 +2086,9 @@ asmlinkage int vprintk_emit(int facility, int level, boot_delay_msec(level); printk_delay(); @@ -247,5 +247,5 @@ /* If called from the scheduler, we can not call up(). */ if (!in_sched) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch linux-5.10.216/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch --- linux-5.10.209/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0082-printk-limit-second-loop-of-syslog_print_all.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6769883ba30e543644f62ababe6910c6774f1885 Mon Sep 17 00:00:00 2001 +From 931d998e15e62bb8152b147032f4328b4e4d7477 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 17 Feb 2021 16:15:31 +0100 Subject: [PATCH 082/323] printk: limit second loop of syslog_print_all -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The second loop of syslog_print_all() subtracts lengths that were added in the first loop. With commit b031a684bfd0 ("printk: remove @@ -23,7 +23,7 @@ 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index b0a3f7827819..044bb3791896 100644 +index 14b4c3ea1a6b6..92762417a2b2e 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1497,6 +1497,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) @@ -52,5 +52,5 @@ len -= get_record_print_text_size(&info, line_count, true, time); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch linux-5.10.216/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch --- linux-5.10.209/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0083-printk-kmsg_dump-remove-unused-fields.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From dabfa71dd963396a46aee0066bb3eff206de08f7 Mon Sep 17 00:00:00 2001 +From 8478e9a21eb0fdc5f0fcac5b579cba92a6098b14 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 21 Dec 2020 11:19:39 +0106 Subject: [PATCH 083/323] printk: kmsg_dump: remove unused fields -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz struct kmsg_dumper still contains some fields that were used to iterate the old ringbuffer. They are no longer used. Remove them @@ -16,7 +16,7 @@ 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 3378bcbe585e..235c50982c2d 100644 +index 3378bcbe585ea..235c50982c2d7 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -36,6 +36,9 @@ enum kmsg_dump_reason { @@ -39,5 +39,5 @@ u64 next_seq; }; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch linux-5.10.216/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch --- linux-5.10.209/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0084-printk-refactor-kmsg_dump_get_buffer.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b6e17f3557ef5e32212483ca92910ea28eb21eeb Mon Sep 17 00:00:00 2001 +From d7985b936918448708ec582eae418a02a840db84 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:41:56 +0106 Subject: [PATCH 084/323] printk: refactor kmsg_dump_get_buffer() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_get_buffer() requires nearly the same logic as syslog_print_all(), but uses different variable names and @@ -22,7 +22,7 @@ 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 235c50982c2d..4095a34db0fa 100644 +index 235c50982c2d7..4095a34db0fa3 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -62,7 +62,7 @@ bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, @@ -35,10 +35,10 @@ void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 044bb3791896..ad7edcb693d4 100644 +index 92762417a2b2e..48a3311fabee5 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3429,7 +3429,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3458,7 +3458,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); * read. */ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, @@ -47,7 +47,7 @@ { struct printk_info info; unsigned int line_count; -@@ -3437,12 +3437,10 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3466,12 +3466,10 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, unsigned long flags; u64 seq; u64 next_seq; @@ -61,7 +61,7 @@ if (!dumper->active || !buf || !size) goto out; -@@ -3460,48 +3458,54 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3489,48 +3487,54 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, goto out; } @@ -141,5 +141,5 @@ } EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch linux-5.10.216/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch --- linux-5.10.209/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0085-printk-consolidate-kmsg_dump_get_buffer-syslog_print.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 922cda1ee8d183c2e98429cdabf907a92df72465 Mon Sep 17 00:00:00 2001 +From 0a884704e29d8f9562056df6c22a6d60fe83f2a4 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 13 Jan 2021 11:29:53 +0106 Subject: [PATCH 085/323] printk: consolidate kmsg_dump_get_buffer/syslog_print_all code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The logic for finding records to fit into a buffer is the same for kmsg_dump_get_buffer() and syslog_print_all(). Introduce a helper @@ -15,7 +15,7 @@ 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index ad7edcb693d4..1f710a2a40b6 100644 +index 48a3311fabee5..254d4cb73c7a9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1424,6 +1424,50 @@ static size_t get_record_print_text_size(struct printk_info *info, @@ -102,7 +102,7 @@ prb_rec_init_rd(&r, &info, text, LOG_LINE_MAX + PREFIX_MAX); -@@ -3432,7 +3460,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3461,7 +3489,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, char *buf, size_t size, size_t *len_out) { struct printk_info info; @@ -110,7 +110,7 @@ struct printk_record r; unsigned long flags; u64 seq; -@@ -3460,26 +3487,12 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3489,26 +3516,12 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, /* * Find first record that fits, including all following records, @@ -143,5 +143,5 @@ /* * Next kmsg_dump_get_buffer() invocation will dump block of -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch linux-5.10.216/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch --- linux-5.10.209/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0086-printk-introduce-CONSOLE_LOG_MAX-for-improved-multi-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 2b148f755fdd9d276d191e982d525f330cffad0b Mon Sep 17 00:00:00 2001 +From 430fa6578ba80657b2280bdff7ec0719c832cd85 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 10 Dec 2020 12:48:01 +0106 Subject: [PATCH 086/323] printk: introduce CONSOLE_LOG_MAX for improved multi-line support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Instead of using "LOG_LINE_MAX + PREFIX_MAX" for temporary buffer sizes, introduce CONSOLE_LOG_MAX. This represents the maximum size @@ -22,7 +22,7 @@ 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1f710a2a40b6..1bc4ff19c0d2 100644 +index 254d4cb73c7a9..6db3c574e4aa8 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -412,8 +412,13 @@ static u64 clear_seq; @@ -71,7 +71,7 @@ len = 0; prb_for_each_record(seq, prb, seq, &r) { -@@ -2190,8 +2195,7 @@ EXPORT_SYMBOL(printk); +@@ -2196,8 +2201,7 @@ EXPORT_SYMBOL(printk); #else /* CONFIG_PRINTK */ @@ -81,7 +81,7 @@ #define printk_time false #define prb_read_valid(rb, seq, r) false -@@ -2509,7 +2513,7 @@ static inline int can_use_console(void) +@@ -2515,7 +2519,7 @@ static inline int can_use_console(void) void console_unlock(void) { static char ext_text[CONSOLE_EXT_LOG_MAX]; @@ -91,5 +91,5 @@ bool do_cond_resched, retry; struct printk_info info; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch linux-5.10.216/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch --- linux-5.10.209/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0087-printk-use-seqcount_latch-for-clear_seq.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0b877c3f36fc909dc2aec9f70e2e80ad0c69a60b Mon Sep 17 00:00:00 2001 +From a0d38d824d92325e893d09a8b9bd48e74172917e Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:41:58 +0106 Subject: [PATCH 087/323] printk: use seqcount_latch for clear_seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_rewind_nolock() locklessly reads @clear_seq. However, this is not done atomically. Since @clear_seq is 64-bit, this @@ -18,7 +18,7 @@ 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1bc4ff19c0d2..4444b3e292d5 100644 +index 6db3c574e4aa8..d40bc4665f5c0 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -404,8 +404,21 @@ static u64 console_seq; @@ -124,7 +124,7 @@ logbuf_unlock_irq(); } -@@ -3341,7 +3383,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3370,7 +3412,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) dumper->active = true; logbuf_lock_irqsave(flags); @@ -133,7 +133,7 @@ dumper->next_seq = prb_next_seq(prb); logbuf_unlock_irqrestore(flags); -@@ -3539,7 +3581,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3568,7 +3610,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); */ void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) { @@ -143,5 +143,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch linux-5.10.216/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch --- linux-5.10.209/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0088-printk-use-atomic64_t-for-devkmsg_user.seq.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ccc444abbce9df5f0747db8dd10bd39388d58836 Mon Sep 17 00:00:00 2001 +From 6653a13b974fd54fab4b2c978da5793b7dc669ca Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 10 Dec 2020 15:33:40 +0106 Subject: [PATCH 088/323] printk: use atomic64_t for devkmsg_user.seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz @user->seq is indirectly protected by @logbuf_lock. Once @logbuf_lock is removed, @user->seq will be no longer safe from an atomicity point @@ -17,7 +17,7 @@ 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 4444b3e292d5..a351ed400c04 100644 +index d40bc4665f5c0..818e99d359da0 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -664,7 +664,7 @@ static ssize_t msg_print_ext_body(char *buf, size_t size, @@ -108,5 +108,5 @@ file->private_data = user; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0089-printk-add-syslog_lock.patch linux-5.10.216/debian/patches-rt/0089-printk-add-syslog_lock.patch --- linux-5.10.209/debian/patches-rt/0089-printk-add-syslog_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0089-printk-add-syslog_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5521ed0e06ffc572d9f0ebf5421ab23288899804 Mon Sep 17 00:00:00 2001 +From 02a8f30f0b30c4feb65fd90ad193d6b39b130164 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 10 Dec 2020 16:58:02 +0106 Subject: [PATCH 089/323] printk: add syslog_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The global variables @syslog_seq, @syslog_partial, @syslog_time and write access to @clear_seq are protected by @logbuf_lock. @@ -21,7 +21,7 @@ 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index a351ed400c04..986fc9fad210 100644 +index 818e99d359da0..fb33db0b143b9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -392,8 +392,12 @@ DEFINE_RAW_SPINLOCK(logbuf_lock); @@ -141,7 +141,7 @@ logbuf_unlock_irq(); break; /* Size of the log buffer */ -@@ -2995,7 +3023,12 @@ void register_console(struct console *newcon) +@@ -3024,7 +3052,12 @@ void register_console(struct console *newcon) */ exclusive_console = newcon; exclusive_console_stop_seq = console_seq; @@ -155,5 +155,5 @@ } console_unlock(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch linux-5.10.216/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch --- linux-5.10.209/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0090-printk-introduce-a-kmsg_dump-iterator.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5bb123ebb8e508baa987e9bc17029e2eaa64575b Mon Sep 17 00:00:00 2001 +From d148bafcbfa46ba248997c4683a222c586c21892 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 18 Dec 2020 11:40:08 +0000 Subject: [PATCH 090/323] printk: introduce a kmsg_dump iterator -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Rather than store the iterator information into the registered kmsg_dump structure, create a separate iterator structure. The @@ -27,7 +27,7 @@ 10 files changed, 84 insertions(+), 75 deletions(-) diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c -index 532f22637783..1ef55f4b389a 100644 +index 532f226377831..1ef55f4b389a2 100644 --- a/arch/powerpc/kernel/nvram_64.c +++ b/arch/powerpc/kernel/nvram_64.c @@ -73,7 +73,8 @@ static const char *nvram_os_partitions[] = { @@ -68,7 +68,7 @@ err_type = ERR_TYPE_KERNEL_PANIC; oops_hdr->version = cpu_to_be16(OOPS_HDR_VERSION); diff --git a/arch/powerpc/platforms/powernv/opal-kmsg.c b/arch/powerpc/platforms/powernv/opal-kmsg.c -index 6c3bc4b4da98..ec862846bc82 100644 +index 6c3bc4b4da983..ec862846bc82c 100644 --- a/arch/powerpc/platforms/powernv/opal-kmsg.c +++ b/arch/powerpc/platforms/powernv/opal-kmsg.c @@ -20,7 +20,8 @@ @@ -82,7 +82,7 @@ /* * Outside of a panic context the pollers will continue to run, diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c -index 3de2adc0a807..9f62cca6c594 100644 +index 3de2adc0a8074..9f62cca6c5948 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c @@ -3003,7 +3003,7 @@ print_address(unsigned long addr) @@ -107,7 +107,7 @@ printf("%s", buf); } diff --git a/arch/um/kernel/kmsg_dump.c b/arch/um/kernel/kmsg_dump.c -index e4abac6c9727..f38349ad00ea 100644 +index e4abac6c9727c..f38349ad00ead 100644 --- a/arch/um/kernel/kmsg_dump.c +++ b/arch/um/kernel/kmsg_dump.c @@ -6,7 +6,8 @@ @@ -130,7 +130,7 @@ printf("%s", line); } diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index e99400f3ae1d..db39c96bbf43 100644 +index e99400f3ae1d1..db39c96bbf430 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -1359,7 +1359,8 @@ static void vmbus_isr(void) @@ -153,7 +153,7 @@ if (bytes_written) hyperv_report_panic_msg(panic_pa, bytes_written); diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c -index 774970bfcf85..6bc2c728adb7 100644 +index 774970bfcf859..6bc2c728adb73 100644 --- a/drivers/mtd/mtdoops.c +++ b/drivers/mtd/mtdoops.c @@ -267,7 +267,8 @@ static void find_next_position(struct mtdoops_context *cxt) @@ -176,7 +176,7 @@ if (reason != KMSG_DUMP_OOPS) { diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c -index d59f13b1fb96..64f3f85d2a5d 100644 +index d59f13b1fb96b..64f3f85d2a5d4 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -384,7 +384,8 @@ void pstore_record_init(struct pstore_record *record, @@ -199,7 +199,7 @@ break; diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 4095a34db0fa..2fdb10ab1799 100644 +index 4095a34db0fa3..2fdb10ab17994 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -29,6 +29,18 @@ enum kmsg_dump_reason { @@ -303,10 +303,10 @@ } diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c -index 4e09fab52faf..048baadd7a41 100644 +index c27b3dfa19210..aa424a1d65d01 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c -@@ -2157,7 +2157,7 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2155,7 +2155,7 @@ static int kdb_dmesg(int argc, const char **argv) int adjust = 0; int n = 0; int skip = 0; @@ -315,7 +315,7 @@ size_t len; char buf[201]; -@@ -2182,8 +2182,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2180,8 +2180,8 @@ static int kdb_dmesg(int argc, const char **argv) kdb_set(2, setargs); } @@ -326,7 +326,7 @@ n++; if (lines < 0) { -@@ -2215,8 +2215,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2213,8 +2213,8 @@ static int kdb_dmesg(int argc, const char **argv) if (skip >= n || skip < 0) return 0; @@ -338,10 +338,10 @@ skip--; continue; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 986fc9fad210..b992be31824f 100644 +index fb33db0b143b9..cc5f7e0fb1573 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3394,6 +3394,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_reason_str); +@@ -3423,6 +3423,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_reason_str); */ void kmsg_dump(enum kmsg_dump_reason reason) { @@ -349,7 +349,7 @@ struct kmsg_dumper *dumper; unsigned long flags; -@@ -3413,25 +3414,21 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3442,25 +3443,21 @@ void kmsg_dump(enum kmsg_dump_reason reason) continue; /* initialize iterator with data about the stored records */ @@ -380,7 +380,7 @@ * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to * @size: maximum size of the buffer -@@ -3448,7 +3445,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3477,7 +3474,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) * * The function is similar to kmsg_dump_get_line(), but grabs no locks. */ @@ -389,7 +389,7 @@ char *line, size_t size, size_t *len) { struct printk_info info; -@@ -3459,16 +3456,16 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3488,16 +3485,16 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, prb_rec_init_rd(&r, &info, line, size); @@ -409,7 +409,7 @@ &info, &line_count)) { goto out; } -@@ -3477,7 +3474,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3506,7 +3503,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, } @@ -418,7 +418,7 @@ ret = true; out: if (len) -@@ -3487,7 +3484,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3516,7 +3513,7 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, /** * kmsg_dump_get_line - retrieve one kmsg log line @@ -427,7 +427,7 @@ * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to * @size: maximum size of the buffer -@@ -3502,14 +3499,14 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, +@@ -3531,14 +3528,14 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, * A return value of FALSE indicates that there are no more records to * read. */ @@ -444,7 +444,7 @@ logbuf_unlock_irqrestore(flags); return ret; -@@ -3518,7 +3515,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3547,7 +3544,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); /** * kmsg_dump_get_buffer - copy kmsg log lines @@ -453,7 +453,7 @@ * @syslog: include the "<4>" prefixes * @buf: buffer to copy the line to * @size: maximum size of the buffer -@@ -3535,7 +3532,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); +@@ -3564,7 +3561,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); * A return value of FALSE indicates that there are no more records to * read. */ @@ -462,7 +462,7 @@ char *buf, size_t size, size_t *len_out) { struct printk_info info; -@@ -3547,19 +3544,19 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3576,19 +3573,19 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, bool ret = false; bool time = printk_time; @@ -487,7 +487,7 @@ logbuf_unlock_irqrestore(flags); goto out; } -@@ -3570,7 +3567,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3599,7 +3596,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, * because this function (by way of record_print_text()) will * not write more than size-1 bytes of text into @buf. */ @@ -496,7 +496,7 @@ size - 1, syslog, time); /* -@@ -3583,7 +3580,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3612,7 +3609,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, len = 0; prb_for_each_record(seq, prb, seq, &r) { @@ -505,7 +505,7 @@ break; len += record_print_text(&r, syslog, time); -@@ -3592,7 +3589,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, +@@ -3621,7 +3618,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, prb_rec_init_rd(&r, &info, buf + len, size - len); } @@ -514,7 +514,7 @@ ret = true; logbuf_unlock_irqrestore(flags); out: -@@ -3604,7 +3601,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3633,7 +3630,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); /** * kmsg_dump_rewind_nolock - reset the iterator (unlocked version) @@ -523,7 +523,7 @@ * * Reset the dumper's iterator so that kmsg_dump_get_line() and * kmsg_dump_get_buffer() can be called again and used multiple -@@ -3612,26 +3609,26 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3641,26 +3638,26 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); * * The function is similar to kmsg_dump_rewind(), but grabs no locks. */ @@ -557,5 +557,5 @@ } EXPORT_SYMBOL_GPL(kmsg_dump_rewind); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch linux-5.10.216/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch --- linux-5.10.209/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0091-um-synchronize-kmsg_dumper.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7790fa6baa700a285007a6e8ddf99393ba72acc2 Mon Sep 17 00:00:00 2001 +From fcdc8135f46459bbeda79bdb25f309407f30d871 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 21 Dec 2020 11:10:03 +0106 Subject: [PATCH 091/323] um: synchronize kmsg_dumper -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The kmsg_dumper can be called from any context and CPU, possibly from multiple CPUs simultaneously. Since a static buffer is used @@ -18,7 +18,7 @@ 1 file changed, 8 insertions(+) diff --git a/arch/um/kernel/kmsg_dump.c b/arch/um/kernel/kmsg_dump.c -index f38349ad00ea..173999422ed8 100644 +index f38349ad00ead..173999422ed84 100644 --- a/arch/um/kernel/kmsg_dump.c +++ b/arch/um/kernel/kmsg_dump.c @@ -1,5 +1,6 @@ @@ -57,5 +57,5 @@ static struct kmsg_dumper kmsg_dumper = { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0092-printk-remove-logbuf_lock.patch linux-5.10.216/debian/patches-rt/0092-printk-remove-logbuf_lock.patch --- linux-5.10.209/debian/patches-rt/0092-printk-remove-logbuf_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0092-printk-remove-logbuf_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 74a8c8a0d6b64df822c5946a582ca3adeec24e63 Mon Sep 17 00:00:00 2001 +From 511721a2f6160a32b221debb19e94129cc3f5ce9 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 26 Jan 2021 17:43:19 +0106 Subject: [PATCH 092/323] printk: remove logbuf_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since the ringbuffer is lockless, there is no need for it to be protected by @logbuf_lock. Remove @logbuf_lock. @@ -22,7 +22,7 @@ 3 files changed, 48 insertions(+), 103 deletions(-) diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h -index 3a8fd491758c..e7acc2888c8e 100644 +index 3a8fd491758cf..e7acc2888c8e1 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -12,8 +12,6 @@ @@ -44,7 +44,7 @@ * printk-safe must preserve the existing local IRQ guarantees. */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index b992be31824f..dde1696d7564 100644 +index cc5f7e0fb1573..9fde03f1e29bf 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -357,41 +357,6 @@ enum log_flags { @@ -282,7 +282,7 @@ break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -2630,7 +2596,6 @@ void console_unlock(void) +@@ -2636,7 +2602,6 @@ void console_unlock(void) size_t len; printk_safe_enter_irqsave(flags); @@ -290,7 +290,7 @@ skip: if (!prb_read_valid(prb, console_seq, &r)) break; -@@ -2674,7 +2639,6 @@ void console_unlock(void) +@@ -2680,7 +2645,6 @@ void console_unlock(void) console_msg_format & MSG_FORMAT_SYSLOG, printk_time); console_seq++; @@ -298,7 +298,7 @@ /* * While actively printing out messages, if another printk() -@@ -2701,8 +2665,6 @@ void console_unlock(void) +@@ -2707,8 +2671,6 @@ void console_unlock(void) console_locked = 0; @@ -307,7 +307,7 @@ up_console_sem(); /* -@@ -2711,9 +2673,7 @@ void console_unlock(void) +@@ -2717,9 +2679,7 @@ void console_unlock(void) * there's a new owner and the console_unlock() from them will do the * flush, no worries. */ @@ -317,7 +317,7 @@ printk_safe_exit_irqrestore(flags); if (retry && console_trylock()) -@@ -2780,9 +2740,9 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2786,9 +2746,9 @@ void console_flush_on_panic(enum con_flush_mode mode) if (mode == CONSOLE_REPLAY_ALL) { unsigned long flags; @@ -329,7 +329,7 @@ } console_unlock(); } -@@ -3011,7 +2971,7 @@ void register_console(struct console *newcon) +@@ -3040,7 +3000,7 @@ void register_console(struct console *newcon) * console_unlock(); will print out the buffered messages * for us. */ @@ -338,7 +338,7 @@ /* * We're about to replay the log buffer. Only do this to the * just-registered console to avoid excessive message spam to -@@ -3029,7 +2989,7 @@ void register_console(struct console *newcon) +@@ -3058,7 +3018,7 @@ void register_console(struct console *newcon) console_seq = syslog_seq; raw_spin_unlock(&syslog_lock); @@ -347,7 +347,7 @@ } console_unlock(); console_sysfs_notify(); -@@ -3415,10 +3375,10 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3444,10 +3404,10 @@ void kmsg_dump(enum kmsg_dump_reason reason) /* initialize iterator with data about the stored records */ iter.active = true; @@ -360,7 +360,7 @@ /* invoke dumper which will iterate over records */ dumper->dump(dumper, reason, &iter); -@@ -3505,9 +3465,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3534,9 +3494,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, unsigned long flags; bool ret; @@ -372,7 +372,7 @@ return ret; } -@@ -3547,7 +3507,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3576,7 +3536,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, if (!iter->active || !buf || !size) goto out; @@ -381,7 +381,7 @@ if (prb_read_valid_info(prb, iter->cur_seq, &info, NULL)) { if (info.seq != iter->cur_seq) { /* messages are gone, move to first available one */ -@@ -3557,7 +3517,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3586,7 +3546,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, /* last entry */ if (iter->cur_seq >= iter->next_seq) { @@ -390,7 +390,7 @@ goto out; } -@@ -3591,7 +3551,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3620,7 +3580,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, iter->next_seq = next_seq; ret = true; @@ -399,7 +399,7 @@ out: if (len_out) *len_out = len; -@@ -3627,9 +3587,9 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3656,9 +3616,9 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) { unsigned long flags; @@ -412,7 +412,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_rewind); diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c -index 2e9e3ed7d63e..7df8a88d4115 100644 +index 2e9e3ed7d63ef..7df8a88d4115e 100644 --- a/kernel/printk/printk_safe.c +++ b/kernel/printk/printk_safe.c @@ -16,7 +16,7 @@ @@ -482,5 +482,5 @@ return vprintk_nmi(fmt, args); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch linux-5.10.216/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch --- linux-5.10.209/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0093-printk-kmsg_dump-remove-_nolock-variants.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 171ee108014d67150846f1b8f978921cefc7b1e3 Mon Sep 17 00:00:00 2001 +From 7c35d5807ad1cb9afbbd73a093ed3b4ed447cd9c Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 21 Dec 2020 10:27:58 +0106 Subject: [PATCH 093/323] printk: kmsg_dump: remove _nolock() variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump_rewind() and kmsg_dump_get_line() are lockless, so there is no need for _nolock() variants. Remove these functions and switch all @@ -20,7 +20,7 @@ 4 files changed, 15 insertions(+), 75 deletions(-) diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c -index 9f62cca6c594..2eef587bf51d 100644 +index 9f62cca6c5948..2eef587bf51d5 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c @@ -3015,9 +3015,9 @@ dump_log_buf(void) @@ -36,7 +36,7 @@ printf("%s", buf); } diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h -index 2fdb10ab1799..86673930c8ea 100644 +index 2fdb10ab17994..86673930c8ea2 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h @@ -60,18 +60,13 @@ struct kmsg_dumper { @@ -85,10 +85,10 @@ { } diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c -index 048baadd7a41..1f5c577b926e 100644 +index aa424a1d65d01..b97d05072ca4b 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c -@@ -2182,8 +2182,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2180,8 +2180,8 @@ static int kdb_dmesg(int argc, const char **argv) kdb_set(2, setargs); } @@ -99,7 +99,7 @@ n++; if (lines < 0) { -@@ -2215,8 +2215,8 @@ static int kdb_dmesg(int argc, const char **argv) +@@ -2213,8 +2213,8 @@ static int kdb_dmesg(int argc, const char **argv) if (skip >= n || skip < 0) return 0; @@ -111,10 +111,10 @@ skip--; continue; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index dde1696d7564..031ce3f00141 100644 +index 9fde03f1e29bf..e18f1f09ab727 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3387,7 +3387,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3416,7 +3416,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) } /** @@ -123,7 +123,7 @@ * @iter: kmsg dumper iterator * @syslog: include the "<4>" prefixes * @line: buffer to copy the line to -@@ -3402,18 +3402,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3431,18 +3431,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) * * A return value of FALSE indicates that there are no more records to * read. @@ -146,7 +146,7 @@ prb_rec_init_rd(&r, &info, line, size); if (!iter->active) -@@ -3437,40 +3437,11 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3466,40 +3466,11 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper_iter *iter, bool syslog, iter->cur_seq = r.info->seq + 1; ret = true; out: @@ -188,7 +188,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_line); /** -@@ -3559,22 +3530,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3588,22 +3559,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, } EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); @@ -211,7 +211,7 @@ /** * kmsg_dump_rewind - reset the iterator * @iter: kmsg dumper iterator -@@ -3588,7 +3543,8 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3617,7 +3572,8 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) unsigned long flags; printk_safe_enter_irqsave(flags); @@ -222,5 +222,5 @@ } EXPORT_SYMBOL_GPL(kmsg_dump_rewind); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch linux-5.10.216/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch --- linux-5.10.209/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0094-printk-kmsg_dump-use-kmsg_dump_rewind.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 66a45e662dc7ecb7e9b519d3475c7893c0c1dc60 Mon Sep 17 00:00:00 2001 +From 5d97623648d3bccef67abeab3048214f70c5b693 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 17 Feb 2021 18:23:16 +0100 Subject: [PATCH 094/323] printk: kmsg_dump: use kmsg_dump_rewind -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kmsg_dump() is open coding the kmsg_dump_rewind(). Call kmsg_dump_rewind() instead. @@ -14,10 +14,10 @@ 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 031ce3f00141..c553b235d068 100644 +index e18f1f09ab727..0d233c0573a50 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3356,7 +3356,6 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3385,7 +3385,6 @@ void kmsg_dump(enum kmsg_dump_reason reason) { struct kmsg_dumper_iter iter; struct kmsg_dumper *dumper; @@ -25,7 +25,7 @@ rcu_read_lock(); list_for_each_entry_rcu(dumper, &dump_list, list) { -@@ -3375,10 +3374,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3404,10 +3403,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) /* initialize iterator with data about the stored records */ iter.active = true; @@ -38,5 +38,5 @@ /* invoke dumper which will iterate over records */ dumper->dump(dumper, reason, &iter); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch linux-5.10.216/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch --- linux-5.10.209/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0095-printk-console-remove-unnecessary-safe-buffer-usage.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 259c5c359d06d8bbbddebc6cc12fc2abc6bb2783 Mon Sep 17 00:00:00 2001 +From fc0bb2cf754415add4be3a04a82d7b9c7c6f92de Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 17 Feb 2021 18:28:05 +0100 Subject: [PATCH 095/323] printk: console: remove unnecessary safe buffer usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upon registering a console, safe buffers are activated when setting up the sequence number to replay the log. However, these are already @@ -15,10 +15,10 @@ 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index c553b235d068..aebc9e31b36a 100644 +index 0d233c0573a50..1e7ab017be193 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2970,9 +2970,7 @@ void register_console(struct console *newcon) +@@ -2999,9 +2999,7 @@ void register_console(struct console *newcon) /* * console_unlock(); will print out the buffered messages * for us. @@ -29,7 +29,7 @@ * We're about to replay the log buffer. Only do this to the * just-registered console to avoid excessive message spam to * the already-registered consoles. -@@ -2985,11 +2983,9 @@ void register_console(struct console *newcon) +@@ -3014,11 +3012,9 @@ void register_console(struct console *newcon) exclusive_console_stop_seq = console_seq; /* Get a consistent copy of @syslog_seq. */ @@ -44,5 +44,5 @@ console_unlock(); console_sysfs_notify(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0096-printk-track-limit-recursion.patch linux-5.10.216/debian/patches-rt/0096-printk-track-limit-recursion.patch --- linux-5.10.209/debian/patches-rt/0096-printk-track-limit-recursion.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0096-printk-track-limit-recursion.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 05db2b7a33a6aed0cb1ce99370c436dc2b72b521 Mon Sep 17 00:00:00 2001 +From fbd1b769b3f7f77b4de8c2e0145a64c2d158c3cb Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 11 Dec 2020 00:55:25 +0106 Subject: [PATCH 096/323] printk: track/limit recursion -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Limit printk() recursion to 1 level. This is enough to print a stacktrace for the printk call, should a WARN or BUG occur. @@ -14,10 +14,10 @@ 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index aebc9e31b36a..31a2b7a116a7 100644 +index 1e7ab017be193..08a49c8e7239e 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1943,6 +1943,65 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1949,6 +1949,65 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, } } @@ -83,7 +83,7 @@ int printk_delay_msec __read_mostly; static inline void printk_delay(void) -@@ -2043,11 +2102,13 @@ int vprintk_store(int facility, int level, +@@ -2049,11 +2108,13 @@ int vprintk_store(int facility, int level, struct prb_reserved_entry e; enum log_flags lflags = 0; struct printk_record r; @@ -97,7 +97,7 @@ u64 ts_nsec; /* -@@ -2058,6 +2119,9 @@ int vprintk_store(int facility, int level, +@@ -2064,6 +2125,9 @@ int vprintk_store(int facility, int level, */ ts_nsec = local_clock(); @@ -107,7 +107,7 @@ /* * The sprintf needs to come first since the syslog prefix might be * passed in as a parameter. An extra byte must be reserved so that -@@ -2095,7 +2159,8 @@ int vprintk_store(int facility, int level, +@@ -2101,7 +2165,8 @@ int vprintk_store(int facility, int level, prb_commit(&e); } @@ -117,7 +117,7 @@ } } -@@ -2111,7 +2176,7 @@ int vprintk_store(int facility, int level, +@@ -2117,7 +2182,7 @@ int vprintk_store(int facility, int level, prb_rec_init_wr(&r, reserve_size + trunc_msg_len); if (!prb_reserve(&e, prb, &r)) @@ -126,7 +126,7 @@ } /* fill message */ -@@ -2133,7 +2198,10 @@ int vprintk_store(int facility, int level, +@@ -2139,7 +2204,10 @@ int vprintk_store(int facility, int level, else prb_final_commit(&e); @@ -139,5 +139,5 @@ asmlinkage int vprintk_emit(int facility, int level, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0097-printk-remove-safe-buffers.patch linux-5.10.216/debian/patches-rt/0097-printk-remove-safe-buffers.patch --- linux-5.10.209/debian/patches-rt/0097-printk-remove-safe-buffers.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0097-printk-remove-safe-buffers.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c0ee407b7db3b7ac5c24337a9d365a35450c233b Mon Sep 17 00:00:00 2001 +From 08536603e3b6037a7d2e2d52bce1dca2628a14ac Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:00 +0106 Subject: [PATCH 097/323] printk: remove safe buffers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With @logbuf_lock removed, the high level printk functions for storing messages are lockless. Messages can be stored from any @@ -27,7 +27,7 @@ 9 files changed, 17 insertions(+), 425 deletions(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c -index 5e5a2448ae79..d39a4a6b4ddf 100644 +index b0e87dce2b9a0..5dfe1aea62054 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -170,7 +170,6 @@ extern void panic_flush_kmsg_start(void) @@ -39,7 +39,7 @@ bust_spinlocks(0); debug_locks_off(); diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c -index 75b2a6c4db5a..db40e20d0c54 100644 +index 75b2a6c4db5a5..db40e20d0c54a 100644 --- a/arch/powerpc/kernel/watchdog.c +++ b/arch/powerpc/kernel/watchdog.c @@ -185,11 +185,6 @@ static void watchdog_smp_panic(int cpu, u64 tb) @@ -55,7 +55,7 @@ trigger_allbutself_cpu_backtrace(); diff --git a/include/linux/printk.h b/include/linux/printk.h -index 344f6da3d4c3..c6bb48f0134c 100644 +index 344f6da3d4c36..c6bb48f0134c0 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -207,8 +207,6 @@ __printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...); @@ -83,7 +83,7 @@ extern int kptr_restrict; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c -index 3a37fc62dc95..78a1fd9c3c8a 100644 +index 3a37fc62dc95f..78a1fd9c3c8a7 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -978,7 +978,6 @@ void crash_kexec(struct pt_regs *regs) @@ -95,7 +95,7 @@ /* diff --git a/kernel/panic.c b/kernel/panic.c -index bc39e2b27d31..7965f1e31224 100644 +index 30d8da0d43d8f..7fc35d3675e1b 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -324,7 +324,6 @@ void panic(const char *fmt, ...) @@ -116,7 +116,7 @@ /* diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h -index e7acc2888c8e..e108b2ece8c7 100644 +index e7acc2888c8e1..e108b2ece8c70 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -23,7 +23,6 @@ __printf(1, 0) int vprintk_func(const char *fmt, va_list args); @@ -135,7 +135,7 @@ static inline bool printk_percpu_data_ready(void) { return false; } #endif /* CONFIG_PRINTK */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 31a2b7a116a7..90a4cf4c23a4 100644 +index 08a49c8e7239e..150b0b90ceb44 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -735,27 +735,22 @@ static ssize_t devkmsg_read(struct file *file, char __user *buf, @@ -341,7 +341,7 @@ break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -2210,7 +2179,6 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2216,7 +2185,6 @@ asmlinkage int vprintk_emit(int facility, int level, { int printed_len; bool in_sched = false; @@ -349,7 +349,7 @@ /* Suppress unimportant messages after panic happens */ if (unlikely(suppress_printk)) -@@ -2224,9 +2192,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2230,9 +2198,7 @@ asmlinkage int vprintk_emit(int facility, int level, boot_delay_msec(level); printk_delay(); @@ -359,7 +359,7 @@ /* If called from the scheduler, we can not call up(). */ if (!in_sched) { -@@ -2618,7 +2584,6 @@ void console_unlock(void) +@@ -2624,7 +2590,6 @@ void console_unlock(void) { static char ext_text[CONSOLE_EXT_LOG_MAX]; static char text[CONSOLE_LOG_MAX]; @@ -367,7 +367,7 @@ bool do_cond_resched, retry; struct printk_info info; struct printk_record r; -@@ -2663,7 +2628,6 @@ void console_unlock(void) +@@ -2669,7 +2634,6 @@ void console_unlock(void) size_t ext_len = 0; size_t len; @@ -375,7 +375,7 @@ skip: if (!prb_read_valid(prb, console_seq, &r)) break; -@@ -2720,12 +2684,8 @@ void console_unlock(void) +@@ -2726,12 +2690,8 @@ void console_unlock(void) call_console_drivers(ext_text, ext_len, text, len); start_critical_timings(); @@ -389,7 +389,7 @@ if (do_cond_resched) cond_resched(); -@@ -2742,8 +2702,6 @@ void console_unlock(void) +@@ -2748,8 +2708,6 @@ void console_unlock(void) * flush, no worries. */ retry = prb_read_valid(prb, console_seq, NULL); @@ -398,7 +398,7 @@ if (retry && console_trylock()) goto again; } -@@ -2805,13 +2763,8 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2811,13 +2769,8 @@ void console_flush_on_panic(enum con_flush_mode mode) console_trylock(); console_may_schedule = 0; @@ -413,7 +413,7 @@ console_unlock(); } -@@ -3469,11 +3422,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3498,11 +3451,9 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, struct printk_info info; unsigned int line_count; struct printk_record r; @@ -425,7 +425,7 @@ prb_rec_init_rd(&r, &info, line, size); if (!iter->active) -@@ -3497,7 +3448,6 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3526,7 +3477,6 @@ bool kmsg_dump_get_line(struct kmsg_dumper_iter *iter, bool syslog, iter->cur_seq = r.info->seq + 1; ret = true; out: @@ -433,7 +433,7 @@ if (len) *len = l; return ret; -@@ -3528,7 +3478,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3557,7 +3507,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, { struct printk_info info; struct printk_record r; @@ -441,7 +441,7 @@ u64 seq; u64 next_seq; size_t len = 0; -@@ -3538,7 +3487,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3567,7 +3516,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, if (!iter->active || !buf || !size) goto out; @@ -449,7 +449,7 @@ if (prb_read_valid_info(prb, iter->cur_seq, &info, NULL)) { if (info.seq != iter->cur_seq) { /* messages are gone, move to first available one */ -@@ -3547,10 +3495,8 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3576,10 +3524,8 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, } /* last entry */ @@ -461,7 +461,7 @@ /* * Find first record that fits, including all following records, -@@ -3582,7 +3528,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, +@@ -3611,7 +3557,6 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper_iter *iter, bool syslog, iter->next_seq = next_seq; ret = true; @@ -469,7 +469,7 @@ out: if (len_out) *len_out = len; -@@ -3600,12 +3545,8 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); +@@ -3629,12 +3574,8 @@ EXPORT_SYMBOL_GPL(kmsg_dump_get_buffer); */ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) { @@ -483,7 +483,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_rewind); diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c -index 7df8a88d4115..c23b127a6545 100644 +index 7df8a88d4115e..c23b127a65459 100644 --- a/kernel/printk/printk_safe.c +++ b/kernel/printk/printk_safe.c @@ -15,282 +15,9 @@ @@ -856,7 +856,7 @@ - printk_safe_flush(); -} diff --git a/lib/nmi_backtrace.c b/lib/nmi_backtrace.c -index 8abe1870dba4..b09a490f5f70 100644 +index 8abe1870dba4e..b09a490f5f706 100644 --- a/lib/nmi_backtrace.c +++ b/lib/nmi_backtrace.c @@ -75,12 +75,6 @@ void nmi_trigger_cpumask_backtrace(const cpumask_t *mask, @@ -873,5 +873,5 @@ put_cpu(); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch linux-5.10.216/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch --- linux-5.10.209/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0098-printk-convert-syslog_lock-to-spin_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8e6eb9e51cf4c4efeeb61910c35b01dcce2ec502 Mon Sep 17 00:00:00 2001 +From 3857124ee546240548ef2bf9ff59033210d2d390 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 18 Feb 2021 17:37:41 +0100 Subject: [PATCH 098/323] printk: convert @syslog_lock to spin_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: John Ogness Signed-off-by: Sebastian Andrzej Siewior @@ -11,7 +11,7 @@ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 90a4cf4c23a4..57f3b8d7f35c 100644 +index 150b0b90ceb44..613345a5cec8c 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -358,7 +358,7 @@ enum log_flags { @@ -102,7 +102,7 @@ break; /* Size of the log buffer */ case SYSLOG_ACTION_SIZE_BUFFER: -@@ -3004,9 +3004,9 @@ void register_console(struct console *newcon) +@@ -3033,9 +3033,9 @@ void register_console(struct console *newcon) exclusive_console_stop_seq = console_seq; /* Get a consistent copy of @syslog_seq. */ @@ -115,5 +115,5 @@ console_unlock(); console_sysfs_notify(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0099-console-add-write_atomic-interface.patch linux-5.10.216/debian/patches-rt/0099-console-add-write_atomic-interface.patch --- linux-5.10.209/debian/patches-rt/0099-console-add-write_atomic-interface.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0099-console-add-write_atomic-interface.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a021f069828ba9181d19f5ee9a977cf305ddaf19 Mon Sep 17 00:00:00 2001 +From e8bf862a51dbc3aab9ddd6d816618f05c5a9a502 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:01 +0106 Subject: [PATCH 099/323] console: add write_atomic interface -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add a write_atomic() callback to the console. This is an optional function for console drivers. The function must be atomic (including @@ -31,7 +31,7 @@ 2 files changed, 104 insertions(+) diff --git a/include/linux/console.h b/include/linux/console.h -index bc2a749e6f0d..613df76903f5 100644 +index bc2a749e6f0d4..613df76903f54 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -141,6 +141,7 @@ static inline int con_debug_leave(void) @@ -51,10 +51,10 @@ + #endif /* _LINUX_CONSOLE_H */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 57f3b8d7f35c..8768473712b2 100644 +index 613345a5cec8c..c32af4f006093 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3551,3 +3551,103 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) +@@ -3580,3 +3580,103 @@ void kmsg_dump_rewind(struct kmsg_dumper_iter *iter) EXPORT_SYMBOL_GPL(kmsg_dump_rewind); #endif @@ -159,5 +159,5 @@ +} +EXPORT_SYMBOL(console_atomic_unlock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch linux-5.10.216/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch --- linux-5.10.209/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0100-serial-8250-implement-write_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 713182575337acb0891fcfaef75c3a36408d1766 Mon Sep 17 00:00:00 2001 +From f535d09d2867742a783be392b633b75d923ef748 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:02 +0106 Subject: [PATCH 100/323] serial: 8250: implement write_atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement a non-sleeping NMI-safe write_atomic() console function in order to support emergency console printing. @@ -27,7 +27,7 @@ 7 files changed, 162 insertions(+), 44 deletions(-) diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h -index 61b11490ae5b..32c534b87397 100644 +index 61b11490ae5be..32c534b87397f 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -152,12 +152,55 @@ static inline void serial_dl_write(struct uart_8250_port *up, int value) @@ -97,7 +97,7 @@ } diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c -index 43f2eed6df78..687119fe2f8c 100644 +index 355ee338d752c..5c1bb9e06b14e 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -275,10 +275,8 @@ static void serial8250_backup_timeout(struct timer_list *t) @@ -146,7 +146,7 @@ .device = uart_console_device, .setup = univ8250_console_setup, diff --git a/drivers/tty/serial/8250/8250_fsl.c b/drivers/tty/serial/8250/8250_fsl.c -index fbcc90c31ca1..b33cb454ce03 100644 +index fbcc90c31ca11..b33cb454ce037 100644 --- a/drivers/tty/serial/8250/8250_fsl.c +++ b/drivers/tty/serial/8250/8250_fsl.c @@ -60,9 +60,18 @@ int fsl8250_handle_irq(struct uart_port *port) @@ -169,7 +169,7 @@ port->ops->stop_rx(port); } else { diff --git a/drivers/tty/serial/8250/8250_ingenic.c b/drivers/tty/serial/8250/8250_ingenic.c -index 988bf6bcce42..bcd26d672539 100644 +index 988bf6bcce42d..bcd26d6725395 100644 --- a/drivers/tty/serial/8250/8250_ingenic.c +++ b/drivers/tty/serial/8250/8250_ingenic.c @@ -146,6 +146,8 @@ OF_EARLYCON_DECLARE(x1000_uart, "ingenic,x1000-uart", @@ -195,7 +195,7 @@ if (ier & UART_IER_MSI) value |= UART_MCR_MDCE | UART_MCR_FCM; diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c -index de48a58460f4..d246f2755fed 100644 +index de48a58460f47..d246f2755feda 100644 --- a/drivers/tty/serial/8250/8250_mtk.c +++ b/drivers/tty/serial/8250/8250_mtk.c @@ -222,12 +222,37 @@ static void mtk8250_shutdown(struct uart_port *port) @@ -239,7 +239,7 @@ static void mtk8250_set_flow_ctrl(struct uart_8250_port *up, int mode) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 8b49ac4856d2..947737d0e46b 100644 +index 6098e87a34046..8eee07321a560 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -730,7 +730,7 @@ static void serial8250_set_sleep(struct uart_8250_port *p, int sleep) @@ -251,7 +251,7 @@ if (p->capabilities & UART_CAP_EFR) { serial_out(p, UART_LCR, UART_LCR_CONF_MODE_B); serial_out(p, UART_EFR, efr); -@@ -1405,7 +1405,7 @@ static void serial8250_stop_rx(struct uart_port *port) +@@ -1399,7 +1399,7 @@ static void serial8250_stop_rx(struct uart_port *port) up->ier &= ~(UART_IER_RLSI | UART_IER_RDI); up->port.read_status_mask &= ~UART_LSR_DR; @@ -260,7 +260,7 @@ serial8250_rpm_put(up); } -@@ -1435,7 +1435,7 @@ void serial8250_em485_stop_tx(struct uart_8250_port *p) +@@ -1429,7 +1429,7 @@ void serial8250_em485_stop_tx(struct uart_8250_port *p) serial8250_clear_and_reinit_fifos(p); p->ier |= UART_IER_RLSI | UART_IER_RDI; @@ -269,7 +269,7 @@ } } EXPORT_SYMBOL_GPL(serial8250_em485_stop_tx); -@@ -1677,7 +1677,7 @@ static void serial8250_disable_ms(struct uart_port *port) +@@ -1671,7 +1671,7 @@ static void serial8250_disable_ms(struct uart_port *port) mctrl_gpio_disable_ms(up->gpios); up->ier &= ~UART_IER_MSI; @@ -278,7 +278,7 @@ } static void serial8250_enable_ms(struct uart_port *port) -@@ -1693,7 +1693,7 @@ static void serial8250_enable_ms(struct uart_port *port) +@@ -1687,7 +1687,7 @@ static void serial8250_enable_ms(struct uart_port *port) up->ier |= UART_IER_MSI; serial8250_rpm_get(up); @@ -287,7 +287,7 @@ serial8250_rpm_put(up); } -@@ -2129,14 +2129,7 @@ static void serial8250_put_poll_char(struct uart_port *port, +@@ -2123,14 +2123,7 @@ static void serial8250_put_poll_char(struct uart_port *port, struct uart_8250_port *up = up_to_u8250p(port); serial8250_rpm_get(up); @@ -303,7 +303,7 @@ wait_for_xmitr(up, BOTH_EMPTY); /* -@@ -2149,7 +2142,7 @@ static void serial8250_put_poll_char(struct uart_port *port, +@@ -2143,7 +2136,7 @@ static void serial8250_put_poll_char(struct uart_port *port, * and restore the IER */ wait_for_xmitr(up, BOTH_EMPTY); @@ -312,7 +312,7 @@ serial8250_rpm_put(up); } -@@ -2454,7 +2447,7 @@ void serial8250_do_shutdown(struct uart_port *port) +@@ -2448,7 +2441,7 @@ void serial8250_do_shutdown(struct uart_port *port) */ spin_lock_irqsave(&port->lock, flags); up->ier = 0; @@ -321,7 +321,7 @@ spin_unlock_irqrestore(&port->lock, flags); synchronize_irq(port->irq); -@@ -2806,7 +2799,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2800,7 +2793,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, if (up->capabilities & UART_CAP_RTOIE) up->ier |= UART_IER_RTOIE; @@ -330,7 +330,7 @@ if (up->capabilities & UART_CAP_EFR) { unsigned char efr = 0; -@@ -3271,7 +3264,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_defaults); +@@ -3265,7 +3258,7 @@ EXPORT_SYMBOL_GPL(serial8250_set_defaults); #ifdef CONFIG_SERIAL_8250_CONSOLE @@ -339,7 +339,7 @@ { struct uart_8250_port *up = up_to_u8250p(port); -@@ -3279,6 +3272,18 @@ static void serial8250_console_putchar(struct uart_port *port, int ch) +@@ -3273,6 +3266,18 @@ static void serial8250_console_putchar(struct uart_port *port, int ch) serial_port_out(port, UART_TX, ch); } @@ -358,7 +358,7 @@ /* * Restore serial console when h/w power-off detected */ -@@ -3305,6 +3310,32 @@ static void serial8250_console_restore(struct uart_8250_port *up) +@@ -3299,6 +3304,32 @@ static void serial8250_console_restore(struct uart_8250_port *up) serial8250_out_MCR(up, up->mcr | UART_MCR_DTR | UART_MCR_RTS); } @@ -391,7 +391,7 @@ /* * Print a string to the serial port trying not to disturb * any possible real use of the port... -@@ -3321,24 +3352,12 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3315,24 +3346,12 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, struct uart_port *port = &up->port; unsigned long flags; unsigned int ier; @@ -418,7 +418,7 @@ /* check scratch reg to see if port powered off during system sleep */ if (up->canary && (up->canary != serial_port_in(port, UART_SCR))) { -@@ -3352,7 +3371,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3346,7 +3365,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, mdelay(port->rs485.delay_rts_before_send); } @@ -428,7 +428,7 @@ /* * Finally, wait for transmitter to become empty -@@ -3365,8 +3386,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3359,8 +3380,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (em485->tx_stopped) up->rs485_stop_tx(up); } @@ -438,7 +438,7 @@ /* * The receive handling will happen properly because the -@@ -3378,8 +3398,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3372,8 +3392,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (up->msr_saved_flags) serial8250_modem_status(up); @@ -448,7 +448,7 @@ } static unsigned int probe_baud(struct uart_port *port) -@@ -3399,6 +3418,7 @@ static unsigned int probe_baud(struct uart_port *port) +@@ -3393,6 +3412,7 @@ static unsigned int probe_baud(struct uart_port *port) int serial8250_console_setup(struct uart_port *port, char *options, bool probe) { @@ -456,7 +456,7 @@ int baud = 9600; int bits = 8; int parity = 'n'; -@@ -3408,6 +3428,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) +@@ -3402,6 +3422,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) if (!port->iobase && !port->membase) return -ENODEV; @@ -466,7 +466,7 @@ uart_parse_options(options, &baud, &parity, &bits, &flow); else if (probe) diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h -index abb928361270..77de68ed2d60 100644 +index abb928361270e..77de68ed2d606 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h @@ -7,6 +7,7 @@ @@ -496,5 +496,5 @@ int serial8250_console_exit(struct uart_port *port); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch linux-5.10.216/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch --- linux-5.10.209/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0101-printk-relocate-printk_delay-and-vprintk_default.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 598543b96b715ed360718ca3597ad4a2eda53241 Mon Sep 17 00:00:00 2001 +From 84c0677048de1c7ddfdb10426f86485e8475f769 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:03 +0106 Subject: [PATCH 101/323] printk: relocate printk_delay() and vprintk_default() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move printk_delay() and vprintk_default() "as is" further up so that they can be used by new functions in an upcoming commit. @@ -14,7 +14,7 @@ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 8768473712b2..c3fc6706a118 100644 +index c32af4f006093..b25a17947ae90 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1728,6 +1728,20 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len) @@ -38,7 +38,7 @@ /* * Special console_lock variants that help to reduce the risk of soft-lockups. * They allow to pass console_lock to another printk() call using a busy wait. -@@ -1971,20 +1985,6 @@ static void printk_exit_irqrestore(unsigned long flags) +@@ -1977,20 +1991,6 @@ static void printk_exit_irqrestore(unsigned long flags) local_irq_restore(flags); } @@ -59,7 +59,7 @@ static inline u32 printk_caller_id(void) { return in_task() ? task_pid_nr(current) : -@@ -2217,18 +2217,18 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2223,18 +2223,18 @@ asmlinkage int vprintk_emit(int facility, int level, } EXPORT_SYMBOL(vprintk_emit); @@ -85,5 +85,5 @@ * printk - print a kernel message * @fmt: format string -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch linux-5.10.216/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch --- linux-5.10.209/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0102-printk-combine-boot_delay_msec-into-printk_delay.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 17a9ff9877863dc267a2b0ead2ab3f792b5e405c Mon Sep 17 00:00:00 2001 +From 9d005857069eb51e552200c4cd458a06b0259d52 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:04 +0106 Subject: [PATCH 102/323] printk: combine boot_delay_msec() into printk_delay() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz boot_delay_msec() is always called immediately before printk_delay() so just combine the two. @@ -14,7 +14,7 @@ 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index c3fc6706a118..0ae184675e86 100644 +index b25a17947ae90..d7f17b8253cdc 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1730,8 +1730,10 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len) @@ -29,7 +29,7 @@ if (unlikely(printk_delay_msec)) { int m = printk_delay_msec; -@@ -2189,8 +2191,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2195,8 +2197,7 @@ asmlinkage int vprintk_emit(int facility, int level, in_sched = true; } @@ -40,5 +40,5 @@ printed_len = vprintk_store(facility, level, dev_info, fmt, args); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch linux-5.10.216/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch --- linux-5.10.209/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0103-printk-change-console_seq-to-atomic64_t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ebdec06c58c4330925d5603649542827bf7bff25 Mon Sep 17 00:00:00 2001 +From 7b6f9a34e7c1a5c1ffdffcd59b9efdcb465a6e4f Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:05 +0106 Subject: [PATCH 103/323] printk: change @console_seq to atomic64_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In preparation for atomic printing, change @console_seq to atomic so that it can be accessed without requiring @console_sem. @@ -14,7 +14,7 @@ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 0ae184675e86..2bc9904fd8ab 100644 +index d7f17b8253cdc..818c17b26bdee 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -368,12 +368,13 @@ static u64 syslog_seq; @@ -34,7 +34,7 @@ struct latched_seq { seqcount_latch_t latch; u64 val[2]; -@@ -2273,7 +2274,7 @@ EXPORT_SYMBOL(printk); +@@ -2279,7 +2280,7 @@ EXPORT_SYMBOL(printk); #define prb_first_valid_seq(rb) 0 static u64 syslog_seq; @@ -43,7 +43,7 @@ static u64 exclusive_console_stop_seq; static unsigned long console_dropped; -@@ -2588,6 +2589,7 @@ void console_unlock(void) +@@ -2594,6 +2595,7 @@ void console_unlock(void) bool do_cond_resched, retry; struct printk_info info; struct printk_record r; @@ -51,7 +51,7 @@ if (console_suspended) { up_console_sem(); -@@ -2630,12 +2632,14 @@ void console_unlock(void) +@@ -2636,12 +2638,14 @@ void console_unlock(void) size_t len; skip: @@ -70,7 +70,7 @@ } if (suppress_message_printing(r.info->level)) { -@@ -2644,13 +2648,13 @@ void console_unlock(void) +@@ -2650,13 +2654,13 @@ void console_unlock(void) * directly to the console when we received it, and * record that has level above the console loglevel. */ @@ -86,7 +86,7 @@ exclusive_console = NULL; } -@@ -2671,7 +2675,7 @@ void console_unlock(void) +@@ -2677,7 +2681,7 @@ void console_unlock(void) len = record_print_text(&r, console_msg_format & MSG_FORMAT_SYSLOG, printk_time); @@ -95,7 +95,7 @@ /* * While actively printing out messages, if another printk() -@@ -2702,7 +2706,7 @@ void console_unlock(void) +@@ -2708,7 +2712,7 @@ void console_unlock(void) * there's a new owner and the console_unlock() from them will do the * flush, no worries. */ @@ -104,7 +104,7 @@ if (retry && console_trylock()) goto again; } -@@ -2765,7 +2769,7 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -2771,7 +2775,7 @@ void console_flush_on_panic(enum con_flush_mode mode) console_may_schedule = 0; if (mode == CONSOLE_REPLAY_ALL) @@ -113,7 +113,7 @@ console_unlock(); } -@@ -3002,11 +3006,11 @@ void register_console(struct console *newcon) +@@ -3031,11 +3035,11 @@ void register_console(struct console *newcon) * ignores console_lock. */ exclusive_console = newcon; @@ -128,5 +128,5 @@ } console_unlock(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch linux-5.10.216/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch --- linux-5.10.209/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0104-printk-introduce-kernel-sync-mode.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From fcf68eb3d589c57f73e4a79b7df2f6ec8080b1ce Mon Sep 17 00:00:00 2001 +From 5c6fb48313777b15ea366464ccc3dbda1ff9003c Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:06 +0106 Subject: [PATCH 104/323] printk: introduce kernel sync mode -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz When the kernel performs an OOPS, enter into "sync mode": @@ -22,7 +22,7 @@ 3 files changed, 137 insertions(+), 6 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h -index 613df76903f5..fcc98354f733 100644 +index 613df76903f54..fcc98354f7332 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -16,6 +16,7 @@ @@ -44,7 +44,7 @@ uint ospeed; void *data; diff --git a/include/linux/printk.h b/include/linux/printk.h -index c6bb48f0134c..3738374e2b3b 100644 +index c6bb48f0134c0..3738374e2b3bc 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -46,6 +46,12 @@ static inline const char *printk_skip_headers(const char *buffer) @@ -61,7 +61,7 @@ #define MESSAGE_LOGLEVEL_DEFAULT CONFIG_MESSAGE_LOGLEVEL_DEFAULT diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2bc9904fd8ab..8a0af76b6f69 100644 +index 818c17b26bdee..1ce593876dca9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -44,6 +44,7 @@ @@ -184,7 +184,7 @@ /* * Special console_lock variants that help to reduce the risk of soft-lockups. * They allow to pass console_lock to another printk() call using a busy wait. -@@ -1919,6 +2005,8 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1925,6 +2011,8 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, if (!cpu_online(smp_processor_id()) && !(con->flags & CON_ANYTIME)) continue; @@ -193,7 +193,7 @@ if (con->flags & CON_EXTENDED) con->write(con, ext_text, ext_len); else { -@@ -2073,6 +2161,7 @@ int vprintk_store(int facility, int level, +@@ -2079,6 +2167,7 @@ int vprintk_store(int facility, int level, const u32 caller_id = printk_caller_id(); struct prb_reserved_entry e; enum log_flags lflags = 0; @@ -201,7 +201,7 @@ struct printk_record r; unsigned long irqflags; u16 trunc_msg_len = 0; -@@ -2082,6 +2171,7 @@ int vprintk_store(int facility, int level, +@@ -2088,6 +2177,7 @@ int vprintk_store(int facility, int level, u16 text_len; int ret = 0; u64 ts_nsec; @@ -209,7 +209,7 @@ /* * Since the duration of printk() can vary depending on the message -@@ -2120,6 +2210,7 @@ int vprintk_store(int facility, int level, +@@ -2126,6 +2216,7 @@ int vprintk_store(int facility, int level, if (lflags & LOG_CONT) { prb_rec_init_wr(&r, reserve_size); if (prb_reserve_in_last(&e, prb, &r, caller_id, LOG_LINE_MAX)) { @@ -217,7 +217,7 @@ text_len = printk_sprint(&r.text_buf[r.info->text_len], reserve_size, facility, &lflags, fmt, args); r.info->text_len += text_len; -@@ -2127,6 +2218,7 @@ int vprintk_store(int facility, int level, +@@ -2133,6 +2224,7 @@ int vprintk_store(int facility, int level, if (lflags & LOG_NEWLINE) { r.info->flags |= LOG_NEWLINE; prb_final_commit(&e); @@ -225,7 +225,7 @@ } else { prb_commit(&e); } -@@ -2151,6 +2243,8 @@ int vprintk_store(int facility, int level, +@@ -2157,6 +2249,8 @@ int vprintk_store(int facility, int level, goto out; } @@ -234,7 +234,7 @@ /* fill message */ text_len = printk_sprint(&r.text_buf[0], reserve_size, facility, &lflags, fmt, args); if (trunc_msg_len) -@@ -2165,13 +2259,25 @@ int vprintk_store(int facility, int level, +@@ -2171,13 +2265,25 @@ int vprintk_store(int facility, int level, memcpy(&r.info->dev_info, dev_info, sizeof(r.info->dev_info)); /* A message without a trailing newline can be continued. */ @@ -262,7 +262,7 @@ printk_exit_irqrestore(irqflags); return ret; } -@@ -2267,12 +2373,13 @@ EXPORT_SYMBOL(printk); +@@ -2273,12 +2379,13 @@ EXPORT_SYMBOL(printk); #else /* CONFIG_PRINTK */ @@ -277,7 +277,7 @@ static u64 syslog_seq; static atomic64_t console_seq = ATOMIC64_INIT(0); static u64 exclusive_console_stop_seq; -@@ -2565,6 +2672,8 @@ static int have_callable_console(void) +@@ -2571,6 +2678,8 @@ static int have_callable_console(void) */ static inline int can_use_console(void) { @@ -286,7 +286,7 @@ return cpu_online(raw_smp_processor_id()) || have_callable_console(); } -@@ -3379,6 +3488,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3408,6 +3517,18 @@ void kmsg_dump(enum kmsg_dump_reason reason) struct kmsg_dumper_iter iter; struct kmsg_dumper *dumper; @@ -306,5 +306,5 @@ list_for_each_entry_rcu(dumper, &dump_list, list) { enum kmsg_dump_reason max_reason = dumper->max_reason; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch linux-5.10.216/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch --- linux-5.10.209/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0105-printk-move-console-printing-to-kthreads.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 24c419661c9c605b6f1ddccf1683c2c0f8c5dcf4 Mon Sep 17 00:00:00 2001 +From f2b6a7c9bcafbbfeeccaddeb86c2f7107a245442 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:07 +0106 Subject: [PATCH 105/323] printk: move console printing to kthreads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Create a kthread for each console to perform console printing. Now all console printing is fully asynchronous except for the boot @@ -17,11 +17,11 @@ Signed-off-by: Luis Claudio R. Goncalves --- include/linux/console.h | 2 + - kernel/printk/printk.c | 625 ++++++++++++---------------------------- - 2 files changed, 186 insertions(+), 441 deletions(-) + kernel/printk/printk.c | 631 ++++++++++++---------------------------- + 2 files changed, 186 insertions(+), 447 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h -index fcc98354f733..3e99359e0660 100644 +index fcc98354f7332..3e99359e06602 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -155,6 +155,8 @@ struct console { @@ -34,7 +34,7 @@ uint ospeed; void *data; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 8a0af76b6f69..232ce58e94c2 100644 +index 1ce593876dca9..2dc54d08cd8bc 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -44,6 +44,7 @@ @@ -101,7 +101,7 @@ else return false; -@@ -1821,202 +1814,16 @@ static void print_sync_until(struct console *con, u64 seq) +@@ -1821,208 +1814,16 @@ static void print_sync_until(struct console *con, u64 seq) console_atomic_lock(&flags); for (;;) { @@ -254,6 +254,12 @@ - */ - mutex_acquire(&console_lock_dep_map, 0, 1, _THIS_IP_); - +- /* +- * Update @console_may_schedule for trylock because the previous +- * owner may have been schedulable. +- */ +- console_may_schedule = 0; +- - return 1; -} - @@ -306,7 +312,7 @@ #ifdef CONFIG_PRINTK_NMI #define NUM_RECURSION_CTX 2 #else -@@ -2287,39 +2094,16 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2293,39 +2094,16 @@ asmlinkage int vprintk_emit(int facility, int level, const char *fmt, va_list args) { int printed_len; @@ -347,7 +353,7 @@ wake_up_klogd(); return printed_len; } -@@ -2371,38 +2155,158 @@ asmlinkage __visible int printk(const char *fmt, ...) +@@ -2377,38 +2155,158 @@ asmlinkage __visible int printk(const char *fmt, ...) } EXPORT_SYMBOL(printk); @@ -434,9 +440,7 @@ + } + + printk_seq = atomic64_read(&con->printk_seq); - --static size_t record_print_text(const struct printk_record *r, -- bool syslog, bool time) ++ + console_lock(); + console_may_schedule = 0; + @@ -450,7 +454,9 @@ + "** %lu printk messages dropped **\n", + dropped); + dropped = 0; -+ + +-static size_t record_print_text(const struct printk_record *r, +- bool syslog, bool time) + con->write(con, dropped_text, dropped_len); + printk_delay(r.info->level); + } @@ -529,7 +535,7 @@ #endif /* CONFIG_PRINTK */ -@@ -2647,36 +2551,6 @@ int is_console_locked(void) +@@ -2653,36 +2551,6 @@ int is_console_locked(void) } EXPORT_SYMBOL(is_console_locked); @@ -566,7 +572,7 @@ /** * console_unlock - unlock the console system * -@@ -2693,131 +2567,14 @@ static inline int can_use_console(void) +@@ -2699,131 +2567,14 @@ static inline int can_use_console(void) */ void console_unlock(void) { @@ -698,7 +704,7 @@ } EXPORT_SYMBOL(console_unlock); -@@ -2867,18 +2624,20 @@ void console_unblank(void) +@@ -2873,18 +2624,20 @@ void console_unblank(void) */ void console_flush_on_panic(enum con_flush_mode mode) { @@ -729,7 +735,7 @@ console_unlock(); } -@@ -3013,7 +2772,6 @@ static int try_enable_new_console(struct console *newcon, bool user_specified) +@@ -3052,7 +2805,6 @@ static void try_enable_default_console(struct console *newcon) */ void register_console(struct console *newcon) { @@ -737,7 +743,7 @@ struct console *bcon = NULL; int err; -@@ -3037,6 +2795,8 @@ void register_console(struct console *newcon) +@@ -3076,6 +2828,8 @@ void register_console(struct console *newcon) } } @@ -746,7 +752,7 @@ if (console_drivers && console_drivers->flags & CON_BOOT) bcon = console_drivers; -@@ -3101,27 +2861,12 @@ void register_console(struct console *newcon) +@@ -3130,27 +2884,12 @@ void register_console(struct console *newcon) if (newcon->flags & CON_EXTENDED) nr_ext_console_drivers++; @@ -779,7 +785,7 @@ console_unlock(); console_sysfs_notify(); -@@ -3195,6 +2940,9 @@ int unregister_console(struct console *console) +@@ -3224,6 +2963,9 @@ int unregister_console(struct console *console) console_unlock(); console_sysfs_notify(); @@ -789,7 +795,7 @@ if (console->exit) res = console->exit(console); -@@ -3277,6 +3025,15 @@ static int __init printk_late_init(void) +@@ -3306,6 +3048,15 @@ static int __init printk_late_init(void) unregister_console(con); } } @@ -805,7 +811,7 @@ ret = cpuhp_setup_state_nocalls(CPUHP_PRINTK_DEAD, "printk:dead", NULL, console_cpu_notify); WARN_ON(ret < 0); -@@ -3292,7 +3049,6 @@ late_initcall(printk_late_init); +@@ -3321,7 +3072,6 @@ late_initcall(printk_late_init); * Delayed printk version, for scheduler-internal messages: */ #define PRINTK_PENDING_WAKEUP 0x01 @@ -813,7 +819,7 @@ static DEFINE_PER_CPU(int, printk_pending); -@@ -3300,14 +3056,8 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) +@@ -3329,14 +3079,8 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) { int pending = __this_cpu_xchg(printk_pending, 0); @@ -829,7 +835,7 @@ } static DEFINE_PER_CPU(struct irq_work, wake_up_klogd_work) = { -@@ -3330,13 +3080,6 @@ void wake_up_klogd(void) +@@ -3359,13 +3103,6 @@ void wake_up_klogd(void) void defer_console_output(void) { @@ -844,5 +850,5 @@ int vprintk_deferred(const char *fmt, va_list args) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0106-printk-remove-deferred-printing.patch linux-5.10.216/debian/patches-rt/0106-printk-remove-deferred-printing.patch --- linux-5.10.209/debian/patches-rt/0106-printk-remove-deferred-printing.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0106-printk-remove-deferred-printing.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f1e8f72e9d5c1df1ddaac09999645f7255219d77 Mon Sep 17 00:00:00 2001 +From c8f5e3ab356f317ec8d6e6fd4d99d4224c3d4718 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:08 +0106 Subject: [PATCH 106/323] printk: remove deferred printing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Since printing occurs either atomically or from the printing kthread, there is no need for any deferring or tracking possible @@ -25,7 +25,7 @@ delete mode 100644 kernel/printk/printk_safe.c diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c -index 8aa7fa949c23..3693706ba0a1 100644 +index 8aa7fa949c232..3693706ba0a1a 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -671,9 +671,7 @@ static void do_handle_IPI(int ipinr) @@ -39,7 +39,7 @@ default: diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c -index c9a889880214..d488311efab1 100644 +index c9a889880214e..d488311efab1f 100644 --- a/arch/powerpc/kexec/crash.c +++ b/arch/powerpc/kexec/crash.c @@ -311,9 +311,6 @@ void default_machine_crash_shutdown(struct pt_regs *regs) @@ -53,7 +53,7 @@ * This function is only called after the system * has panicked or is otherwise in a critical state. diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index 754f67ac4326..c35b71f8644a 100644 +index 754f67ac4326a..c35b71f8644aa 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -115,7 +115,6 @@ extern void rcu_nmi_exit(void); @@ -73,7 +73,7 @@ lockdep_on(); \ } while (0) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 3738374e2b3b..410435ac15ea 100644 +index 3738374e2b3bc..410435ac15ea1 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -155,18 +155,6 @@ static inline __printf(1, 2) __cold @@ -96,7 +96,7 @@ #ifdef CONFIG_PRINTK diff --git a/kernel/printk/Makefile b/kernel/printk/Makefile -index eee3dc9b60a9..59cb24e25f00 100644 +index eee3dc9b60a9a..59cb24e25f004 100644 --- a/kernel/printk/Makefile +++ b/kernel/printk/Makefile @@ -1,5 +1,4 @@ @@ -107,7 +107,7 @@ obj-$(CONFIG_PRINTK) += printk_ringbuffer.o diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h deleted file mode 100644 -index e108b2ece8c7..000000000000 +index e108b2ece8c70..0000000000000 --- a/kernel/printk/internal.h +++ /dev/null @@ -1,70 +0,0 @@ @@ -182,7 +182,7 @@ -static inline bool printk_percpu_data_ready(void) { return false; } -#endif /* CONFIG_PRINTK */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 232ce58e94c2..2b110b9ae34a 100644 +index 2dc54d08cd8bc..d7b3cd47339a9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -45,6 +45,7 @@ @@ -291,7 +291,7 @@ asmlinkage int vprintk(const char *fmt, va_list args) { -@@ -3078,18 +3072,10 @@ void wake_up_klogd(void) +@@ -3101,18 +3095,10 @@ void wake_up_klogd(void) preempt_enable(); } @@ -315,7 +315,7 @@ int printk_deferred(const char *fmt, ...) diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c deleted file mode 100644 -index c23b127a6545..000000000000 +index c23b127a65459..0000000000000 --- a/kernel/printk/printk_safe.c +++ /dev/null @@ -1,88 +0,0 @@ @@ -408,10 +408,10 @@ - return vprintk_default(fmt, args); -} diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 70ab6b46ef8f..5d6730589823 100644 +index db3b3b2455894..aa1da411d181b 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -9517,7 +9517,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) +@@ -9537,7 +9537,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) tracing_off(); local_irq_save(flags); @@ -419,7 +419,7 @@ /* Simulate the iterator */ trace_init_global_iter(&iter); -@@ -9594,7 +9593,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) +@@ -9614,7 +9613,6 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) atomic_dec(&per_cpu_ptr(iter.array_buffer->data, cpu)->disabled); } atomic_dec(&dump_running); @@ -428,5 +428,5 @@ } EXPORT_SYMBOL_GPL(ftrace_dump); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0107-printk-add-console-handover.patch linux-5.10.216/debian/patches-rt/0107-printk-add-console-handover.patch --- linux-5.10.209/debian/patches-rt/0107-printk-add-console-handover.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0107-printk-add-console-handover.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ead093d95a7917fa12f9d4653032eac383d21c1d Mon Sep 17 00:00:00 2001 +From 4249c8607121d5aba27b7ba1141ca3ee2fda334d Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:09 +0106 Subject: [PATCH 107/323] printk: add console handover -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz If earlyprintk is used, a boot console will print directly to the console immediately. The boot console will unregister itself as soon @@ -26,7 +26,7 @@ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/console.h b/include/linux/console.h -index 3e99359e0660..027278792eea 100644 +index 3e99359e06602..027278792eea4 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -138,6 +138,7 @@ static inline int con_debug_leave(void) @@ -38,7 +38,7 @@ struct console { char name[16]; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2b110b9ae34a..58da007d7c99 100644 +index d7b3cd47339a9..0cc452e7b1a1c 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1729,6 +1729,8 @@ static bool console_can_sync(struct console *con) @@ -59,7 +59,7 @@ else if (con->write && (con->flags & CON_BOOT) && !con->thread) con->write(con, text, text_len); else -@@ -2832,8 +2836,10 @@ void register_console(struct console *newcon) +@@ -2855,8 +2859,10 @@ void register_console(struct console *newcon) * the real console are the same physical device, it's annoying to * see the beginning boot messages twice */ @@ -72,5 +72,5 @@ /* * Put this console in the list - keep the -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0108-printk-add-pr_flush.patch linux-5.10.216/debian/patches-rt/0108-printk-add-pr_flush.patch --- linux-5.10.209/debian/patches-rt/0108-printk-add-pr_flush.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0108-printk-add-pr_flush.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From cf83f550753a28a3f2a5a7ddd45456fb3ccd03ed Mon Sep 17 00:00:00 2001 +From 44945f908f87501b711299bfe736012ed927526b Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 30 Nov 2020 01:42:10 +0106 Subject: [PATCH 108/323] printk: add pr_flush() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Provide a function to allow waiting for console printers to catch up to the latest logged message. @@ -23,7 +23,7 @@ 4 files changed, 99 insertions(+), 11 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 410435ac15ea..83c7734e9802 100644 +index 410435ac15ea1..83c7734e98025 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -481,6 +481,8 @@ extern int kptr_restrict; @@ -36,7 +36,7 @@ * ratelimited messages with local ratelimit_state, * no local ratelimit_state used in the !PRINTK case diff --git a/kernel/panic.c b/kernel/panic.c -index 7965f1e31224..5a1a4bf2feb3 100644 +index 7fc35d3675e1b..0681472a2041a 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -244,6 +244,7 @@ void check_panic_on_warn(const char *origin) @@ -94,7 +94,7 @@ /* * If kgdb is enabled, give it a chance to run before we stop all * the other CPUs or else we won't be able to debug processes left -@@ -629,6 +634,7 @@ static void print_oops_end_marker(void) +@@ -637,6 +642,7 @@ static void print_oops_end_marker(void) { init_oops_id(); pr_warn("---[ end trace %016llx ]---\n", (unsigned long long)oops_id); @@ -103,10 +103,10 @@ /* diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 58da007d7c99..14cb111fe9f0 100644 +index 0cc452e7b1a1c..3fdd06c05f4ea 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3233,6 +3233,12 @@ void kmsg_dump(enum kmsg_dump_reason reason) +@@ -3256,6 +3256,12 @@ void kmsg_dump(enum kmsg_dump_reason reason) sync_mode = true; pr_info("enabled sync mode\n"); } @@ -119,7 +119,7 @@ } rcu_read_lock(); -@@ -3512,3 +3518,76 @@ void console_atomic_unlock(unsigned int flags) +@@ -3535,3 +3541,76 @@ void console_atomic_unlock(unsigned int flags) prb_unlock(&printk_cpulock, flags); } EXPORT_SYMBOL(console_atomic_unlock); @@ -197,7 +197,7 @@ +} +EXPORT_SYMBOL(pr_flush); diff --git a/lib/bug.c b/lib/bug.c -index 4ab398a2de93..9c681f29e61e 100644 +index 4ab398a2de938..9c681f29e61e6 100644 --- a/lib/bug.c +++ b/lib/bug.c @@ -202,6 +202,7 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs) @@ -209,5 +209,5 @@ return BUG_TRAP_TYPE_BUG; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch linux-5.10.216/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch --- linux-5.10.209/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0109-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5c99ffb2025e5ae87404c3b9641b9dafaec9336e Mon Sep 17 00:00:00 2001 +From af15b3ffc7083625e1a108b253949f64fab665ea Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 3 Jul 2018 18:19:48 +0200 Subject: [PATCH 109/323] cgroup: use irqsave in cgroup_rstat_flush_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock either with spin_lock_irq() or spin_lock_irqsave(). @@ -22,7 +22,7 @@ 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c -index 89ca9b61aa0d..753dc346520a 100644 +index 89ca9b61aa0d9..753dc346520a0 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -149,8 +149,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) @@ -46,5 +46,5 @@ /* if @may_sleep, play nice and yield if necessary */ if (may_sleep && (need_resched() || -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch linux-5.10.216/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch --- linux-5.10.209/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0110-mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e215644e77fc149727b2ed1c3412c2e7668ff5aa Mon Sep 17 00:00:00 2001 +From 2ab4488b49858ac953b1e879c9a5b9f91dc816bc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Feb 2019 10:40:46 +0100 Subject: [PATCH 110/323] mm: workingset: replace IRQ-off check with a lockdep assert. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Commit @@ -22,7 +22,7 @@ 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/workingset.c b/mm/workingset.c -index 975a4d2dd02e..c3d098c01052 100644 +index 975a4d2dd02ee..c3d098c010529 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -432,6 +432,8 @@ static struct list_lru shadow_nodes; @@ -45,5 +45,5 @@ if (node->count && node->count == node->nr_values) { if (list_empty(&node->private_list)) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch linux-5.10.216/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch --- linux-5.10.209/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0111-tpm-remove-tpm_dev_wq_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 74373c599ec7fa9991304d680c34ec5b591d4cad Mon Sep 17 00:00:00 2001 +From 24ee29758a52b79da465b05aa72bcb546ae09699 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Feb 2019 11:33:11 +0100 Subject: [PATCH 111/323] tpm: remove tpm_dev_wq_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Added in commit @@ -19,7 +19,7 @@ 1 file changed, 1 deletion(-) diff --git a/drivers/char/tpm/tpm-dev-common.c b/drivers/char/tpm/tpm-dev-common.c -index b99e1941c52c..dc4c0a0a5129 100644 +index b99e1941c52c9..dc4c0a0a51290 100644 --- a/drivers/char/tpm/tpm-dev-common.c +++ b/drivers/char/tpm/tpm-dev-common.c @@ -20,7 +20,6 @@ @@ -31,5 +31,5 @@ static ssize_t tpm_dev_transmit(struct tpm_chip *chip, struct tpm_space *space, u8 *buf, size_t bufsiz) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch linux-5.10.216/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch --- linux-5.10.209/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0112-shmem-Use-raw_spinlock_t-for-stat_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 35616363024adeffc42af4d2ca91e4550d6db59c Mon Sep 17 00:00:00 2001 +From 3db1a6e4f9281a60d78e1299268a24b120abbf28 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 14 Aug 2020 18:53:34 +0200 Subject: [PATCH 112/323] shmem: Use raw_spinlock_t for ->stat_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Each CPU has SHMEM_INO_BATCH inodes available in `->ino_batch' which is per-CPU. Access here is serialized by disabling preemption. If the pool is @@ -22,7 +22,7 @@ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h -index a5a5d1d4d7b1..0470d1582b09 100644 +index a5a5d1d4d7b1d..0470d1582b09a 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -31,7 +31,7 @@ struct shmem_sb_info { @@ -35,7 +35,7 @@ unsigned char huge; /* Whether to try for hugepages */ kuid_t uid; /* Mount uid for root directory */ diff --git a/mm/shmem.c b/mm/shmem.c -index e173d83b4448..94c0964f0d1f 100644 +index e173d83b44481..94c0964f0d1fb 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -278,10 +278,10 @@ static int shmem_reserve_inode(struct super_block *sb, ino_t *inop) @@ -143,5 +143,5 @@ goto failed; spin_lock_init(&sbinfo->shrinklist_lock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch linux-5.10.216/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch --- linux-5.10.209/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0113-net-Move-lockdep-where-it-belongs.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b3ad938c1be05a261ce70af8888271d0b85cd955 Mon Sep 17 00:00:00 2001 +From ed31b5b24e477aa1ebfa4416b3bb950544f3fb57 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Sep 2020 07:32:20 +0200 Subject: [PATCH 113/323] net: Move lockdep where it belongs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner --- @@ -10,10 +10,10 @@ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c -index a069b5476df4..8839cfea108a 100644 +index 016c0b9e01b70..967f72393d559 100644 --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3082,12 +3082,11 @@ void lock_sock_nested(struct sock *sk, int subclass) +@@ -3095,12 +3095,11 @@ void lock_sock_nested(struct sock *sk, int subclass) if (sk->sk_lock.owned) __lock_sock(sk); sk->sk_lock.owned = 1; @@ -27,7 +27,7 @@ } EXPORT_SYMBOL(lock_sock_nested); -@@ -3136,12 +3135,11 @@ bool lock_sock_fast(struct sock *sk) +@@ -3149,12 +3148,11 @@ bool lock_sock_fast(struct sock *sk) __lock_sock(sk); sk->sk_lock.owned = 1; @@ -42,5 +42,5 @@ } EXPORT_SYMBOL(lock_sock_fast); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch linux-5.10.216/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch --- linux-5.10.209/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0114-parisc-Remove-bogus-__IRQ_STAT-macro.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a73391bb3950b16f44dda9989980e77e07febe01 Mon Sep 17 00:00:00 2001 +From f734e52ad35dc376e722cd13bc5cbb3b18a97242 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:08 +0100 Subject: [PATCH 114/323] parisc: Remove bogus __IRQ_STAT macro -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is a leftover from a historical array based implementation and unused. @@ -15,7 +15,7 @@ 1 file changed, 1 deletion(-) diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h -index 7f7039516e53..fad29aa6f45f 100644 +index 7f7039516e53f..fad29aa6f45fa 100644 --- a/arch/parisc/include/asm/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h @@ -32,7 +32,6 @@ typedef struct { @@ -27,5 +27,5 @@ #define __inc_irq_stat(member) __this_cpu_inc(irq_stat.member) #define ack_bad_irq(irq) WARN(1, "unexpected IRQ trap at vector %02x\n", irq) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch linux-5.10.216/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch --- linux-5.10.209/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0115-sh-Get-rid-of-nmi_count.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4d4b0ae9c82f34e6cc445f9b04248ae49346a73e Mon Sep 17 00:00:00 2001 +From 5b959c12903041cd3900cfdd30965120d6fb3560 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:09 +0100 Subject: [PATCH 115/323] sh: Get rid of nmi_count() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz nmi_count() is a historical leftover and SH is the only user. Replace it with regular per cpu accessors. @@ -17,7 +17,7 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index 5717c7cbdd97..5addcb2c2da0 100644 +index 5717c7cbdd97a..5addcb2c2da0c 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -44,7 +44,7 @@ int arch_show_interrupts(struct seq_file *p, int prec) @@ -30,7 +30,7 @@ seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c -index 4efffc18c851..be15e41489b2 100644 +index 4efffc18c8512..be15e41489b2d 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c @@ -186,7 +186,7 @@ BUILD_TRAP_HANDLER(nmi) @@ -43,5 +43,5 @@ switch (notify_die(DIE_NMI, "NMI", regs, 0, vec & 0xff, SIGINT)) { case NOTIFY_OK: -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch linux-5.10.216/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch --- linux-5.10.209/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0116-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c190c29cf4e02d1cfa67a9744ef94c2037ed071e Mon Sep 17 00:00:00 2001 +From 39ed7c0b677b385726dc78a6cb54cd60b716cb86 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:10 +0100 Subject: [PATCH 116/323] irqstat: Get rid of nmi_count() and __IRQ_STAT() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Nothing uses this anymore. @@ -15,7 +15,7 @@ 1 file changed, 4 deletions(-) diff --git a/include/linux/irq_cpustat.h b/include/linux/irq_cpustat.h -index 6e8895cd4d92..78fb2de3ea4d 100644 +index 6e8895cd4d926..78fb2de3ea4d7 100644 --- a/include/linux/irq_cpustat.h +++ b/include/linux/irq_cpustat.h @@ -19,10 +19,6 @@ @@ -30,5 +30,5 @@ - #endif /* __irq_cpustat_h */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch linux-5.10.216/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch --- linux-5.10.209/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0117-um-irqstat-Get-rid-of-the-duplicated-declarations.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 44cfe18ac1cb81f3617a962640846d232bed6d65 Mon Sep 17 00:00:00 2001 +From 05c6d2c80904407e9d810bb342dd6e833071a819 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:11 +0100 Subject: [PATCH 117/323] um/irqstat: Get rid of the duplicated declarations -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t and ack_bad_irq() are exactly the same as the asm-generic ones. @@ -16,7 +16,7 @@ 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/arch/um/include/asm/hardirq.h b/arch/um/include/asm/hardirq.h -index b426796d26fd..52e2c36267a9 100644 +index b426796d26fd7..52e2c36267a93 100644 --- a/arch/um/include/asm/hardirq.h +++ b/arch/um/include/asm/hardirq.h @@ -2,22 +2,7 @@ @@ -44,5 +44,5 @@ #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch linux-5.10.216/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch --- linux-5.10.209/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0118-ARM-irqstat-Get-rid-of-duplicated-declaration.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 903c27e244a901b4c66dc1d423a6d9b3214fd868 Mon Sep 17 00:00:00 2001 +From 5d086c5aeabc034a4ff425cbabda8f56f2f1795f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:12 +0100 Subject: [PATCH 118/323] ARM: irqstat: Get rid of duplicated declaration -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t is exactly the same as the asm-generic one. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -18,7 +18,7 @@ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h -index b95848ed2bc7..706efafbf972 100644 +index b95848ed2bc7f..706efafbf9722 100644 --- a/arch/arm/include/asm/hardirq.h +++ b/arch/arm/include/asm/hardirq.h @@ -2,16 +2,11 @@ @@ -42,7 +42,7 @@ #endif /* __ASM_HARDIRQ_H */ diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h -index 46d41140df27..1cbcc462b07e 100644 +index 46d41140df27d..1cbcc462b07e8 100644 --- a/arch/arm/include/asm/irq.h +++ b/arch/arm/include/asm/irq.h @@ -31,6 +31,8 @@ void handle_IRQ(unsigned int, struct pt_regs *); @@ -55,5 +55,5 @@ bool exclude_self); #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch linux-5.10.216/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch --- linux-5.10.209/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0119-arm64-irqstat-Get-rid-of-duplicated-declaration.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9d8ad1996dd7a9a4250e55ee988eac5f7e52bd8e Mon Sep 17 00:00:00 2001 +From d158319455a06d9ab08ab6b54b65f7b1073d065b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:13 +0100 Subject: [PATCH 119/323] arm64: irqstat: Get rid of duplicated declaration -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_cpustat_t is exactly the same as the asm-generic one. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -18,7 +18,7 @@ 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm64/include/asm/hardirq.h b/arch/arm64/include/asm/hardirq.h -index 5ffa4bacdad3..cbfa7b6f2e09 100644 +index 5ffa4bacdad38..cbfa7b6f2e098 100644 --- a/arch/arm64/include/asm/hardirq.h +++ b/arch/arm64/include/asm/hardirq.h @@ -13,11 +13,8 @@ @@ -36,5 +36,5 @@ #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch linux-5.10.216/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch --- linux-5.10.209/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0120-asm-generic-irqstat-Add-optional-__nmi_count-member.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9daa9b58eb0e0b5b143d719b4c465e8ee233def0 Mon Sep 17 00:00:00 2001 +From efcd04f10313ca9fe0d0e4556faaaf0fcf88ce1c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:14 +0100 Subject: [PATCH 120/323] asm-generic/irqstat: Add optional __nmi_count member -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add an optional __nmi_count member to irq_cpustat_t so more architectures can use the generic version. @@ -16,7 +16,7 @@ 1 file changed, 3 insertions(+) diff --git a/include/asm-generic/hardirq.h b/include/asm-generic/hardirq.h -index d14214dfc10b..f5dd99781e3c 100644 +index d14214dfc10b3..f5dd99781e3c6 100644 --- a/include/asm-generic/hardirq.h +++ b/include/asm-generic/hardirq.h @@ -7,6 +7,9 @@ @@ -30,5 +30,5 @@ #include /* Standard mappings for irq_cpustat_t above */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch linux-5.10.216/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch --- linux-5.10.209/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0121-sh-irqstat-Use-the-generic-irq_cpustat_t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 36f4507e26065641dd4b5e9fab744596a072b3a6 Mon Sep 17 00:00:00 2001 +From 9f5eaabe0b5bb1dbbd324e40e49fafc4ec35db77 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:15 +0100 Subject: [PATCH 121/323] sh: irqstat: Use the generic irq_cpustat_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz SH can now use the generic irq_cpustat_t. Define ack_bad_irq so the generic header does not emit the generic version of it. @@ -16,7 +16,7 @@ 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/arch/sh/include/asm/hardirq.h b/arch/sh/include/asm/hardirq.h -index edaea3559a23..9fe4495a8e90 100644 +index edaea3559a232..9fe4495a8e90b 100644 --- a/arch/sh/include/asm/hardirq.h +++ b/arch/sh/include/asm/hardirq.h @@ -2,16 +2,10 @@ @@ -41,5 +41,5 @@ #endif /* __ASM_SH_HARDIRQ_H */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch linux-5.10.216/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch --- linux-5.10.209/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0122-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4d8e6962b3b3f9acc509359631d4396d9b729064 Mon Sep 17 00:00:00 2001 +From 1a8afdb3f2fbc9426eabc77549d2c89f90f0cff5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:16 +0100 Subject: [PATCH 122/323] irqstat: Move declaration into asm-generic/hardirq.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Move the declaration of the irq_cpustat per cpu variable to asm-generic/hardirq.h and remove the now empty linux/irq_cpustat.h header. @@ -18,7 +18,7 @@ delete mode 100644 include/linux/irq_cpustat.h diff --git a/include/asm-generic/hardirq.h b/include/asm-generic/hardirq.h -index f5dd99781e3c..7317e8258b48 100644 +index f5dd99781e3c6..7317e8258b486 100644 --- a/include/asm-generic/hardirq.h +++ b/include/asm-generic/hardirq.h @@ -12,7 +12,8 @@ typedef struct { @@ -33,7 +33,7 @@ #ifndef ack_bad_irq diff --git a/include/linux/irq_cpustat.h b/include/linux/irq_cpustat.h deleted file mode 100644 -index 78fb2de3ea4d..000000000000 +index 78fb2de3ea4d7..0000000000000 --- a/include/linux/irq_cpustat.h +++ /dev/null @@ -1,24 +0,0 @@ @@ -62,5 +62,5 @@ - -#endif /* __irq_cpustat_h */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch linux-5.10.216/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch --- linux-5.10.209/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0123-preempt-Cleanup-the-macro-maze-a-bit.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b743317882baa4d44bdc55dea99865bf53623193 Mon Sep 17 00:00:00 2001 +From 1f654286ac50aa5942060888969cfe1fdc9dd507 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:17 +0100 Subject: [PATCH 123/323] preempt: Cleanup the macro maze a bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Make the macro maze consistent and prepare it for adding the RT variant for BH accounting. @@ -22,7 +22,7 @@ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 6df63cbe8bb0..69cc8b64aa3a 100644 +index 6df63cbe8bb04..69cc8b64aa3a0 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -77,31 +77,33 @@ @@ -74,5 +74,5 @@ /* * The preempt_count offset after preempt_disable(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch linux-5.10.216/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch --- linux-5.10.209/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0124-softirq-Move-related-code-into-one-section.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e40ca378bfbd05514961947d57b163831bdc3bbe Mon Sep 17 00:00:00 2001 +From f85331252d6a3cbbfd9a8d3e68f109188fcbbd6a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 13 Nov 2020 15:02:18 +0100 Subject: [PATCH 124/323] softirq: Move related code into one section -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To prepare for adding a RT aware variant of softirq serialization and processing move related code into one section so the necessary #ifdeffery @@ -17,7 +17,7 @@ 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 09229ad82209..617009ccd82c 100644 +index 09229ad822096..617009ccd82ce 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -92,6 +92,13 @@ static bool ksoftirqd_running(unsigned long pending) @@ -165,5 +165,5 @@ { #ifdef CONFIG_NO_HZ_COMMON -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch linux-5.10.216/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch --- linux-5.10.209/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0125-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,4 +1,4 @@ -From e8f074aae182d9f11f092885cc1a1dfaedbe8807 Mon Sep 17 00:00:00 2001 +From ce2a39cefa5e011c9a53fe34f4e48be318ee7648 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 24 Nov 2020 14:06:56 +0100 Subject: [PATCH 125/323] sh/irq: Add missing closing parentheses in @@ -6,7 +6,7 @@ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz arch/sh/kernel/irq.c: In function ‘arch_show_interrupts’: arch/sh/kernel/irq.c:47:58: error: expected ‘)’ before ‘;’ token @@ -23,7 +23,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index 5addcb2c2da0..ab5f790b0cd2 100644 +index 5addcb2c2da0c..ab5f790b0cd27 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -44,7 +44,7 @@ int arch_show_interrupts(struct seq_file *p, int prec) @@ -36,5 +36,5 @@ seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch linux-5.10.216/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch --- linux-5.10.209/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0126-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From d15b621168c7c422b8e43819c45aa749f3611fa6 Mon Sep 17 00:00:00 2001 +From 8ee47b16ba546c7a83f13ec6e2778f50a4f3e647 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Wed, 2 Dec 2020 12:57:28 +0100 Subject: [PATCH 126/323] sched/cputime: Remove symbol exports from IRQ time accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz account_irq_enter_time() and account_irq_exit_time() are not called from modules. EXPORT_SYMBOL_GPL() can be safely removed from the IRQ @@ -19,7 +19,7 @@ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 579ec3a8c816..710135905deb 100644 +index bd65ff88c5baa..eb98d145db9a6 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -227,7 +227,7 @@ void vtime_flush(struct task_struct *tsk) @@ -49,7 +49,7 @@ * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index ca0eef7d3852..e03568c5f584 100644 +index ca0eef7d3852b..e03568c5f5842 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -71,7 +71,6 @@ void irqtime_account_irq(struct task_struct *curr) @@ -69,5 +69,5 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch linux-5.10.216/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch --- linux-5.10.209/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0127-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 433f928a0fd33d67682020e134ac00885b38a2a9 Mon Sep 17 00:00:00 2001 +From 78bd952658e1aa01f1321864062df18b87e29562 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Wed, 2 Dec 2020 12:57:29 +0100 Subject: [PATCH 127/323] s390/vtime: Use the generic IRQ entry accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz s390 has its own version of IRQ entry accounting because it doesn't account the idle time the same way the other architectures do. Only @@ -28,7 +28,7 @@ 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig -index 240277d5626c..628e1e7fe302 100644 +index 240277d5626c8..628e1e7fe3029 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -646,6 +646,12 @@ config HAVE_TIF_NOHZ @@ -53,7 +53,7 @@ bool help diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig -index 878993982e39..2e78071551e7 100644 +index 878993982e39d..2e78071551e7a 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -183,6 +183,7 @@ config S390 @@ -65,7 +65,7 @@ select IOMMU_SUPPORT if PCI select MODULES_USE_ELF_RELA diff --git a/arch/s390/include/asm/vtime.h b/arch/s390/include/asm/vtime.h -index 3622d4ebc73a..fac6a67988eb 100644 +index 3622d4ebc73aa..fac6a67988eb5 100644 --- a/arch/s390/include/asm/vtime.h +++ b/arch/s390/include/asm/vtime.h @@ -2,7 +2,6 @@ @@ -77,7 +77,7 @@ #endif /* _S390_VTIME_H */ diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 710135905deb..18a97631af43 100644 +index eb98d145db9a6..f4956d7403b3f 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -248,10 +248,6 @@ void vtime_account_kernel(struct task_struct *tsk) @@ -92,7 +92,7 @@ * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index e03568c5f584..1d78b835ec8b 100644 +index e03568c5f5842..1d78b835ec8b4 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -417,23 +417,14 @@ void vtime_task_switch(struct task_struct *prev) @@ -122,5 +122,5 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, u64 *ut, u64 *st) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch linux-5.10.216/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch --- linux-5.10.209/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0128-sched-vtime-Consolidate-IRQ-time-accounting.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 749e0a8d4b10240d5834e135f34c47d107aa1442 Mon Sep 17 00:00:00 2001 +From 56fb869479a267eba4536630604a67340aedbcbf Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Wed, 2 Dec 2020 12:57:30 +0100 Subject: [PATCH 128/323] sched/vtime: Consolidate IRQ time accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The 3 architectures implementing CONFIG_VIRT_CPU_ACCOUNTING_NATIVE all have their own version of irq time accounting that dispatch the @@ -26,7 +26,7 @@ 5 files changed, 102 insertions(+), 48 deletions(-) diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c -index 7abc5f37bfaf..733e0e3324b8 100644 +index 7abc5f37bfaf9..733e0e3324b80 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c @@ -138,12 +138,8 @@ void vtime_account_kernel(struct task_struct *tsk) @@ -65,7 +65,7 @@ static irqreturn_t diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c -index ba9b54d35f57..588e081ca55b 100644 +index ba9b54d35f570..588e081ca55b5 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c @@ -312,12 +312,11 @@ static unsigned long vtime_delta_scaled(struct cpu_accounting_data *acct, @@ -163,11 +163,11 @@ struct cpu_accounting_data *acct) { diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c -index 18a97631af43..9b3c5978b668 100644 +index f4956d7403b3f..667880f5f8972 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c @@ -223,31 +223,50 @@ void vtime_flush(struct task_struct *tsk) - S390_lowcore.avg_steal_timer = avg_steal; + S390_lowcore.avg_steal_timer = avg_steal / 2; } +static u64 vtime_delta(void) @@ -231,7 +231,7 @@ * Sorted add to a list. List is linear searched until first bigger * element is found. diff --git a/include/linux/vtime.h b/include/linux/vtime.h -index 2cdeca062db3..6c9867419615 100644 +index 2cdeca062db32..6c98674196159 100644 --- a/include/linux/vtime.h +++ b/include/linux/vtime.h @@ -83,16 +83,12 @@ static inline void vtime_init_idle(struct task_struct *tsk, int cpu) { } @@ -272,7 +272,7 @@ } diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 1d78b835ec8b..60129af16ed6 100644 +index 1d78b835ec8b4..60129af16ed69 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -417,13 +417,18 @@ void vtime_task_switch(struct task_struct *prev) @@ -299,5 +299,5 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch linux-5.10.216/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch --- linux-5.10.209/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0129-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e387d228099075ac3f762ccfbbe29f9ee59678c8 Mon Sep 17 00:00:00 2001 +From 3da34cd95f146e3ad379e9a1e0c29dbaef4ddd8d Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Wed, 2 Dec 2020 12:57:31 +0100 Subject: [PATCH 129/323] irqtime: Move irqtime entry accounting after irq offset incrementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz IRQ time entry is currently accounted before HARDIRQ_OFFSET or SOFTIRQ_OFFSET are incremented. This is convenient to decide to which @@ -31,7 +31,7 @@ 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index c35b71f8644a..0926e9ca4d85 100644 +index c35b71f8644aa..0926e9ca4d85f 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -32,9 +32,9 @@ static __always_inline void rcu_irq_enter_check_tick(void) @@ -56,7 +56,7 @@ } while (0) diff --git a/include/linux/vtime.h b/include/linux/vtime.h -index 6c9867419615..041d6524d144 100644 +index 6c98674196159..041d6524d144a 100644 --- a/include/linux/vtime.h +++ b/include/linux/vtime.h @@ -83,32 +83,46 @@ static inline void vtime_init_idle(struct task_struct *tsk, int cpu) { } @@ -117,7 +117,7 @@ #endif /* _LINUX_KERNEL_VTIME_H */ diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 60129af16ed6..02a7932c7383 100644 +index 60129af16ed69..02a7932c73838 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -44,12 +44,13 @@ static void irqtime_account_delta(struct irqtime *irqtime, u64 delta, @@ -174,7 +174,7 @@ } else if (!IS_ENABLED(CONFIG_HAVE_VIRT_CPU_ACCOUNTING_IDLE) && is_idle_task(tsk)) { diff --git a/kernel/softirq.c b/kernel/softirq.c -index 617009ccd82c..b8f42b3ba8ca 100644 +index 617009ccd82ce..b8f42b3ba8ca1 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -315,10 +315,10 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) @@ -209,5 +209,5 @@ if (!in_interrupt() && local_softirq_pending()) invoke_softirq(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch linux-5.10.216/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch --- linux-5.10.209/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0130-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5e2b7533340eb96a841068c309aac4985bd8180c Mon Sep 17 00:00:00 2001 +From f15cefe367204257380b0e341c5143eed2786b5e Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Wed, 2 Dec 2020 12:57:32 +0100 Subject: [PATCH 130/323] irq: Call tick_irq_enter() inside HARDIRQ_OFFSET -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Now that account_hardirq_enter() is called after HARDIRQ_OFFSET has been incremented, there is nothing left that prevents us from also @@ -21,7 +21,7 @@ 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index b8f42b3ba8ca..d5bfd5e661fc 100644 +index b8f42b3ba8ca1..d5bfd5e661fcd 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -377,16 +377,12 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) @@ -47,5 +47,5 @@ /** -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch linux-5.10.216/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch --- linux-5.10.209/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0131-smp-Wake-ksoftirqd-on-PREEMPT_RT-instead-do_softirq.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From d6a969bae816bcd5ac549038a4582d300ede6b99 Mon Sep 17 00:00:00 2001 +From 0063bf11b9390ab711451a2951af4605394208bf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 15 Feb 2021 18:44:12 +0100 Subject: [PATCH 131/323] smp: Wake ksoftirqd on PREEMPT_RT instead do_softirq(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The softirq implementation on PREEMPT_RT does not provide do_softirq(). The other user of do_softirq() is replaced with a local_bh_disable() @@ -19,7 +19,7 @@ 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/smp.c b/kernel/smp.c -index b0684b4c111e..4aaf11aa729c 100644 +index b0684b4c111e9..4aaf11aa729cf 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -450,8 +450,18 @@ void flush_smp_call_function_from_idle(void) @@ -44,5 +44,5 @@ local_irq_restore(flags); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch linux-5.10.216/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch --- linux-5.10.209/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0132-tasklets-Replace-barrier-with-cpu_relax-in-tasklet_u.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 8127bb05947dbb12f9537095932d6a7a7a07d09e Mon Sep 17 00:00:00 2001 +From 21e3035d835cb0443eedc30da35daa6a511c8c21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:04 +0100 Subject: [PATCH 132/323] tasklets: Replace barrier() with cpu_relax() in tasklet_unlock_wait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A barrier() in a tight loop which waits for something to happen on a remote CPU is a pointless exercise. Replace it with cpu_relax() which allows HT @@ -17,7 +17,7 @@ 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 0652b4858ba6..fad0eb9d42ab 100644 +index 0652b4858ba62..fad0eb9d42aba 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -672,7 +672,8 @@ static inline void tasklet_unlock(struct tasklet_struct *t) @@ -31,5 +31,5 @@ #else #define tasklet_trylock(t) 1 -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch linux-5.10.216/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch --- linux-5.10.209/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0133-tasklets-Use-static-inlines-for-stub-implementations.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From fa31367f235c42f78b2375d5ade6130a3b296e22 Mon Sep 17 00:00:00 2001 +From 72ab0a7726c4540a4b3aab231959f43b620b118c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:05 +0100 Subject: [PATCH 133/323] tasklets: Use static inlines for stub implementations -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Inlines exist for a reason. @@ -14,7 +14,7 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index fad0eb9d42ab..75c4380afe9b 100644 +index fad0eb9d42aba..75c4380afe9b5 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -676,9 +676,9 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) @@ -31,5 +31,5 @@ extern void __tasklet_schedule(struct tasklet_struct *t); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch linux-5.10.216/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch --- linux-5.10.209/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0134-tasklets-Provide-tasklet_disable_in_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 35c080a5db30acfdfa20ca84bf9d0482e6ec1409 Mon Sep 17 00:00:00 2001 +From bc93dfe7232be5a97b5e364007fbdc33f14bc9fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:06 +0100 Subject: [PATCH 134/323] tasklets: Provide tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Replacing the spin wait loops in tasklet_unlock_wait() with wait_var_event() is not possible as a handful of tasklet_disable() @@ -20,7 +20,7 @@ 1 file changed, 22 insertions(+) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 75c4380afe9b..abba3eff4f86 100644 +index 75c4380afe9b5..abba3eff4f86a 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -675,10 +675,21 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) @@ -64,5 +64,5 @@ { tasklet_disable_nosync(t); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch linux-5.10.216/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch --- linux-5.10.209/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0135-tasklets-Use-spin-wait-in-tasklet_disable-temporaril.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 90d88360f539e57921ec9675603c700c351a0078 Mon Sep 17 00:00:00 2001 +From 2f4631e0b8131544cc827aa0a517fc0b8fba79f6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:07 +0100 Subject: [PATCH 135/323] tasklets: Use spin wait in tasklet_disable() temporarily -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To ease the transition use spin waiting in tasklet_disable() until all usage sites from atomic context have been cleaned up. @@ -15,7 +15,7 @@ 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index abba3eff4f86..fe085c46f210 100644 +index abba3eff4f86a..fe085c46f2107 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -728,7 +728,8 @@ static inline void tasklet_disable_in_atomic(struct tasklet_struct *t) @@ -29,5 +29,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch linux-5.10.216/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch --- linux-5.10.209/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0136-tasklets-Replace-spin-wait-in-tasklet_unlock_wait.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1e2be8ee6d91630326a3a3bc32925205b41d73a5 Mon Sep 17 00:00:00 2001 +From f90cb17ba85876d41e375928685a9190586dbd65 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 9 Mar 2021 09:42:08 +0100 Subject: [PATCH 136/323] tasklets: Replace spin wait in tasklet_unlock_wait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_unlock_wait() spin waits for TASKLET_STATE_RUN to be cleared. This is wasting CPU cycles in a tight loop which is especially painful in a @@ -26,7 +26,7 @@ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index fe085c46f210..c4fafbfa28a6 100644 +index fe085c46f2107..c4fafbfa28a6f 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -664,17 +664,8 @@ static inline int tasklet_trylock(struct tasklet_struct *t) @@ -50,7 +50,7 @@ /* * Do not use in new code. Waiting for tasklets from atomic contexts is diff --git a/kernel/softirq.c b/kernel/softirq.c -index d5bfd5e661fc..06bca024ce45 100644 +index d5bfd5e661fcd..06bca024ce45b 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -25,6 +25,7 @@ @@ -86,5 +86,5 @@ { int cpu; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch linux-5.10.216/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch --- linux-5.10.209/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0137-tasklets-Replace-spin-wait-in-tasklet_kill.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From cc2fc16258410420e97a4873f760cffabcff49b0 Mon Sep 17 00:00:00 2001 +From 6f587dabc52353c69ab92df7f065913cb62ec952 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 9 Mar 2021 09:42:09 +0100 Subject: [PATCH 137/323] tasklets: Replace spin wait in tasklet_kill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_kill() spin waits for TASKLET_STATE_SCHED to be cleared invoking yield() from inside the loop. yield() is an ill defined mechanism and the @@ -21,7 +21,7 @@ 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 06bca024ce45..ecc3ac4091c8 100644 +index 06bca024ce45b..ecc3ac4091c8c 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -530,6 +530,16 @@ void __tasklet_hi_schedule(struct tasklet_struct *t) @@ -70,5 +70,5 @@ EXPORT_SYMBOL(tasklet_kill); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch linux-5.10.216/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch --- linux-5.10.209/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0138-tasklets-Prevent-tasklet_unlock_spin_wait-deadlock-o.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 42114155db1a5548923ac48a09b3f228b29d3b09 Mon Sep 17 00:00:00 2001 +From 12db21385fbc33222708c8d540380a06c6b97a05 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:10 +0100 Subject: [PATCH 138/323] tasklets: Prevent tasklet_unlock_spin_wait() deadlock on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_unlock_spin_wait() spin waits for the TASKLET_STATE_SCHED bit in the tasklet state to be cleared. This works on !RT nicely because the @@ -28,7 +28,7 @@ 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index c4fafbfa28a6..6eae70ec3a17 100644 +index c4fafbfa28a6f..6eae70ec3a178 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -658,7 +658,7 @@ enum @@ -59,7 +59,7 @@ static inline int tasklet_trylock(struct tasklet_struct *t) { return 1; } static inline void tasklet_unlock(struct tasklet_struct *t) { } diff --git a/kernel/softirq.c b/kernel/softirq.c -index ecc3ac4091c8..fcb201ceed71 100644 +index ecc3ac4091c8c..fcb201ceed712 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -614,6 +614,32 @@ void tasklet_init(struct tasklet_struct *t, @@ -105,5 +105,5 @@ { smp_mb__before_atomic(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch linux-5.10.216/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch --- linux-5.10.209/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0139-net-jme-Replace-link-change-tasklet-with-work.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8aad52579188d8ae11265d495209d51029482f38 Mon Sep 17 00:00:00 2001 +From 6d8ca45dc68e47f1a12fc5579eb9acda9d4ebecf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:11 +0100 Subject: [PATCH 139/323] net: jme: Replace link-change tasklet with work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The link change tasklet disables the tasklets for tx/rx processing while upating hw parameters and then enables the tasklets again. @@ -21,7 +21,7 @@ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c -index e9efe074edc1..f1b9284e0bea 100644 +index e9efe074edc11..f1b9284e0bea8 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c @@ -1265,9 +1265,9 @@ jme_stop_shutdown_timer(struct jme_adapter *jme) @@ -71,7 +71,7 @@ jme->reg_ghc = 0; diff --git a/drivers/net/ethernet/jme.h b/drivers/net/ethernet/jme.h -index a2c3b00d939d..2af76329b4a2 100644 +index a2c3b00d939d0..2af76329b4a27 100644 --- a/drivers/net/ethernet/jme.h +++ b/drivers/net/ethernet/jme.h @@ -411,7 +411,7 @@ struct jme_adapter { @@ -84,5 +84,5 @@ unsigned long flags; u32 reg_txcs; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch linux-5.10.216/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch --- linux-5.10.209/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0140-net-sundance-Use-tasklet_disable_in_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b8d19bf463893a07bab9120bd628798515f3e6e0 Mon Sep 17 00:00:00 2001 +From edacf0883d169467343cf3ab923196c22d932fb1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:12 +0100 Subject: [PATCH 140/323] net: sundance: Use tasklet_disable_in_atomic(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_disable() is used in the timer callback. This might be distangled, but without access to the hardware that's a bit risky. @@ -22,7 +22,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c -index e3a8858915b3..df0eab479d51 100644 +index e3a8858915b37..df0eab479d512 100644 --- a/drivers/net/ethernet/dlink/sundance.c +++ b/drivers/net/ethernet/dlink/sundance.c @@ -963,7 +963,7 @@ static void tx_timeout(struct net_device *dev, unsigned int txqueue) @@ -35,5 +35,5 @@ printk(KERN_WARNING "%s: Transmit timed out, TxStatus %2.2x " "TxFrameId %2.2x," -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch linux-5.10.216/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch --- linux-5.10.209/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0141-ath9k-Use-tasklet_disable_in_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3e2ecd3c09d77800b53b99090c6b6372af1922e7 Mon Sep 17 00:00:00 2001 +From 1e5a8b66c84ef51982c756b233486daa6c671865 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:13 +0100 Subject: [PATCH 141/323] ath9k: Use tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz All callers of ath9k_beacon_ensure_primary_slot() are preemptible / acquire a mutex except for this callchain: @@ -31,7 +31,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c -index 71e2ada86793..72e2e71aac0e 100644 +index 71e2ada86793f..72e2e71aac0e6 100644 --- a/drivers/net/wireless/ath/ath9k/beacon.c +++ b/drivers/net/wireless/ath/ath9k/beacon.c @@ -251,7 +251,7 @@ void ath9k_beacon_ensure_primary_slot(struct ath_softc *sc) @@ -44,5 +44,5 @@ /* Find first taken slot. */ for (slot = 0; slot < ATH_BCBUF; slot++) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch linux-5.10.216/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch --- linux-5.10.209/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0142-atm-eni-Use-tasklet_disable_in_atomic-in-the-send-ca.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f8cac7fb539abd4d961c942dde93a04956f9615d Mon Sep 17 00:00:00 2001 +From 041b4c87ac61a11ebe5fbd5b2fa00a341e9b4297 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:14 +0100 Subject: [PATCH 142/323] atm: eni: Use tasklet_disable_in_atomic() in the send() callback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The atmdev_ops::send callback which calls tasklet_disable() is invoked with bottom halfs disabled from net_device_ops::ndo_start_xmit(). All other @@ -25,7 +25,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c -index 9fcc49be499f..a31ffe16e626 100644 +index 9fcc49be499f1..a31ffe16e626f 100644 --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c @@ -2056,7 +2056,7 @@ static int eni_send(struct atm_vcc *vcc,struct sk_buff *skb) @@ -38,5 +38,5 @@ tasklet_enable(&ENI_DEV(vcc->dev)->task); if (res == enq_ok) return 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch linux-5.10.216/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch --- linux-5.10.209/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0143-PCI-hv-Use-tasklet_disable_in_atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 267b1086437ac0cca8ca59197e5cc8cbe8fc6a83 Mon Sep 17 00:00:00 2001 +From df38760868c0b1e084bde7aad999b7d0a6caf357 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:15 +0100 Subject: [PATCH 143/323] PCI: hv: Use tasklet_disable_in_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The hv_compose_msi_msg() callback in irq_chip::irq_compose_msi_msg is invoked via irq_chip_compose_msi_msg(), which itself is always invoked from @@ -29,7 +29,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c -index 2d6c77dcc815..7daba964f54e 100644 +index 2d6c77dcc815c..7daba964f54ed 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -1518,7 +1518,7 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) @@ -42,5 +42,5 @@ /* * Since this function is called with IRQ locks held, can't -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch linux-5.10.216/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch --- linux-5.10.209/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0144-firewire-ohci-Use-tasklet_disable_in_atomic-where-re.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 090a450216e555382abe0be8e2941ecfcc527c44 Mon Sep 17 00:00:00 2001 +From a02a1932076865681e3e14ea1124ef661c0563a6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Mar 2021 09:42:16 +0100 Subject: [PATCH 144/323] firewire: ohci: Use tasklet_disable_in_atomic() where required -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz tasklet_disable() is invoked in several places. Some of them are in atomic context which prevents a conversion of tasklet_disable() to a sleepable @@ -35,10 +35,10 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c -index 9811c40956e5..17c9d825188b 100644 +index 45d19cc0aeac0..667ff40f39353 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c -@@ -2545,7 +2545,7 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet) +@@ -2593,7 +2593,7 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet) struct driver_data *driver_data = packet->driver_data; int ret = -ENOENT; @@ -47,7 +47,7 @@ if (packet->ack != 0) goto out; -@@ -3465,7 +3465,7 @@ static int ohci_flush_iso_completions(struct fw_iso_context *base) +@@ -3513,7 +3513,7 @@ static int ohci_flush_iso_completions(struct fw_iso_context *base) struct iso_context *ctx = container_of(base, struct iso_context, base); int ret = 0; @@ -57,5 +57,5 @@ if (!test_and_set_bit_lock(0, &ctx->flushing_completions)) { context_tasklet((unsigned long)&ctx->context); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch linux-5.10.216/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch --- linux-5.10.209/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0145-tasklets-Switch-tasklet_disable-to-the-sleep-wait-va.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 24fc43821f54c5f95095fb5154422b54ba2777e2 Mon Sep 17 00:00:00 2001 +From 23a31c3df00faa9e53348150b0eae33153dd3a11 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:42:17 +0100 Subject: [PATCH 145/323] tasklets: Switch tasklet_disable() to the sleep wait variant -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz -- NOT FOR IMMEDIATE MERGING -- @@ -17,7 +17,7 @@ 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index 6eae70ec3a17..a1c64d969532 100644 +index 6eae70ec3a178..a1c64d969532d 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -711,8 +711,7 @@ static inline void tasklet_disable_in_atomic(struct tasklet_struct *t) @@ -31,5 +31,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch linux-5.10.216/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch --- linux-5.10.209/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0146-softirq-Add-RT-specific-softirq-accounting.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a69df864da6d43ae3de6a4d995eaebca51a582b4 Mon Sep 17 00:00:00 2001 +From 9ff911822019a34054ff84adac3fb29493132ef6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:53 +0100 Subject: [PATCH 146/323] softirq: Add RT specific softirq accounting -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT requires the softirq processing and local bottomhalf disabled regions to be preemptible. Using the normal preempt count based serialization is @@ -28,7 +28,7 @@ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h -index 0926e9ca4d85..76878b357ffa 100644 +index 0926e9ca4d85f..76878b357ffa9 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -6,6 +6,7 @@ @@ -40,7 +40,7 @@ #include diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 69cc8b64aa3a..9881eac0698f 100644 +index 69cc8b64aa3a0..9881eac0698fd 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -79,7 +79,11 @@ @@ -57,7 +57,7 @@ /* diff --git a/include/linux/sched.h b/include/linux/sched.h -index 82de1ab42497..d31da4867bb2 100644 +index 82de1ab424976..d31da4867bb28 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1046,6 +1046,9 @@ struct task_struct { @@ -71,5 +71,5 @@ #ifdef CONFIG_LOCKDEP # define MAX_LOCK_DEPTH 48UL -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch linux-5.10.216/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch --- linux-5.10.209/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0147-irqtime-Make-accounting-correct-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a4b2fa58f0b8dabae3f30be80fe317da32c5b121 Mon Sep 17 00:00:00 2001 +From 154fd3270e388ac08741e499a2ed6a776060199d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:54 +0100 Subject: [PATCH 147/323] irqtime: Make accounting correct on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz vtime_account_irq and irqtime_account_irq() base checks on preempt_count() which fails on RT because preempt_count() does not contain the softirq @@ -28,7 +28,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c -index 02a7932c7383..02a5aa60fe7e 100644 +index 02a7932c73838..02a5aa60fe7e5 100644 --- a/kernel/sched/cputime.c +++ b/kernel/sched/cputime.c @@ -60,7 +60,7 @@ void irqtime_account_irq(struct task_struct *curr, unsigned int offset) @@ -50,5 +50,5 @@ if (pc & HARDIRQ_OFFSET) { vtime_account_hardirq(tsk); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch linux-5.10.216/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch --- linux-5.10.209/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0148-softirq-Move-various-protections-into-inline-helpers.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7d59f358f639cc9e535a4049d663d9347aef6380 Mon Sep 17 00:00:00 2001 +From 83b7f1f10d2ccb658229fd940cffb3d0ea8fb46d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:55 +0100 Subject: [PATCH 148/323] softirq: Move various protections into inline helpers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To allow reuse of the bulk of softirq processing code for RT and to avoid #ifdeffery all over the place, split protections for various code sections @@ -17,7 +17,7 @@ 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c -index fcb201ceed71..87fac6ac0c32 100644 +index fcb201ceed712..87fac6ac0c32e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -205,6 +205,32 @@ void __local_bh_enable_ip(unsigned long ip, unsigned int cnt) @@ -104,5 +104,5 @@ #ifdef CONFIG_HOTPLUG_CPU -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch linux-5.10.216/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch --- linux-5.10.209/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0149-softirq-Make-softirq-control-and-processing-RT-aware.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d2c5f9de8094418b5ebade0ff54219371ec0a5ef Mon Sep 17 00:00:00 2001 +From 422a657038cfb49e96babc056a8f7bfcd514e387 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:56 +0100 Subject: [PATCH 149/323] softirq: Make softirq control and processing RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Provide a local lock based serialization for soft interrupts on RT which allows the local_bh_disabled() sections and servicing soft interrupts to be @@ -21,7 +21,7 @@ 2 files changed, 182 insertions(+), 8 deletions(-) diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h -index a19519f4241d..e4dd613a070e 100644 +index a19519f4241dc..e4dd613a070e3 100644 --- a/include/linux/bottom_half.h +++ b/include/linux/bottom_half.h @@ -4,7 +4,7 @@ @@ -34,7 +34,7 @@ #else static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt) diff --git a/kernel/softirq.c b/kernel/softirq.c -index 87fac6ac0c32..ed13f6097de8 100644 +index 87fac6ac0c32e..ed13f6097de89 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -13,6 +13,7 @@ @@ -263,5 +263,5 @@ pending = local_softirq_pending(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch linux-5.10.216/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch --- linux-5.10.209/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0150-tick-sched-Prevent-false-positive-softirq-pending-wa.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 8f4c53c804fbc30a305bf13376f5748a55ec4944 Mon Sep 17 00:00:00 2001 +From 2343898ed68bc6b1b29e54803e4ceee12b9d3075 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:57 +0100 Subject: [PATCH 150/323] tick/sched: Prevent false positive softirq pending warnings on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On RT a task which has soft interrupts disabled can block on a lock and schedule out to idle while soft interrupts are pending. This triggers the @@ -26,7 +26,7 @@ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/linux/bottom_half.h b/include/linux/bottom_half.h -index e4dd613a070e..eed86eb0a1de 100644 +index e4dd613a070e3..eed86eb0a1dea 100644 --- a/include/linux/bottom_half.h +++ b/include/linux/bottom_half.h @@ -32,4 +32,10 @@ static inline void local_bh_enable(void) @@ -41,7 +41,7 @@ + #endif /* _LINUX_BH_H */ diff --git a/kernel/softirq.c b/kernel/softirq.c -index ed13f6097de8..c9adc5c46248 100644 +index ed13f6097de89..c9adc5c462485 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -139,6 +139,21 @@ static DEFINE_PER_CPU(struct softirq_ctrl, softirq_ctrl) = { @@ -67,7 +67,7 @@ { unsigned long flags; diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index fc79b04b5947..fb10be8e5e92 100644 +index d1693c26958fc..0dc1460ced748 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -982,7 +982,7 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) @@ -80,5 +80,5 @@ pr_warn("NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #%02x!!!\n", (unsigned int) local_softirq_pending()); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch linux-5.10.216/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch --- linux-5.10.209/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0151-rcu-Prevent-false-positive-softirq-warning-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From cce7be95962e51a5270439e8c31500ed38123c49 Mon Sep 17 00:00:00 2001 +From 62ec5bc05388bf46267a156a33011378a09580b2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 9 Mar 2021 09:55:58 +0100 Subject: [PATCH 151/323] rcu: Prevent false positive softirq warning on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Soft interrupt disabled sections can legitimately be preempted or schedule out when blocking on a lock on RT enabled kernels so the RCU preempt check @@ -17,10 +17,10 @@ 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h -index ef8d56b18da6..bb9681309e0d 100644 +index 9db6710e6ee7b..a276bb69ee59c 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h -@@ -338,7 +338,8 @@ static inline void rcu_preempt_sleep_check(void) { } +@@ -381,7 +381,8 @@ static inline void rcu_preempt_sleep_check(void) { } #define rcu_sleep_check() \ do { \ rcu_preempt_sleep_check(); \ @@ -31,5 +31,5 @@ RCU_LOCKDEP_WARN(lock_is_held(&rcu_sched_lock_map), \ "Illegal context switch in RCU-sched read-side critical section"); \ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch linux-5.10.216/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch --- linux-5.10.209/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0152-chelsio-cxgb-Replace-the-workqueue-with-threaded-int.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From a3a5c955eb9767e09f62d7d4c1af2f8f5b0fe565 Mon Sep 17 00:00:00 2001 +From 5f89ed192e42f5576ae3733f420526ee682db0a3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 2 Feb 2021 18:01:03 +0100 Subject: [PATCH 152/323] chelsio: cxgb: Replace the workqueue with threaded interrupt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The external interrupt (F_PL_INTR_EXT) needs to be handled in a process context and this is accomplished by utilizing a workqueue. @@ -30,7 +30,7 @@ 5 files changed, 55 insertions(+), 54 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb/common.h b/drivers/net/ethernet/chelsio/cxgb/common.h -index 6475060649e9..e999a9b9fe6c 100644 +index 6475060649e90..e999a9b9fe6cc 100644 --- a/drivers/net/ethernet/chelsio/cxgb/common.h +++ b/drivers/net/ethernet/chelsio/cxgb/common.h @@ -238,7 +238,6 @@ struct adapter { @@ -60,7 +60,7 @@ int t1_link_start(struct cphy *phy, struct cmac *mac, struct link_config *lc); const struct board_info *t1_get_board_info(unsigned int board_id); diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c -index c6db85fe1629..737c24136e2f 100644 +index c6db85fe16291..737c24136e2fe 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -211,9 +211,10 @@ static int cxgb_up(struct adapter *adapter) @@ -129,7 +129,7 @@ mac_stats_task); diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c -index 2d9c2b5a690a..5aef9ae1ecfe 100644 +index 2d9c2b5a690a3..5aef9ae1ecfed 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -1619,11 +1619,38 @@ int t1_poll(struct napi_struct *napi, int budget) @@ -186,7 +186,7 @@ /* diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.h b/drivers/net/ethernet/chelsio/cxgb/sge.h -index a1ba591b3431..76516d2a8aa9 100644 +index a1ba591b34312..76516d2a8aa9e 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.h +++ b/drivers/net/ethernet/chelsio/cxgb/sge.h @@ -74,6 +74,7 @@ struct sge *t1_sge_create(struct adapter *, struct sge_params *); @@ -198,7 +198,7 @@ int t1_poll(struct napi_struct *, int); diff --git a/drivers/net/ethernet/chelsio/cxgb/subr.c b/drivers/net/ethernet/chelsio/cxgb/subr.c -index ea0f8741d7cf..d90ad07ff1a4 100644 +index ea0f8741d7cfd..d90ad07ff1a40 100644 --- a/drivers/net/ethernet/chelsio/cxgb/subr.c +++ b/drivers/net/ethernet/chelsio/cxgb/subr.c @@ -210,7 +210,7 @@ static int fpga_phy_intr_handler(adapter_t *adapter) @@ -267,5 +267,5 @@ #ifdef CONFIG_CHELSIO_T1_1G if (!t1_is_asic(adapter)) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch linux-5.10.216/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch --- linux-5.10.209/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0153-chelsio-cxgb-Disable-the-card-on-error-in-threaded-i.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 676e60d5a1de49b6188285212b7655ccd463f984 Mon Sep 17 00:00:00 2001 +From a628418f648a8b52a4da45540a9199fdcbf6e8ee Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 2 Feb 2021 18:01:04 +0100 Subject: [PATCH 153/323] chelsio: cxgb: Disable the card on error in threaded interrupt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz t1_fatal_err() is invoked from the interrupt handler. The bad part is that it invokes (via t1_sge_stop()) del_timer_sync() and tasklet_kill(). @@ -26,7 +26,7 @@ 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb/common.h b/drivers/net/ethernet/chelsio/cxgb/common.h -index e999a9b9fe6c..0321be77366c 100644 +index e999a9b9fe6cc..0321be77366c4 100644 --- a/drivers/net/ethernet/chelsio/cxgb/common.h +++ b/drivers/net/ethernet/chelsio/cxgb/common.h @@ -346,7 +346,6 @@ int t1_get_board_rev(adapter_t *adapter, const struct board_info *bi, @@ -38,7 +38,7 @@ void t1_link_negotiated(adapter_t *adapter, int port_id, int link_stat, int speed, int duplex, int pause); diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c -index 737c24136e2f..2a28a38da036 100644 +index 737c24136e2fe..2a28a38da036c 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -917,16 +917,6 @@ static void mac_stats_task(struct work_struct *work) @@ -59,7 +59,7 @@ .ndo_open = cxgb_open, .ndo_stop = cxgb_close, diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c -index 5aef9ae1ecfe..cda01f22c71c 100644 +index 5aef9ae1ecfed..cda01f22c71c8 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -940,10 +940,11 @@ void t1_sge_intr_clear(struct sge *sge) @@ -109,7 +109,7 @@ adapter->slow_intr_mask |= F_PL_INTR_EXT; diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.h b/drivers/net/ethernet/chelsio/cxgb/sge.h -index 76516d2a8aa9..716705b96f26 100644 +index 76516d2a8aa9e..716705b96f265 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.h +++ b/drivers/net/ethernet/chelsio/cxgb/sge.h @@ -82,7 +82,7 @@ netdev_tx_t t1_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -122,7 +122,7 @@ void t1_sge_intr_disable(struct sge *); void t1_sge_intr_clear(struct sge *); diff --git a/drivers/net/ethernet/chelsio/cxgb/subr.c b/drivers/net/ethernet/chelsio/cxgb/subr.c -index d90ad07ff1a4..310add28fcf5 100644 +index d90ad07ff1a40..310add28fcf59 100644 --- a/drivers/net/ethernet/chelsio/cxgb/subr.c +++ b/drivers/net/ethernet/chelsio/cxgb/subr.c @@ -170,7 +170,7 @@ void t1_link_changed(adapter_t *adapter, int port_id) @@ -211,5 +211,5 @@ /* Wake the threaded interrupt to handle external interrupts as * we require a process context. We disable EXT interrupts in -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch linux-5.10.216/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch --- linux-5.10.209/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0154-x86-fpu-Simplify-fpregs_-un-lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8ca0011428a338becf8c390a74dba375610d693f Mon Sep 17 00:00:00 2001 +From 9f47015530b731cdc3dac128aa0169eb5e437fc9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 27 Oct 2020 11:09:50 +0100 Subject: [PATCH 154/323] x86/fpu: Simplify fpregs_[un]lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no point in disabling preemption and then disabling bottom halfs. @@ -18,7 +18,7 @@ 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index 8b9bfaad6e66..5174c0a640ef 100644 +index 8b9bfaad6e662..5174c0a640ef3 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -40,17 +40,18 @@ static inline void kernel_fpu_begin(void) @@ -43,5 +43,5 @@ #ifdef CONFIG_X86_DEBUG_FPU -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch linux-5.10.216/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch --- linux-5.10.209/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0155-x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f6a993a6144299a8693fa151d042c3997238cd54 Mon Sep 17 00:00:00 2001 +From ebfd3ddaa3c75b0a3e840304bdb3def7321aaeab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 27 Oct 2020 11:09:51 +0100 Subject: [PATCH 155/323] x86/fpu: Make kernel FPU protection RT friendly -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non RT kernels need to protect FPU against preemption and bottom half processing. This is achieved by disabling bottom halfs via @@ -24,7 +24,7 @@ 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index 5174c0a640ef..ad2fee785310 100644 +index 5174c0a640ef3..ad2fee7853108 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -43,15 +43,29 @@ static inline void kernel_fpu_begin(void) @@ -60,5 +60,5 @@ #ifdef CONFIG_X86_DEBUG_FPU -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch linux-5.10.216/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch --- linux-5.10.209/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0156-locking-rtmutex-Remove-cruft.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 46072fa492b76df5aaf47fea23d280f72d7100a8 Mon Sep 17 00:00:00 2001 +From 8d35ddab18aec09ea7cba348a32913c9c9463342 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 29 Sep 2020 15:21:17 +0200 Subject: [PATCH 156/323] locking/rtmutex: Remove cruft -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Most of this is around since the very beginning. I'm not sure if this was used while the rtmutex-deadlock-tester was around but today it seems @@ -26,7 +26,7 @@ 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 6fd615a0eea9..16f974a22f51 100644 +index 6fd615a0eea94..16f974a22f516 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -32,10 +32,7 @@ struct rt_mutex { @@ -51,7 +51,7 @@ # define rt_mutex_init(mutex) \ do { \ diff --git a/kernel/locking/rtmutex-debug.c b/kernel/locking/rtmutex-debug.c -index 36e69100e8e0..7e411b946d4c 100644 +index 36e69100e8e06..7e411b946d4c3 100644 --- a/kernel/locking/rtmutex-debug.c +++ b/kernel/locking/rtmutex-debug.c @@ -42,12 +42,7 @@ static void printk_task(struct task_struct *p) @@ -69,7 +69,7 @@ if (print_owner && rt_mutex_owner(lock)) { printk(".. ->owner: %p\n", lock->owner); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index f00dd928fc71..4792fc7abe7d 100644 +index f00dd928fc711..4792fc7abe7dd 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1655,9 +1655,6 @@ void __sched rt_mutex_futex_unlock(struct rt_mutex *lock) @@ -83,7 +83,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_destroy); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index ca6fb489007b..e6913103d7ff 100644 +index ca6fb489007b6..e6913103d7ff7 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -30,7 +30,6 @@ struct rt_mutex_waiter { @@ -95,5 +95,5 @@ struct rt_mutex *deadlock_lock; #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch linux-5.10.216/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch --- linux-5.10.209/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0157-locking-rtmutex-Remove-output-from-deadlock-detector.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e9b488ea6cb82e796f8d331b037cb7de76d15657 Mon Sep 17 00:00:00 2001 +From 8f5236d794db1770040f01501f471b8e2e842e4b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 29 Sep 2020 16:05:11 +0200 Subject: [PATCH 157/323] locking/rtmutex: Remove output from deadlock detector. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In commit f5694788ad8da ("rt_mutex: Add lockdep annotations") @@ -34,7 +34,7 @@ 6 files changed, 135 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 16f974a22f51..88a0ba806066 100644 +index 16f974a22f516..88a0ba806066b 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -31,9 +31,6 @@ struct rt_mutex { @@ -73,7 +73,7 @@ #define DEFINE_RT_MUTEX(mutexname) \ diff --git a/kernel/locking/rtmutex-debug.c b/kernel/locking/rtmutex-debug.c -index 7e411b946d4c..fb150100335f 100644 +index 7e411b946d4c3..fb150100335fc 100644 --- a/kernel/locking/rtmutex-debug.c +++ b/kernel/locking/rtmutex-debug.c @@ -32,105 +32,12 @@ @@ -207,7 +207,7 @@ } - diff --git a/kernel/locking/rtmutex-debug.h b/kernel/locking/rtmutex-debug.h -index fc549713bba3..659e93e256c6 100644 +index fc549713bba3f..659e93e256c67 100644 --- a/kernel/locking/rtmutex-debug.h +++ b/kernel/locking/rtmutex-debug.h @@ -18,20 +18,9 @@ extern void debug_rt_mutex_unlock(struct rt_mutex *lock); @@ -232,7 +232,7 @@ - debug_rt_mutex_print_deadlock(w); -} diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 4792fc7abe7d..9aa4d545020a 100644 +index 4792fc7abe7dd..9aa4d545020af 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -597,7 +597,6 @@ static int rt_mutex_adjust_prio_chain(struct task_struct *task, @@ -273,7 +273,7 @@ } diff --git a/kernel/locking/rtmutex.h b/kernel/locking/rtmutex.h -index 732f96abf462..338ccd29119a 100644 +index 732f96abf4623..338ccd29119a1 100644 --- a/kernel/locking/rtmutex.h +++ b/kernel/locking/rtmutex.h @@ -19,15 +19,8 @@ @@ -293,7 +293,7 @@ enum rtmutex_chainwalk walk) { diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index e6913103d7ff..b1455dc2366f 100644 +index e6913103d7ff7..b1455dc2366fb 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -29,10 +29,6 @@ struct rt_mutex_waiter { @@ -308,5 +308,5 @@ u64 deadline; }; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch linux-5.10.216/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch --- linux-5.10.209/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0158-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e25aa4319847e6a6769075a1f38c98d8cf3246f9 Mon Sep 17 00:00:00 2001 +From b8ebdb5f6998b644ffc6f659220a81679a4c6990 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 29 Sep 2020 16:32:49 +0200 Subject: [PATCH 158/323] locking/rtmutex: Move rt_mutex_init() outside of CONFIG_DEBUG_RT_MUTEXES -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt_mutex_init() only initializes lockdep if CONFIG_DEBUG_RT_MUTEXES is enabled. The static initializer (DEFINE_RT_MUTEX) does not have such a @@ -19,7 +19,7 @@ 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 88a0ba806066..2dc10b582d4a 100644 +index 88a0ba806066b..2dc10b582d4ae 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -43,6 +43,7 @@ struct hrtimer_sleeper; @@ -56,5 +56,5 @@ #define __DEP_MAP_RT_MUTEX_INITIALIZER(mutexname) \ , .dep_map = { .name = #mutexname } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch linux-5.10.216/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch --- linux-5.10.209/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0159-locking-rtmutex-Remove-rt_mutex_timed_lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6ec5055da1da31b64ab24ba9ff1739d05e46bb7f Mon Sep 17 00:00:00 2001 +From 4048e68e72f7bcb549c80e56e644e2504475ba86 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 7 Oct 2020 12:11:33 +0200 Subject: [PATCH 159/323] locking/rtmutex: Remove rt_mutex_timed_lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt_mutex_timed_lock() has no callers since commit c051b21f71d1f ("rtmutex: Confine deadlock logic to futex") @@ -16,7 +16,7 @@ 2 files changed, 49 deletions(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 2dc10b582d4a..243fabc2c85f 100644 +index 2dc10b582d4ae..243fabc2c85f6 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -99,9 +99,6 @@ extern void rt_mutex_lock(struct rt_mutex *lock); @@ -30,7 +30,7 @@ extern void rt_mutex_unlock(struct rt_mutex *lock); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 9aa4d545020a..b5d5c570a8ac 100644 +index 9aa4d545020af..b5d5c570a8acd 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1405,21 +1405,6 @@ rt_mutex_fastlock(struct rt_mutex *lock, int state, @@ -94,5 +94,5 @@ * rt_mutex_trylock - try to lock a rt_mutex * -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch linux-5.10.216/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch --- linux-5.10.209/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0160-locking-rtmutex-Handle-the-various-new-futex-race-co.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From faad74e290468f037de33422cb1799c05477242d Mon Sep 17 00:00:00 2001 +From 668dfa34021cfb55bb61bdfaeabfca97146f9831 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:04:15 +0200 Subject: [PATCH 160/323] locking/rtmutex: Handle the various new futex race conditions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and @@ -17,7 +17,7 @@ 3 files changed, 94 insertions(+), 21 deletions(-) diff --git a/kernel/futex/core.c b/kernel/futex/core.c -index cde0ca876b93..706cd446ec71 100644 +index cde0ca876b935..706cd446ec719 100644 --- a/kernel/futex/core.c +++ b/kernel/futex/core.c @@ -2165,6 +2165,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, @@ -142,7 +142,7 @@ ret = 0; diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index b5d5c570a8ac..2ef5a6eb95da 100644 +index b5d5c570a8acd..2ef5a6eb95daa 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -136,6 +136,11 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) @@ -238,7 +238,7 @@ return; } diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index b1455dc2366f..096b16cfb096 100644 +index b1455dc2366fb..096b16cfb096e 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -125,6 +125,8 @@ enum rtmutex_chainwalk { @@ -251,5 +251,5 @@ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, struct task_struct *proxy_owner); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch linux-5.10.216/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch --- linux-5.10.209/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0161-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 787b0032cdfc388293dcde2c4bc3a2c40b6d9cf2 Mon Sep 17 00:00:00 2001 +From 44e38e9de162386a4fae15b9ea81da3d577b705b Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 161/323] futex: Fix bug on when a requeued RT task times out -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Requeue with timeout causes a bug with PREEMPT_RT. @@ -53,7 +53,7 @@ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 2ef5a6eb95da..d8755d5ef227 100644 +index 2ef5a6eb95daa..d8755d5ef2277 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -138,7 +138,8 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) @@ -102,7 +102,7 @@ ret = task_blocks_on_rt_mutex(lock, waiter, task, RT_MUTEX_FULL_CHAINWALK); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 096b16cfb096..37cd6b3bf6f4 100644 +index 096b16cfb096e..37cd6b3bf6f43 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -126,6 +126,7 @@ enum rtmutex_chainwalk { @@ -114,5 +114,5 @@ extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock); extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch linux-5.10.216/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch --- linux-5.10.209/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0162-locking-rtmutex-Make-lock_killable-work.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 09e10e723c3bc6ceb0d1b64e0a6b3b9e2ec52225 Mon Sep 17 00:00:00 2001 +From f611e08abb2a885cc492c59b35d333ee330badab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 Apr 2017 12:50:59 +0200 Subject: [PATCH 162/323] locking/rtmutex: Make lock_killable work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. @@ -16,7 +16,7 @@ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index d8755d5ef227..c3f3c23fefef 100644 +index d8755d5ef2277..c3f3c23fefef8 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1197,18 +1197,13 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state, @@ -46,5 +46,5 @@ raw_spin_unlock_irq(&lock->wait_lock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch linux-5.10.216/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch --- linux-5.10.209/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0163-locking-spinlock-Split-the-lock-types-header.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 79fca819370ecec3ce47fe9cb5f70efbacb613ad Mon Sep 17 00:00:00 2001 +From 7044c77732db6f62ea8f9ccae11d89a49f120d3f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:34:01 +0200 Subject: [PATCH 163/323] locking/spinlock: Split the lock types header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split raw_spinlock into its own file and the remaining spinlock_t into its own non-RT header. The non-RT header will be replaced later by sleeping @@ -19,7 +19,7 @@ create mode 100644 include/linux/spinlock_types_raw.h diff --git a/include/linux/rwlock_types.h b/include/linux/rwlock_types.h -index 3bd03e18061c..0ad226b5d8fd 100644 +index 3bd03e18061c1..0ad226b5d8fd5 100644 --- a/include/linux/rwlock_types.h +++ b/include/linux/rwlock_types.h @@ -1,6 +1,10 @@ @@ -34,7 +34,7 @@ * include/linux/rwlock_types.h - generic rwlock type definitions * and initializers diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h -index b981caafe8bf..5c8664d57fb8 100644 +index b981caafe8bf1..5c8664d57fb86 100644 --- a/include/linux/spinlock_types.h +++ b/include/linux/spinlock_types.h @@ -9,92 +9,9 @@ @@ -134,7 +134,7 @@ diff --git a/include/linux/spinlock_types_nort.h b/include/linux/spinlock_types_nort.h new file mode 100644 -index 000000000000..e4549f0dd197 +index 0000000000000..e4549f0dd197b --- /dev/null +++ b/include/linux/spinlock_types_nort.h @@ -0,0 +1,39 @@ @@ -179,7 +179,7 @@ +#endif diff --git a/include/linux/spinlock_types_raw.h b/include/linux/spinlock_types_raw.h new file mode 100644 -index 000000000000..1d4a180e983d +index 0000000000000..1d4a180e983d7 --- /dev/null +++ b/include/linux/spinlock_types_raw.h @@ -0,0 +1,65 @@ @@ -249,5 +249,5 @@ + +#endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch linux-5.10.216/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch --- linux-5.10.209/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0164-locking-rtmutex-Avoid-include-hell.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1b45f1cea53e6a886ba8bfab1c7617c32c66555d Mon Sep 17 00:00:00 2001 +From 4b44cb65741a8fd27bb90f785688961b5f856182 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:06:39 +0200 Subject: [PATCH 164/323] locking/rtmutex: Avoid include hell -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. @@ -13,7 +13,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 243fabc2c85f..add1dab27df5 100644 +index 243fabc2c85f6..add1dab27df52 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -15,7 +15,7 @@ @@ -26,5 +26,5 @@ extern int max_lock_depth; /* for sysctl */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch linux-5.10.216/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch --- linux-5.10.209/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0165-lockdep-Reduce-header-files-in-debug_locks.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 740bc44f8756ed7c76a697de3eb3eae130c2de77 Mon Sep 17 00:00:00 2001 +From 202b16b03f37a46937112eb8775d66f144f4a838 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 14 Aug 2020 16:55:25 +0200 Subject: [PATCH 165/323] lockdep: Reduce header files in debug_locks.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The inclusion of printk.h leads to circular dependency if spinlock_t is based on rt_mutex. @@ -15,7 +15,7 @@ 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h -index edb5c186b0b7..3f49e65169c6 100644 +index edb5c186b0b7a..3f49e65169c6d 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h @@ -3,8 +3,7 @@ @@ -29,5 +29,5 @@ struct task_struct; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch linux-5.10.216/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch --- linux-5.10.209/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0166-locking-split-out-the-rbtree-definition.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b9604fd91b7d02c92ddb504c330e1793f0694318 Mon Sep 17 00:00:00 2001 +From 2d36be607e18485adc15c129e7f5baa5eb7b8655 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 14 Aug 2020 17:08:41 +0200 Subject: [PATCH 166/323] locking: split out the rbtree definition -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rtmutex.h needs the definition for rb_root_cached. By including kernel.h we will get to spinlock.h which requires rtmutex.h again. @@ -19,7 +19,7 @@ create mode 100644 include/linux/rbtree_type.h diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h -index d7db17996322..c33b0e16d04b 100644 +index d7db179963221..c33b0e16d04b4 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h @@ -19,19 +19,9 @@ @@ -67,7 +67,7 @@ /* Same as rb_first(), but O(1) */ diff --git a/include/linux/rbtree_type.h b/include/linux/rbtree_type.h new file mode 100644 -index 000000000000..77a89dd2c7c6 +index 0000000000000..77a89dd2c7c66 --- /dev/null +++ b/include/linux/rbtree_type.h @@ -0,0 +1,31 @@ @@ -103,7 +103,7 @@ + +#endif diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index add1dab27df5..b828b938c876 100644 +index add1dab27df52..b828b938c8769 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -14,7 +14,7 @@ @@ -116,5 +116,5 @@ extern int max_lock_depth; /* for sysctl */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch linux-5.10.216/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch --- linux-5.10.209/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0167-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From dbd55916b6a3efb4b812322d7502b174b4cceb69 Mon Sep 17 00:00:00 2001 +From ace3eedad2f89901297f8ac0c8e257619064be19 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:14:22 +0200 Subject: [PATCH 167/323] locking/rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. @@ -14,7 +14,7 @@ 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index c3f3c23fefef..395a3e8b2463 100644 +index c3f3c23fefef8..395a3e8b24635 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1234,35 +1234,16 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock, @@ -116,7 +116,7 @@ raw_spin_unlock_irqrestore(&lock->wait_lock, flags); diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 37cd6b3bf6f4..b5a2affa59d5 100644 +index 37cd6b3bf6f43..b5a2affa59d58 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -15,6 +15,7 @@ @@ -141,5 +141,5 @@ #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch linux-5.10.216/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch --- linux-5.10.209/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0168-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 0472803e0c929a5b0c4cb02a1e667d745e12fc51 Mon Sep 17 00:00:00 2001 +From 1ad9dea8cf61f1c055b1bb173774ff11cf9e92aa Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:36:39 +0200 Subject: [PATCH 168/323] locking/rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Required for lock implementation ontop of rtmutex. @@ -15,7 +15,7 @@ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 395a3e8b2463..40ae934c6caa 100644 +index 395a3e8b24635..40ae934c6caa7 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1469,12 +1469,33 @@ rt_mutex_fastunlock(struct rt_mutex *lock, @@ -112,7 +112,7 @@ * rt_mutex_unlock - unlock a rt_mutex * diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index b5a2affa59d5..9d1e974ca9c3 100644 +index b5a2affa59d58..9d1e974ca9c34 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -156,6 +156,9 @@ extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock, @@ -126,5 +126,5 @@ struct hrtimer_sleeper *timeout, enum rtmutex_chainwalk chwalk, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch linux-5.10.216/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch --- linux-5.10.209/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0169-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 622996bf8475bf1d06cbb523dacc7469e7b9c864 Mon Sep 17 00:00:00 2001 +From a5589dbb6f277c06f72d80168d2de6dec092b35c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jun 2011 09:21:04 +0200 Subject: [PATCH 169/323] sched: Add saved_state for tasks blocked on sleeping locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Spinlocks are state preserving in !RT. RT changes the state when a task gets blocked on a lock. So we need to remember the state before @@ -19,7 +19,7 @@ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index d31da4867bb2..73defe42fd23 100644 +index d31da4867bb28..73defe42fd23d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -659,6 +659,8 @@ struct task_struct { @@ -40,7 +40,7 @@ #ifdef CONFIG_SMP diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 390b51366f5e..f6d40256c0d4 100644 +index 390b51366f5ef..f6d40256c0d4c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3305,7 +3305,7 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) @@ -100,7 +100,7 @@ { return try_to_wake_up(p, state, 0); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index c26b1c7009f4..d4bfc51358d3 100644 +index c26b1c7009f45..d4bfc51358d37 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1753,6 +1753,7 @@ static inline int task_on_rq_migrating(struct task_struct *p) @@ -112,5 +112,5 @@ /* * To aid in avoiding the subversion of "niceness" due to uneven distribution -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch linux-5.10.216/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch --- linux-5.10.209/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0170-locking-rtmutex-add-sleeping-lock-implementation.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4c85c347eeb7dae59269d3a4a07388a00de563bf Mon Sep 17 00:00:00 2001 +From ba83adc3650c153ab5646945ab0690cc30240b21 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:11:19 +0200 Subject: [PATCH 170/323] locking/rtmutex: add sleeping lock implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -24,7 +24,7 @@ create mode 100644 include/linux/spinlock_types_rt.h diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 55d48d5627c7..7b4fdd5b2f7b 100644 +index 55d48d5627c71..7b4fdd5b2f7ba 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -223,6 +223,10 @@ extern void __cant_migrate(const char *file, int line); @@ -47,7 +47,7 @@ # define cant_migrate() do { } while (0) # define sched_annotate_sleep() do { } while (0) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 9881eac0698f..4d244e295e85 100644 +index 9881eac0698fd..4d244e295e855 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -121,7 +121,11 @@ @@ -63,7 +63,7 @@ /* * The preempt_count offset needed for things like: diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index b828b938c876..b02009f53026 100644 +index b828b938c8769..b02009f530263 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -19,6 +19,10 @@ @@ -109,7 +109,7 @@ #define DEFINE_RT_MUTEX(mutexname) \ struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 73defe42fd23..3650fdaac4ca 100644 +index 73defe42fd23d..3650fdaac4caa 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -141,6 +141,9 @@ struct io_uring_task; @@ -141,7 +141,7 @@ #ifdef CONFIG_RT_MUTEXES /* PI waiters blocked on a rt_mutex held by this task: */ diff --git a/include/linux/sched/wake_q.h b/include/linux/sched/wake_q.h -index 26a2013ac39c..6e2dff721547 100644 +index 26a2013ac39c4..6e2dff721547c 100644 --- a/include/linux/sched/wake_q.h +++ b/include/linux/sched/wake_q.h @@ -58,6 +58,17 @@ static inline bool wake_q_empty(struct wake_q_head *head) @@ -165,7 +165,7 @@ #endif /* _LINUX_SCHED_WAKE_Q_H */ diff --git a/include/linux/spinlock_rt.h b/include/linux/spinlock_rt.h new file mode 100644 -index 000000000000..3085132eae38 +index 0000000000000..3085132eae383 --- /dev/null +++ b/include/linux/spinlock_rt.h @@ -0,0 +1,155 @@ @@ -326,7 +326,7 @@ +#endif diff --git a/include/linux/spinlock_types_rt.h b/include/linux/spinlock_types_rt.h new file mode 100644 -index 000000000000..446da786e5d5 +index 0000000000000..446da786e5d5c --- /dev/null +++ b/include/linux/spinlock_types_rt.h @@ -0,0 +1,38 @@ @@ -369,7 +369,7 @@ + +#endif diff --git a/kernel/futex/core.c b/kernel/futex/core.c -index 706cd446ec71..909dcd708a52 100644 +index 706cd446ec719..909dcd708a527 100644 --- a/kernel/futex/core.c +++ b/kernel/futex/core.c @@ -1508,6 +1508,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ @@ -417,7 +417,7 @@ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE); if (unlikely(ret != 0)) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 40ae934c6caa..35cdbbb5daa9 100644 +index 40ae934c6caa7..35cdbbb5daa93 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -8,6 +8,11 @@ @@ -1081,7 +1081,7 @@ return ret; diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index 9d1e974ca9c3..c1a280167e3c 100644 +index 9d1e974ca9c34..c1a280167e3cc 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -31,6 +31,7 @@ struct rt_mutex_waiter { @@ -1128,7 +1128,7 @@ #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index f6d40256c0d4..be5d41ed6ff2 100644 +index f6d40256c0d4c..be5d41ed6ff21 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -511,9 +511,15 @@ static bool set_nr_if_polling(struct task_struct *p) @@ -1210,5 +1210,5 @@ } } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch linux-5.10.216/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch --- linux-5.10.209/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0171-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From bcc9f5e2b7eb56660512649787ab651fc138d9e4 Mon Sep 17 00:00:00 2001 +From 798399a61f1200c1fc8bd90626fa50bceea494d5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 2 Dec 2015 11:34:07 +0100 Subject: [PATCH 171/323] locking/rtmutex: Allow rt_mutex_trylock() on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non PREEMPT_RT kernel can deadlock on rt_mutex_trylock() in softirq context. @@ -17,7 +17,7 @@ 1 file changed, 4 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 35cdbbb5daa9..1bf7a04688c5 100644 +index 35cdbbb5daa93..1bf7a04688c54 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1884,7 +1884,11 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) @@ -33,5 +33,5 @@ return rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch linux-5.10.216/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch --- linux-5.10.209/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0172-locking-rtmutex-add-mutex-implementation-based-on-rt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From c363a86a2fab38d43a50a8841e2b6d64b87ae69b Mon Sep 17 00:00:00 2001 +From 7c27acd6d2b3883ec5d9b41e8d9ca3e65b9fba82 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:17:03 +0200 Subject: [PATCH 172/323] locking/rtmutex: add mutex implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -16,7 +16,7 @@ diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h new file mode 100644 -index 000000000000..f0b2e07cd5c5 +index 0000000000000..f0b2e07cd5c57 --- /dev/null +++ b/include/linux/mutex_rt.h @@ -0,0 +1,130 @@ @@ -152,7 +152,7 @@ +#endif diff --git a/kernel/locking/mutex-rt.c b/kernel/locking/mutex-rt.c new file mode 100644 -index 000000000000..2b849e6b9b4a +index 0000000000000..2b849e6b9b4ae --- /dev/null +++ b/kernel/locking/mutex-rt.c @@ -0,0 +1,224 @@ @@ -381,5 +381,5 @@ +} +EXPORT_SYMBOL(atomic_dec_and_mutex_lock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch linux-5.10.216/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch --- linux-5.10.209/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0173-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 9095a37abced402fb5197fef8d126069f63ebfb4 Mon Sep 17 00:00:00 2001 +From daacf58f8a5cd99064f871cd9573582d96b04535 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:28:34 +0200 Subject: [PATCH 173/323] locking/rtmutex: add rwsem implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The RT specific R/W semaphore implementation restricts the number of readers to one because a writer cannot block on multiple readers and inherit its @@ -52,7 +52,7 @@ diff --git a/include/linux/rwsem-rt.h b/include/linux/rwsem-rt.h new file mode 100644 -index 000000000000..0ba8aae9a198 +index 0000000000000..0ba8aae9a1983 --- /dev/null +++ b/include/linux/rwsem-rt.h @@ -0,0 +1,70 @@ @@ -128,7 +128,7 @@ +#endif diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c new file mode 100644 -index 000000000000..a0771c150041 +index 0000000000000..a0771c150041e --- /dev/null +++ b/kernel/locking/rwsem-rt.c @@ -0,0 +1,318 @@ @@ -451,5 +451,5 @@ + __up_write_unlock(sem, WRITER_BIAS - 1, flags); +} -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch linux-5.10.216/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch --- linux-5.10.209/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0174-locking-rtmutex-add-rwlock-implementation-based-on-r.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 85ee193953134a79ee60def58e6d8c98b8cd8e55 Mon Sep 17 00:00:00 2001 +From 5b8ef89d78f5db246d2c8e33006539598d01e061 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:18:06 +0200 Subject: [PATCH 174/323] locking/rtmutex: add rwlock implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The implementation is bias-based, similar to the rwsem implementation. @@ -21,7 +21,7 @@ diff --git a/include/linux/rwlock_rt.h b/include/linux/rwlock_rt.h new file mode 100644 -index 000000000000..aafdb0a685d5 +index 0000000000000..aafdb0a685d54 --- /dev/null +++ b/include/linux/rwlock_rt.h @@ -0,0 +1,109 @@ @@ -136,7 +136,7 @@ +#endif diff --git a/include/linux/rwlock_types_rt.h b/include/linux/rwlock_types_rt.h new file mode 100644 -index 000000000000..4762391d659b +index 0000000000000..4762391d659bf --- /dev/null +++ b/include/linux/rwlock_types_rt.h @@ -0,0 +1,56 @@ @@ -197,7 +197,7 @@ + +#endif diff --git a/kernel/Kconfig.locks b/kernel/Kconfig.locks -index 3de8fd11873b..4198f0273ecd 100644 +index 3de8fd11873b4..4198f0273ecdc 100644 --- a/kernel/Kconfig.locks +++ b/kernel/Kconfig.locks @@ -251,7 +251,7 @@ config ARCH_USE_QUEUED_RWLOCKS @@ -211,7 +211,7 @@ bool diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c new file mode 100644 -index 000000000000..1ee16b8fedd7 +index 0000000000000..1ee16b8fedd77 --- /dev/null +++ b/kernel/locking/rwlock-rt.c @@ -0,0 +1,328 @@ @@ -544,5 +544,5 @@ +} +EXPORT_SYMBOL(__rt_rwlock_init); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch linux-5.10.216/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch --- linux-5.10.209/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0175-locking-rtmutex-wire-up-RT-s-locking.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 48720bc07f81cfe49fe8e2a7afa1f18acd9227dd Mon Sep 17 00:00:00 2001 +From 0e5272c5e589c6dcbccd3186136968479346695c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:31:14 +0200 Subject: [PATCH 175/323] locking/rtmutex: wire up RT's locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -21,7 +21,7 @@ 11 files changed, 77 insertions(+), 19 deletions(-) diff --git a/include/linux/mutex.h b/include/linux/mutex.h -index 4d671fba3cab..e45774a337d2 100644 +index 4d671fba3cab4..e45774a337d2c 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -22,6 +22,20 @@ @@ -70,7 +70,7 @@ + #endif /* __LINUX_MUTEX_H */ diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h -index 4c715be48717..9323af8a9244 100644 +index 4c715be487171..9323af8a92445 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -16,6 +16,11 @@ @@ -100,7 +100,7 @@ * lock for reading */ diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h -index 79897841a2cc..c3c70291b46c 100644 +index 79897841a2cc8..c3c70291b46c5 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -309,7 +309,11 @@ static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock) @@ -137,7 +137,7 @@ * Pull the atomic_t declaration: * (asm-mips/atomic.h needs above definitions) diff --git a/include/linux/spinlock_api_smp.h b/include/linux/spinlock_api_smp.h -index 19a9be9d97ee..da38149f2843 100644 +index 19a9be9d97ee5..da38149f28431 100644 --- a/include/linux/spinlock_api_smp.h +++ b/include/linux/spinlock_api_smp.h @@ -187,6 +187,8 @@ static inline int __raw_spin_trylock_bh(raw_spinlock_t *lock) @@ -151,7 +151,7 @@ #endif /* __LINUX_SPINLOCK_API_SMP_H */ diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h -index 5c8664d57fb8..8d896d3e1a01 100644 +index 5c8664d57fb86..8d896d3e1a017 100644 --- a/include/linux/spinlock_types.h +++ b/include/linux/spinlock_types.h @@ -11,8 +11,13 @@ @@ -172,7 +172,7 @@ #endif /* __LINUX_SPINLOCK_TYPES_H */ diff --git a/include/linux/spinlock_types_up.h b/include/linux/spinlock_types_up.h -index c09b6407ae1b..d9b371fa13e0 100644 +index c09b6407ae1b3..d9b371fa13e09 100644 --- a/include/linux/spinlock_types_up.h +++ b/include/linux/spinlock_types_up.h @@ -1,7 +1,7 @@ @@ -185,7 +185,7 @@ #endif diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt -index bf82259cff96..cbe3aa495519 100644 +index bf82259cff965..cbe3aa495519b 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt @@ -59,6 +59,7 @@ config PREEMPT_RT @@ -197,7 +197,7 @@ This option turns the kernel into a real-time kernel by replacing various locking primitives (spinlocks, rwlocks, etc.) with diff --git a/kernel/locking/Makefile b/kernel/locking/Makefile -index 6d11cfb9b41f..c7fbf737e16e 100644 +index 6d11cfb9b41f2..c7fbf737e16ea 100644 --- a/kernel/locking/Makefile +++ b/kernel/locking/Makefile @@ -3,7 +3,7 @@ @@ -236,7 +236,7 @@ obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o obj-$(CONFIG_WW_MUTEX_SELFTEST) += test-ww_mutex.o diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c -index cc5cc889b5b7..f7c909ef1261 100644 +index cc5cc889b5b7f..f7c909ef1261d 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -28,6 +28,7 @@ @@ -276,7 +276,7 @@ } EXPORT_SYMBOL(up_read_non_owner); diff --git a/kernel/locking/spinlock.c b/kernel/locking/spinlock.c -index 0ff08380f531..45445a2f1799 100644 +index 0ff08380f5318..45445a2f1799a 100644 --- a/kernel/locking/spinlock.c +++ b/kernel/locking/spinlock.c @@ -124,8 +124,11 @@ void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ @@ -310,7 +310,7 @@ void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) diff --git a/kernel/locking/spinlock_debug.c b/kernel/locking/spinlock_debug.c -index b9d93087ee66..72e306e0e8a3 100644 +index b9d93087ee669..72e306e0e8a3b 100644 --- a/kernel/locking/spinlock_debug.c +++ b/kernel/locking/spinlock_debug.c @@ -31,6 +31,7 @@ void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name, @@ -344,5 +344,5 @@ + +#endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch linux-5.10.216/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch --- linux-5.10.209/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0176-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 47ba586f2ade0d9f8cc9281cb08529146bfc3c5d Mon Sep 17 00:00:00 2001 +From 9b2b99d3a96fd3eb164a6f1993effe944ced9e40 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 17:34:38 +0200 Subject: [PATCH 176/323] locking/rtmutex: add ww_mutex addon for mutex-rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior --- @@ -14,7 +14,7 @@ 5 files changed, 262 insertions(+), 20 deletions(-) diff --git a/include/linux/mutex.h b/include/linux/mutex.h -index e45774a337d2..90923d3008fc 100644 +index e45774a337d2c..90923d3008fcd 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -82,14 +82,6 @@ struct mutex { @@ -33,7 +33,7 @@ * This is the control structure for tasks blocked on mutex, * which resides on the blocked task's kernel stack: diff --git a/include/linux/ww_mutex.h b/include/linux/ww_mutex.h -index 6ecf2a0220db..3145de598645 100644 +index 6ecf2a0220dbe..3145de5986450 100644 --- a/include/linux/ww_mutex.h +++ b/include/linux/ww_mutex.h @@ -28,6 +28,14 @@ struct ww_class { @@ -52,7 +52,7 @@ struct task_struct *task; unsigned long stamp; diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 1bf7a04688c5..c095d1b92f70 100644 +index 1bf7a04688c54..c095d1b92f702 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -24,6 +24,7 @@ @@ -419,7 +419,7 @@ +EXPORT_SYMBOL(__rt_mutex_owner_current); +#endif diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h -index c1a280167e3c..248a7d91583b 100644 +index c1a280167e3cc..248a7d91583be 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -159,6 +159,7 @@ extern void rt_mutex_postunlock(struct wake_q_head *wake_q, @@ -439,7 +439,7 @@ void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c -index a0771c150041..274172d5bb3a 100644 +index a0771c150041e..274172d5bb3a5 100644 --- a/kernel/locking/rwsem-rt.c +++ b/kernel/locking/rwsem-rt.c @@ -138,7 +138,7 @@ static int __sched __down_read_common(struct rw_semaphore *sem, int state) @@ -452,5 +452,5 @@ * The slowlock() above is guaranteed to return with the rtmutex (for * ret = 0) is now held, so there can't be a writer active. Increment -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch linux-5.10.216/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch --- linux-5.10.209/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0177-locking-rtmutex-Use-custom-scheduling-function-for-s.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 0a34a9993d2798ba232792f998e5ae5fe7519730 Mon Sep 17 00:00:00 2001 +From cdfb8372ad6e17318e854ebfec3fd9201fa5602e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 6 Oct 2020 13:07:17 +0200 Subject: [PATCH 177/323] locking/rtmutex: Use custom scheduling function for spin-schedule() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz PREEMPT_RT builds the rwsem, mutex, spinlock and rwlock typed locks on top of a rtmutex lock. While blocked task->pi_blocked_on is set @@ -40,7 +40,7 @@ 7 files changed, 32 insertions(+), 21 deletions(-) diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h -index e83f0982b99c..f1486b32502c 100644 +index e83f0982b99c1..f1486b32502c1 100644 --- a/arch/arm64/include/asm/preempt.h +++ b/arch/arm64/include/asm/preempt.h @@ -81,6 +81,9 @@ static inline bool should_resched(int preempt_offset) @@ -54,7 +54,7 @@ void preempt_schedule_notrace(void); #define __preempt_schedule_notrace() preempt_schedule_notrace() diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h -index a334dd0d7c42..50e0c0ab7b97 100644 +index a334dd0d7c42c..50e0c0ab7b97b 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -103,6 +103,9 @@ static __always_inline bool should_resched(int preempt_offset) @@ -68,7 +68,7 @@ # define __preempt_schedule() \ asm volatile ("call preempt_schedule_thunk" : ASM_CALL_CONSTRAINT) diff --git a/include/asm-generic/preempt.h b/include/asm-generic/preempt.h -index b4d43a4af5f7..ac255e889462 100644 +index b4d43a4af5f79..ac255e8894629 100644 --- a/include/asm-generic/preempt.h +++ b/include/asm-generic/preempt.h @@ -79,6 +79,9 @@ static __always_inline bool should_resched(int preempt_offset) @@ -82,7 +82,7 @@ #define __preempt_schedule() preempt_schedule() extern asmlinkage void preempt_schedule_notrace(void); diff --git a/include/linux/sched/rt.h b/include/linux/sched/rt.h -index e5af028c08b4..994c25640e15 100644 +index e5af028c08b49..994c25640e156 100644 --- a/include/linux/sched/rt.h +++ b/include/linux/sched/rt.h @@ -39,20 +39,12 @@ static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *p) @@ -107,7 +107,7 @@ extern void normalize_rt_tasks(void); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index c095d1b92f70..2fe178651254 100644 +index c095d1b92f702..2fe1786512543 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1067,7 +1067,7 @@ void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock, @@ -120,7 +120,7 @@ raw_spin_lock_irqsave(&lock->wait_lock, flags); diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c -index 1ee16b8fedd7..16be7111aae7 100644 +index 1ee16b8fedd77..16be7111aae71 100644 --- a/kernel/locking/rwlock-rt.c +++ b/kernel/locking/rwlock-rt.c @@ -211,7 +211,7 @@ static void __write_rt_lock(struct rt_rw_lock *lock) @@ -133,7 +133,7 @@ raw_spin_lock_irqsave(&m->wait_lock, flags); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index be5d41ed6ff2..aaeed4b14278 100644 +index be5d41ed6ff21..aaeed4b14278a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5001,7 +5001,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf) @@ -239,5 +239,5 @@ sched_preempt_enable_no_resched(); } while (need_resched()); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch linux-5.10.216/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch --- linux-5.10.209/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0178-signal-Revert-ptrace-preempt-magic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3d8d7beacea4da55fdd1b45bc8d5c19da1438dcb Mon Sep 17 00:00:00 2001 +From d54b3f588a5bed4ef85363c15fdd0314d9f6eb59 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 21 Sep 2011 19:57:12 +0200 Subject: [PATCH 178/323] signal: Revert ptrace preempt magic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a @@ -14,7 +14,7 @@ 1 file changed, 8 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c -index e487c4660921..5ab628e2afc5 100644 +index e487c4660921d..5ab628e2afc5f 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2193,16 +2193,8 @@ static void ptrace_stop(int exit_code, int why, int clear_code, kernel_siginfo_t @@ -35,5 +35,5 @@ cgroup_leave_frozen(true); } else { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch linux-5.10.216/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch --- linux-5.10.209/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0179-preempt-Provide-preempt_-_-no-rt-variants.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 500d1733493dabbf5baf698854070d3cb1b0990f Mon Sep 17 00:00:00 2001 +From 4eb065c1fc4ec01ed2b864a40ec7f0b9708557c4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jul 2009 12:38:56 +0200 Subject: [PATCH 179/323] preempt: Provide preempt_*_(no)rt variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. @@ -13,7 +13,7 @@ 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 4d244e295e85..5ceac863e729 100644 +index 4d244e295e855..5ceac863e7298 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -188,7 +188,11 @@ do { \ @@ -49,5 +49,5 @@ struct preempt_notifier; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch linux-5.10.216/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch --- linux-5.10.209/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0180-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From a066e44619e1a6f661cd861015a5b658adead8bc Mon Sep 17 00:00:00 2001 +From 297471550fb6005458604d6d94f98f6c7bee7f87 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:13 -0500 Subject: [PATCH 180/323] mm/vmstat: Protect per cpu variables with preempt disable on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable preemption on -RT for the vmstat code. On vanila the code runs in IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the @@ -17,7 +17,7 @@ 2 files changed, 16 insertions(+) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h -index 322dcbfcc933..9a3a10ea3e3c 100644 +index 322dcbfcc9337..9a3a10ea3e3c9 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -63,7 +63,9 @@ DECLARE_PER_CPU(struct vm_event_state, vm_event_states); @@ -41,7 +41,7 @@ static inline void count_vm_events(enum vm_event_item item, long delta) diff --git a/mm/vmstat.c b/mm/vmstat.c -index e292e63afebf..598e9317c7e0 100644 +index e292e63afebf2..598e9317c7e00 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -321,6 +321,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, @@ -141,5 +141,5 @@ void __dec_zone_page_state(struct page *page, enum zone_stat_item item) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch linux-5.10.216/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch --- linux-5.10.209/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0181-mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 6f35e0e3a90abef410034d9900a21e68131aa5d5 Mon Sep 17 00:00:00 2001 +From 47e41ee895b7008487aab1065ba8880bd845a6b0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Oct 2020 18:15:32 +0100 Subject: [PATCH 181/323] mm/memcontrol: Disable preemption in __mod_memcg_lruvec_state() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The callers expect disabled preemption/interrupts while invoking __mod_memcg_lruvec_state(). This works mainline because a lock of @@ -20,7 +20,7 @@ 1 file changed, 2 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index ddc8ed096dec..49566afaef1c 100644 +index ddc8ed096deca..49566afaef1ca 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -816,6 +816,7 @@ void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, @@ -40,5 +40,5 @@ /** -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch linux-5.10.216/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch --- linux-5.10.209/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0182-xfrm-Use-sequence-counter-with-associated-spinlock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 17aae888f2940f55065824bd7c267df06be47fbb Mon Sep 17 00:00:00 2001 +From 90101d9fec396934a753169b265c47c3e53c880e Mon Sep 17 00:00:00 2001 From: "Ahmed S. Darwish" Date: Wed, 10 Jun 2020 12:53:22 +0200 Subject: [PATCH 182/323] xfrm: Use sequence counter with associated spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A sequence counter write side critical section must be protected by some form of locking to serialize writers. A plain seqcount_t does not @@ -28,7 +28,7 @@ 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c -index ba73014805a4..14e1f36bdda5 100644 +index ba73014805a4f..14e1f36bdda57 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -2691,7 +2691,8 @@ int __net_init xfrm_state_init(struct net *net) @@ -42,5 +42,5 @@ out_byspi: -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch linux-5.10.216/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch --- linux-5.10.209/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0183-u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e6ec60749d80fcdde8451a7a544a218f7c5ef393 Mon Sep 17 00:00:00 2001 +From 8b79413c531cd633e6608aef388828e9742996c1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 17 Aug 2020 12:28:10 +0200 Subject: [PATCH 183/323] u64_stats: Disable preemption on 32bit-UP/SMP with RT during updates -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On RT the seqcount_t is required even on UP because the softirq can be preempted. The IRQ handler is threaded so it is also preemptible. @@ -18,8 +18,6 @@ include/linux/u64_stats_sync.h | 42 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) -diff --git a/include/linux/u64_stats_sync.h b/include/linux/u64_stats_sync.h -index e81856c0ba13..66eb968a09d4 100644 --- a/include/linux/u64_stats_sync.h +++ b/include/linux/u64_stats_sync.h @@ -66,7 +66,7 @@ @@ -31,16 +29,16 @@ seqcount_t seq; #endif }; -@@ -115,7 +115,7 @@ static inline void u64_stats_inc(u64_stats_t *p) +@@ -115,7 +115,7 @@ } #endif -#if BITS_PER_LONG == 32 && defined(CONFIG_SMP) +#if BITS_PER_LONG == 32 && (defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT)) - #define u64_stats_init(syncp) seqcount_init(&(syncp)->seq) - #else - static inline void u64_stats_init(struct u64_stats_sync *syncp) -@@ -125,15 +125,19 @@ static inline void u64_stats_init(struct u64_stats_sync *syncp) + #define u64_stats_init(syncp) \ + do { \ + struct u64_stats_sync *__s = (syncp); \ +@@ -129,15 +129,19 @@ static inline void u64_stats_update_begin(struct u64_stats_sync *syncp) { @@ -62,7 +60,7 @@ #endif } -@@ -142,8 +146,11 @@ u64_stats_update_begin_irqsave(struct u64_stats_sync *syncp) +@@ -146,8 +150,11 @@ { unsigned long flags = 0; @@ -76,7 +74,7 @@ write_seqcount_begin(&syncp->seq); #endif return flags; -@@ -153,15 +160,18 @@ static inline void +@@ -157,15 +164,18 @@ u64_stats_update_end_irqrestore(struct u64_stats_sync *syncp, unsigned long flags) { @@ -98,7 +96,7 @@ return read_seqcount_begin(&syncp->seq); #else return 0; -@@ -170,7 +180,7 @@ static inline unsigned int __u64_stats_fetch_begin(const struct u64_stats_sync * +@@ -174,7 +184,7 @@ static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync *syncp) { @@ -107,7 +105,7 @@ preempt_disable(); #endif return __u64_stats_fetch_begin(syncp); -@@ -179,7 +189,7 @@ static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync *sy +@@ -183,7 +193,7 @@ static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp, unsigned int start) { @@ -116,7 +114,7 @@ return read_seqcount_retry(&syncp->seq, start); #else return false; -@@ -189,7 +199,7 @@ static inline bool __u64_stats_fetch_retry(const struct u64_stats_sync *syncp, +@@ -193,7 +203,7 @@ static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp, unsigned int start) { @@ -125,7 +123,7 @@ preempt_enable(); #endif return __u64_stats_fetch_retry(syncp, start); -@@ -203,7 +213,9 @@ static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp, +@@ -207,7 +217,9 @@ */ static inline unsigned int u64_stats_fetch_begin_irq(const struct u64_stats_sync *syncp) { @@ -136,7 +134,7 @@ local_irq_disable(); #endif return __u64_stats_fetch_begin(syncp); -@@ -212,7 +224,9 @@ static inline unsigned int u64_stats_fetch_begin_irq(const struct u64_stats_sync +@@ -216,7 +228,9 @@ static inline bool u64_stats_fetch_retry_irq(const struct u64_stats_sync *syncp, unsigned int start) { @@ -147,6 +145,3 @@ local_irq_enable(); #endif return __u64_stats_fetch_retry(syncp, start); --- -2.43.0 - diff -Nru linux-5.10.209/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch linux-5.10.216/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch --- linux-5.10.209/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0184-fs-dcache-use-swait_queue-instead-of-waitqueue.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From aeadd35a13f446ec84a832549b2815fc3de30917 Mon Sep 17 00:00:00 2001 +From 5cdea9eaefef34046668dc341e43f742c74cf980 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 14:35:49 +0200 Subject: [PATCH 184/323] fs/dcache: use swait_queue instead of waitqueue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -24,7 +24,7 @@ 12 files changed, 31 insertions(+), 26 deletions(-) diff --git a/fs/afs/dir_silly.c b/fs/afs/dir_silly.c -index dae9a57d7ec0..9a6a0ec4d1fb 100644 +index dae9a57d7ec0c..9a6a0ec4d1fb5 100644 --- a/fs/afs/dir_silly.c +++ b/fs/afs/dir_silly.c @@ -239,7 +239,7 @@ int afs_silly_iput(struct dentry *dentry, struct inode *inode) @@ -37,7 +37,7 @@ _enter("%p{%pd},%llx", dentry, dentry, vnode->fid.vnode); diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c -index 799be3a5d25e..d5165a7da071 100644 +index 799be3a5d25e1..d5165a7da0718 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -81,7 +81,7 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name, @@ -50,10 +50,10 @@ cifs_dbg(FYI, "%s: for %s\n", __func__, name->name); diff --git a/fs/dcache.c b/fs/dcache.c -index ea0485861d93..1f4255ef8722 100644 +index 976c7474d62a9..4bcd832ace5dc 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2518,21 +2518,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) +@@ -2519,21 +2519,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) static void d_wait_lookup(struct dentry *dentry) { @@ -89,7 +89,7 @@ { unsigned int hash = name->hash; struct hlist_bl_head *b = in_lookup_hash(parent, hash); -@@ -2647,7 +2650,7 @@ void __d_lookup_done(struct dentry *dentry) +@@ -2648,7 +2651,7 @@ void __d_lookup_done(struct dentry *dentry) hlist_bl_lock(b); dentry->d_flags &= ~DCACHE_PAR_LOOKUP; __hlist_bl_del(&dentry->d_u.d_in_lookup_hash); @@ -99,7 +99,7 @@ hlist_bl_unlock(b); INIT_HLIST_NODE(&dentry->d_u.d_alias); diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c -index 14e99ffa57af..eb899feaf82d 100644 +index 14e99ffa57af9..eb899feaf82dd 100644 --- a/fs/fuse/readdir.c +++ b/fs/fuse/readdir.c @@ -160,7 +160,7 @@ static int fuse_direntplus_link(struct file *file, @@ -112,7 +112,7 @@ if (!o->nodeid) { /* diff --git a/fs/namei.c b/fs/namei.c -index 3ff954a2bbd1..01e3f8195ee1 100644 +index cb37d7c477e0b..f4961a4af74c5 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1532,7 +1532,7 @@ static struct dentry *__lookup_slow(const struct qstr *name, @@ -124,7 +124,7 @@ /* Don't go there if it's already dead */ if (unlikely(IS_DEADDIR(inode))) -@@ -3085,7 +3085,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file, +@@ -3079,7 +3079,7 @@ static struct dentry *lookup_open(struct nameidata *nd, struct file *file, struct dentry *dentry; int error, create_error = 0; umode_t mode = op->mode; @@ -134,7 +134,7 @@ if (unlikely(IS_DEADDIR(dir_inode))) return ERR_PTR(-ENOENT); diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c -index 9f88ca7b2001..bc8a78ecfe1c 100644 +index 9f88ca7b20015..bc8a78ecfe1c3 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -484,7 +484,7 @@ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry, @@ -156,7 +156,7 @@ struct dentry *res; struct iattr attr = { .ia_valid = ATTR_OPEN }; diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c -index b27ebdccef70..f86c98a7ed04 100644 +index b27ebdccef703..f86c98a7ed047 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c @@ -13,7 +13,7 @@ @@ -178,7 +178,7 @@ status = -EBUSY; spin_lock(&dentry->d_lock); diff --git a/fs/proc/base.c b/fs/proc/base.c -index 712948e97991..585d0afd1af6 100644 +index 712948e979911..585d0afd1af61 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -96,6 +96,7 @@ @@ -199,7 +199,7 @@ if (IS_ERR(child)) goto end_instantiate; diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c -index aff9593feb73..d1a29668bff8 100644 +index aff9593feb73c..d1a29668bff84 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -684,7 +684,7 @@ static bool proc_sys_fill_cache(struct file *file, @@ -212,7 +212,7 @@ if (IS_ERR(child)) return false; diff --git a/include/linux/dcache.h b/include/linux/dcache.h -index 6f95c3300cbb..c1290db778bd 100644 +index 6f95c3300cbbb..c1290db778bdd 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -106,7 +106,7 @@ struct dentry { @@ -234,7 +234,7 @@ extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *); extern struct dentry * d_exact_alias(struct dentry *, struct inode *); diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index 33442fd018a0..4612bb5be6ca 100644 +index 33442fd018a06..4612bb5be6ca4 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -1675,7 +1675,7 @@ struct nfs_unlinkdata { @@ -247,7 +247,7 @@ struct nfs_fattr dir_attr; long timeout; diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c -index e1c655f928c7..f230b1ac7f91 100644 +index e1c655f928c74..f230b1ac7f910 100644 --- a/kernel/sched/swait.c +++ b/kernel/sched/swait.c @@ -64,6 +64,7 @@ void swake_up_all(struct swait_queue_head *q) @@ -259,5 +259,5 @@ list_splice_init(&q->task_list, &tmp); while (!list_empty(&tmp)) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch linux-5.10.216/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch --- linux-5.10.209/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0185-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 06c5210bfc8eff16e0d1df2430c7fcb07eae6c67 Mon Sep 17 00:00:00 2001 +From 84c3dc76def6dc05f7c4d5da3d1ca055631803c3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 20 Oct 2017 11:29:53 +0200 Subject: [PATCH 185/323] fs/dcache: disable preemption on i_dir_seq's write side -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz i_dir_seq is an opencoded seqcounter. Based on the code it looks like we could have two writers in parallel despite the fact that the d_lock is @@ -24,10 +24,10 @@ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c -index 1f4255ef8722..26a187abf13a 100644 +index 4bcd832ace5dc..380c528e6e98c 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2503,9 +2503,10 @@ EXPORT_SYMBOL(d_rehash); +@@ -2504,9 +2504,10 @@ EXPORT_SYMBOL(d_rehash); static inline unsigned start_dir_add(struct inode *dir) { @@ -40,7 +40,7 @@ return n; cpu_relax(); } -@@ -2513,7 +2514,8 @@ static inline unsigned start_dir_add(struct inode *dir) +@@ -2514,7 +2515,8 @@ static inline unsigned start_dir_add(struct inode *dir) static inline void end_dir_add(struct inode *dir, unsigned n) { @@ -50,7 +50,7 @@ } static void d_wait_lookup(struct dentry *dentry) -@@ -2549,7 +2551,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2550,7 +2552,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, retry: rcu_read_lock(); @@ -59,7 +59,7 @@ r_seq = read_seqbegin(&rename_lock); dentry = __d_lookup_rcu(parent, name, &d_seq); if (unlikely(dentry)) { -@@ -2577,7 +2579,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2578,7 +2580,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, } hlist_bl_lock(b); @@ -69,7 +69,7 @@ rcu_read_unlock(); goto retry; diff --git a/fs/inode.c b/fs/inode.c -index 5c7139aa2bda..4ee8239c055f 100644 +index 5c7139aa2bda7..4ee8239c055f1 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -158,7 +158,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode) @@ -82,10 +82,10 @@ inode->dirtied_when = 0; diff --git a/include/linux/fs.h b/include/linux/fs.h -index 82316863c71f..a29a0b8a1eca 100644 +index 6de70634e5471..16e5e3096a504 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -699,7 +699,7 @@ struct inode { +@@ -701,7 +701,7 @@ struct inode { struct block_device *i_bdev; struct cdev *i_cdev; char *i_link; @@ -95,5 +95,5 @@ __u32 i_generation; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch linux-5.10.216/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch --- linux-5.10.209/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0186-net-Qdisc-use-a-seqlock-instead-seqcount.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a996bcbd8188409882599175697a464fa6265193 Mon Sep 17 00:00:00 2001 +From 1f37328d08b30476bad4a803b9278cfdbb857bf0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 17:36:35 +0200 Subject: [PATCH 186/323] net/Qdisc: use a seqlock instead seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The seqcount disables preemption on -RT while it is held which can't remove. Also we don't want the reader to spin for ages if the writer is @@ -22,7 +22,7 @@ create mode 100644 include/net/net_seq_lock.h diff --git a/include/net/gen_stats.h b/include/net/gen_stats.h -index 1424e02cef90..163f8415e5db 100644 +index 1424e02cef90c..163f8415e5db5 100644 --- a/include/net/gen_stats.h +++ b/include/net/gen_stats.h @@ -6,6 +6,7 @@ @@ -70,7 +70,7 @@ struct gnet_stats_rate_est64 *sample); diff --git a/include/net/net_seq_lock.h b/include/net/net_seq_lock.h new file mode 100644 -index 000000000000..95a497a72e51 +index 0000000000000..95a497a72e511 --- /dev/null +++ b/include/net/net_seq_lock.h @@ -0,0 +1,24 @@ @@ -99,7 +99,7 @@ + +#endif diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h -index a62677be7452..8ce663a9b4f4 100644 +index a62677be74528..8ce663a9b4f45 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -10,6 +10,7 @@ @@ -169,7 +169,7 @@ struct Qdisc *root = qdisc_root_sleeping(qdisc); diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c -index 8e582e29a41e..e51f4854d8b2 100644 +index 8e582e29a41e3..e51f4854d8b2f 100644 --- a/net/core/gen_estimator.c +++ b/net/core/gen_estimator.c @@ -42,7 +42,7 @@ @@ -200,7 +200,7 @@ return gen_new_estimator(bstats, cpu_bstats, rate_est, lock, running, opt); diff --git a/net/core/gen_stats.c b/net/core/gen_stats.c -index e491b083b348..ef432cea2e10 100644 +index e491b083b3485..ef432cea2e105 100644 --- a/net/core/gen_stats.c +++ b/net/core/gen_stats.c @@ -137,7 +137,7 @@ __gnet_stats_copy_basic_cpu(struct gnet_stats_basic_packed *bstats, @@ -250,7 +250,7 @@ struct gnet_stats_basic_cpu __percpu *cpu, struct gnet_stats_basic_packed *b) diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c -index 5c2d230790db..a5430619ca5f 100644 +index 5c2d230790db9..a5430619ca5fc 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -1275,7 +1275,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev, @@ -263,7 +263,7 @@ err = -EOPNOTSUPP; if (sch->flags & TCQ_F_MQROOT) { diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c -index ecdd9e83f2f4..73b5aa797645 100644 +index ecdd9e83f2f49..73b5aa7976458 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -578,7 +578,11 @@ struct Qdisc noop_qdisc = { @@ -295,5 +295,5 @@ sch->ops = ops; sch->flags = ops->static_flags; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch linux-5.10.216/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch --- linux-5.10.209/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0187-net-Properly-annotate-the-try-lock-for-the-seqlock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 442e014107fc616d529c73b0f0436980b817d021 Mon Sep 17 00:00:00 2001 +From 1bb2d66a2859bcb94d1fb58b0e2facdbf01335d1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 8 Sep 2020 16:57:11 +0200 Subject: [PATCH 187/323] net: Properly annotate the try-lock for the seqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In patch ("net/Qdisc: use a seqlock instead seqcount") @@ -25,7 +25,7 @@ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/include/net/net_seq_lock.h b/include/net/net_seq_lock.h -index 95a497a72e51..67710bace741 100644 +index 95a497a72e511..67710bace7418 100644 --- a/include/net/net_seq_lock.h +++ b/include/net/net_seq_lock.h @@ -6,15 +6,6 @@ @@ -45,7 +45,7 @@ # define net_seqlock_t seqcount_t # define net_seq_begin(__r) read_seqcount_begin(__r) diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h -index 8ce663a9b4f4..eee11a1c9321 100644 +index 8ce663a9b4f45..eee11a1c93216 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -189,8 +189,16 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc) @@ -67,5 +67,5 @@ #else /* Variant of write_seqcount_begin() telling lockdep a trylock -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch linux-5.10.216/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch --- linux-5.10.209/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0188-kconfig-Disable-config-options-which-are-not-RT-comp.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f4fb1a364b1dc97c110e6103ffe75b21e46a0e63 Mon Sep 17 00:00:00 2001 +From 734a98fe3cc0f2b9e691d240a60145fb9e011a09 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 24 Jul 2011 12:11:43 +0200 Subject: [PATCH 188/323] kconfig: Disable config options which are not RT compatible -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable stuff which is known to have issues on RT @@ -14,7 +14,7 @@ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/Kconfig b/arch/Kconfig -index 628e1e7fe302..8bbbca8839e1 100644 +index 628e1e7fe3029..8bbbca8839e1f 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -37,6 +37,7 @@ config OPROFILE @@ -26,7 +26,7 @@ select RING_BUFFER_ALLOW_SWAP help diff --git a/mm/Kconfig b/mm/Kconfig -index 8c49d09da214..c8cbcb5118b0 100644 +index 8c49d09da2141..c8cbcb5118b02 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -387,7 +387,7 @@ config NOMMU_INITIAL_TRIM_EXCESS @@ -39,5 +39,5 @@ select XARRAY_MULTI help -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch linux-5.10.216/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch --- linux-5.10.209/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0189-mm-Allow-only-SLUB-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1da220d86ade67051c7c89743d6d037902c3839d Mon Sep 17 00:00:00 2001 +From 70adf5ebf9706c12042d4e636ac6fada7bf1ab29 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:03 -0500 Subject: [PATCH 189/323] mm: Allow only SLUB on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Memory allocation disables interrupts as part of the allocation and freeing process. For -RT it is important that this section remain short and don't @@ -23,7 +23,7 @@ 1 file changed, 2 insertions(+) diff --git a/init/Kconfig b/init/Kconfig -index 9807c66b24bb..df8d0d0f800f 100644 +index 9807c66b24bb6..df8d0d0f800f5 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1922,6 +1922,7 @@ choice @@ -43,5 +43,5 @@ SLOB replaces the stock allocator with a drastically simpler allocator. SLOB is generally more space efficient but -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch linux-5.10.216/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch --- linux-5.10.209/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0190-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4e23e134063807a9288e9b547e1955a9124ac5b7 Mon Sep 17 00:00:00 2001 +From 58a0e3606002b1e2e04a15a54888057ea26c9aec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:03:52 +0200 Subject: [PATCH 190/323] sched: Disable CONFIG_RT_GROUP_SCHED on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Carsten reported problems when running: @@ -19,7 +19,7 @@ 1 file changed, 1 insertion(+) diff --git a/init/Kconfig b/init/Kconfig -index df8d0d0f800f..7e9578a0176f 100644 +index df8d0d0f800f5..7e9578a0176f4 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -985,6 +985,7 @@ config CFS_BANDWIDTH @@ -31,5 +31,5 @@ help This feature lets you explicitly allocate real CPU bandwidth -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch linux-5.10.216/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch --- linux-5.10.209/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0191-net-core-disable-NET_RX_BUSY_POLL-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 311a1cf04650b065502758f992df44702d23f6cd Mon Sep 17 00:00:00 2001 +From 6016903080533047579420eab847d34635ca0872 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 Subject: [PATCH 191/323] net/core: disable NET_RX_BUSY_POLL on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz napi_busy_loop() disables preemption and performs a NAPI poll. We can't acquire sleeping locks with disabled preemption so we would have to work around this @@ -27,7 +27,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/Kconfig b/net/Kconfig -index a22c3fb88564..5a17bded7136 100644 +index a22c3fb885647..5a17bded71365 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -280,7 +280,7 @@ config CGROUP_NET_CLASSID @@ -40,5 +40,5 @@ config BQL bool -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch linux-5.10.216/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch --- linux-5.10.209/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0192-efi-Disable-runtime-services-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6c6afc933fea370e5c90a34ed6b622bcc274af5a Mon Sep 17 00:00:00 2001 +From 1fc71b95bb75dea0164e3b70f52b0997d93fd9da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 15:03:16 +0200 Subject: [PATCH 192/323] efi: Disable runtime services on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Based on meassurements the EFI functions get_variable / get_next_variable take up to 2us which looks okay. @@ -29,7 +29,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 332739f3eded..8d390091203f 100644 +index 332739f3eded5..8d390091203fc 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -66,7 +66,7 @@ struct mm_struct efi_mm = { @@ -42,5 +42,5 @@ { disable_runtime = true; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0193-efi-Allow-efi-runtime.patch linux-5.10.216/debian/patches-rt/0193-efi-Allow-efi-runtime.patch --- linux-5.10.209/debian/patches-rt/0193-efi-Allow-efi-runtime.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0193-efi-Allow-efi-runtime.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 712d19894b0524bdc524334f6d76babef13db194 Mon Sep 17 00:00:00 2001 +From 14e8e26cecda340029684a9e960739fd4291678d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 15:06:10 +0200 Subject: [PATCH 193/323] efi: Allow efi=runtime -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In case the command line option "efi=noruntime" is default at built-time, the user could overwrite its state by `efi=runtime' and allow it again. @@ -14,7 +14,7 @@ 1 file changed, 3 insertions(+) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 8d390091203f..8589df0e8c1f 100644 +index 8d390091203fc..8589df0e8c1fc 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -97,6 +97,9 @@ static int __init parse_efi_cmdline(char *str) @@ -28,5 +28,5 @@ set_bit(EFI_MEM_NO_SOFT_RESERVE, &efi.flags); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0194-rt-Add-local-irq-locks.patch linux-5.10.216/debian/patches-rt/0194-rt-Add-local-irq-locks.patch --- linux-5.10.209/debian/patches-rt/0194-rt-Add-local-irq-locks.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0194-rt-Add-local-irq-locks.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0d3e0b0db513aac6e4cd2e2d084b7a76f4d28c44 Mon Sep 17 00:00:00 2001 +From c13ea7a1c00bf021e2dd8fc58b9b6a00c554f22b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 20 Jun 2011 09:03:47 +0200 Subject: [PATCH 194/323] rt: Add local irq locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Introduce locallock. For !RT this maps to preempt_disable()/ local_irq_disable() so there is not much that changes. For RT this will @@ -18,7 +18,7 @@ 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/include/linux/local_lock_internal.h b/include/linux/local_lock_internal.h -index 3f02b818625e..1b8ae034946f 100644 +index 3f02b818625ef..1b8ae034946fa 100644 --- a/include/linux/local_lock_internal.h +++ b/include/linux/local_lock_internal.h @@ -7,13 +7,39 @@ @@ -178,5 +178,5 @@ + +#endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch linux-5.10.216/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch --- linux-5.10.209/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0195-signal-x86-Delay-calling-signals-in-atomic.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f4ff44284474fd78b52414326c579dcd8196fc47 Mon Sep 17 00:00:00 2001 +From 4f7f9245f09c19b17efd7950f0751a8376620638 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 195/323] signal/x86: Delay calling signals in atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On x86_64 we must disable preemption before we enable interrupts for stack faults, int3 and debugging, because the current task is using @@ -39,7 +39,7 @@ 4 files changed, 53 insertions(+) diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h -index 6fd8410a3910..f3bf2f515edb 100644 +index 6fd8410a3910c..f3bf2f515edb3 100644 --- a/arch/x86/include/asm/signal.h +++ b/arch/x86/include/asm/signal.h @@ -28,6 +28,19 @@ typedef struct { @@ -63,7 +63,7 @@ typedef sigset_t compat_sigset_t; #endif diff --git a/include/linux/sched.h b/include/linux/sched.h -index 3650fdaac4ca..d259126f46cf 100644 +index 3650fdaac4caa..d259126f46cf4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1001,6 +1001,10 @@ struct task_struct { @@ -78,7 +78,7 @@ size_t sas_ss_size; unsigned int sas_ss_flags; diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index e6a66de1202a..e6da86039ccf 100644 +index e6a66de1202af..e6da86039ccf5 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -160,6 +160,14 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, @@ -97,7 +97,7 @@ uprobe_notify_resume(regs); diff --git a/kernel/signal.c b/kernel/signal.c -index 5ab628e2afc5..e8819aabe3cd 100644 +index 5ab628e2afc5f..e8819aabe3cd5 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1314,6 +1314,34 @@ force_sig_info_to_task(struct kernel_siginfo *info, struct task_struct *t) @@ -136,5 +136,5 @@ action = &t->sighand->action[sig-1]; ignored = action->sa.sa_handler == SIG_IGN; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch linux-5.10.216/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch --- linux-5.10.209/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0196-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 1e362e9e053f608c55deb05577371d61d5db1a92 Mon Sep 17 00:00:00 2001 +From d59e72b2bdf4ff6c85da3833dfd8c85a9b2df288 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 28 May 2018 15:24:20 +0200 Subject: [PATCH 196/323] Split IRQ-off and zone->lock while freeing pages from PCP list #1 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,7 +18,7 @@ 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 124ab9324610..0dc0eb767fb6 100644 +index ed66601044be5..ec5501a84bfb3 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1331,7 +1331,7 @@ static inline void prefetch_buddy(struct page *page) @@ -168,5 +168,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch linux-5.10.216/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch --- linux-5.10.209/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0197-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 3bb0aee1e418d977b819e6d0632d71cbb7cd1138 Mon Sep 17 00:00:00 2001 +From 5bc0456527b6898974f60e4b68b569032c459101 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 28 May 2018 15:24:21 +0200 Subject: [PATCH 197/323] Split IRQ-off and zone->lock while freeing pages from PCP list #2 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,7 +18,7 @@ 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 0dc0eb767fb6..a3f1e4c6bdc8 100644 +index ec5501a84bfb3..ae573a3f91964 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1341,8 +1341,8 @@ static inline void prefetch_buddy(struct page *page) @@ -168,5 +168,5 @@ /* -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch linux-5.10.216/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch --- linux-5.10.209/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0198-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 24eecb5c4b97d1a359a8b16be1dae2a499720795 Mon Sep 17 00:00:00 2001 +From d6ac960f2dd01afbee274b69b6a0f70c447669ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 28 May 2018 15:24:22 +0200 Subject: [PATCH 198/323] mm/SLxB: change list_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t otherwise the interrupts won't be disabled on -RT. The locking rules remain @@ -19,7 +19,7 @@ 3 files changed, 71 insertions(+), 71 deletions(-) diff --git a/mm/slab.c b/mm/slab.c -index b2cc2cf7d8a3..677c0651ef66 100644 +index b2cc2cf7d8a33..677c0651ef669 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent) @@ -370,7 +370,7 @@ num_objs = total_slabs * cachep->num; active_slabs = total_slabs - free_slabs; diff --git a/mm/slab.h b/mm/slab.h -index 6952e10cf33b..ed5dd6e9e0cc 100644 +index 6952e10cf33b4..ed5dd6e9e0cca 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -543,7 +543,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, @@ -383,7 +383,7 @@ #ifdef CONFIG_SLAB struct list_head slabs_partial; /* partial list first, better asm code */ diff --git a/mm/slub.c b/mm/slub.c -index b0f637519ac9..863554db3323 100644 +index b0f637519ac99..863554db3323d 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1214,7 +1214,7 @@ static noinline int free_debug_processing( @@ -599,5 +599,5 @@ for (i = 0; i < t.count; i++) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch linux-5.10.216/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch --- linux-5.10.209/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0199-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e620c8c3d37a6e6ff999f303521997d2950a71cd Mon Sep 17 00:00:00 2001 +From 4c89b48491a9f4a5982e6d78cb78bee7a4d8fbcb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jun 2018 17:29:19 +0200 Subject: [PATCH 199/323] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. @@ -18,7 +18,7 @@ 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 863554db3323..faba29039375 100644 +index 863554db3323d..faba290393757 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1494,6 +1494,12 @@ static bool freelist_corrupted(struct kmem_cache *s, struct page *page, @@ -219,5 +219,5 @@ if (debug_guardpage_minorder()) slub_max_order = 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch linux-5.10.216/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch --- linux-5.10.209/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0200-mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From d903b2377e443ae1df59e15824b683d326e7c24b Mon Sep 17 00:00:00 2001 +From 0e1bfa62810b579032c9e4a5936054f1cf813f2d Mon Sep 17 00:00:00 2001 From: Kevin Hao Date: Mon, 4 May 2020 11:34:07 +0800 Subject: [PATCH 200/323] mm: slub: Always flush the delayed empty slubs in flush_all() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz After commit f0b231101c94 ("mm/SLUB: delay giving back empty slubs to IRQ enabled regions"), when the free_slab() is invoked with the IRQ @@ -43,7 +43,7 @@ 1 file changed, 3 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index faba29039375..cb414c1f9ef6 100644 +index faba290393757..cb414c1f9ef6b 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2501,9 +2501,6 @@ static void flush_all(struct kmem_cache *s) @@ -57,5 +57,5 @@ raw_spin_lock_irq(&f->lock); list_splice_init(&f->list, &tofree); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch linux-5.10.216/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch --- linux-5.10.209/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0201-mm-slub-Don-t-resize-the-location-tracking-cache-on-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 6f5d1f04864beb65079068f48faf17c269c8509b Mon Sep 17 00:00:00 2001 +From d3f261aad58dac8596c9524a2565e5658a3de93e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 26 Feb 2021 17:26:04 +0100 Subject: [PATCH 201/323] mm: slub: Don't resize the location tracking cache on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The location tracking cache has a size of a page and is resized if its current size is too small. @@ -19,7 +19,7 @@ 1 file changed, 3 insertions(+) diff --git a/mm/slub.c b/mm/slub.c -index cb414c1f9ef6..57c598dd7454 100644 +index cb414c1f9ef6b..57c598dd7454e 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4682,6 +4682,9 @@ static int alloc_loc_track(struct loc_track *t, unsigned long max, gfp_t flags) @@ -33,5 +33,5 @@ l = (void *)__get_free_pages(flags, order); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch linux-5.10.216/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch --- linux-5.10.209/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0202-mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 4c4d7886b6c8d16df841ac103b4742481ad5f014 Mon Sep 17 00:00:00 2001 +From c01fbe44adc26256f7a7a641def9651107ad0525 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 2 Jul 2020 14:27:23 +0200 Subject: [PATCH 202/323] mm/page_alloc: Use migrate_disable() in drain_local_pages_wq() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz drain_local_pages_wq() disables preemption to avoid CPU migration during CPU hotplug. @@ -19,7 +19,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index a3f1e4c6bdc8..508650843235 100644 +index ae573a3f91964..9831b1fcda36f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3048,9 +3048,9 @@ static void drain_local_pages_wq(struct work_struct *work) @@ -35,5 +35,5 @@ /* -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch linux-5.10.216/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch --- linux-5.10.209/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0203-mm-page_alloc-rt-friendly-per-cpu-pages.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9f33cce55eb2594c4602653658103381064572d7 Mon Sep 17 00:00:00 2001 +From f351af9d4f8fc2ac1fe1252ef2e57c22ce8e77b1 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:37 -0500 Subject: [PATCH 203/323] mm: page_alloc: rt-friendly per-cpu pages -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. @@ -18,7 +18,7 @@ 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 508650843235..c5eb7d6844ae 100644 +index 9831b1fcda36f..16200cbddaf1c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -61,6 +61,7 @@ @@ -174,7 +174,7 @@ return NULL; } -@@ -8892,7 +8901,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8894,7 +8903,7 @@ void zone_pcp_reset(struct zone *zone) struct per_cpu_pageset *pset; /* avoid races with drain_pages() */ @@ -183,7 +183,7 @@ if (zone->pageset != &boot_pageset) { for_each_online_cpu(cpu) { pset = per_cpu_ptr(zone->pageset, cpu); -@@ -8901,7 +8910,7 @@ void zone_pcp_reset(struct zone *zone) +@@ -8903,7 +8912,7 @@ void zone_pcp_reset(struct zone *zone) free_percpu(zone->pageset); zone->pageset = &boot_pageset; } @@ -193,5 +193,5 @@ #ifdef CONFIG_MEMORY_HOTREMOVE -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch linux-5.10.216/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch --- linux-5.10.209/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0204-mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d2d45bd13ad6112afefb224d46501b76473196eb Mon Sep 17 00:00:00 2001 +From 03f679c7fafaa80617b5184f7dfdc7e44e60f91b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 16 Jul 2020 18:47:50 +0200 Subject: [PATCH 204/323] mm/slub: Make object_map_lock a raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The variable object_map is protected by object_map_lock. The lock is always acquired in debug code and within already atomic context @@ -15,7 +15,7 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 57c598dd7454..ac2ddf6a4220 100644 +index 57c598dd7454e..ac2ddf6a42204 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -435,7 +435,7 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page, @@ -46,5 +46,5 @@ static inline unsigned int size_from_object(struct kmem_cache *s) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch linux-5.10.216/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch --- linux-5.10.209/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0205-slub-Enable-irqs-for-__GFP_WAIT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c0f57e0b6278391f1fec71ccb1e25fe46deade2b Mon Sep 17 00:00:00 2001 +From 42fdb68c7f5a176c19ee559ccd79a9466b580340 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 9 Jan 2013 12:08:15 +0100 Subject: [PATCH 205/323] slub: Enable irqs for __GFP_WAIT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. @@ -18,7 +18,7 @@ 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c -index ac2ddf6a4220..00f1d1206dbc 100644 +index ac2ddf6a42204..00f1d1206dbcf 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1750,10 +1750,18 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) @@ -72,5 +72,5 @@ s = slab_pre_alloc_hook(s, &objcg, size, flags); if (unlikely(!s)) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch linux-5.10.216/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch --- linux-5.10.209/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0206-slub-Disable-SLUB_CPU_PARTIAL.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8da7619853b38005d113af771657ad188006e1d5 Mon Sep 17 00:00:00 2001 +From df50613423cd56f6d8dc411cd384abb274ce5c8f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 15 Apr 2015 19:00:47 +0200 Subject: [PATCH 206/323] slub: Disable SLUB_CPU_PARTIAL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 @@ -37,7 +37,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/Kconfig b/init/Kconfig -index 7e9578a0176f..c5f276d782de 100644 +index 7e9578a0176f4..c5f276d782def 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -2011,7 +2011,7 @@ config SHUFFLE_PAGE_ALLOCATOR @@ -50,5 +50,5 @@ help Per cpu partial caches accelerate objects allocation and freeing -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch linux-5.10.216/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch --- linux-5.10.209/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0207-mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 7a4ec53aa79ebc416eb752e204669e0d4dc53a06 Mon Sep 17 00:00:00 2001 +From b614af0078225d0c18eefd9b4427bbbea648b10c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 18 Aug 2020 10:30:00 +0200 Subject: [PATCH 207/323] mm: memcontrol: Provide a local_lock for per-CPU memcg_stock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The interrupts are disabled to ensure CPU-local access to the per-CPU variable `memcg_stock'. @@ -22,7 +22,7 @@ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 49566afaef1c..d2a47428831b 100644 +index 49566afaef1ca..d2a47428831b1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2202,6 +2202,7 @@ void unlock_page_memcg(struct page *page) @@ -140,5 +140,5 @@ for_each_node(node) { struct mem_cgroup_tree_per_node *rtpn; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch linux-5.10.216/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch --- linux-5.10.209/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0208-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 915ee75a3da5732cf20be8f92b31d3ce33042c5b Mon Sep 17 00:00:00 2001 +From 02f40c13ec3c154a0f0264968448ca2add43db7b Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Wed, 30 Oct 2013 11:48:33 -0700 Subject: [PATCH 208/323] mm/memcontrol: Don't call schedule_work_on in preemption disabled context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The following trace is triggered when running ltp oom test cases: @@ -48,7 +48,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index d2a47428831b..53522a52ff15 100644 +index d2a47428831b1..53522a52ff15a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2349,7 +2349,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) @@ -70,5 +70,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch linux-5.10.216/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch --- linux-5.10.209/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0209-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From aed289fe7a9923b6c8a98fa08048d56aa97c71c4 Mon Sep 17 00:00:00 2001 +From c572959d8cc9a8114dd9f86e32d7ec69c0596bd6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Jan 2015 17:14:16 +0100 Subject: [PATCH 209/323] mm/memcontrol: Replace local_irq_disable with local locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There are a few local_irq_disable() which then take sleeping locks. This patch converts them local locks. @@ -16,7 +16,7 @@ 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 53522a52ff15..5bf696318643 100644 +index 53522a52ff15a..5bf6963186431 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -63,6 +63,7 @@ @@ -119,5 +119,5 @@ css_put(&memcg->css); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch linux-5.10.216/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch --- linux-5.10.209/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0210-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7e86ac4a42c020de9b35b02a3ef02f2fc0dee2ed Mon Sep 17 00:00:00 2001 +From 831c1de27aa006ee17ae674620fedc22002dbffd Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Tue, 22 Mar 2016 11:16:09 +0100 Subject: [PATCH 210/323] mm/zsmalloc: copy with get_cpu_var() and locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). @@ -18,7 +18,7 @@ 1 file changed, 79 insertions(+), 6 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c -index c18dc8e61d35..7dad2ff3e778 100644 +index c18dc8e61d352..7dad2ff3e7785 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -57,6 +57,7 @@ @@ -208,5 +208,5 @@ migrate_read_unlock(zspage); unpin_tag(handle); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch linux-5.10.216/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch --- linux-5.10.209/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0211-mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5bfa3eb76d50818c90253df970e7afbc747211c2 Mon Sep 17 00:00:00 2001 +From 1446b24799d0e4081dfc8c44d81a09511969fb08 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Tue, 25 Jun 2019 11:28:04 -0300 Subject: [PATCH 211/323] mm/zswap: Use local lock to protect per-CPU data -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz zwap uses per-CPU compression. The per-CPU data pointer is acquired with get_cpu_ptr() which implicitly disables preemption. It allocates @@ -29,7 +29,7 @@ 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/mm/zswap.c b/mm/zswap.c -index fbb782924ccc..b24f761b9241 100644 +index fbb782924ccc5..b24f761b9241c 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -18,6 +18,7 @@ @@ -146,5 +146,5 @@ zpool_unmap_handle(entry->pool->zpool, entry->handle); BUG_ON(ret); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch linux-5.10.216/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch --- linux-5.10.209/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0212-x86-kvm-Require-const-tsc-for-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6ef3a23d8f37d55fa94b9f1212830a3b8018c76f Mon Sep 17 00:00:00 2001 +From 8fd65bce6a0966ab0fdfae10114be9846a37e993 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 6 Nov 2011 12:26:18 +0100 Subject: [PATCH 212/323] x86: kvm Require const tsc for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds @@ -15,10 +15,10 @@ 1 file changed, 8 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 13e4699a0744..21a1aa76eb23 100644 +index 8e0b957c62193..32d1df47304ed 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -8167,6 +8167,14 @@ int kvm_arch_init(void *opaque) +@@ -8170,6 +8170,14 @@ int kvm_arch_init(void *opaque) goto out; } @@ -34,5 +34,5 @@ x86_fpu_cache = kmem_cache_create("x86_fpu", sizeof(struct fpu), __alignof__(struct fpu), SLAB_ACCOUNT, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0213-wait.h-include-atomic.h.patch linux-5.10.216/debian/patches-rt/0213-wait.h-include-atomic.h.patch --- linux-5.10.209/debian/patches-rt/0213-wait.h-include-atomic.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0213-wait.h-include-atomic.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,11 +1,11 @@ -From 25ddd3a9a10e8b30e5c6ff85e57532a5f20ffa9d Mon Sep 17 00:00:00 2001 +From e047fc179906dbb87c4e16a6b10dbf11e5baf950 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 28 Oct 2013 12:19:57 +0100 Subject: [PATCH 213/323] wait.h: include atomic.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz | CC init/main.o |In file included from include/linux/mmzone.h:9:0, @@ -26,7 +26,7 @@ 1 file changed, 1 insertion(+) diff --git a/include/linux/wait.h b/include/linux/wait.h -index 1663e47681a3..20aae69387aa 100644 +index 1663e47681a30..20aae69387aa2 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -10,6 +10,7 @@ @@ -38,5 +38,5 @@ typedef struct wait_queue_entry wait_queue_entry_t; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch linux-5.10.216/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch --- linux-5.10.209/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0214-sched-Limit-the-number-of-task-migrations-per-batch.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a178dbd2a3f8eeedf39cde9582a29bc95f335b17 Mon Sep 17 00:00:00 2001 +From 1052e9d89733ee3d6eac5b928d11d558ccb3d255 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:12:51 +0200 Subject: [PATCH 214/323] sched: Limit the number of task migrations per batch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. @@ -13,7 +13,7 @@ 1 file changed, 4 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index aaeed4b14278..3d7e9ecbd376 100644 +index aaeed4b14278a..3d7e9ecbd3760 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -65,7 +65,11 @@ const_debug unsigned int sysctl_sched_features = @@ -29,5 +29,5 @@ /* * period over which we measure -rt task CPU usage in us. -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch linux-5.10.216/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch --- linux-5.10.209/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0215-sched-Move-mmdrop-to-RCU-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e29feec1bad5cc39575600e68d6f5523b17c189a Mon Sep 17 00:00:00 2001 +From 7b41ff050923c688cd98eddadde916cf06dd3d8d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:20:33 +0200 Subject: [PATCH 215/323] sched: Move mmdrop to RCU on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. @@ -16,7 +16,7 @@ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h -index 4eb38918da8f..2a83d965b00e 100644 +index 4eb38918da8f8..2a83d965b00e1 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -12,6 +12,7 @@ @@ -38,7 +38,7 @@ atomic_long_t hugetlb_usage; #endif diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h -index e3e5e149b00e..6d39ad0f55bb 100644 +index e3e5e149b00e6..6d39ad0f55bb9 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -49,6 +49,17 @@ static inline void mmdrop(struct mm_struct *mm) @@ -60,7 +60,7 @@ * mmget() - Pin the address space associated with a &struct mm_struct. * @mm: The address space to pin. diff --git a/kernel/fork.c b/kernel/fork.c -index 32b9d7205ac1..078058436f2f 100644 +index 32b9d7205ac1b..078058436f2f9 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -691,6 +691,19 @@ void __mmdrop(struct mm_struct *mm) @@ -84,7 +84,7 @@ { struct mm_struct *mm; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3d7e9ecbd376..5e5d28f5d970 100644 +index 3d7e9ecbd3760..5e5d28f5d9706 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4269,9 +4269,13 @@ static struct rq *finish_task_switch(struct task_struct *prev) @@ -111,5 +111,5 @@ * Ensure that the idle task is using init_mm right before its CPU goes * offline. -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch linux-5.10.216/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch --- linux-5.10.209/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0216-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 0d19bdfa59a3f9976aacac9944e5c2519f1a508b Mon Sep 17 00:00:00 2001 +From 88448f51d42fa9645d4f45c42a9b16239fba967f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Nov 2016 19:31:08 +0100 Subject: [PATCH 216/323] kernel/sched: move stack + kprobe clean up to __put_task_struct() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There is no need to free the stack before the task struct (except for reasons mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if @@ -20,7 +20,7 @@ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c -index 078058436f2f..2a11bf5f9e30 100644 +index 078058436f2f9..2a11bf5f9e301 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -42,6 +42,7 @@ @@ -57,7 +57,7 @@ cgroup_free(tsk); task_numa_free(tsk, true); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 5e5d28f5d970..81bc9efbd191 100644 +index 5e5d28f5d9706..81bc9efbd1916 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4281,15 +4281,6 @@ static struct rq *finish_task_switch(struct task_struct *prev) @@ -77,5 +77,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch linux-5.10.216/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch --- linux-5.10.209/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0217-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 55d4bd8636745b8d1b987b6561ae2b14cebace78 Mon Sep 17 00:00:00 2001 +From 30c69824d118b7c3798a98c48e256ec61955ae79 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 09:19:06 +0200 Subject: [PATCH 217/323] sched: Do not account rcu_preempt_depth on RT in might_sleep() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz RT changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). @@ -15,7 +15,7 @@ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h -index bb9681309e0d..cbeea5c61a3a 100644 +index a276bb69ee59c..952c9785f1860 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -54,6 +54,11 @@ void __rcu_read_unlock(void); @@ -40,7 +40,7 @@ /* Internal to kernel */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 81bc9efbd191..2f689b4fa68b 100644 +index 81bc9efbd1916..2f689b4fa68b5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7878,7 +7878,7 @@ void __init sched_init(void) @@ -53,5 +53,5 @@ return (nested == preempt_offset); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch linux-5.10.216/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch --- linux-5.10.209/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5b867d72795af288909e6370aabef927a70c8d78 Mon Sep 17 00:00:00 2001 +From 8b31e28f84d9038c778f2edab0fa272e6f741369 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Sep 2011 16:42:35 +0200 Subject: [PATCH 218/323] sched: Disable TTWU_QUEUE on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The queued remote wakeup mechanism can introduce rather large latencies if the number of migrated tasks is high. Disable it for RT. @@ -13,7 +13,7 @@ 1 file changed, 5 insertions(+) diff --git a/kernel/sched/features.h b/kernel/sched/features.h -index f1bf5e12d889..402fd37fb340 100644 +index f1bf5e12d889e..402fd37fb340a 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -45,11 +45,16 @@ SCHED_FEAT(DOUBLE_TICK, false) @@ -34,5 +34,5 @@ /* * When doing wakeups, attempt to limit superfluous scans of the LLC domain. -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch linux-5.10.216/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch --- linux-5.10.209/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c63275b524df4d3556c7cf1690bc874d4a8cd72e Mon Sep 17 00:00:00 2001 +From 5deee6753f583147f213b46951835c512c5068ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 13 Nov 2011 17:17:09 +0100 Subject: [PATCH 219/323] softirq: Check preemption after reenabling interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -21,7 +21,7 @@ 3 files changed, 15 insertions(+) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 5ceac863e729..fb140e00f74d 100644 +index 5ceac863e7298..fb140e00f74dc 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -190,8 +190,10 @@ do { \ @@ -44,7 +44,7 @@ #endif /* CONFIG_PREEMPT_COUNT */ diff --git a/lib/irq_poll.c b/lib/irq_poll.c -index 2f17b488d58e..7557bf7ecf1f 100644 +index 2f17b488d58e1..7557bf7ecf1f1 100644 --- a/lib/irq_poll.c +++ b/lib/irq_poll.c @@ -37,6 +37,7 @@ void irq_poll_sched(struct irq_poll *iop) @@ -88,7 +88,7 @@ return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 3fc27b52bf42..3f23ac2ad497 100644 +index 0e2c433bebcd4..55d0c53864989 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3052,6 +3052,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -107,7 +107,7 @@ } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4596,6 +4598,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4604,6 +4606,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -115,7 +115,7 @@ atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -6348,12 +6351,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -6356,12 +6359,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -130,7 +130,7 @@ } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -6431,6 +6436,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -6439,6 +6444,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -138,7 +138,7 @@ } EXPORT_SYMBOL(__napi_schedule); -@@ -10962,6 +10968,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -10970,6 +10976,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -147,5 +147,5 @@ #ifdef CONFIG_RPS remsd = oldsd->rps_ipi_list; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch linux-5.10.216/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch --- linux-5.10.209/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0220-softirq-Disable-softirq-stacks-for-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 539938b186e370ddf9bfc1d68703cfddf80a3f42 Mon Sep 17 00:00:00 2001 +From 5d7696053592d0d28b59006bca62a36ea81449cd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 13:59:17 +0200 Subject: [PATCH 220/323] softirq: Disable softirq stacks for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. @@ -20,7 +20,7 @@ 8 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c -index e8a548447dd6..5ad4f27cba10 100644 +index e8a548447dd68..5ad4f27cba104 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c @@ -753,10 +753,12 @@ void *mcheckirq_ctx[NR_CPUS] __read_mostly; @@ -37,7 +37,7 @@ irq_hw_number_t virq_to_hw(unsigned int virq) { diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S -index 717e658b90fd..08ee95ad6593 100644 +index 717e658b90fd8..08ee95ad6593a 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S @@ -31,6 +31,7 @@ @@ -57,7 +57,7 @@ /* * void call_do_irq(struct pt_regs *regs, void *sp); diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S -index 070465825c21..a6b33f7b3264 100644 +index 070465825c210..a6b33f7b32646 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S @@ -27,6 +27,7 @@ @@ -77,7 +77,7 @@ _GLOBAL(call_do_irq) mflr r0 diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c -index ab5f790b0cd2..5db7af565dec 100644 +index ab5f790b0cd27..5db7af565decc 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c @@ -148,6 +148,7 @@ void irq_ctx_exit(int cpu) @@ -97,7 +97,7 @@ static inline void handle_one_irq(unsigned int irq) { diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c -index 3ec9f1402aad..eb21682abfcb 100644 +index 3ec9f1402aad3..eb21682abfcb1 100644 --- a/arch/sparc/kernel/irq_64.c +++ b/arch/sparc/kernel/irq_64.c @@ -854,6 +854,7 @@ void __irq_entry handler_irq(int pil, struct pt_regs *regs) @@ -117,7 +117,7 @@ #ifdef CONFIG_HOTPLUG_CPU void fixup_irqs(void) diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c -index 0b79efc87be5..93c6b88b382a 100644 +index 0b79efc87be52..93c6b88b382a0 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c @@ -131,6 +131,7 @@ int irq_init_percpu_irqstack(unsigned int cpu) @@ -137,7 +137,7 @@ void __handle_irq(struct irq_desc *desc, struct pt_regs *regs) { diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c -index 440eed558558..7cfc4e6b7c94 100644 +index 440eed558558d..7cfc4e6b7c94a 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c @@ -72,7 +72,9 @@ int irq_init_percpu_irqstack(unsigned int cpu) @@ -151,7 +151,7 @@ } +#endif diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h -index a1c64d969532..7f185482ea22 100644 +index a1c64d969532d..7f185482ea221 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -564,7 +564,7 @@ struct softirq_action @@ -164,5 +164,5 @@ #else static inline void do_softirq_own_stack(void) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch linux-5.10.216/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch --- linux-5.10.209/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0221-net-core-use-local_bh_disable-in-netif_rx_ni.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3f41204b42e2804a8eff4dbae9f811c5112a5e49 Mon Sep 17 00:00:00 2001 +From 9726c5dc121fa7f5aedda9dd3b39e1924984a2ac Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Jun 2017 19:03:16 +0200 Subject: [PATCH 221/323] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -19,10 +19,10 @@ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 3f23ac2ad497..f973f53c7a1f 100644 +index 55d0c53864989..7d95a0251617e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4870,11 +4870,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4878,11 +4878,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); @@ -37,5 +37,5 @@ return err; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0222-pid.h-include-atomic.h.patch linux-5.10.216/debian/patches-rt/0222-pid.h-include-atomic.h.patch --- linux-5.10.209/debian/patches-rt/0222-pid.h-include-atomic.h.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0222-pid.h-include-atomic.h.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 281d6228df38fdd331290ccf7753daee6ee7e520 Mon Sep 17 00:00:00 2001 +From 9a53ce786cf1397ad140733c2fc7ee3c9ffee186 Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Tue, 21 Jul 2015 19:43:56 +0300 Subject: [PATCH 222/323] pid.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This patch fixes build error: CC kernel/pid_namespace.o @@ -27,7 +27,7 @@ 1 file changed, 1 insertion(+) diff --git a/include/linux/pid.h b/include/linux/pid.h -index fa10acb8d6a4..2f86f84e9fc1 100644 +index fa10acb8d6a42..2f86f84e9fc1a 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h @@ -3,6 +3,7 @@ @@ -39,5 +39,5 @@ #include -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch linux-5.10.216/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch --- linux-5.10.209/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0223-ptrace-fix-ptrace-vs-tasklist_lock-race.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 2b742ac53e22db703a46b21ff3817c797b7cb071 Mon Sep 17 00:00:00 2001 +From 27d5c6ef64ac2461259d6edd971b61408e4bfda4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 18:21:04 +0200 Subject: [PATCH 223/323] ptrace: fix ptrace vs tasklist_lock race -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz As explained by Alexander Fyodorov : @@ -31,7 +31,7 @@ 3 files changed, 68 insertions(+), 7 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index d259126f46cf..bd0c9c633438 100644 +index d259126f46cf4..bd0c9c633438a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -112,12 +112,8 @@ struct io_uring_task; @@ -100,7 +100,7 @@ * cond_resched() and cond_resched_lock(): latency reduction via * explicit rescheduling in places that are safe. The return diff --git a/kernel/ptrace.c b/kernel/ptrace.c -index aab480e24bd6..71acb6341e63 100644 +index aab480e24bd60..71acb6341e639 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -196,7 +196,14 @@ static bool ptrace_freeze_traced(struct task_struct *task) @@ -120,7 +120,7 @@ } spin_unlock_irq(&task->sighand->siglock); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 2f689b4fa68b..8ac1f0526476 100644 +index 2f689b4fa68b5..8ac1f0526476f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2587,6 +2587,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, @@ -162,5 +162,5 @@ task_rq_unlock(rq, p, &rf); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch linux-5.10.216/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch --- linux-5.10.209/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0224-ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 10d5d8e25cce1695bb99f7149038d97b9a160201 Mon Sep 17 00:00:00 2001 +From 22e9788899df87296f03af052e125f3aacd518ae Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Tue, 3 Nov 2020 12:39:01 +0100 Subject: [PATCH 224/323] ptrace: fix ptrace_unfreeze_traced() race with rt-lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The patch "ptrace: fix ptrace vs tasklist_lock race" changed ptrace_freeze_traced() to take task->saved_state into account, but @@ -20,7 +20,7 @@ 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/kernel/ptrace.c b/kernel/ptrace.c -index 71acb6341e63..fb5d1a19507d 100644 +index 71acb6341e639..fb5d1a19507da 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -213,8 +213,8 @@ static bool ptrace_freeze_traced(struct task_struct *task) @@ -61,5 +61,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch linux-5.10.216/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch --- linux-5.10.209/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0225-kernel-sched-add-put-get-_cpu_light.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f5e1368135f9f3d520828544dc31762f19f43848 Mon Sep 17 00:00:00 2001 +From 0effec3f5dac0e6d4484e41f8f7ea4071bffa2f2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 Subject: [PATCH 225/323] kernel/sched: add {put|get}_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior --- @@ -10,7 +10,7 @@ 1 file changed, 3 insertions(+) diff --git a/include/linux/smp.h b/include/linux/smp.h -index 04f44e0aa2e0..cae66815f9e2 100644 +index 04f44e0aa2e0b..cae66815f9e20 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -239,6 +239,9 @@ static inline int get_boot_cpu_id(void) @@ -24,5 +24,5 @@ * Callback to arch code if there's nosmp or maxcpus=0 on the * boot command line: -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch linux-5.10.216/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch --- linux-5.10.209/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 61f802c21cb2e063c6e8b39e9f497f2d38440b5a Mon Sep 17 00:00:00 2001 +From e1ebcfc55175c2efa073ac38379ddd363e827f68 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:56:42 +0200 Subject: [PATCH 226/323] trace: Add migrate-disabled counter to tracing output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner --- @@ -13,7 +13,7 @@ 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2fea9fcd4d4e..2151524a10f0 100644 +index 2fea9fcd4d4e9..2151524a10f04 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -69,6 +69,7 @@ struct trace_entry { @@ -33,10 +33,10 @@ entry->type = type; entry->flags = trace_ctx >> 16; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 5d6730589823..02dffb1862b8 100644 +index aa1da411d181b..78a7c776fd9b7 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2575,6 +2575,15 @@ enum print_line_t trace_handle_return(struct trace_seq *s) +@@ -2603,6 +2603,15 @@ enum print_line_t trace_handle_return(struct trace_seq *s) } EXPORT_SYMBOL_GPL(trace_handle_return); @@ -52,7 +52,7 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) { unsigned int trace_flags = irqs_status; -@@ -2593,7 +2602,8 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2621,7 +2630,8 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NEED_RESCHED; if (test_preempt_need_resched()) trace_flags |= TRACE_FLAG_PREEMPT_RESCHED; @@ -62,7 +62,7 @@ } struct ring_buffer_event * -@@ -3856,9 +3866,10 @@ static void print_lat_help_header(struct seq_file *m) +@@ -3884,9 +3894,10 @@ static void print_lat_help_header(struct seq_file *m) "# | / _----=> need-resched \n" "# || / _---=> hardirq/softirq \n" "# ||| / _--=> preempt-depth \n" @@ -76,7 +76,7 @@ } static void print_event_info(struct array_buffer *buf, struct seq_file *m) -@@ -3896,9 +3907,10 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file +@@ -3924,9 +3935,10 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file seq_printf(m, "# %.*s / _----=> need-resched\n", prec, space); seq_printf(m, "# %.*s| / _---=> hardirq/softirq\n", prec, space); seq_printf(m, "# %.*s|| / _--=> preempt-depth\n", prec, space); @@ -91,7 +91,7 @@ void diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index df64b92c5edc..636fb7df3714 100644 +index df64b92c5edc3..636fb7df3714a 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -184,6 +184,7 @@ static int trace_define_common_fields(void) @@ -103,7 +103,7 @@ return ret; } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c -index 94b0991717b6..b3619b21217c 100644 +index 753b84c50848a..8bd207443f4f4 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -497,6 +497,11 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) @@ -119,5 +119,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch linux-5.10.216/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch --- linux-5.10.209/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0227-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From d9e2f0098c8afde2f68ff94ea5dcdf818bc454d9 Mon Sep 17 00:00:00 2001 +From d00303479b8d382f204665f880622bf035fd37a7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 17:40:42 +0200 Subject: [PATCH 227/323] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream uses arch_spinlock_t within spinlock_t and requests that spinlock_types.h header file is included first. @@ -27,7 +27,7 @@ 9 files changed, 36 deletions(-) diff --git a/arch/alpha/include/asm/spinlock_types.h b/arch/alpha/include/asm/spinlock_types.h -index 1d5716bc060b..6883bc952d22 100644 +index 1d5716bc060be..6883bc952d224 100644 --- a/arch/alpha/include/asm/spinlock_types.h +++ b/arch/alpha/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -42,7 +42,7 @@ volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/arm/include/asm/spinlock_types.h b/arch/arm/include/asm/spinlock_types.h -index 5976958647fe..a37c0803954b 100644 +index 5976958647fe1..a37c0803954ba 100644 --- a/arch/arm/include/asm/spinlock_types.h +++ b/arch/arm/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -57,7 +57,7 @@ typedef struct { diff --git a/arch/arm64/include/asm/spinlock_types.h b/arch/arm64/include/asm/spinlock_types.h -index 18782f0c4721..6672b05350b4 100644 +index 18782f0c47212..6672b05350b4e 100644 --- a/arch/arm64/include/asm/spinlock_types.h +++ b/arch/arm64/include/asm/spinlock_types.h @@ -5,10 +5,6 @@ @@ -72,7 +72,7 @@ #include diff --git a/arch/hexagon/include/asm/spinlock_types.h b/arch/hexagon/include/asm/spinlock_types.h -index 19d233497ba5..de72fb23016d 100644 +index 19d233497ba52..de72fb23016dc 100644 --- a/arch/hexagon/include/asm/spinlock_types.h +++ b/arch/hexagon/include/asm/spinlock_types.h @@ -8,10 +8,6 @@ @@ -87,7 +87,7 @@ volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/ia64/include/asm/spinlock_types.h b/arch/ia64/include/asm/spinlock_types.h -index 6e345fefcdca..681408d6816f 100644 +index 6e345fefcdcab..681408d6816fb 100644 --- a/arch/ia64/include/asm/spinlock_types.h +++ b/arch/ia64/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -102,7 +102,7 @@ volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/powerpc/include/asm/spinlock_types.h b/arch/powerpc/include/asm/spinlock_types.h -index c5d742f18021..cc6922a011ba 100644 +index c5d742f18021d..cc6922a011ba1 100644 --- a/arch/powerpc/include/asm/spinlock_types.h +++ b/arch/powerpc/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -117,7 +117,7 @@ #include #include diff --git a/arch/s390/include/asm/spinlock_types.h b/arch/s390/include/asm/spinlock_types.h -index cfed272e4fd5..8e28e8176ec8 100644 +index cfed272e4fd59..8e28e8176ec88 100644 --- a/arch/s390/include/asm/spinlock_types.h +++ b/arch/s390/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -132,7 +132,7 @@ int lock; } __attribute__ ((aligned (4))) arch_spinlock_t; diff --git a/arch/sh/include/asm/spinlock_types.h b/arch/sh/include/asm/spinlock_types.h -index e82369f286a2..22ca9a98bbb8 100644 +index e82369f286a20..22ca9a98bbb8b 100644 --- a/arch/sh/include/asm/spinlock_types.h +++ b/arch/sh/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -147,7 +147,7 @@ volatile unsigned int lock; } arch_spinlock_t; diff --git a/arch/xtensa/include/asm/spinlock_types.h b/arch/xtensa/include/asm/spinlock_types.h -index 64c9389254f1..dc846323b1cd 100644 +index 64c9389254f13..dc846323b1cd7 100644 --- a/arch/xtensa/include/asm/spinlock_types.h +++ b/arch/xtensa/include/asm/spinlock_types.h @@ -2,10 +2,6 @@ @@ -162,5 +162,5 @@ #include -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch linux-5.10.216/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch --- linux-5.10.209/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0228-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 166485c3d38dd51a1a9a35edb7b2d3c1054a2418 Mon Sep 17 00:00:00 2001 +From 4913939096213a3f24320657859a170bfb140b13 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Nov 2019 09:25:04 +0100 Subject: [PATCH 228/323] locking: Make spinlock_t and rwlock_t a RCU section on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On !RT a locked spinlock_t and rwlock_t disables preemption which implies a RCU read section. There is code that relies on that behaviour. @@ -18,7 +18,7 @@ 2 files changed, 12 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 2fe178651254..31b374d36d04 100644 +index 2fe1786512543..31b374d36d04b 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1136,6 +1136,7 @@ void __lockfunc rt_spin_lock(spinlock_t *lock) @@ -70,7 +70,7 @@ } else { local_bh_enable(); diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c -index 16be7111aae7..3d2d1f14b513 100644 +index 16be7111aae71..3d2d1f14b5135 100644 --- a/kernel/locking/rwlock-rt.c +++ b/kernel/locking/rwlock-rt.c @@ -270,6 +270,7 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock) @@ -122,5 +122,5 @@ } EXPORT_SYMBOL(rt_write_unlock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch linux-5.10.216/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch --- linux-5.10.209/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0229-mm-vmalloc-Another-preempt-disable-region-which-suck.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 61aced1d729a22bbaf66e1f68806e04058bafb3f Mon Sep 17 00:00:00 2001 +From 5fdaecbbbcb293a0c8849436164d5128b5a6e0a5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 11:39:36 +0200 Subject: [PATCH 229/323] mm/vmalloc: Another preempt disable region which sucks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Avoid the preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. @@ -14,7 +14,7 @@ 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c -index d6a4794fa8ca..8113e4f0d2f2 100644 +index d6a4794fa8ca8..8113e4f0d2f25 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1542,7 +1542,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) @@ -69,5 +69,5 @@ /* Allocate new block if nothing was found */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch linux-5.10.216/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch --- linux-5.10.209/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0230-block-mq-do-not-invoke-preempt_disable.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0470292c7761cc1cd2847e60b43b202b1be7ee29 Mon Sep 17 00:00:00 2001 +From 6c7fb806f2b6273b132d75f8003c552ea5806000 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 230/323] block/mq: do not invoke preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. @@ -14,10 +14,10 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c -index a6618bf45992..37466b3a4ba5 100644 +index 927b1dc3476a2..a027c6734e9a2 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c -@@ -1575,14 +1575,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, +@@ -1591,14 +1591,14 @@ static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async, return; if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { @@ -36,5 +36,5 @@ kblockd_mod_delayed_work_on(blk_mq_hctx_next_cpu(hctx), &hctx->run_work, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch linux-5.10.216/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch --- linux-5.10.209/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0231-md-raid5-Make-raid5_percpu-handling-RT-aware.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4af1829664e98b9b3ec542a03ee30aeee8f47f6c Mon Sep 17 00:00:00 2001 +From b33f3c18470c1cadf855885a039b6918ae839364 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Apr 2010 16:51:31 +0200 Subject: [PATCH 231/323] md: raid5: Make raid5_percpu handling RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic @@ -20,7 +20,7 @@ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 9f114b9d8dc6..7e0eb8defeaf 100644 +index 9f114b9d8dc6b..7e0eb8defeafc 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2218,8 +2218,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request) @@ -53,7 +53,7 @@ } diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h -index 5c05acf20e1f..665fe138ab4f 100644 +index 5c05acf20e1f2..665fe138ab4f7 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h @@ -635,6 +635,7 @@ struct r5conf { @@ -65,5 +65,5 @@ void *scribble; /* space for constructing buffer * lists and performing address -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch linux-5.10.216/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch --- linux-5.10.209/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0232-scsi-fcoe-Make-RT-aware.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From a2eaf0c262e1151f5978da03d033819e82104cce Mon Sep 17 00:00:00 2001 +From 525f92d9c071e954a828335732617211748cece4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 12 Nov 2011 14:00:48 +0100 Subject: [PATCH 232/323] scsi/fcoe: Make RT aware. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. @@ -15,7 +15,7 @@ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c -index 30afcbbe1f86..4ae5b8152ece 100644 +index 30afcbbe1f862..4ae5b8152ece8 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -1452,11 +1452,11 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, @@ -73,10 +73,10 @@ } diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c -index a2d60ad2a683..3fdc403bc7d8 100644 +index bbc5d6b9be737..8f9a02912938c 100644 --- a/drivers/scsi/fcoe/fcoe_ctlr.c +++ b/drivers/scsi/fcoe/fcoe_ctlr.c -@@ -830,7 +830,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) +@@ -828,7 +828,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) INIT_LIST_HEAD(&del_list); @@ -85,7 +85,7 @@ list_for_each_entry_safe(fcf, next, &fip->fcfs, list) { deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2; -@@ -866,7 +866,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) +@@ -864,7 +864,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) sel_time = fcf->time; } } @@ -95,7 +95,7 @@ list_for_each_entry_safe(fcf, next, &del_list, list) { /* Removes fcf from current list */ diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c -index 4261380af97b..65160eaaa929 100644 +index 4261380af97b4..65160eaaa9295 100644 --- a/drivers/scsi/libfc/fc_exch.c +++ b/drivers/scsi/libfc/fc_exch.c @@ -826,10 +826,10 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport, @@ -112,5 +112,5 @@ /* peek cache of free slot */ if (pool->left != FC_XID_UNKNOWN) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch linux-5.10.216/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch --- linux-5.10.209/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0233-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 971df27cc65fb6805b2253bd66e81bd244887ecc Mon Sep 17 00:00:00 2001 +From b76e2bca2b99402fb8a609ce88d3ff5c7d0f9dbd Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 18 Feb 2015 16:05:28 +0100 Subject: [PATCH 233/323] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd @@ -34,7 +34,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c -index 06e503466c32..16bd1278a989 100644 +index 06e503466c32c..16bd1278a9890 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c @@ -422,7 +422,7 @@ void svc_xprt_do_enqueue(struct svc_xprt *xprt) @@ -56,5 +56,5 @@ } EXPORT_SYMBOL_GPL(svc_xprt_do_enqueue); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch linux-5.10.216/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch --- linux-5.10.209/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0234-rt-Introduce-cpu_chill.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 38e8018fba96ecd6e7c7a47e18ed06324fd1d0e2 Mon Sep 17 00:00:00 2001 +From a34603cdc819a58c40f020fdd9e59ffc84fbfc38 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 20:51:03 +0100 Subject: [PATCH 234/323] rt: Introduce cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() @@ -62,7 +62,7 @@ 2 files changed, 36 insertions(+) diff --git a/include/linux/delay.h b/include/linux/delay.h -index 1d0e2ce6b6d9..02b37178b54f 100644 +index 1d0e2ce6b6d9f..02b37178b54f4 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h @@ -76,4 +76,10 @@ static inline void fsleep(unsigned long usecs) @@ -77,10 +77,10 @@ + #endif /* defined(_LINUX_DELAY_H) */ diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c -index ede09dda36e9..9dcc6215599f 100644 +index 2b2a6e29219dc..b8f4075d42247 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -2054,6 +2054,36 @@ SYSCALL_DEFINE2(nanosleep_time32, struct old_timespec32 __user *, rqtp, +@@ -2055,6 +2055,36 @@ SYSCALL_DEFINE2(nanosleep_time32, struct old_timespec32 __user *, rqtp, } #endif @@ -118,5 +118,5 @@ * Functions related to boot-time initialization: */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch linux-5.10.216/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch --- linux-5.10.209/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0235-fs-namespace-Use-cpu_chill-in-trylock-loops.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e174bc8c285602601d09d4e7997654e66a18bc87 Mon Sep 17 00:00:00 2001 +From 05e3d91fc2ff6e6be5129bf59467b031923fc64a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:00:34 +0100 Subject: [PATCH 235/323] fs: namespace: Use cpu_chill() in trylock loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system @@ -14,7 +14,7 @@ 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c -index 046b084136c5..6a550e342d6b 100644 +index b020a12c53a2a..364ba37d62d33 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -14,6 +14,7 @@ @@ -40,5 +40,5 @@ * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will * be set to match its requirements. So we must not load that until -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch linux-5.10.216/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch --- linux-5.10.209/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0236-net-Use-skbufhead-with-raw-lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From d58fbc3fc363cee50de0ac64be0b90fd2666956a Mon Sep 17 00:00:00 2001 +From 0200f240cf9712f1b3d03597bd4282380f9771ce Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 15:38:34 +0200 Subject: [PATCH 236/323] net: Use skbufhead with raw lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Use the rps lock as rawlock so we can keep irq-off regions. It looks low latency. However we can't kfree() from this context therefore we defer this @@ -15,7 +15,7 @@ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index a210f1995862..af89bd5e7d56 100644 +index a210f19958621..af89bd5e7d568 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -296,6 +296,7 @@ struct sk_buff_head { @@ -40,7 +40,7 @@ struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index f973f53c7a1f..895eb42bb5d6 100644 +index 7d95a0251617e..48fcb050b5a7b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -221,14 +221,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) @@ -60,7 +60,7 @@ #endif } -@@ -11296,7 +11296,7 @@ static int __init net_dev_init(void) +@@ -11304,7 +11304,7 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); @@ -70,5 +70,5 @@ #ifdef CONFIG_XFRM_OFFLOAD skb_queue_head_init(&sd->xfrm_backlog); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch linux-5.10.216/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch --- linux-5.10.209/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0237-net-Dequeue-in-dev_cpu_dead-without-the-lock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 95dbb10c81619c9a35a63f73dadd7379d95fdec0 Mon Sep 17 00:00:00 2001 +From 4945a58297bdc5e20dac7ac3364e6fe143f48866 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 16 Sep 2020 16:15:39 +0200 Subject: [PATCH 237/323] net: Dequeue in dev_cpu_dead() without the lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream uses skb_dequeue() to acquire lock of `input_pkt_queue'. The reason is to synchronize against a remote CPU which still thinks that the CPU is online @@ -20,10 +20,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 895eb42bb5d6..c55993848233 100644 +index 48fcb050b5a7b..7e8a78e1c749a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10980,7 +10980,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -10988,7 +10988,7 @@ static int dev_cpu_dead(unsigned int oldcpu) netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -33,5 +33,5 @@ input_queue_head_incr(oldsd); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch linux-5.10.216/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch --- linux-5.10.209/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0238-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 3a7ff2036ac29effdf8fc39fc7ea9610f98ca5e4 Mon Sep 17 00:00:00 2001 +From 3e47240cfe1a82349cea76a692623862615c8b12 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 30 Mar 2016 13:36:29 +0200 Subject: [PATCH 238/323] net: dev: always take qdisc's busylock in __dev_xmit_skb() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The root-lock is dropped before dev_hard_start_xmit() is invoked and after setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away @@ -22,10 +22,10 @@ 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index c55993848233..c3b4e5e320ca 100644 +index 7e8a78e1c749a..f512f18c09584 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3796,7 +3796,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, +@@ -3804,7 +3804,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, * This permits qdisc->running owner to get the lock more * often and dequeue packets faster. */ @@ -38,5 +38,5 @@ spin_lock(&q->busylock); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch linux-5.10.216/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch --- linux-5.10.209/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0239-irqwork-push-most-work-into-softirq-context.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 57453ffdf0bcba3fa27ca0b19f622ea371c2c686 Mon Sep 17 00:00:00 2001 +From bb7de8f232a9b833a0eb51424dbd79c12ca93e21 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 23 Jun 2015 15:32:51 +0200 Subject: [PATCH 239/323] irqwork: push most work into softirq context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Initially we defered all irqwork into softirq because we didn't want the latency spikes if perf or another user was busy and delayed the RT task. @@ -30,7 +30,7 @@ 4 files changed, 55 insertions(+), 12 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index 30823780c192..f941f2d7d71c 100644 +index 30823780c1928..f941f2d7d71ce 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -55,4 +55,10 @@ static inline void irq_work_run(void) { } @@ -45,7 +45,7 @@ + #endif /* _LINUX_IRQ_WORK_H */ diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index eca83965b631..8183d30e1bb1 100644 +index eca83965b631a..8183d30e1bb1c 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -18,6 +18,7 @@ @@ -160,7 +160,7 @@ /* * Synchronize against the irq_work @entry, ensures the entry is not diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c -index ff2c6d3ba6c7..2f1bea4f7dba 100644 +index ff2c6d3ba6c79..2f1bea4f7dba2 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -514,6 +514,7 @@ static int init_rootdomain(struct root_domain *rd) @@ -172,10 +172,10 @@ init_dl_bw(&rd->dl_bw); diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index a4fdc7cfb723..1cad0efd635c 100644 +index 68246a8c31bc2..4ff559fed1e49 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1770,6 +1770,8 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1800,6 +1800,8 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); @@ -185,5 +185,5 @@ if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch linux-5.10.216/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch --- linux-5.10.209/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0240-x86-crypto-Reduce-preempt-disabled-regions.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 523f64f1a87e6454e46f5e25ae797b6a7050a6a8 Mon Sep 17 00:00:00 2001 +From 55fdf1608946d1937d8e6da7e94b046a52f53418 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 14 Nov 2011 18:19:27 +0100 Subject: [PATCH 240/323] x86: crypto: Reduce preempt disabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. @@ -19,7 +19,7 @@ 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c -index be891fdf8d17..29c716ed103f 100644 +index be891fdf8d174..29c716ed103f9 100644 --- a/arch/x86/crypto/aesni-intel_glue.c +++ b/arch/x86/crypto/aesni-intel_glue.c @@ -379,14 +379,14 @@ static int ecb_encrypt(struct skcipher_request *req) @@ -114,5 +114,5 @@ return err; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch linux-5.10.216/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch --- linux-5.10.209/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0241-crypto-Reduce-preempt-disabled-regions-more-algos.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e9bc715aa25df5aa654a5243e90ee31fb1b1e010 Mon Sep 17 00:00:00 2001 +From e995e2e7743b69d3d0a7012d60b9818f82a6c302 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2014 17:24:04 +0100 Subject: [PATCH 241/323] crypto: Reduce preempt disabled regions, more algos -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() @@ -43,7 +43,7 @@ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/arch/x86/crypto/cast5_avx_glue.c b/arch/x86/crypto/cast5_avx_glue.c -index 384ccb00f9e1..2f8df8ef8644 100644 +index 384ccb00f9e15..2f8df8ef8644e 100644 --- a/arch/x86/crypto/cast5_avx_glue.c +++ b/arch/x86/crypto/cast5_avx_glue.c @@ -46,7 +46,7 @@ static inline void cast5_fpu_end(bool fpu_enabled) @@ -126,7 +126,7 @@ ctr_crypt_final(&walk, ctx); err = skcipher_walk_done(&walk, 0); diff --git a/arch/x86/crypto/glue_helper.c b/arch/x86/crypto/glue_helper.c -index d3d91a0abf88..6d0774721514 100644 +index d3d91a0abf88f..6d07747215147 100644 --- a/arch/x86/crypto/glue_helper.c +++ b/arch/x86/crypto/glue_helper.c @@ -24,7 +24,7 @@ int glue_ecb_req_128bit(const struct common_glue_ctx *gctx, @@ -236,5 +236,5 @@ nbytes = walk.nbytes; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch linux-5.10.216/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch --- linux-5.10.209/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0242-crypto-limit-more-FPU-enabled-sections.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,11 +1,11 @@ -From dd8a48342b4ff4b80a32a4ae49115db93ad069c1 Mon Sep 17 00:00:00 2001 +From b8af1a198712fc9567d6bebdf3993d8e64b2af03 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 30 Nov 2017 13:40:10 +0100 Subject: [PATCH 242/323] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Those crypto drivers use SSE/AVX/… for their crypto work and in order to do so in kernel they need to enable the "FPU" in kernel mode which @@ -35,7 +35,7 @@ 2 files changed, 13 insertions(+) diff --git a/arch/x86/include/asm/fpu/api.h b/arch/x86/include/asm/fpu/api.h -index ad2fee785310..d31b0886592a 100644 +index ad2fee7853108..d31b0886592a1 100644 --- a/arch/x86/include/asm/fpu/api.h +++ b/arch/x86/include/asm/fpu/api.h @@ -28,6 +28,7 @@ extern void kernel_fpu_begin_mask(unsigned int kfpu_mask); @@ -47,7 +47,7 @@ /* Code that is unaware of kernel_fpu_begin_mask() can use this */ static inline void kernel_fpu_begin(void) diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c -index 835b948095cd..8cfc2f972fe5 100644 +index 835b948095cde..8cfc2f972fe56 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c @@ -144,6 +144,18 @@ void kernel_fpu_end(void) @@ -70,5 +70,5 @@ * Save the FPU state (mark it for reload if necessary): * -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch linux-5.10.216/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch --- linux-5.10.209/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0243-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From e0a748983b07205d9f2f52230c897f49a2c84c8d Mon Sep 17 00:00:00 2001 +From 82c235e4a2f2ab9d0be75ac6cd1bfd282aa83f0d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: [PATCH 243/323] panic: skip get_random_bytes for RT_FULL in init_oops_id -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disable on -RT. If this is invoked from irq-context we will have problems to acquire the sleeping lock. @@ -14,10 +14,10 @@ 1 file changed, 2 insertions(+) diff --git a/kernel/panic.c b/kernel/panic.c -index 5a1a4bf2feb3..aa36078657be 100644 +index 0681472a2041a..efd853ce1deb6 100644 --- a/kernel/panic.c +++ b/kernel/panic.c -@@ -621,9 +621,11 @@ static u64 oops_id; +@@ -629,9 +629,11 @@ static u64 oops_id; static int init_oops_id(void) { @@ -30,5 +30,5 @@ return 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch linux-5.10.216/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch --- linux-5.10.209/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0244-x86-stackprotector-Avoid-random-pool-on-rt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From f7c4220e56be1d8fc2bc339984fb5919ee02cf4f Mon Sep 17 00:00:00 2001 +From e19f4592b7c7639a521effd6d271f9c710f0bcfd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Dec 2010 14:25:18 +0100 Subject: [PATCH 244/323] x86: stackprotector: Avoid random pool on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz CPU bringup calls into the random pool to initialize the stack canary. During boot that works nicely even on RT as the might sleep @@ -19,10 +19,10 @@ 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h -index 7fb482f0f25b..3df0a95c9e13 100644 +index b6ffe58c70fab..e79e75ede9516 100644 --- a/arch/x86/include/asm/stackprotector.h +++ b/arch/x86/include/asm/stackprotector.h -@@ -65,7 +65,7 @@ +@@ -50,7 +50,7 @@ */ static __always_inline void boot_init_stack_canary(void) { @@ -31,7 +31,7 @@ u64 tsc; #ifdef CONFIG_X86_64 -@@ -76,8 +76,14 @@ static __always_inline void boot_init_stack_canary(void) +@@ -61,8 +61,14 @@ static __always_inline void boot_init_stack_canary(void) * of randomness. The TSC only matters for very early init, * there it already has some randomness on most systems. Later * on during the bootup the random pool has true entropy too. @@ -47,5 +47,5 @@ canary += tsc + (tsc << 32UL); canary &= CANARY_MASK; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch linux-5.10.216/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch --- linux-5.10.209/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0245-net-Remove-preemption-disabling-in-netif_rx.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ceda0e136831589d22c9bd35844b3fafcc722e7c Mon Sep 17 00:00:00 2001 +From e9c4be58fe0aef35d6b70aa6757652ea2b5954ad Mon Sep 17 00:00:00 2001 From: Priyanka Jain Date: Thu, 17 May 2012 09:35:11 +0530 Subject: [PATCH 245/323] net: Remove preemption disabling in netif_rx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -33,10 +33,10 @@ 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index c3b4e5e320ca..fb00a777f559 100644 +index f512f18c09584..8dc7653a22dfe 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4818,7 +4818,7 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4826,7 +4826,7 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -45,7 +45,7 @@ rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4828,14 +4828,14 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4836,14 +4836,14 @@ static int netif_rx_internal(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); @@ -64,5 +64,5 @@ return ret; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch linux-5.10.216/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch --- linux-5.10.209/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0246-lockdep-Make-it-RT-aware.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9d9c323e950c13cde64d5ae87dd12e0e3b81abd8 Mon Sep 17 00:00:00 2001 +From afcd4bbae6caa07552386e7d10e4e3529ebc314d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 18:51:23 +0200 Subject: [PATCH 246/323] lockdep: Make it RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz teach lockdep that we don't really do softirqs on -RT. @@ -13,7 +13,7 @@ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h -index 3ed4e8771b64..a437b2e70d37 100644 +index 3ed4e8771b64e..a437b2e70d379 100644 --- a/include/linux/irqflags.h +++ b/include/linux/irqflags.h @@ -71,14 +71,6 @@ do { \ @@ -54,7 +54,7 @@ defined(CONFIG_PREEMPT_TRACER) extern void stop_critical_timings(void); diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index 7471d85f54ae..4fb9e6301018 100644 +index 7471d85f54ae5..4fb9e63010189 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -5414,6 +5414,7 @@ static noinstr void check_flags(unsigned long flags) @@ -74,5 +74,5 @@ if (!debug_locks) print_irqtrace_events(current); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch linux-5.10.216/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch --- linux-5.10.209/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0247-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 98d28c479e8b02a795109f6bc0b6aa1da54f6ede Mon Sep 17 00:00:00 2001 +From 4653130930ec2cc87ba79a4b19d16763b189a570 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Mon, 16 Apr 2012 15:01:56 +0800 Subject: [PATCH 247/323] lockdep: selftest: Only do hardirq context test for raw spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On -rt there is no softirq context any more and rwlock is sleepable, disable softirq context test and rwlock+irq test. @@ -17,7 +17,7 @@ 1 file changed, 23 insertions(+) diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c -index 76c52b0b76d3..663c071bc445 100644 +index 76c52b0b76d38..663c071bc445e 100644 --- a/lib/locking-selftest.c +++ b/lib/locking-selftest.c @@ -2456,6 +2456,7 @@ void locking_selftest(void) @@ -58,5 +58,5 @@ force_read_lock_recursive = 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch linux-5.10.216/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch --- linux-5.10.209/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0248-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From c10790e859050b8a0a251e2e57b7fffb9ffa75df Mon Sep 17 00:00:00 2001 +From aba827685081cd46768e25f14e2c1b381d997773 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Wed, 28 Jan 2015 13:08:45 -0600 Subject: [PATCH 248/323] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz "lockdep: Selftest: Only do hardirq context test for raw spinlock" disabled the execution of certain tests with PREEMPT_RT, but did @@ -29,7 +29,7 @@ 1 file changed, 28 insertions(+) diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c -index 663c071bc445..98c376b02dff 100644 +index 663c071bc445e..98c376b02dff9 100644 --- a/lib/locking-selftest.c +++ b/lib/locking-selftest.c @@ -787,6 +787,8 @@ GENERATE_TESTCASE(init_held_rtmutex); @@ -145,5 +145,5 @@ * read-lock / write-lock recursion that is unsafe. */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0249-lockdep-disable-self-test.patch linux-5.10.216/debian/patches-rt/0249-lockdep-disable-self-test.patch --- linux-5.10.209/debian/patches-rt/0249-lockdep-disable-self-test.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0249-lockdep-disable-self-test.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,11 +1,11 @@ -From da32b1f1c20ebd096acfb511cf3a608169d210c7 Mon Sep 17 00:00:00 2001 +From a329d91a9f582f226fbb63aa414fa07b00de66db Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 17 Oct 2017 16:36:18 +0200 Subject: [PATCH 249/323] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The self-test wasn't always 100% accurate for RT. We disabled a few tests which failed because they had a different semantic for RT. Some @@ -18,7 +18,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug -index 24ca61cf86dd..70172d5ab82a 100644 +index 24ca61cf86ddc..70172d5ab82a8 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1373,7 +1373,7 @@ config DEBUG_ATOMIC_SLEEP @@ -31,5 +31,5 @@ Say Y here if you want the kernel to run a short self-test during bootup. The self-test checks whether common types of locking bugs -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch linux-5.10.216/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch --- linux-5.10.209/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0250-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 2c69acb6875156b092516fc81bd2a05b96973c2b Mon Sep 17 00:00:00 2001 +From b9f57823ffad3df30fb72183ff9a09346979fcf0 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 Subject: [PATCH 250/323] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz DRM folks identified the spots, so use them. @@ -17,7 +17,7 @@ 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 759f523c6a6b..7339a42ab2b8 100644 +index 759f523c6a6bf..7339a42ab2b80 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -847,6 +847,7 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc, @@ -37,10 +37,10 @@ spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c -index 71bdafac9210..95ce311f434b 100644 +index 07d23a1e62a07..add8e60440b2b 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c -@@ -1823,6 +1823,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, +@@ -1828,6 +1828,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, struct radeon_device *rdev = dev->dev_private; /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */ @@ -48,7 +48,7 @@ /* Get optional system timestamp before query. */ if (stime) -@@ -1915,6 +1916,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, +@@ -1920,6 +1921,7 @@ int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe, *etime = ktime_get(); /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */ @@ -57,5 +57,5 @@ /* Decode into vertical and horizontal scanout position. */ *vpos = position & 0x1fff; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch linux-5.10.216/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch --- linux-5.10.209/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0251-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 940e64f8d4b797c592e6736a1fae0d0ff2087e95 Mon Sep 17 00:00:00 2001 +From c00cad98a46e5c1d3cca633ab8ea32952d8da9c1 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 Subject: [PATCH 251/323] drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Commit 8d7849db3eab7 ("drm/i915: Make sprite updates atomic") @@ -26,7 +26,7 @@ 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c -index 12f7128b777f..a65061e3e1d3 100644 +index 12f7128b777f6..a65061e3e1d3d 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -118,7 +118,8 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) @@ -76,5 +76,5 @@ if (intel_vgpu_active(dev_priv)) return; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch linux-5.10.216/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch --- linux-5.10.209/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0252-drm-i915-disable-tracing-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0e88cde8cbd40cc7e519bccaf1ba847de2d9bd02 Mon Sep 17 00:00:00 2001 +From 27fa42742e24ba8a4d277671d1caed1a8c88fdaa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 09:52:20 +0100 Subject: [PATCH 252/323] drm/i915: disable tracing on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 @@ -28,7 +28,7 @@ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h -index a4addcc64978..0ba5a0a0fd25 100644 +index a4addcc649782..0ba5a0a0fd252 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -2,6 +2,10 @@ @@ -43,5 +43,5 @@ #include #include -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch linux-5.10.216/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch --- linux-5.10.209/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0253-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 2c550981e43f1612f6999bbc04634e0d6eb16760 Mon Sep 17 00:00:00 2001 +From 74c192a8194911bc1214bcb76aad904ce7b38565 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 19 Dec 2018 10:47:02 +0100 Subject: [PATCH 253/323] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The order of the header files is important. If this header file is included after tracepoint.h was included then the NOTRACE here becomes a @@ -16,7 +16,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h -index 0ba5a0a0fd25..396b6598694d 100644 +index 0ba5a0a0fd252..396b6598694d3 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -782,7 +782,7 @@ DEFINE_EVENT(i915_request, i915_request_add, @@ -29,5 +29,5 @@ TP_PROTO(struct i915_request *rq), TP_ARGS(rq) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch linux-5.10.216/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch --- linux-5.10.209/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0254-drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 63884dc87002ed5187007558a7356e7a4f570e75 Mon Sep 17 00:00:00 2001 +From 70e95b1d6352930a4b00e9cb58929c25bde4c219 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 7 Jul 2020 12:25:11 +0200 Subject: [PATCH 254/323] drm/i915/gt: Only disable interrupts for the timeline lock on !force-threaded -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz According to commit d67739268cf0e ("drm/i915/gt: Mark up the nested engine-pm timeline lock as irqsafe") @@ -21,7 +21,7 @@ 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c -index f7b2e07e2229..313d8a28e776 100644 +index f9fdbd79c0f37..fe71184156818 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c @@ -60,9 +60,10 @@ static int __engine_unpark(struct intel_wakeref *wf) @@ -48,5 +48,5 @@ #else -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch linux-5.10.216/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch --- linux-5.10.209/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0255-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ebc27a7d1ceef838efef4feecd2bcb490552f0ec Mon Sep 17 00:00:00 2001 +From 42a8716470e57e68acd35cd033870ab69de63228 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 8 Jan 2017 09:32:25 +0100 Subject: [PATCH 255/323] cpuset: Convert callback_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The two commits below add up to a cpuset might_sleep() splat for RT: @@ -52,7 +52,7 @@ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c -index 195f9cccab20..fd371215b81f 100644 +index 195f9cccab20b..fd371215b81ff 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -368,7 +368,7 @@ void cpuset_unlock(void) @@ -363,5 +363,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch linux-5.10.216/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch --- linux-5.10.209/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0256-x86-Allow-to-enable-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6ab508c3cdd4fa46f17f940bd56007189d4984e6 Mon Sep 17 00:00:00 2001 +From 9f42f4880e8c5f36237d5b2173303919f4313c84 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 7 Aug 2019 18:15:38 +0200 Subject: [PATCH 256/323] x86: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ 1 file changed, 1 insertion(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 54e5284a6ae1..c72d66a0e840 100644 +index 59db07b61c0f8..79e2b63eba407 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,6 +27,7 @@ config X86_64 @@ -24,5 +24,5 @@ select HAVE_ARCH_SOFT_DIRTY select MODULES_USE_ELF_RELA -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch linux-5.10.216/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch --- linux-5.10.209/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0257-mm-scatterlist-Do-not-disable-irqs-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 767e9014ec3dbfeee9323cfcc34acac5315c262e Mon Sep 17 00:00:00 2001 +From cbcb42b0d809a1279688d1e2881f56859ec243fb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:34 -0500 Subject: [PATCH 257/323] mm/scatterlist: Do not disable irqs on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). @@ -13,7 +13,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scatterlist.c b/lib/scatterlist.c -index a59778946404..907f59045998 100644 +index a597789464043..907f590459983 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -892,7 +892,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter) @@ -26,5 +26,5 @@ } else kunmap(miter->page); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch linux-5.10.216/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch --- linux-5.10.209/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0258-sched-Add-support-for-lazy-preemption.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e8b4a64bf2eb6ff6330544895c0f69696059ffda Mon Sep 17 00:00:00 2001 +From ed95947ad84cd7475aee1d39d1070299af9e0617 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 26 Oct 2012 18:50:54 +0100 Subject: [PATCH 258/323] sched: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -69,7 +69,7 @@ 12 files changed, 254 insertions(+), 36 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index fb140e00f74d..af39859f02ee 100644 +index fb140e00f74dc..af39859f02ee1 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -174,6 +174,20 @@ extern void preempt_count_sub(int val); @@ -176,7 +176,7 @@ #endif /* CONFIG_SMP */ diff --git a/include/linux/sched.h b/include/linux/sched.h -index bd0c9c633438..665a17e4f69b 100644 +index bd0c9c633438a..665a17e4f69be 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1882,6 +1882,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk) @@ -225,7 +225,7 @@ { if (task->state & (__TASK_STOPPED | __TASK_TRACED)) diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h -index f3040b0b4b23..3cb02ced141b 100644 +index f3040b0b4b235..3cb02ced141b8 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -110,7 +110,17 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) @@ -248,7 +248,7 @@ #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES static inline int arch_within_stack_frames(const void * const stack, diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h -index 2151524a10f0..e7afd9fe35e5 100644 +index 2151524a10f04..e7afd9fe35e5f 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -70,6 +70,7 @@ struct trace_entry { @@ -280,7 +280,7 @@ #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt -index cbe3aa495519..b5cd1e278eb5 100644 +index cbe3aa495519b..b5cd1e278eb58 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt @@ -1,5 +1,11 @@ @@ -296,7 +296,7 @@ prompt "Preemption Model" default PREEMPT_NONE diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8ac1f0526476..c847d17e3b04 100644 +index 8ac1f0526476f..c847d17e3b04a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -656,6 +656,48 @@ void resched_curr(struct rq *rq) @@ -445,7 +445,7 @@ * The idle tasks have their own, simple scheduling class: */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 73a89fbd81be..f4928e5b6611 100644 +index 73a89fbd81be8..f4928e5b6611b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4570,7 +4570,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) @@ -521,7 +521,7 @@ check_preempt_curr(rq, p, 0); } diff --git a/kernel/sched/features.h b/kernel/sched/features.h -index 402fd37fb340..bc2466af142e 100644 +index 402fd37fb340a..bc2466af142eb 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -47,6 +47,9 @@ SCHED_FEAT(NONTASK_CAPACITY, true) @@ -535,7 +535,7 @@ /* diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index d4bfc51358d3..ad854a670701 100644 +index d4bfc51358d37..ad854a670701b 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1997,6 +1997,15 @@ extern void reweight_task(struct task_struct *p, int prio); @@ -555,10 +555,10 @@ extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 02dffb1862b8..7caae85af03d 100644 +index 78a7c776fd9b7..a8285643a7cc0 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2602,8 +2602,16 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2630,8 +2630,16 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) trace_flags |= TRACE_FLAG_NEED_RESCHED; if (test_preempt_need_resched()) trace_flags |= TRACE_FLAG_PREEMPT_RESCHED; @@ -577,7 +577,7 @@ } struct ring_buffer_event * -@@ -3861,15 +3869,17 @@ unsigned long trace_total_entries(struct trace_array *tr) +@@ -3889,15 +3897,17 @@ unsigned long trace_total_entries(struct trace_array *tr) static void print_lat_help_header(struct seq_file *m) { @@ -604,7 +604,7 @@ } static void print_event_info(struct array_buffer *buf, struct seq_file *m) -@@ -3903,14 +3913,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file +@@ -3931,14 +3941,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file print_event_info(buf, m); @@ -630,7 +630,7 @@ void diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c -index 636fb7df3714..245b8289ecdf 100644 +index 636fb7df3714a..245b8289ecdf3 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -185,6 +185,7 @@ static int trace_define_common_fields(void) @@ -642,7 +642,7 @@ return ret; } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c -index b3619b21217c..5a71964ade3a 100644 +index 8bd207443f4f4..18f091dceea3f 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -451,6 +451,7 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) @@ -687,5 +687,5 @@ trace_seq_printf(s, "%x", entry->migrate_disable); else -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch linux-5.10.216/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch --- linux-5.10.209/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0259-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 367fe43dc09205ecc5fcdca95276fc481e7ccd9f Mon Sep 17 00:00:00 2001 +From 005400302baf6837eb1c17a2ed4b81870a0b810c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 30 Jun 2020 11:45:14 +0200 Subject: [PATCH 259/323] x86/entry: Use should_resched() in idtentry_exit_cond_resched() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The TIF_NEED_RESCHED bit is inlined on x86 into the preemption counter. By using should_resched(0) instead of need_resched() the same check can @@ -18,7 +18,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index e6da86039ccf..f32250adb681 100644 +index e6da86039ccf5..f32250adb6815 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -371,7 +371,7 @@ void irqentry_exit_cond_resched(void) @@ -31,5 +31,5 @@ } } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch linux-5.10.216/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch --- linux-5.10.209/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0260-x86-Support-for-lazy-preemption.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 3e75dc5bbc430b2a1db27fe101ed508b067af7b0 Mon Sep 17 00:00:00 2001 +From da69dbf20c66f9416307996dd025edaa49931fb2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 11:03:47 +0100 Subject: [PATCH 260/323] x86: Support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the x86 pieces for lazy preempt. @@ -17,7 +17,7 @@ 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index c72d66a0e840..b9f68b01a8c8 100644 +index 79e2b63eba407..f461b699c25d0 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -213,6 +213,7 @@ config X86 @@ -29,7 +29,7 @@ select HAVE_POSIX_CPU_TIMERS_TASK_WORK select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h -index 50e0c0ab7b97..afe37a8c6c24 100644 +index 50e0c0ab7b97b..afe37a8c6c248 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -89,17 +89,48 @@ static __always_inline void __preempt_count_sub(int val) @@ -83,7 +83,7 @@ #ifdef CONFIG_PREEMPTION diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h -index 012c8ee93b67..d77e99ba7610 100644 +index 012c8ee93b67f..d77e99ba76102 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -56,17 +56,24 @@ struct task_struct; @@ -137,7 +137,7 @@ /* diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h -index 46c42479f950..b902af13d05f 100644 +index 46c42479f9501..b902af13d05fd 100644 --- a/include/linux/entry-common.h +++ b/include/linux/entry-common.h @@ -67,9 +67,9 @@ @@ -154,7 +154,7 @@ /** diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index f32250adb681..cdf97ea30b4c 100644 +index f32250adb6815..cdf97ea30b4c0 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -157,7 +157,7 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, @@ -167,5 +167,5 @@ #ifdef ARCH_RT_DELAYS_SIGNAL_SEND -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch linux-5.10.216/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch --- linux-5.10.209/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0261-arm-Add-support-for-lazy-preemption.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 125d4e163b1aa93781f9cf4673f729053af2bc53 Mon Sep 17 00:00:00 2001 +From 750131496b762a1185ae9e9953a569ed1d80d31a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 31 Oct 2012 12:04:11 +0100 Subject: [PATCH 261/323] arm: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the arm pieces for lazy preempt. @@ -18,7 +18,7 @@ 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index c01251683018..ee2cbe8ad502 100644 +index c01251683018d..ee2cbe8ad502d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -107,6 +107,7 @@ config ARM @@ -30,7 +30,7 @@ select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RSEQ diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h -index fcccf35f5cf9..3b981ad0c322 100644 +index fcccf35f5cf96..3b981ad0c3222 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h @@ -46,6 +46,7 @@ struct cpu_context_save { @@ -70,7 +70,7 @@ #endif /* __KERNEL__ */ diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c -index 70993af22d80..024c65c3a0f2 100644 +index 70993af22d80c..024c65c3a0f23 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c @@ -43,6 +43,7 @@ int main(void) @@ -82,7 +82,7 @@ DEFINE(TI_TASK, offsetof(struct thread_info, task)); DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S -index 030351d169aa..d6086559168d 100644 +index 030351d169aac..d6086559168db 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -206,11 +206,18 @@ __irq_svc: @@ -123,7 +123,7 @@ __und_fault: diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S -index 9b3c737575e9..a30b1a1cc4d1 100644 +index 9b3c737575e91..a30b1a1cc4d18 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -92,6 +92,7 @@ __ret_fast_syscall: @@ -135,7 +135,7 @@ ENDPROC(ret_fast_syscall) diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c -index a3a38d0a4c85..f04ccf19ab1f 100644 +index a3a38d0a4c853..f04ccf19ab1fd 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -649,7 +649,8 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall) @@ -149,5 +149,5 @@ } else { if (unlikely(!user_mode(regs))) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch linux-5.10.216/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch --- linux-5.10.209/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0262-powerpc-Add-support-for-lazy-preemption.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 8e5e88a7528b5f0b0f2b9835deaf8b6db693500f Mon Sep 17 00:00:00 2001 +From 84c0c07316ac8fa0e8f692bb0b27bb5fa2cbf0c0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 10:14:11 +0100 Subject: [PATCH 262/323] powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Implement the powerpc pieces for lazy preempt. @@ -18,7 +18,7 @@ 6 files changed, 49 insertions(+), 18 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index b3ab6c2d9f66..6d8ce54ad6dd 100644 +index b3ab6c2d9f66c..6d8ce54ad6dd0 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -230,6 +230,7 @@ config PPC @@ -30,7 +30,7 @@ select MMU_GATHER_PAGE_SIZE select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h -index ff31d2fa2140..23bfe231fda3 100644 +index ff31d2fa2140f..23bfe231fda3e 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -54,6 +54,8 @@ @@ -88,7 +88,7 @@ /* Bits in local_flags */ /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */ diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c -index 5c125255571c..597379121407 100644 +index 5c125255571cd..597379121407a 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c @@ -189,6 +189,7 @@ int main(void) @@ -100,7 +100,7 @@ #ifdef CONFIG_PPC64 OFFSET(DCACHEL1BLOCKSIZE, ppc64_caches, l1d.block_size); diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S -index 459f5d00b990..fc9517a97640 100644 +index 459f5d00b9904..fc9517a976407 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S @@ -414,7 +414,9 @@ ret_from_syscall: @@ -179,7 +179,7 @@ andi. r0,r9,_TIF_USER_WORK_MASK beq restore_user diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S -index f579ce46eef2..715ff292a8f8 100644 +index f579ce46eef2d..715ff292a8f8a 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S @@ -1080,7 +1080,7 @@ _GLOBAL(ret_from_except_lite) @@ -224,7 +224,7 @@ restore: /* diff --git a/arch/powerpc/kernel/syscall_64.c b/arch/powerpc/kernel/syscall_64.c -index 310bcd768cd5..ae3212dcf562 100644 +index 310bcd768cd5a..ae3212dcf5627 100644 --- a/arch/powerpc/kernel/syscall_64.c +++ b/arch/powerpc/kernel/syscall_64.c @@ -193,7 +193,7 @@ notrace unsigned long syscall_exit_prepare(unsigned long r3, @@ -263,5 +263,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch linux-5.10.216/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch --- linux-5.10.209/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0263-arch-arm64-Add-lazy-preempt-support.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7499fc472caecd0270f69d5857ca8a53cc6dad83 Mon Sep 17 00:00:00 2001 +From f521236471a577e15243b9cc9a7b705a00b68443 Mon Sep 17 00:00:00 2001 From: Anders Roxell Date: Thu, 14 May 2015 17:52:17 +0200 Subject: [PATCH 263/323] arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, @@ -23,7 +23,7 @@ 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 13cf137da999..7681d7b65c7d 100644 +index 13cf137da999a..7681d7b65c7d4 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -173,6 +173,7 @@ config ARM64 @@ -35,7 +35,7 @@ select HAVE_FUNCTION_ARG_ACCESS_API select HAVE_FUTEX_CMPXCHG if FUTEX diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h -index f1486b32502c..7a5770d825b9 100644 +index f1486b32502c1..7a5770d825b91 100644 --- a/arch/arm64/include/asm/preempt.h +++ b/arch/arm64/include/asm/preempt.h @@ -70,13 +70,36 @@ static inline bool __preempt_count_dec_and_test(void) @@ -77,7 +77,7 @@ #ifdef CONFIG_PREEMPTION diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h -index cdcf307764aa..6eb36a2126e8 100644 +index cdcf307764aad..6eb36a2126e84 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -29,6 +29,7 @@ struct thread_info { @@ -114,7 +114,7 @@ _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \ _TIF_SYSCALL_EMU) diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c -index 7d32fc959b1a..b2f29bd2ae87 100644 +index 7d32fc959b1a0..b2f29bd2ae871 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -30,6 +30,7 @@ int main(void) @@ -126,10 +126,10 @@ #ifdef CONFIG_ARM64_SW_TTBR0_PAN DEFINE(TSK_TI_TTBR0, offsetof(struct task_struct, thread_info.ttbr0)); diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S -index a94acea770c7..0bfa079043f8 100644 +index 020a455824bed..d9dd46d7aa72d 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S -@@ -523,9 +523,18 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKING +@@ -527,9 +527,18 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKING mrs x0, daif orr x24, x24, x0 alternative_else_nop_endif @@ -151,7 +151,7 @@ mov x0, sp diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c -index b6fbbd527dd7..94eed0dc3afc 100644 +index b6fbbd527dd79..94eed0dc3afcd 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -921,7 +921,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, @@ -164,5 +164,5 @@ local_daif_restore(DAIF_PROCCTX_NOIRQ); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch linux-5.10.216/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch --- linux-5.10.209/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0264-jump-label-disable-if-stop_machine-is-used.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 915e18f01ac0c97a6dc374b940a96a105bf57c62 Mon Sep 17 00:00:00 2001 +From 66667665cd371c8bab9c810092e117a5022639ec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Jul 2015 17:14:48 +0200 Subject: [PATCH 264/323] jump-label: disable if stop_machine() is used -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. @@ -25,7 +25,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index ee2cbe8ad502..73c55cb2f296 100644 +index ee2cbe8ad502d..73c55cb2f2968 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -67,7 +67,7 @@ config ARM @@ -38,5 +38,5 @@ select HAVE_ARCH_MMAP_RND_BITS if MMU select HAVE_ARCH_SECCOMP -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch linux-5.10.216/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch --- linux-5.10.209/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0265-leds-trigger-disable-CPU-trigger-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 524ea188033506aaa1b70534af78b30fe718ae98 Mon Sep 17 00:00:00 2001 +From 6bdcaba379cad265cf5e29cf7f7dbc54de351b1b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 23 Jan 2014 14:45:59 +0100 Subject: [PATCH 265/323] leds: trigger: disable CPU trigger on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 @@ -24,7 +24,7 @@ 1 file changed, 1 insertion(+) diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig -index ce9429ca6dde..29ccbd6acf43 100644 +index ce9429ca6ddea..29ccbd6acf43f 100644 --- a/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig @@ -64,6 +64,7 @@ config LEDS_TRIGGER_BACKLIGHT @@ -36,5 +36,5 @@ This allows LEDs to be controlled by active CPUs. This shows the active CPUs across an array of LEDs so you can see which -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch linux-5.10.216/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch --- linux-5.10.209/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0266-tty-serial-omap-Make-the-locking-RT-aware.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From c436953e83166f6588469c76032a7038a50cc585 Mon Sep 17 00:00:00 2001 +From e012f26787562417f3425ebe333df5140eaacf86 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 Subject: [PATCH 266/323] tty/serial/omap: Make the locking RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and @@ -14,7 +14,7 @@ 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c -index 84e8158088cd..342005ed5ebf 100644 +index 84e8158088cd2..342005ed5ebf8 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1311,13 +1311,10 @@ serial_omap_console_write(struct console *co, const char *s, @@ -45,5 +45,5 @@ static int __init -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch linux-5.10.216/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch --- linux-5.10.209/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0267-tty-serial-pl011-Make-the-locking-work-on-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 822739997ff16caa50f619a00344655f21d65a4b Mon Sep 17 00:00:00 2001 +From 2cd854436b15583e89ae35df3346a5b9fb934086 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 Subject: [PATCH 267/323] tty/serial/pl011: Make the locking work on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. @@ -13,7 +13,7 @@ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index d4a93a94b4ca..275c625e3eb9 100644 +index d4a93a94b4ca6..275c625e3eb95 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2207,18 +2207,24 @@ pl011_console_write(struct console *co, const char *s, unsigned int count) @@ -56,5 +56,5 @@ clk_disable(uap->clk); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch linux-5.10.216/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch --- linux-5.10.209/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0268-ARM-enable-irq-in-translation-section-permission-fau.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,4 +1,4 @@ -From 0a5ad9dd4773a61fe0f0d6928ef603081390df21 Mon Sep 17 00:00:00 2001 +From 4c7d7e9c87e17c07e0f216c449fc5dfb5f46233c Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 Subject: [PATCH 268/323] ARM: enable irq in translation/section permission @@ -6,7 +6,7 @@ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Probably happens on all ARM, with CONFIG_PREEMPT_RT @@ -67,7 +67,7 @@ 1 file changed, 6 insertions(+) diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c -index af5177801fb1..1de016008e2e 100644 +index af5177801fb10..1de016008e2ee 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -400,6 +400,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr, @@ -91,5 +91,5 @@ return 0; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch linux-5.10.216/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch --- linux-5.10.209/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0269-genirq-update-irq_set_irqchip_state-documentation.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 0eeda295a1e21ff716f482a4115822e9789e305f Mon Sep 17 00:00:00 2001 +From 0b1b363dab2cf6ca9d71117560a36d8c4bf2a28c Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:00 -0600 Subject: [PATCH 269/323] genirq: update irq_set_irqchip_state documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the @@ -15,7 +15,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index 5ec167fb77b9..228699d9c85c 100644 +index 5ec167fb77b91..228699d9c85ca 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2756,7 +2756,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state); @@ -28,5 +28,5 @@ */ int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch linux-5.10.216/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch --- linux-5.10.209/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0270-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From bbb0b6e29c89355e0fb77bef3b06badef0ccc946 Mon Sep 17 00:00:00 2001 +From dcfc08f2fd2de1d5511f3d81b854f34fc8f95319 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:01 -0600 Subject: [PATCH 270/323] KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating the vgic and timer states to prevent the calling task from migrating to @@ -24,7 +24,7 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c -index 4d63fcd7574b..06fced951e75 100644 +index 4d63fcd7574b2..06fced951e754 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -708,7 +708,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) @@ -55,5 +55,5 @@ /* * The ARMv8 architecture doesn't give the hypervisor -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch linux-5.10.216/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch --- linux-5.10.209/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0271-arm64-fpsimd-Delay-freeing-memory-in-fpsimd_flush_th.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From d0fe894184b649a8d383fa8d2db7ae3233b04428 Mon Sep 17 00:00:00 2001 +From b38461511249843a7d75791bdf86bcdfa9d2bd16 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 25 Jul 2018 14:02:38 +0200 Subject: [PATCH 271/323] arm64: fpsimd: Delay freeing memory in fpsimd_flush_thread() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz fpsimd_flush_thread() invokes kfree() via sve_free() within a preempt disabled section which is not working on -RT. @@ -16,7 +16,7 @@ 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c -index a9bbfb800ec2..aa631771e0dc 100644 +index a9bbfb800ec2b..aa631771e0dcd 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -226,6 +226,16 @@ static void sve_free(struct task_struct *task) @@ -62,5 +62,5 @@ /* -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch linux-5.10.216/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch --- linux-5.10.209/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0272-x86-Enable-RT-also-on-32bit.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b4def70f635385c0a02c2261e1915671363eeccd Mon Sep 17 00:00:00 2001 +From c1e264bdca999c7fc08f769dc80833767f1d2a89 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Nov 2019 17:49:20 +0100 Subject: [PATCH 272/323] x86: Enable RT also on 32bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Sebastian Andrzej Siewior --- @@ -10,7 +10,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index b9f68b01a8c8..ca79a831f611 100644 +index f461b699c25d0..5de3655b3e410 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,7 +27,6 @@ config X86_64 @@ -30,5 +30,5 @@ select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_SPINLOCKS -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch linux-5.10.216/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch --- linux-5.10.209/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0273-ARM-Allow-to-enable-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 98a5d5b92ddcd0df7aa708accc20a07b6008d86a Mon Sep 17 00:00:00 2001 +From a2c097a17b4106044f83dd26796464e34ffed4ab Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:29 +0200 Subject: [PATCH 273/323] ARM: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ 1 file changed, 2 insertions(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 73c55cb2f296..adf9347724ed 100644 +index 73c55cb2f2968..adf9347724ed8 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -32,6 +32,7 @@ config ARM @@ -32,5 +32,5 @@ select SET_FS select SYS_SUPPORTS_APM_EMULATION -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch linux-5.10.216/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch --- linux-5.10.209/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0274-ARM64-Allow-to-enable-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 27aef9eb166603124a97edf3a14035b406f36096 Mon Sep 17 00:00:00 2001 +From 9e80e759aedc7fcd7c5fd84554645e47d0a7bc29 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:35 +0200 Subject: [PATCH 274/323] ARM64: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 7681d7b65c7d..ab8b86b23190 100644 +index 7681d7b65c7d4..ab8b86b231909 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -76,6 +76,7 @@ config ARM64 @@ -32,5 +32,5 @@ select POWER_SUPPLY select SET_FS -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch linux-5.10.216/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch --- linux-5.10.209/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0275-powerpc-traps-Use-PREEMPT_RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 25b6e91e812b8fe81cda3732be60b3d8402fee43 Mon Sep 17 00:00:00 2001 +From adc90a882bfc81c045e47cef64d7bfbdaa33e23e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 26 Jul 2019 11:30:49 +0200 Subject: [PATCH 275/323] powerpc: traps: Use PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add PREEMPT_RT to the backtrace if enabled. @@ -12,7 +12,7 @@ 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c -index d39a4a6b4ddf..75a6c83299ad 100644 +index 5dfe1aea62054..51a101747b79a 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -259,12 +259,17 @@ static char *get_mmu_str(void) @@ -35,5 +35,5 @@ IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "", debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "", -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch linux-5.10.216/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch --- linux-5.10.209/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0276-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From afebcd1022d509a6887f066b6601caf561ee1ee5 Mon Sep 17 00:00:00 2001 +From ab9ea5baea539a220a12cd2b360bd4aa839effc4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:54 +0100 Subject: [PATCH 276/323] powerpc/pseries/iommu: Use a locallock instead local_irq_save() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The locallock protects the per-CPU variable tce_page. The function attempts to allocate memory while tce_page is protected (by disabling @@ -18,7 +18,7 @@ 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c -index 245f1f8df656..f05555dde8e7 100644 +index 245f1f8df6563..f05555dde8e7f 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -24,6 +24,7 @@ @@ -113,5 +113,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch linux-5.10.216/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch --- linux-5.10.209/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0277-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f6ff6354df6d4609ce786969f2fd16afeaf88fba Mon Sep 17 00:00:00 2001 +From 868a7b96570b72a59be9cd5e44281790f0f08938 Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Fri, 24 Apr 2015 15:53:13 +0000 Subject: [PATCH 277/323] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz While converting the openpic emulation code to use a raw_spinlock_t enables guests to run on RT, there's still a performance issue. For interrupts sent in @@ -29,7 +29,7 @@ 1 file changed, 1 insertion(+) diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig -index 549591d9aaa2..efb5bfe93f70 100644 +index 549591d9aaa2c..efb5bfe93f705 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig @@ -178,6 +178,7 @@ config KVM_E500MC @@ -41,5 +41,5 @@ select HAVE_KVM_IRQFD select HAVE_KVM_IRQ_ROUTING -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch linux-5.10.216/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch --- linux-5.10.209/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0278-powerpc-stackprotector-work-around-stack-guard-init-.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From fdb2b0b4898a26e8910152ed1ab6fa6748d1b839 Mon Sep 17 00:00:00 2001 +From 8a5fd92365934ca6cf2c26a16c1eb3a859048ff4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:29 +0100 Subject: [PATCH 278/323] powerpc/stackprotector: work around stack-guard init from atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is invoked from the secondary CPU in atomic context. On x86 we use tsc instead. On Power we XOR it against mftb() so lets use stack address @@ -16,7 +16,7 @@ 1 file changed, 4 insertions(+) diff --git a/arch/powerpc/include/asm/stackprotector.h b/arch/powerpc/include/asm/stackprotector.h -index 1c8460e23583..b1653c160bab 100644 +index 1c8460e235838..b1653c160bab9 100644 --- a/arch/powerpc/include/asm/stackprotector.h +++ b/arch/powerpc/include/asm/stackprotector.h @@ -24,7 +24,11 @@ static __always_inline void boot_init_stack_canary(void) @@ -32,5 +32,5 @@ canary ^= LINUX_VERSION_CODE; canary &= CANARY_MASK; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch linux-5.10.216/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch --- linux-5.10.209/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0279-powerpc-Avoid-recursive-header-includes.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 725e44480dc7376b55d990292c119883ddc51288 Mon Sep 17 00:00:00 2001 +From 48858c584eb71cb0b2fd001b8738dd142a37cfd7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 8 Jan 2021 19:48:21 +0100 Subject: [PATCH 279/323] powerpc: Avoid recursive header includes -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz - The include of bug.h leads to an include of printk.h which gets back to spinlock.h and complains then about missing xchg(). @@ -18,7 +18,7 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/include/asm/cmpxchg.h b/arch/powerpc/include/asm/cmpxchg.h -index cf091c4c22e5..7371f7e23c35 100644 +index cf091c4c22e53..7371f7e23c357 100644 --- a/arch/powerpc/include/asm/cmpxchg.h +++ b/arch/powerpc/include/asm/cmpxchg.h @@ -5,7 +5,7 @@ @@ -31,7 +31,7 @@ #ifdef __BIG_ENDIAN #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) diff --git a/arch/powerpc/include/asm/simple_spinlock_types.h b/arch/powerpc/include/asm/simple_spinlock_types.h -index 0f3cdd8faa95..d45561e9e6ba 100644 +index 0f3cdd8faa959..d45561e9e6bab 100644 --- a/arch/powerpc/include/asm/simple_spinlock_types.h +++ b/arch/powerpc/include/asm/simple_spinlock_types.h @@ -2,7 +2,7 @@ @@ -44,5 +44,5 @@ #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch linux-5.10.216/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch --- linux-5.10.209/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0280-POWERPC-Allow-to-enable-RT.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 934b061dd0089023163d44f7670bc3b0a4ebb7b1 Mon Sep 17 00:00:00 2001 +From 28b743e33eb850b2026c045127f7fd99b65d4467 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:41 +0200 Subject: [PATCH 280/323] POWERPC: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Allow to select RT. @@ -12,7 +12,7 @@ 1 file changed, 2 insertions(+) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig -index 6d8ce54ad6dd..065ed526be1a 100644 +index 6d8ce54ad6dd0..065ed526be1a3 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -146,6 +146,7 @@ config PPC @@ -32,5 +32,5 @@ select IOMMU_HELPER if PPC64 select IRQ_DOMAIN -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch linux-5.10.216/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch --- linux-5.10.209/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0281-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From b7d25d7dc9f6a1923426c6e235061e825434e4fd Mon Sep 17 00:00:00 2001 +From 6d3e29ed264529d441b4190e9c857dc5b6fd3f26 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 Subject: [PATCH 281/323] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz They're nondeterministic, and lead to ___might_sleep() splats in -rt. OTOH, they're a lot less wasteful than an rtmutex per page. @@ -16,7 +16,7 @@ 2 files changed, 37 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c -index 0636df6b67db..1a7523cefbe9 100644 +index 0636df6b67db6..1a7523cefbe9b 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -59,6 +59,40 @@ static void zram_free_page(struct zram *zram, size_t index); @@ -77,7 +77,7 @@ } diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h -index f2fd46daa760..7e4dd447e1dd 100644 +index f2fd46daa7604..7e4dd447e1ddd 100644 --- a/drivers/block/zram/zram_drv.h +++ b/drivers/block/zram/zram_drv.h @@ -63,6 +63,7 @@ struct zram_table_entry { @@ -89,5 +89,5 @@ ktime_t ac_time; #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch linux-5.10.216/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch --- linux-5.10.209/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0282-tpm_tis-fix-stall-after-iowrite-s.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From ae8783c450876b505b7c6066ccda3b68e8d08c58 Mon Sep 17 00:00:00 2001 +From b24225376d8eaf32f7f3b42ac86a689baf6303f2 Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Tue, 15 Aug 2017 15:13:08 -0500 Subject: [PATCH 282/323] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. @@ -26,7 +26,7 @@ 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c -index 3e1bb28b7efd..c26ed0ce6b34 100644 +index 3e1bb28b7efdf..c26ed0ce6b348 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -50,6 +50,31 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da @@ -80,5 +80,5 @@ return 0; } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch linux-5.10.216/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch --- linux-5.10.209/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0283-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 1f9d07b4cf227f0cf0800f96c10f9ef143b5d663 Mon Sep 17 00:00:00 2001 +From 86ce77309a47255d844f6973c90de72cfaa7bec1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:56 -0500 Subject: [PATCH 283/323] signals: Allow rt tasks to cache one sigqueue struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. @@ -17,7 +17,7 @@ 5 files changed, 69 insertions(+), 5 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 665a17e4f69b..a73528e8235d 100644 +index 665a17e4f69be..a73528e8235d4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -992,6 +992,7 @@ struct task_struct { @@ -29,7 +29,7 @@ sigset_t real_blocked; /* Restored if set_restore_sigmask() was used: */ diff --git a/include/linux/signal.h b/include/linux/signal.h -index b256f9c65661..ebf6c515a7b2 100644 +index b256f9c65661c..ebf6c515a7b20 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -265,6 +265,7 @@ static inline void init_sigpending(struct sigpending *sig) @@ -41,7 +41,7 @@ /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ static inline int valid_signal(unsigned long sig) diff --git a/kernel/exit.c b/kernel/exit.c -index bacdaf980933..b86f388d3e64 100644 +index bacdaf980933b..b86f388d3e642 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -199,7 +199,7 @@ static void __exit_signal(struct task_struct *tsk) @@ -54,7 +54,7 @@ spin_unlock(&sighand->siglock); diff --git a/kernel/fork.c b/kernel/fork.c -index 2a11bf5f9e30..dfefb6e7e082 100644 +index 2a11bf5f9e301..dfefb6e7e082b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2046,6 +2046,7 @@ static __latent_entropy struct task_struct *copy_process( @@ -66,7 +66,7 @@ p->utime = p->stime = p->gtime = 0; #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME diff --git a/kernel/signal.c b/kernel/signal.c -index e8819aabe3cd..e1f263cbcf09 100644 +index e8819aabe3cd5..e1f263cbcf09a 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -20,6 +20,7 @@ @@ -208,5 +208,5 @@ if (q) q->flags |= SIGQUEUE_PREALLOC; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch linux-5.10.216/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch --- linux-5.10.209/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0284-signal-Prevent-double-free-of-user-struct.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9a8853e64ab5f1c44db176464996da3ba86d2a8e Mon Sep 17 00:00:00 2001 +From 83c6119b2a9dac70fd3d5c95c6537cb537172a27 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Tue, 7 Apr 2020 10:54:13 +0100 Subject: [PATCH 284/323] signal: Prevent double-free of user struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The way user struct reference counting works changed significantly with, @@ -33,7 +33,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c -index e1f263cbcf09..a1eeecb4922d 100644 +index e1f263cbcf09a..a1eeecb4922db 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -495,8 +495,8 @@ static void sigqueue_free_current(struct sigqueue *q) @@ -48,5 +48,5 @@ __sigqueue_free(q); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch linux-5.10.216/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch --- linux-5.10.209/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0285-genirq-Disable-irqpoll-on-rt.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4795907a92ad1bf9383b0c748facb436cac71e36 Mon Sep 17 00:00:00 2001 +From 3248e85351bbdc0e8d61c0b854d0ac1e22deb504 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:57 -0500 Subject: [PATCH 285/323] genirq: Disable irqpoll on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Creates long latencies for no value @@ -13,7 +13,7 @@ 1 file changed, 8 insertions(+) diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c -index f865e5f4d382..dc7311dd74b1 100644 +index f865e5f4d3825..dc7311dd74b11 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c @@ -443,6 +443,10 @@ MODULE_PARM_DESC(noirqdebug, "Disable irq lockup detection when true"); @@ -39,5 +39,5 @@ printk(KERN_WARNING "Misrouted IRQ fixup and polling support " "enabled\n"); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch linux-5.10.216/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch --- linux-5.10.209/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0286-sysfs-Add-sys-kernel-realtime-entry.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e7909a8ac08579fb76c51cde86c1171c8d1c6c36 Mon Sep 17 00:00:00 2001 +From 8518e39d983ac366a89d0844f908b50e80ef94b3 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 Subject: [PATCH 286/323] sysfs: Add /sys/kernel/realtime entry -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. @@ -20,7 +20,7 @@ 1 file changed, 12 insertions(+) diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c -index e20c19e3ba49..777168d58f02 100644 +index e20c19e3ba49c..777168d58f02e 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -143,6 +143,15 @@ KERNEL_ATTR_RO(vmcoreinfo); @@ -50,5 +50,5 @@ NULL }; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0287-Add-localversion-for-RT-release.patch linux-5.10.216/debian/patches-rt/0287-Add-localversion-for-RT-release.patch --- linux-5.10.209/debian/patches-rt/0287-Add-localversion-for-RT-release.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0287-Add-localversion-for-RT-release.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 180a0118d4485cb909de0be0f7ebb61adce763e1 Mon Sep 17 00:00:00 2001 +From 8c5e16acf632039df23dc17f11d5ebecdb80f6a5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 Subject: [PATCH 287/323] Add localversion for -RT release -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Signed-off-by: Thomas Gleixner --- @@ -12,11 +12,11 @@ diff --git a/localversion-rt b/localversion-rt new file mode 100644 -index 000000000000..21988f9ad53f +index 0000000000000..21988f9ad53f1 --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ +-rt34 -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch linux-5.10.216/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch --- linux-5.10.209/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0288-net-xfrm-Use-sequence-counter-with-associated-spinlo.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 97138dbb6886695284b96e3680f1533beae6e43a Mon Sep 17 00:00:00 2001 +From 349854c1b05d1d8a452bd32104ceec210d2612f2 Mon Sep 17 00:00:00 2001 From: "Ahmed S. Darwish" Date: Tue, 16 Mar 2021 11:56:30 +0100 Subject: [PATCH 288/323] net: xfrm: Use sequence counter with associated spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A sequence counter write section must be serialized or its internal state can get corrupted. A plain seqcount_t does not contain the @@ -26,7 +26,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h -index 7b87da22b295..fef22e029c0d 100644 +index 7b87da22b2950..fef22e029c0d3 100644 --- a/include/net/netns/xfrm.h +++ b/include/net/netns/xfrm.h @@ -77,7 +77,7 @@ struct netns_xfrm { @@ -39,5 +39,5 @@ spinlock_t xfrm_policy_lock; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch linux-5.10.216/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch --- linux-5.10.209/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0289-sched-Fix-migration_cpu_stop-requeueing.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 013f5d7501b106952e04d54b0803c2d1ae9a4876 Mon Sep 17 00:00:00 2001 +From e50b6857b0abf2d6d9d1dda8ef960165b53fa268 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:30 -0400 Subject: [PATCH 289/323] sched: Fix migration_cpu_stop() requeueing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 8a6edb5257e2a84720fe78cb179eca58ba76126f upstream. @@ -64,7 +64,7 @@ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c847d17e3b04..df9c4c3838c0 100644 +index c847d17e3b04a..df9c4c3838c00 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1974,6 +1974,24 @@ static int migration_cpu_stop(void *data) @@ -143,5 +143,5 @@ } else { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch linux-5.10.216/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch --- linux-5.10.209/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0290-sched-Simplify-migration_cpu_stop.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 4f468832c2a5bb5c0bb23b453038ff4fed722061 Mon Sep 17 00:00:00 2001 +From 8c83028791cd3c1ffa615c82535020759b6adf99 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:31 -0400 Subject: [PATCH 290/323] sched: Simplify migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit c20cf065d4a619d394d23290093b1002e27dff86 upstream. @@ -28,7 +28,7 @@ 1 file changed, 8 insertions(+), 48 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index df9c4c3838c0..31fa925852e5 100644 +index df9c4c3838c00..31fa925852e5b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1950,8 +1950,8 @@ static struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf, @@ -138,5 +138,5 @@ wake_up_var(&pending->refs); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch linux-5.10.216/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch --- linux-5.10.209/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0291-sched-Collate-affine_move_task-stoppers.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e62b758a0149648256ed0fa194d9e107e294d8aa Mon Sep 17 00:00:00 2001 +From aebf4a48df8de27ad8c21a27c8840b03ce9dbef2 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:32 -0400 Subject: [PATCH 291/323] sched: Collate affine_move_task() stoppers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 58b1a45086b5f80f2b2842aa7ed0da51a64a302b upstream. @@ -22,7 +22,7 @@ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 31fa925852e5..3130289baf79 100644 +index 31fa925852e5b..3130289baf79d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2291,30 +2291,23 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag @@ -65,5 +65,5 @@ if (!is_migration_disabled(p)) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch linux-5.10.216/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch --- linux-5.10.209/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0292-sched-Optimize-migration_cpu_stop.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b1353ab8df1e6dd3bf9afaef3096749db2a193f1 Mon Sep 17 00:00:00 2001 +From 918554944b05fe63566fcc038f0e680fbd618323 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:33 -0400 Subject: [PATCH 292/323] sched: Optimize migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 3f1bc119cd7fc987c8ed25ffb717f99403bb308c upstream. @@ -23,7 +23,7 @@ 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3130289baf79..e28fb33afa95 100644 +index 3130289baf79d..e28fb33afa954 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1988,14 +1988,25 @@ static int migration_cpu_stop(void *data) @@ -54,5 +54,5 @@ /* * This happens when we get migrated between migrate_enable()'s -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch linux-5.10.216/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch --- linux-5.10.209/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0293-sched-Fix-affine_move_task-self-concurrency.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From e9faaf024fdd553b55aaed31855385da7e9d505a Mon Sep 17 00:00:00 2001 +From bc2dcc47f1948e98b64ad439afcfa5fbe39a311c Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:34 -0400 Subject: [PATCH 293/323] sched: Fix affine_move_task() self-concurrency -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 9e81889c7648d48dd5fe13f41cbc99f3c362484a upstream. @@ -33,7 +33,7 @@ 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index e28fb33afa95..76fa3daf1f60 100644 +index e28fb33afa954..76fa3daf1f60b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1916,6 +1916,7 @@ struct migration_arg { @@ -92,5 +92,5 @@ if (flags & SCA_MIGRATE_ENABLE) return 0; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch linux-5.10.216/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch --- linux-5.10.209/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0294-sched-Simplify-set_affinity_pending-refcounts.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 6681b566fe9ffe9365121a790537ada2e4ef97ba Mon Sep 17 00:00:00 2001 +From e687fc6a201ebfd56b68770af596e08be89af58b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 8 Jun 2021 00:37:35 -0400 Subject: [PATCH 294/323] sched: Simplify set_affinity_pending refcounts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 50caf9c14b1498c90cf808dbba2ca29bd32ccba4 upstream. @@ -24,7 +24,7 @@ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 76fa3daf1f60..d3b9d69171a2 100644 +index 76fa3daf1f60b..d3b9d69171a2e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1914,6 +1914,10 @@ struct migration_arg { @@ -125,5 +125,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch linux-5.10.216/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch --- linux-5.10.209/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0295-sched-Don-t-defer-CPU-pick-to-migration_cpu_stop.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From b625852d41e17fb13b4caf7192734866534d9799 Mon Sep 17 00:00:00 2001 +From 3ec88f282d46a8158f44cb992c001e730008d864 Mon Sep 17 00:00:00 2001 From: Valentin Schneider Date: Tue, 8 Jun 2021 00:37:36 -0400 Subject: [PATCH 295/323] sched: Don't defer CPU pick to migration_cpu_stop() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 475ea6c60279e9f2ddf7e4cf2648cd8ae0608361 upstream. @@ -37,7 +37,7 @@ 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index d3b9d69171a2..81b342d6629b 100644 +index d3b9d69171a2e..81b342d6629bb 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1958,7 +1958,6 @@ static int migration_cpu_stop(void *data) @@ -96,5 +96,5 @@ } pending = p->migration_pending; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch linux-5.10.216/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch --- linux-5.10.209/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0296-printk-Enhance-the-condition-check-of-msleep-in-pr_f.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 6e1b154dfc59c96068eafef9fafbda28b723d3e6 Mon Sep 17 00:00:00 2001 +From 9b4c735dc4d95cc8a653acaf8078cdadc77f096f Mon Sep 17 00:00:00 2001 From: Chao Qin Date: Mon, 19 Jul 2021 10:26:50 +0800 Subject: [PATCH 296/323] printk: Enhance the condition check of msleep in pr_flush() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz [ Upstream commit 83e9288d9c4295d1195e9d780fcbc42c72ba4a83 ] @@ -29,10 +29,10 @@ 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 14cb111fe9f0..d2205872304d 100644 +index 3fdd06c05f4ea..ea7a14a485382 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3554,7 +3554,9 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) +@@ -3577,7 +3577,9 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) u64 diff; u64 seq; @@ -44,5 +44,5 @@ seq = prb_next_seq(prb); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch linux-5.10.216/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch --- linux-5.10.209/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0297-locking-rwsem-rt-Remove-might_sleep-in-__up_read.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7131b777e7276a566838fdfb4a0b2ddc44ad2eca Mon Sep 17 00:00:00 2001 +From fa02c4e204fc73b01612c59d6ad3fcb0b9ab80a8 Mon Sep 17 00:00:00 2001 From: Andrew Halaney Date: Tue, 6 Apr 2021 17:19:52 -0500 Subject: [PATCH 297/323] locking/rwsem-rt: Remove might_sleep() in __up_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz There's no chance of sleeping here, the reader is giving up the lock and possibly waking up the writer who is waiting on it. @@ -15,7 +15,7 @@ 1 file changed, 1 deletion(-) diff --git a/kernel/locking/rwsem-rt.c b/kernel/locking/rwsem-rt.c -index 274172d5bb3a..b61edc4dcb73 100644 +index 274172d5bb3a5..b61edc4dcb739 100644 --- a/kernel/locking/rwsem-rt.c +++ b/kernel/locking/rwsem-rt.c @@ -198,7 +198,6 @@ void __up_read(struct rw_semaphore *sem) @@ -27,5 +27,5 @@ /* * Wake the writer, i.e. the rtmutex owner. It might release the -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch linux-5.10.216/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch --- linux-5.10.209/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0298-mm-zsmalloc-Convert-zsmalloc_handle.lock-to-spinlock.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From b4a9c84408720dd6da0cdb52fc3e7070aef9c4fe Mon Sep 17 00:00:00 2001 +From 8fa6b236cbdb58b7fb6358b0ea25889987c7765b Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Tue, 24 Aug 2021 13:08:14 +0200 Subject: [PATCH 298/323] mm, zsmalloc: Convert zsmalloc_handle.lock to spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz local_lock_t becoming a synonym of spinlock_t had consequences for the RT mods to zsmalloc, which were taking a mutex while holding a local_lock, @@ -20,7 +20,7 @@ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c -index 7dad2ff3e778..16ce2b05df90 100644 +index 7dad2ff3e7785..16ce2b05df904 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -82,7 +82,7 @@ @@ -78,5 +78,5 @@ bit_spin_unlock(HANDLE_PIN_BIT, (unsigned long *)handle); #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch linux-5.10.216/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch --- linux-5.10.209/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0299-sched-Fix-get_push_task-vs-migrate_disable.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 93c4258bc009109bee258c30fa2a53680c8b1f9a Mon Sep 17 00:00:00 2001 +From 03d41accee2585cf05b399e1feeb58c3c2dc26c3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Aug 2021 15:37:38 +0200 Subject: [PATCH 299/323] sched: Fix get_push_task() vs migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz push_rt_task() attempts to move the currently running task away if the next runnable task has migration disabled and therefore is pinned on the @@ -28,7 +28,7 @@ 1 file changed, 3 insertions(+) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index ad854a670701..bda12827832e 100644 +index ad854a670701b..bda12827832e9 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1949,6 +1949,9 @@ static inline struct task_struct *get_push_task(struct rq *rq) @@ -42,5 +42,5 @@ return get_task_struct(p); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch linux-5.10.216/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch --- linux-5.10.209/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0300-sched-Switch-wait_task_inactive-to-HRTIMER_MODE_REL_.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f29a6f7bb4568b4ac2d5a9226d503db7a2c69bab Mon Sep 17 00:00:00 2001 +From c58157127499876388024179720f201107eef2fe Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 24 Aug 2021 22:47:37 +0200 Subject: [PATCH 300/323] sched: Switch wait_task_inactive to HRTIMER_MODE_REL_HARD -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz With PREEMPT_RT enabled all hrtimers callbacks will be invoked in softirq mode unless they are explicitly marked as HRTIMER_MODE_HARD. @@ -31,7 +31,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 81b342d6629b..6735872a8508 100644 +index 81b342d6629bb..6735872a8508b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2739,7 +2739,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) @@ -44,5 +44,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch linux-5.10.216/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch --- linux-5.10.209/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0301-preempt-Move-preempt_enable_no_resched-to-the-RT-blo.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 8cc1a32ca44ae3484956295c75afcc2234e809ae Mon Sep 17 00:00:00 2001 +From 9a8af8cf25c2266997a715afdfce6804667f5cf3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 22 Sep 2021 19:34:40 +0200 Subject: [PATCH 301/323] preempt: Move preempt_enable_no_resched() to the RT block -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz preempt_enable_no_resched() should point to preempt_enable() on PREEMPT_RT so nobody is playing any preempt tricks and enables @@ -21,7 +21,7 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index af39859f02ee..7b5b2ed55531 100644 +index af39859f02ee1..7b5b2ed55531a 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -208,12 +208,12 @@ do { \ @@ -41,5 +41,5 @@ #define preemptible() (preempt_count() == 0 && !irqs_disabled()) -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch linux-5.10.216/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch --- linux-5.10.209/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0302-mm-Disable-NUMA_BALANCING_DEFAULT_ENABLED-and-TRANSP.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 4e8d89996a692bd5d4a094e55c0a88044993057f Mon Sep 17 00:00:00 2001 +From abac8a6ec90894bf97f3d395bc2329c03c6b9f75 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 29 Oct 2021 10:07:11 +0200 Subject: [PATCH 302/323] mm: Disable NUMA_BALANCING_DEFAULT_ENABLED and TRANSPARENT_HUGEPAGE on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz TRANSPARENT_HUGEPAGE: There are potential non-deterministic delays to an RT thread if a critical @@ -34,7 +34,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/Kconfig b/init/Kconfig -index c5f276d782de..a62d2961064b 100644 +index c5f276d782def..a62d2961064b2 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -878,7 +878,7 @@ config NUMA_BALANCING @@ -47,5 +47,5 @@ This option adds support for automatic NUMA aware memory/task placement. The mechanism is quite primitive and is based on migrating memory when -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch linux-5.10.216/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch --- linux-5.10.209/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0303-fscache-Use-only-one-fscache_object_cong_wait.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 9ebcbc0c3bbeaa6e13b623ff2d84d3b29e0a1431 Mon Sep 17 00:00:00 2001 +From 811779e6a823e7bdf8dcbd8ee78f4265a5afe052 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 28 Oct 2021 17:30:50 +0200 Subject: [PATCH 303/323] fscache: Use only one fscache_object_cong_wait. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In the commit mentioned below, fscache was converted from slow-work to workqueue. slow_work_enqueue() and slow_work_sleep_till_thread_needed() @@ -36,7 +36,7 @@ 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h -index 64aa552b296d..7dae569dafb9 100644 +index 64aa552b296d7..7dae569dafb9d 100644 --- a/fs/fscache/internal.h +++ b/fs/fscache/internal.h @@ -95,7 +95,6 @@ extern unsigned fscache_debug; @@ -48,7 +48,7 @@ extern unsigned int fscache_hash(unsigned int salt, unsigned int *data, unsigned int n); diff --git a/fs/fscache/main.c b/fs/fscache/main.c -index 4207f98e405f..85f8cf3a323d 100644 +index 4207f98e405fd..85f8cf3a323d5 100644 --- a/fs/fscache/main.c +++ b/fs/fscache/main.c @@ -41,8 +41,6 @@ struct kobject *fscache_root; @@ -79,7 +79,7 @@ if (ret < 0) goto error_proc; diff --git a/fs/fscache/object.c b/fs/fscache/object.c -index cb2146e02cd5..55158f30d093 100644 +index cb2146e02cd54..55158f30d0935 100644 --- a/fs/fscache/object.c +++ b/fs/fscache/object.c @@ -807,6 +807,8 @@ void fscache_object_destroy(struct fscache_object *object) @@ -125,5 +125,5 @@ return fscache_object_congested(); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch linux-5.10.216/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch --- linux-5.10.209/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0304-fscache-Use-only-one-fscache_object_cong_wait.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 5fe656c51fcb73a09cf33665bcee0341edaf14c3 Mon Sep 17 00:00:00 2001 +From 9bf6dbd205a71b61785d2d7e5d5ca74183b5de13 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 2 Nov 2021 11:52:05 +0100 Subject: [PATCH 304/323] fscache: Use only one fscache_object_cong_wait. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This is an update of the original patch, removing put_cpu_var() which was overseen in the initial patch. @@ -14,7 +14,7 @@ 1 file changed, 2 deletions(-) diff --git a/fs/fscache/object.c b/fs/fscache/object.c -index 55158f30d093..fb9794dce721 100644 +index 55158f30d0935..fb9794dce721c 100644 --- a/fs/fscache/object.c +++ b/fs/fscache/object.c @@ -823,8 +823,6 @@ void fscache_enqueue_object(struct fscache_object *object) @@ -27,5 +27,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch linux-5.10.216/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch --- linux-5.10.209/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0305-locking-Drop-might_resched-from-might_sleep_no_state.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 8eddd2dc82853a3df908061f6ddf71bde523917b Mon Sep 17 00:00:00 2001 +From c881df2fc1bc108783550d50d500909aeb6e3c79 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 6 Sep 2021 18:19:16 +0200 Subject: [PATCH 305/323] locking: Drop might_resched() from might_sleep_no_state_check() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz might_sleep_no_state_check() serves the same purpose as might_sleep() except it is used before sleeping locks are acquired and therefore does @@ -23,7 +23,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 7b4fdd5b2f7b..4e88ae0b2578 100644 +index 7b4fdd5b2f7ba..4e88ae0b2578e 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -225,7 +225,7 @@ extern void __cant_migrate(const char *file, int line); @@ -36,5 +36,5 @@ /** * cant_sleep - annotation for functions that cannot sleep -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch linux-5.10.216/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch --- linux-5.10.209/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0306-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 45cb435eff7cd17311c87552c32c3a202b09bf51 Mon Sep 17 00:00:00 2001 +From b86c99ff5aafee64c17b20537abaae4196510e4d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Oct 2021 13:40:53 +0200 Subject: [PATCH 306/323] drm/i915/gt: Queue and wait for the irq_work item. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Disabling interrupts and invoking the irq_work function directly breaks on PREEMPT_RT. @@ -28,7 +28,7 @@ 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c -index 0040b4765a54..3f4f854786f2 100644 +index 0040b4765a54d..3f4f854786f2b 100644 --- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c @@ -342,10 +342,9 @@ void intel_breadcrumbs_park(struct intel_breadcrumbs *b) @@ -45,5 +45,5 @@ GEM_BUG_ON(!list_empty(&b->signalers)); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch linux-5.10.216/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch --- linux-5.10.209/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0307-irq_work-Allow-irq_work_sync-to-sleep-if-irq_work-no.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From cf4bb976aef7af85b7134aa7cffdfa8e058dc5c6 Mon Sep 17 00:00:00 2001 +From a906df425c7fd4b1e1b3e0c9112cc71b528db166 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 24 Nov 2021 17:12:19 +0100 Subject: [PATCH 307/323] irq_work: Allow irq_work_sync() to sleep if irq_work() no IRQ support. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz irq_work() triggers instantly an interrupt if supported by the architecture. Otherwise the work will be processed on the next timer @@ -27,7 +27,7 @@ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index f941f2d7d71c..3c6d3a96bca0 100644 +index f941f2d7d71ce..3c6d3a96bca0f 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -3,6 +3,7 @@ @@ -68,7 +68,7 @@ bool irq_work_queue(struct irq_work *work); bool irq_work_queue_on(struct irq_work *work, int cpu); diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 8183d30e1bb1..8969aff790e2 100644 +index 8183d30e1bb1c..8969aff790e21 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -165,6 +165,9 @@ void irq_work_single(void *arg) @@ -96,5 +96,5 @@ while (atomic_read(&work->flags) & IRQ_WORK_BUSY) cpu_relax(); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch linux-5.10.216/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch --- linux-5.10.209/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0308-irq_work-Handle-some-irq_work-in-a-per-CPU-thread-on.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 2b803272d74039863a77523d79f79cc938eff7cf Mon Sep 17 00:00:00 2001 +From ec1b643ed7842f97135ba1dab4d1709c44d22164 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 24 Nov 2021 17:12:20 +0100 Subject: [PATCH 308/323] irq_work: Handle some irq_work in a per-CPU thread on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The irq_work callback is invoked in hard IRQ context. By default all callbacks are scheduled for invocation right away (given supported by @@ -58,7 +58,7 @@ 3 files changed, 106 insertions(+), 43 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index 3c6d3a96bca0..f551ba9c99d4 100644 +index 3c6d3a96bca0f..f551ba9c99d40 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -40,6 +40,16 @@ void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) @@ -90,7 +90,7 @@ - #endif /* _LINUX_IRQ_WORK_H */ diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 8969aff790e2..03d09d779ee1 100644 +index 8969aff790e21..03d09d779ee12 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -18,12 +18,37 @@ @@ -290,10 +290,10 @@ +} +early_initcall(irq_work_init_threads); diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 1cad0efd635c..a4fdc7cfb723 100644 +index 4ff559fed1e49..68246a8c31bc2 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1770,8 +1770,6 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1800,8 +1800,6 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); @@ -303,5 +303,5 @@ if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch linux-5.10.216/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch --- linux-5.10.209/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0309-irq_work-Also-rcuwait-for-IRQ_WORK_HARD_IRQ-on-PREEM.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From ca685c962ea2301291d3459ec8717208395b3cf9 Mon Sep 17 00:00:00 2001 +From 98e2aeb90b235d7ba3ff92a3aa508752f4d9daea Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 24 Nov 2021 17:12:21 +0100 Subject: [PATCH 309/323] irq_work: Also rcuwait for !IRQ_WORK_HARD_IRQ on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz On PREEMPT_RT most items are processed as LAZY via softirq context. Avoid to spin-wait for them because irq_work_sync() could have higher @@ -21,7 +21,7 @@ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h -index f551ba9c99d4..2c0059340871 100644 +index f551ba9c99d40..2c0059340871d 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -55,6 +55,11 @@ static inline bool irq_work_is_busy(struct irq_work *work) @@ -37,7 +37,7 @@ bool irq_work_queue_on(struct irq_work *work, int cpu); diff --git a/kernel/irq_work.c b/kernel/irq_work.c -index 03d09d779ee1..cbec10c32ead 100644 +index 03d09d779ee12..cbec10c32eade 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -211,7 +211,8 @@ void irq_work_single(void *arg) @@ -61,5 +61,5 @@ TASK_UNINTERRUPTIBLE); return; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch linux-5.10.216/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch --- linux-5.10.209/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0310-eventfd-Make-signal-recursion-protection-a-task-bit.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 17c41196e72418f94cf308a8b23fe478612a1610 Mon Sep 17 00:00:00 2001 +From 563a8863b188e15be8027634bc3788c810e6ee74 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Dec 2021 11:32:09 +0100 Subject: [PATCH 310/323] eventfd: Make signal recursion protection a task bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Upstream commit b542e383d8c005f06a131e2b40d5889b812f19c6 @@ -40,10 +40,10 @@ 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/fs/aio.c b/fs/aio.c -index c90e045a37bc..e1181dc37be1 100644 +index 43315af1c83ac..7030157e99338 100644 --- a/fs/aio.c +++ b/fs/aio.c -@@ -1765,7 +1765,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, +@@ -1776,7 +1776,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, list_del_init(&req->wait.entry); list_del(&iocb->ki_list); iocb->ki_res.res = mangle_poll(mask); @@ -53,7 +53,7 @@ INIT_WORK(&req->work, aio_poll_put_work); schedule_work(&req->work); diff --git a/fs/eventfd.c b/fs/eventfd.c -index 3673eb8de035..ce9ca07d6c00 100644 +index 3673eb8de0356..ce9ca07d6c004 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -25,8 +25,6 @@ @@ -93,7 +93,7 @@ return n; diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h -index c1bd4883e2fa..842d223dfe17 100644 +index c1bd4883e2faf..842d223dfe175 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -14,6 +14,7 @@ @@ -131,7 +131,7 @@ static inline void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) diff --git a/include/linux/sched.h b/include/linux/sched.h -index a73528e8235d..13d4957189bb 100644 +index a73528e8235d4..13d4957189bb9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -848,6 +848,10 @@ struct task_struct { @@ -146,5 +146,5 @@ unsigned long atomic_flags; /* Flags requiring atomic access. */ -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch linux-5.10.216/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch --- linux-5.10.209/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0311-stop_machine-Remove-this_cpu_ptr-from-print_stop_inf.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From ce2910a453196930e7083aaf13240adcec160afd Mon Sep 17 00:00:00 2001 +From a5139972bb01a32f194dc711e88e864708280dee Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 17 Dec 2021 11:32:08 +0100 Subject: [PATCH 311/323] stop_machine: Remove this_cpu_ptr() from print_stop_info(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This aligns the patch ("stop_machine: Add function and caller debug info) with commit @@ -17,7 +17,7 @@ 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c -index dbf585cf4b9f..971d8acceaec 100644 +index dbf585cf4b9f8..971d8acceaecb 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -51,7 +51,11 @@ static bool stop_machine_initialized = false; @@ -34,5 +34,5 @@ if (task != stopper->thread) return; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch linux-5.10.216/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch --- linux-5.10.209/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0312-aio-Fix-incorrect-usage-of-eventfd_signal_allowed.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From fd840c98e310adf2a03ee242969a9597a909a672 Mon Sep 17 00:00:00 2001 +From 771eede6339e4ab3444babfcc66d93f4c38a78c3 Mon Sep 17 00:00:00 2001 From: Xie Yongji Date: Mon, 13 Sep 2021 19:19:28 +0800 Subject: [PATCH 312/323] aio: Fix incorrect usage of eventfd_signal_allowed() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz commit 4b3749865374899e115aa8c48681709b086fe6d3 upstream. @@ -21,10 +21,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/aio.c b/fs/aio.c -index e1181dc37be1..e88fd9b58f3f 100644 +index 7030157e99338..0f02ea16305cf 100644 --- a/fs/aio.c +++ b/fs/aio.c -@@ -1765,7 +1765,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, +@@ -1776,7 +1776,7 @@ static int aio_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, list_del_init(&req->wait.entry); list_del(&iocb->ki_list); iocb->ki_res.res = mangle_poll(mask); @@ -34,5 +34,5 @@ INIT_WORK(&req->work, aio_poll_put_work); schedule_work(&req->work); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch linux-5.10.216/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch --- linux-5.10.209/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0313-rt-remove-extra-parameter-from-__trace_stack.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,11 +1,11 @@ -From 38a85604759ae488654bab5c1cd9f23cd0d77ce0 Mon Sep 17 00:00:00 2001 +From 554210fc7bcb6faf80e463aae83760f5691d44cc Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Thu, 12 May 2022 23:25:33 -0300 Subject: [PATCH 313/323] rt: remove extra parameter from __trace_stack() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Fix the build error below while keeping the current PREEMPT_RT code: @@ -24,10 +24,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c -index 4bc90965abb2..75fef9fcfd0f 100644 +index e4340958da2df..7f25cc48bc503 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c -@@ -1224,7 +1224,7 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, +@@ -1226,7 +1226,7 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, if (file) { local_save_flags(flags); @@ -37,5 +37,5 @@ trace_dump_stack(STACK_SKIP); } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch linux-5.10.216/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch --- linux-5.10.209/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0314-locking-rtmutex-switch-to-EXPORT_SYMBOL-for-ww_mutex.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From a02b1841d962977869e02fff684931b53c8d4232 Mon Sep 17 00:00:00 2001 +From dac7674ff6dc3d4f0dd595679422c19ba6348a8f Mon Sep 17 00:00:00 2001 From: Yajun Deng Date: Wed, 3 Aug 2022 14:24:30 +0800 Subject: [PATCH 314/323] locking/rtmutex: switch to EXPORT_SYMBOL() for ww_mutex_lock{,_interruptible}() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz We can use EXPORT_SYMBOL() instead of EXPORT_SYMBOL_GPL() in ww_mutex_lock_interruptible() and ww_mutex_lock(). That match @@ -17,7 +17,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 31b374d36d04..b110fc57f733 100644 +index 31b374d36d04b..b110fc57f7330 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -2513,7 +2513,7 @@ ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) @@ -39,5 +39,5 @@ void __sched ww_mutex_unlock(struct ww_mutex *lock) { -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch linux-5.10.216/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch --- linux-5.10.209/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0315-ftrace-Fix-improper-usage-of-__trace_stack-function.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 54eb98b6f77e491259ac08a1172d36fd6ccf5284 Mon Sep 17 00:00:00 2001 +From 82849886322d7a35b19a0f9cbeaf6a3cc17efcdd Mon Sep 17 00:00:00 2001 From: Anand Je Saipureddy Date: Sat, 23 Jul 2022 12:19:43 +0530 Subject: [PATCH 315/323] ftrace: Fix improper usage of __trace_stack() function. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz In kernel/trace/trace_events_trigger.c --> stacktrace_trigger() --> __trace_stack() is not defined as per the function definition. @@ -26,10 +26,10 @@ 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c -index 75fef9fcfd0f..3c6229f16e81 100644 +index 7f25cc48bc503..64abc66b82e5b 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c -@@ -1220,12 +1220,10 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, +@@ -1222,12 +1222,10 @@ stacktrace_trigger(struct event_trigger_data *data, void *rec, struct ring_buffer_event *event) { struct trace_event_file *file = data->private_data; @@ -46,5 +46,5 @@ } -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch linux-5.10.216/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch --- linux-5.10.209/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0316-rt-arm64-make-_TIF_WORK_MASK-bits-contiguous.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 599ec4565144185541405febb71e81cf36cad908 Mon Sep 17 00:00:00 2001 +From 3741b49b04d3f06ee4d50d36c4f659a414189844 Mon Sep 17 00:00:00 2001 From: Salvatore Bonaccorso Date: Fri, 20 Jan 2023 19:23:03 +0100 Subject: [PATCH 316/323] rt: arm64: make _TIF_WORK_MASK bits contiguous -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz As same as in commit 870d16757ba8 ("arm64: make _TIF_WORK_MASK bits contiguous") in mainline, we need to make the bits of _TIF_WORK_MASK to @@ -30,7 +30,7 @@ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h -index 6eb36a2126e8..2afd9ceb66c9 100644 +index 6eb36a2126e84..2afd9ceb66c96 100644 --- a/arch/arm64/include/asm/thread_info.h +++ b/arch/arm64/include/asm/thread_info.h @@ -70,12 +70,12 @@ void arch_release_task_struct(struct task_struct *tsk); @@ -53,5 +53,5 @@ #define TIF_FREEZE 19 #define TIF_RESTORE_SIGMASK 20 -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch linux-5.10.216/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch --- linux-5.10.209/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0317-printk-ignore-consoles-without-write-callback.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 7efd125170f344b124a00390d8d7b714beac1698 Mon Sep 17 00:00:00 2001 +From 27913b1edcba54aae3d70a249824ae5f2ebfae60 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 17 Feb 2023 09:53:44 +0106 Subject: [PATCH 317/323] printk: ignore consoles without write() callback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The ttynull driver does not provide an implementation for the write() callback. This leads to a NULL pointer dereference in the related @@ -22,7 +22,7 @@ 1 file changed, 6 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index d2205872304d..64747c72fbea 100644 +index ea7a14a485382..831f0b0ebef5b 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -2267,6 +2267,10 @@ static int printk_kthread_func(void *data) @@ -36,7 +36,7 @@ con->thread = kthread_run(printk_kthread_func, con, "pr/%s%d", con->name, con->index); if (IS_ERR(con->thread)) { -@@ -3566,6 +3570,8 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) +@@ -3589,6 +3593,8 @@ bool pr_flush(int timeout_ms, bool reset_on_progress) for_each_console(con) { if (!(con->flags & CON_ENABLED)) continue; @@ -46,5 +46,5 @@ if (printk_seq < seq) diff += seq - printk_seq; -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch linux-5.10.216/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch --- linux-5.10.209/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0318-kernel-fork-set-wake_q_sleeper.next-NULL-again-in-du.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From de3bf8893c5067f2c4d7ef3c57144c134e30ad7f Mon Sep 17 00:00:00 2001 +From ffa037dafac1db6bbbb5ade07008226706aa63c9 Mon Sep 17 00:00:00 2001 From: Steffen Dirkwinkel Date: Mon, 20 Mar 2023 09:03:47 +0100 Subject: [PATCH 318/323] kernel: fork: set wake_q_sleeper.next=NULL again in dup_task_struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz Without this we get system hangs within a couple of days. It's also reproducible in minutes with "stress-ng --exec 20". @@ -45,7 +45,7 @@ 1 file changed, 1 insertion(+) diff --git a/kernel/fork.c b/kernel/fork.c -index dfefb6e7e082..5dc7abedf08f 100644 +index dfefb6e7e082b..5dc7abedf08f0 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -960,6 +960,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -57,5 +57,5 @@ account_kernel_stack(tsk, 1); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch linux-5.10.216/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch --- linux-5.10.209/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0319-Revert-mm-page_alloc-fix-potential-deadlock-on-zonel.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From 59fc9fa59a8a6eaa1456e7a3035b10152a9e6d94 Mon Sep 17 00:00:00 2001 +From 5e88068a06c4b48d12b30b00963c11e7d92139f8 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Thu, 8 Jun 2023 19:47:25 -0300 Subject: [PATCH 319/323] Revert "mm/page_alloc: fix potential deadlock on zonelist_update_seqseqlock" -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This reverts commit a992c387b41186ab968fd176ca26b432b05c53ec. @@ -24,10 +24,10 @@ 1 file changed, 16 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index c5eb7d6844ae..39d1782b398f 100644 +index 16200cbddaf1c..8060c788f63fe 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6043,21 +6043,7 @@ static void __build_all_zonelists(void *data) +@@ -6045,21 +6045,7 @@ static void __build_all_zonelists(void *data) int nid; int __maybe_unused cpu; pg_data_t *self = data; @@ -49,7 +49,7 @@ write_seqlock(&zonelist_update_seq); #ifdef CONFIG_NUMA -@@ -6092,8 +6078,6 @@ static void __build_all_zonelists(void *data) +@@ -6094,8 +6080,6 @@ static void __build_all_zonelists(void *data) } write_sequnlock(&zonelist_update_seq); @@ -59,5 +59,5 @@ static noinline void __init -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch linux-5.10.216/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch --- linux-5.10.209/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From f59d43768ad6d22235cbc9ec14f6307867aefefe Mon Sep 17 00:00:00 2001 +From ab0bfdba117458d38d667c9923d15c0dc8304ddd Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Thu, 8 Jun 2023 19:47:25 -0300 Subject: [PATCH 320/323] Revert "printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h" -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz This reverts commit 32232bcd4e5300e678718d5c29da4dfa07ade01e. @@ -21,7 +21,7 @@ 1 file changed, 19 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 83c7734e9802..7e4352467d83 100644 +index 83c7734e98025..7e4352467d831 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -609,23 +609,4 @@ static inline void print_hex_dump_debug(const char *prefix_str, int prefix_type, @@ -49,5 +49,5 @@ - #endif -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch linux-5.10.216/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch --- linux-5.10.209/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,8 +1,8 @@ -From 2074b2bfdbed96348cbb99a1a3920fa7a9e4df46 Mon Sep 17 00:00:00 2001 +From 033069960d20f722a58c508473d67ec67dd661cc Mon Sep 17 00:00:00 2001 From: Wang Yong Date: Tue, 12 Sep 2023 15:14:28 +0800 Subject: [PATCH 321/323] arm64: signal: Use ARCH_RT_DELAYS_SIGNAL_SEND -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz The ltp test prompts the following bug information under the 5.10 kernel: BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:969 @@ -48,7 +48,7 @@ diff --git a/arch/arm64/include/asm/signal.h b/arch/arm64/include/asm/signal.h new file mode 100644 -index 000000000000..0fb418cf4c17 +index 0000000000000..0fb418cf4c17a --- /dev/null +++ b/arch/arm64/include/asm/signal.h @@ -0,0 +1,12 @@ @@ -65,7 +65,7 @@ + +#endif diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c -index 94eed0dc3afc..5b08f55ec85d 100644 +index 94eed0dc3afcd..5b08f55ec85d9 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -929,6 +929,15 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, @@ -85,5 +85,5 @@ uprobe_notify_resume(regs); -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch linux-5.10.216/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch --- linux-5.10.209/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch 2024-05-03 12:40:20.000000000 +0000 @@ -1,9 +1,9 @@ -From dbe86f5017c79c8abb6f42a6f0f1ad8d97dbae46 Mon Sep 17 00:00:00 2001 +From ce15c4115c8fd7f07b57953d3735a5b938335234 Mon Sep 17 00:00:00 2001 From: "Luis Claudio R. Goncalves" Date: Wed, 20 Dec 2023 10:20:48 -0300 Subject: [PATCH 322/323] rt: mm/page_alloc: backport missing bits from __build_all_zonelists() fix -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz A while ago upstream landed commit a2ebb51575828 ("mm/page_alloc: use write_seqlock_irqsave() instead write_seqlock() + local_irq_save().") @@ -21,10 +21,10 @@ 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 39d1782b398f..cd1e8d0b2269 100644 +index 8060c788f63fe..58d0ae602e68e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -6043,8 +6043,9 @@ static void __build_all_zonelists(void *data) +@@ -6045,8 +6045,9 @@ static void __build_all_zonelists(void *data) int nid; int __maybe_unused cpu; pg_data_t *self = data; @@ -35,7 +35,7 @@ #ifdef CONFIG_NUMA memset(node_load, 0, sizeof(node_load)); -@@ -6077,7 +6078,7 @@ static void __build_all_zonelists(void *data) +@@ -6079,7 +6080,7 @@ static void __build_all_zonelists(void *data) #endif } @@ -45,5 +45,5 @@ static noinline void __init -- -2.43.0 +2.44.0 diff -Nru linux-5.10.209/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch linux-5.10.216/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch --- linux-5.10.209/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0323-Linux-5.10.204-rt100-REBASE.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -From 0a50987f60b76f392050410e35609fb4361dcca7 Mon Sep 17 00:00:00 2001 -From: "Luis Claudio R. Goncalves" -Date: Fri, 22 Dec 2023 17:30:57 -0300 -Subject: [PATCH 323/323] Linux 5.10.204-rt100 REBASE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz - -Signed-off-by: Luis Claudio R. Goncalves ---- - localversion-rt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/localversion-rt b/localversion-rt -index 21988f9ad53f..79d3e2b9f550 100644 ---- a/localversion-rt -+++ b/localversion-rt -@@ -1 +1 @@ ---rt34 -+-rt100 --- -2.43.0 - diff -Nru linux-5.10.209/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch linux-5.10.216/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch --- linux-5.10.209/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/0323-Linux-5.10.215-rt107-REBASE.patch 2024-05-03 12:40:20.000000000 +0000 @@ -0,0 +1,21 @@ +From 63f2c3efdbda863fc01ba4fc18cd4daa4712faf4 Mon Sep 17 00:00:00 2001 +From: "Luis Claudio R. Goncalves" +Date: Thu, 18 Apr 2024 21:34:16 -0300 +Subject: [PATCH 323/323] Linux 5.10.215-rt107 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz + +Signed-off-by: Luis Claudio R. Goncalves +--- + localversion-rt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/localversion-rt b/localversion-rt +index 21988f9ad53f1..2e0a3c9605753 100644 +--- a/localversion-rt ++++ b/localversion-rt +@@ -1 +1 @@ +--rt34 ++-rt107 +-- +2.44.0 + diff -Nru linux-5.10.209/debian/patches-rt/series linux-5.10.216/debian/patches-rt/series --- linux-5.10.209/debian/patches-rt/series 2024-01-31 20:47:54.000000000 +0000 +++ linux-5.10.216/debian/patches-rt/series 2024-05-03 12:40:20.000000000 +0000 @@ -320,4 +320,4 @@ 0320-Revert-printk-declare-printk_deferred_-enter-safe-in.patch 0321-arm64-signal-Use-ARCH_RT_DELAYS_SIGNAL_SEND.patch 0322-rt-mm-page_alloc-backport-missing-bits-from-__build_.patch -0323-Linux-5.10.204-rt100-REBASE.patch +0323-Linux-5.10.215-rt107-REBASE.patch diff -Nru linux-5.10.209/debian/rules.gen linux-5.10.216/debian/rules.gen --- linux-5.10.209/debian/rules.gen 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/rules.gen 2024-05-03 12:40:24.000000000 +0000 @@ -2,106 +2,106 @@ binary-arch: binary-arch_alpha binary-arch_amd64 binary-arch_arm64 binary-arch_arm64ilp32 binary-arch_armel binary-arch_armhf binary-arch_hppa binary-arch_i386 binary-arch_ia64 binary-arch_m68k binary-arch_mips binary-arch_mips64 binary-arch_mips64el binary-arch_mips64r6 binary-arch_mips64r6el binary-arch_mipsel binary-arch_mipsn32 binary-arch_mipsn32el binary-arch_mipsn32r6 binary-arch_mipsn32r6el binary-arch_mipsr6 binary-arch_mipsr6el binary-arch_powerpc binary-arch_ppc64 binary-arch_ppc64el binary-arch_riscv64 binary-arch_s390 binary-arch_s390x binary-arch_sh3 binary-arch_sh4 binary-arch_sparc binary-arch_sparc64 binary-arch_x32 binary-arch_alpha:: binary-arch_alpha_none binary-arch_alpha_real binary-arch_alpha:: - $(MAKE) -f debian/rules.real install-udeb_alpha ABINAME='5.10.0-28' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-alpha-generic-di nic-modules-5.10.0-28-alpha-generic-di nic-wireless-modules-5.10.0-28-alpha-generic-di nic-shared-modules-5.10.0-28-alpha-generic-di serial-modules-5.10.0-28-alpha-generic-di usb-serial-modules-5.10.0-28-alpha-generic-di ppp-modules-5.10.0-28-alpha-generic-di pata-modules-5.10.0-28-alpha-generic-di cdrom-core-modules-5.10.0-28-alpha-generic-di scsi-core-modules-5.10.0-28-alpha-generic-di scsi-modules-5.10.0-28-alpha-generic-di scsi-nic-modules-5.10.0-28-alpha-generic-di loop-modules-5.10.0-28-alpha-generic-di btrfs-modules-5.10.0-28-alpha-generic-di ext4-modules-5.10.0-28-alpha-generic-di isofs-modules-5.10.0-28-alpha-generic-di jfs-modules-5.10.0-28-alpha-generic-di xfs-modules-5.10.0-28-alpha-generic-di fat-modules-5.10.0-28-alpha-generic-di squashfs-modules-5.10.0-28-alpha-generic-di fuse-modules-5.10.0-28-alpha-generic-di f2fs-modules-5.10.0-28-alpha-generic-di md-modules-5.10.0-28-alpha-generic-di multipath-modules-5.10.0-28-alpha-generic-di usb-modules-5.10.0-28-alpha-generic-di usb-storage-modules-5.10.0-28-alpha-generic-di fb-modules-5.10.0-28-alpha-generic-di input-modules-5.10.0-28-alpha-generic-di event-modules-5.10.0-28-alpha-generic-di mouse-modules-5.10.0-28-alpha-generic-di nic-pcmcia-modules-5.10.0-28-alpha-generic-di pcmcia-modules-5.10.0-28-alpha-generic-di nic-usb-modules-5.10.0-28-alpha-generic-di sata-modules-5.10.0-28-alpha-generic-di i2c-modules-5.10.0-28-alpha-generic-di crc-modules-5.10.0-28-alpha-generic-di crypto-modules-5.10.0-28-alpha-generic-di crypto-dm-modules-5.10.0-28-alpha-generic-di ata-modules-5.10.0-28-alpha-generic-di nbd-modules-5.10.0-28-alpha-generic-di srm-modules-5.10.0-28-alpha-generic-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_alpha ABINAME='5.10.0-29' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-alpha-generic-di nic-modules-5.10.0-29-alpha-generic-di nic-wireless-modules-5.10.0-29-alpha-generic-di nic-shared-modules-5.10.0-29-alpha-generic-di serial-modules-5.10.0-29-alpha-generic-di usb-serial-modules-5.10.0-29-alpha-generic-di ppp-modules-5.10.0-29-alpha-generic-di pata-modules-5.10.0-29-alpha-generic-di cdrom-core-modules-5.10.0-29-alpha-generic-di scsi-core-modules-5.10.0-29-alpha-generic-di scsi-modules-5.10.0-29-alpha-generic-di scsi-nic-modules-5.10.0-29-alpha-generic-di loop-modules-5.10.0-29-alpha-generic-di btrfs-modules-5.10.0-29-alpha-generic-di ext4-modules-5.10.0-29-alpha-generic-di isofs-modules-5.10.0-29-alpha-generic-di jfs-modules-5.10.0-29-alpha-generic-di xfs-modules-5.10.0-29-alpha-generic-di fat-modules-5.10.0-29-alpha-generic-di squashfs-modules-5.10.0-29-alpha-generic-di fuse-modules-5.10.0-29-alpha-generic-di f2fs-modules-5.10.0-29-alpha-generic-di md-modules-5.10.0-29-alpha-generic-di multipath-modules-5.10.0-29-alpha-generic-di usb-modules-5.10.0-29-alpha-generic-di usb-storage-modules-5.10.0-29-alpha-generic-di fb-modules-5.10.0-29-alpha-generic-di input-modules-5.10.0-29-alpha-generic-di event-modules-5.10.0-29-alpha-generic-di mouse-modules-5.10.0-29-alpha-generic-di nic-pcmcia-modules-5.10.0-29-alpha-generic-di pcmcia-modules-5.10.0-29-alpha-generic-di nic-usb-modules-5.10.0-29-alpha-generic-di sata-modules-5.10.0-29-alpha-generic-di i2c-modules-5.10.0-29-alpha-generic-di crc-modules-5.10.0-29-alpha-generic-di crypto-modules-5.10.0-29-alpha-generic-di crypto-dm-modules-5.10.0-29-alpha-generic-di ata-modules-5.10.0-29-alpha-generic-di nbd-modules-5.10.0-29-alpha-generic-di srm-modules-5.10.0-29-alpha-generic-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_alpha_none: binary-arch_alpha_none_alpha-generic binary-arch_alpha_none_alpha-smp binary-arch_alpha_none_real binary-arch_alpha_none_alpha-generic: binary-arch_alpha_none_alpha-generic_real binary-arch_alpha_none_alpha-generic_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_alpha_none_alpha-smp: binary-arch_alpha_none_alpha-smp_real binary-arch_alpha_none_alpha-smp_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_alpha_none_real: binary-arch_alpha_real:: setup_alpha binary-arch_alpha_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_amd64:: binary-arch_amd64_extra binary-arch_amd64_none binary-arch_amd64_real binary-arch_amd64_rt binary-arch_amd64:: - $(MAKE) -f debian/rules.real install-udeb_amd64 ABINAME='5.10.0-28' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-amd64-di nic-modules-5.10.0-28-amd64-di nic-wireless-modules-5.10.0-28-amd64-di nic-shared-modules-5.10.0-28-amd64-di serial-modules-5.10.0-28-amd64-di usb-serial-modules-5.10.0-28-amd64-di ppp-modules-5.10.0-28-amd64-di pata-modules-5.10.0-28-amd64-di cdrom-core-modules-5.10.0-28-amd64-di firewire-core-modules-5.10.0-28-amd64-di scsi-core-modules-5.10.0-28-amd64-di scsi-modules-5.10.0-28-amd64-di scsi-nic-modules-5.10.0-28-amd64-di loop-modules-5.10.0-28-amd64-di btrfs-modules-5.10.0-28-amd64-di ext4-modules-5.10.0-28-amd64-di isofs-modules-5.10.0-28-amd64-di jfs-modules-5.10.0-28-amd64-di xfs-modules-5.10.0-28-amd64-di fat-modules-5.10.0-28-amd64-di squashfs-modules-5.10.0-28-amd64-di udf-modules-5.10.0-28-amd64-di fuse-modules-5.10.0-28-amd64-di f2fs-modules-5.10.0-28-amd64-di md-modules-5.10.0-28-amd64-di multipath-modules-5.10.0-28-amd64-di usb-modules-5.10.0-28-amd64-di usb-storage-modules-5.10.0-28-amd64-di pcmcia-storage-modules-5.10.0-28-amd64-di fb-modules-5.10.0-28-amd64-di input-modules-5.10.0-28-amd64-di event-modules-5.10.0-28-amd64-di mouse-modules-5.10.0-28-amd64-di nic-pcmcia-modules-5.10.0-28-amd64-di pcmcia-modules-5.10.0-28-amd64-di nic-usb-modules-5.10.0-28-amd64-di sata-modules-5.10.0-28-amd64-di acpi-modules-5.10.0-28-amd64-di i2c-modules-5.10.0-28-amd64-di crc-modules-5.10.0-28-amd64-di crypto-modules-5.10.0-28-amd64-di crypto-dm-modules-5.10.0-28-amd64-di efi-modules-5.10.0-28-amd64-di ata-modules-5.10.0-28-amd64-di mmc-core-modules-5.10.0-28-amd64-di mmc-modules-5.10.0-28-amd64-di nbd-modules-5.10.0-28-amd64-di speakup-modules-5.10.0-28-amd64-di uinput-modules-5.10.0-28-amd64-di sound-modules-5.10.0-28-amd64-di mtd-core-modules-5.10.0-28-amd64-di rfkill-modules-5.10.0-28-amd64-di' UDEB_UNSIGNED_TEST_BUILD=True + $(MAKE) -f debian/rules.real install-udeb_amd64 ABINAME='5.10.0-29' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-amd64-di nic-modules-5.10.0-29-amd64-di nic-wireless-modules-5.10.0-29-amd64-di nic-shared-modules-5.10.0-29-amd64-di serial-modules-5.10.0-29-amd64-di usb-serial-modules-5.10.0-29-amd64-di ppp-modules-5.10.0-29-amd64-di pata-modules-5.10.0-29-amd64-di cdrom-core-modules-5.10.0-29-amd64-di firewire-core-modules-5.10.0-29-amd64-di scsi-core-modules-5.10.0-29-amd64-di scsi-modules-5.10.0-29-amd64-di scsi-nic-modules-5.10.0-29-amd64-di loop-modules-5.10.0-29-amd64-di btrfs-modules-5.10.0-29-amd64-di ext4-modules-5.10.0-29-amd64-di isofs-modules-5.10.0-29-amd64-di jfs-modules-5.10.0-29-amd64-di xfs-modules-5.10.0-29-amd64-di fat-modules-5.10.0-29-amd64-di squashfs-modules-5.10.0-29-amd64-di udf-modules-5.10.0-29-amd64-di fuse-modules-5.10.0-29-amd64-di f2fs-modules-5.10.0-29-amd64-di md-modules-5.10.0-29-amd64-di multipath-modules-5.10.0-29-amd64-di usb-modules-5.10.0-29-amd64-di usb-storage-modules-5.10.0-29-amd64-di pcmcia-storage-modules-5.10.0-29-amd64-di fb-modules-5.10.0-29-amd64-di input-modules-5.10.0-29-amd64-di event-modules-5.10.0-29-amd64-di mouse-modules-5.10.0-29-amd64-di nic-pcmcia-modules-5.10.0-29-amd64-di pcmcia-modules-5.10.0-29-amd64-di nic-usb-modules-5.10.0-29-amd64-di sata-modules-5.10.0-29-amd64-di acpi-modules-5.10.0-29-amd64-di i2c-modules-5.10.0-29-amd64-di crc-modules-5.10.0-29-amd64-di crypto-modules-5.10.0-29-amd64-di crypto-dm-modules-5.10.0-29-amd64-di efi-modules-5.10.0-29-amd64-di ata-modules-5.10.0-29-amd64-di mmc-core-modules-5.10.0-29-amd64-di mmc-modules-5.10.0-29-amd64-di nbd-modules-5.10.0-29-amd64-di speakup-modules-5.10.0-29-amd64-di uinput-modules-5.10.0-29-amd64-di sound-modules-5.10.0-29-amd64-di mtd-core-modules-5.10.0-29-amd64-di rfkill-modules-5.10.0-29-amd64-di' UDEB_UNSIGNED_TEST_BUILD=True binary-arch_amd64:: - $(MAKE) -f debian/rules.real install-signed-template_amd64 ABINAME='5.10.0-28' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real install-signed-template_amd64 ABINAME='5.10.0-29' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_amd64_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='amd64' DH_OPTIONS='-plinux-compiler-gcc-10-x86' binary-arch_amd64_none: binary-arch_amd64_none_amd64 binary-arch_amd64_none_cloud-amd64 binary-arch_amd64_none_real binary-arch_amd64_none_amd64: binary-arch_amd64_none_amd64_real binary-arch_amd64_none_amd64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_amd64_none_cloud-amd64: binary-arch_amd64_none_cloud-amd64_real binary-arch_amd64_none_cloud-amd64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_amd64_none_real: binary-arch_amd64_real:: setup_amd64 binary-arch_amd64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_amd64_rt: binary-arch_amd64_rt_amd64 binary-arch_amd64_rt_real binary-arch_amd64_rt_amd64: binary-arch_amd64_rt_amd64_real binary-arch_amd64_rt_amd64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_amd64_rt_real: binary-arch_arm64:: binary-arch_arm64_none binary-arch_arm64_real binary-arch_arm64_rt binary-arch_arm64:: - $(MAKE) -f debian/rules.real install-udeb_arm64 ABINAME='5.10.0-28' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-arm64-di nic-modules-5.10.0-28-arm64-di nic-wireless-modules-5.10.0-28-arm64-di nic-shared-modules-5.10.0-28-arm64-di usb-serial-modules-5.10.0-28-arm64-di ppp-modules-5.10.0-28-arm64-di cdrom-core-modules-5.10.0-28-arm64-di scsi-core-modules-5.10.0-28-arm64-di scsi-modules-5.10.0-28-arm64-di scsi-nic-modules-5.10.0-28-arm64-di loop-modules-5.10.0-28-arm64-di btrfs-modules-5.10.0-28-arm64-di ext4-modules-5.10.0-28-arm64-di isofs-modules-5.10.0-28-arm64-di jfs-modules-5.10.0-28-arm64-di xfs-modules-5.10.0-28-arm64-di fat-modules-5.10.0-28-arm64-di squashfs-modules-5.10.0-28-arm64-di udf-modules-5.10.0-28-arm64-di fuse-modules-5.10.0-28-arm64-di f2fs-modules-5.10.0-28-arm64-di md-modules-5.10.0-28-arm64-di multipath-modules-5.10.0-28-arm64-di usb-modules-5.10.0-28-arm64-di usb-storage-modules-5.10.0-28-arm64-di fb-modules-5.10.0-28-arm64-di input-modules-5.10.0-28-arm64-di event-modules-5.10.0-28-arm64-di nic-usb-modules-5.10.0-28-arm64-di sata-modules-5.10.0-28-arm64-di i2c-modules-5.10.0-28-arm64-di crc-modules-5.10.0-28-arm64-di crypto-modules-5.10.0-28-arm64-di crypto-dm-modules-5.10.0-28-arm64-di efi-modules-5.10.0-28-arm64-di ata-modules-5.10.0-28-arm64-di mmc-modules-5.10.0-28-arm64-di nbd-modules-5.10.0-28-arm64-di uinput-modules-5.10.0-28-arm64-di leds-modules-5.10.0-28-arm64-di mtd-core-modules-5.10.0-28-arm64-di' UDEB_UNSIGNED_TEST_BUILD=True + $(MAKE) -f debian/rules.real install-udeb_arm64 ABINAME='5.10.0-29' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-arm64-di nic-modules-5.10.0-29-arm64-di nic-wireless-modules-5.10.0-29-arm64-di nic-shared-modules-5.10.0-29-arm64-di usb-serial-modules-5.10.0-29-arm64-di ppp-modules-5.10.0-29-arm64-di cdrom-core-modules-5.10.0-29-arm64-di scsi-core-modules-5.10.0-29-arm64-di scsi-modules-5.10.0-29-arm64-di scsi-nic-modules-5.10.0-29-arm64-di loop-modules-5.10.0-29-arm64-di btrfs-modules-5.10.0-29-arm64-di ext4-modules-5.10.0-29-arm64-di isofs-modules-5.10.0-29-arm64-di jfs-modules-5.10.0-29-arm64-di xfs-modules-5.10.0-29-arm64-di fat-modules-5.10.0-29-arm64-di squashfs-modules-5.10.0-29-arm64-di udf-modules-5.10.0-29-arm64-di fuse-modules-5.10.0-29-arm64-di f2fs-modules-5.10.0-29-arm64-di md-modules-5.10.0-29-arm64-di multipath-modules-5.10.0-29-arm64-di usb-modules-5.10.0-29-arm64-di usb-storage-modules-5.10.0-29-arm64-di fb-modules-5.10.0-29-arm64-di input-modules-5.10.0-29-arm64-di event-modules-5.10.0-29-arm64-di nic-usb-modules-5.10.0-29-arm64-di sata-modules-5.10.0-29-arm64-di i2c-modules-5.10.0-29-arm64-di crc-modules-5.10.0-29-arm64-di crypto-modules-5.10.0-29-arm64-di crypto-dm-modules-5.10.0-29-arm64-di efi-modules-5.10.0-29-arm64-di ata-modules-5.10.0-29-arm64-di mmc-modules-5.10.0-29-arm64-di nbd-modules-5.10.0-29-arm64-di uinput-modules-5.10.0-29-arm64-di leds-modules-5.10.0-29-arm64-di mtd-core-modules-5.10.0-29-arm64-di' UDEB_UNSIGNED_TEST_BUILD=True binary-arch_arm64:: - $(MAKE) -f debian/rules.real install-signed-template_arm64 ABINAME='5.10.0-28' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real install-signed-template_arm64 ABINAME='5.10.0-29' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_arm64_none: binary-arch_arm64_none_arm64 binary-arch_arm64_none_cloud-arm64 binary-arch_arm64_none_real binary-arch_arm64_none_arm64: binary-arch_arm64_none_arm64_real binary-arch_arm64_none_arm64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_arm64_none_cloud-arm64: binary-arch_arm64_none_cloud-arm64_real binary-arch_arm64_none_cloud-arm64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_arm64_none_real: binary-arch_arm64_real:: setup_arm64 binary-arch_arm64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_arm64_rt: binary-arch_arm64_rt_arm64 binary-arch_arm64_rt_real binary-arch_arm64_rt_arm64: binary-arch_arm64_rt_arm64_real binary-arch_arm64_rt_arm64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_arm64_rt_real: binary-arch_arm64ilp32: binary-arch_arm64ilp32_real binary-arch_arm64ilp32_real:: setup_arm64ilp32 binary-arch_arm64ilp32_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_armel:: binary-arch_armel_extra binary-arch_armel_none binary-arch_armel_real binary-arch_armel:: - $(MAKE) -f debian/rules.real install-udeb_armel ABINAME='5.10.0-28' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-marvell-di nic-modules-5.10.0-28-marvell-di nic-shared-modules-5.10.0-28-marvell-di usb-serial-modules-5.10.0-28-marvell-di ppp-modules-5.10.0-28-marvell-di cdrom-core-modules-5.10.0-28-marvell-di scsi-core-modules-5.10.0-28-marvell-di loop-modules-5.10.0-28-marvell-di ipv6-modules-5.10.0-28-marvell-di btrfs-modules-5.10.0-28-marvell-di ext4-modules-5.10.0-28-marvell-di isofs-modules-5.10.0-28-marvell-di jffs2-modules-5.10.0-28-marvell-di jfs-modules-5.10.0-28-marvell-di fat-modules-5.10.0-28-marvell-di minix-modules-5.10.0-28-marvell-di squashfs-modules-5.10.0-28-marvell-di udf-modules-5.10.0-28-marvell-di fuse-modules-5.10.0-28-marvell-di f2fs-modules-5.10.0-28-marvell-di md-modules-5.10.0-28-marvell-di multipath-modules-5.10.0-28-marvell-di usb-modules-5.10.0-28-marvell-di usb-storage-modules-5.10.0-28-marvell-di fb-modules-5.10.0-28-marvell-di input-modules-5.10.0-28-marvell-di event-modules-5.10.0-28-marvell-di mouse-modules-5.10.0-28-marvell-di nic-usb-modules-5.10.0-28-marvell-di sata-modules-5.10.0-28-marvell-di crc-modules-5.10.0-28-marvell-di crypto-modules-5.10.0-28-marvell-di crypto-dm-modules-5.10.0-28-marvell-di mmc-core-modules-5.10.0-28-marvell-di mmc-modules-5.10.0-28-marvell-di nbd-modules-5.10.0-28-marvell-di uinput-modules-5.10.0-28-marvell-di leds-modules-5.10.0-28-marvell-di mtd-modules-5.10.0-28-marvell-di mtd-core-modules-5.10.0-28-marvell-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_armel ABINAME='5.10.0-29' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-marvell-di nic-modules-5.10.0-29-marvell-di nic-shared-modules-5.10.0-29-marvell-di usb-serial-modules-5.10.0-29-marvell-di ppp-modules-5.10.0-29-marvell-di cdrom-core-modules-5.10.0-29-marvell-di scsi-core-modules-5.10.0-29-marvell-di loop-modules-5.10.0-29-marvell-di ipv6-modules-5.10.0-29-marvell-di btrfs-modules-5.10.0-29-marvell-di ext4-modules-5.10.0-29-marvell-di isofs-modules-5.10.0-29-marvell-di jffs2-modules-5.10.0-29-marvell-di jfs-modules-5.10.0-29-marvell-di fat-modules-5.10.0-29-marvell-di minix-modules-5.10.0-29-marvell-di squashfs-modules-5.10.0-29-marvell-di udf-modules-5.10.0-29-marvell-di fuse-modules-5.10.0-29-marvell-di f2fs-modules-5.10.0-29-marvell-di md-modules-5.10.0-29-marvell-di multipath-modules-5.10.0-29-marvell-di usb-modules-5.10.0-29-marvell-di usb-storage-modules-5.10.0-29-marvell-di fb-modules-5.10.0-29-marvell-di input-modules-5.10.0-29-marvell-di event-modules-5.10.0-29-marvell-di mouse-modules-5.10.0-29-marvell-di nic-usb-modules-5.10.0-29-marvell-di sata-modules-5.10.0-29-marvell-di crc-modules-5.10.0-29-marvell-di crypto-modules-5.10.0-29-marvell-di crypto-dm-modules-5.10.0-29-marvell-di mmc-core-modules-5.10.0-29-marvell-di mmc-modules-5.10.0-29-marvell-di nbd-modules-5.10.0-29-marvell-di uinput-modules-5.10.0-29-marvell-di leds-modules-5.10.0-29-marvell-di mtd-modules-5.10.0-29-marvell-di mtd-core-modules-5.10.0-29-marvell-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_armel_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='armel' DH_OPTIONS='-plinux-compiler-gcc-10-arm' binary-arch_armel_none: binary-arch_armel_none_marvell binary-arch_armel_none_real binary-arch_armel_none_rpi binary-arch_armel_none_marvell: binary-arch_armel_none_marvell_real binary-arch_armel_none_marvell_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_armel_none_real: binary-arch_armel_none_rpi: binary-arch_armel_none_rpi_real binary-arch_armel_none_rpi_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_armel_real:: setup_armel binary-arch_armel_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_armhf:: binary-arch_armhf_extra binary-arch_armhf_none binary-arch_armhf_real binary-arch_armhf_rt binary-arch_armhf:: - $(MAKE) -f debian/rules.real install-udeb_armhf ABINAME='5.10.0-28' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-armmp-di nic-modules-5.10.0-28-armmp-di nic-wireless-modules-5.10.0-28-armmp-di nic-shared-modules-5.10.0-28-armmp-di usb-serial-modules-5.10.0-28-armmp-di ppp-modules-5.10.0-28-armmp-di pata-modules-5.10.0-28-armmp-di cdrom-core-modules-5.10.0-28-armmp-di scsi-core-modules-5.10.0-28-armmp-di scsi-modules-5.10.0-28-armmp-di scsi-nic-modules-5.10.0-28-armmp-di loop-modules-5.10.0-28-armmp-di btrfs-modules-5.10.0-28-armmp-di ext4-modules-5.10.0-28-armmp-di isofs-modules-5.10.0-28-armmp-di jfs-modules-5.10.0-28-armmp-di fat-modules-5.10.0-28-armmp-di squashfs-modules-5.10.0-28-armmp-di udf-modules-5.10.0-28-armmp-di fuse-modules-5.10.0-28-armmp-di f2fs-modules-5.10.0-28-armmp-di md-modules-5.10.0-28-armmp-di multipath-modules-5.10.0-28-armmp-di usb-modules-5.10.0-28-armmp-di usb-storage-modules-5.10.0-28-armmp-di fb-modules-5.10.0-28-armmp-di input-modules-5.10.0-28-armmp-di event-modules-5.10.0-28-armmp-di nic-usb-modules-5.10.0-28-armmp-di sata-modules-5.10.0-28-armmp-di i2c-modules-5.10.0-28-armmp-di crc-modules-5.10.0-28-armmp-di crypto-modules-5.10.0-28-armmp-di crypto-dm-modules-5.10.0-28-armmp-di efi-modules-5.10.0-28-armmp-di ata-modules-5.10.0-28-armmp-di mmc-modules-5.10.0-28-armmp-di nbd-modules-5.10.0-28-armmp-di uinput-modules-5.10.0-28-armmp-di leds-modules-5.10.0-28-armmp-di mtd-modules-5.10.0-28-armmp-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_armhf ABINAME='5.10.0-29' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-armmp-di nic-modules-5.10.0-29-armmp-di nic-wireless-modules-5.10.0-29-armmp-di nic-shared-modules-5.10.0-29-armmp-di usb-serial-modules-5.10.0-29-armmp-di ppp-modules-5.10.0-29-armmp-di pata-modules-5.10.0-29-armmp-di cdrom-core-modules-5.10.0-29-armmp-di scsi-core-modules-5.10.0-29-armmp-di scsi-modules-5.10.0-29-armmp-di scsi-nic-modules-5.10.0-29-armmp-di loop-modules-5.10.0-29-armmp-di btrfs-modules-5.10.0-29-armmp-di ext4-modules-5.10.0-29-armmp-di isofs-modules-5.10.0-29-armmp-di jfs-modules-5.10.0-29-armmp-di fat-modules-5.10.0-29-armmp-di squashfs-modules-5.10.0-29-armmp-di udf-modules-5.10.0-29-armmp-di fuse-modules-5.10.0-29-armmp-di f2fs-modules-5.10.0-29-armmp-di md-modules-5.10.0-29-armmp-di multipath-modules-5.10.0-29-armmp-di usb-modules-5.10.0-29-armmp-di usb-storage-modules-5.10.0-29-armmp-di fb-modules-5.10.0-29-armmp-di input-modules-5.10.0-29-armmp-di event-modules-5.10.0-29-armmp-di nic-usb-modules-5.10.0-29-armmp-di sata-modules-5.10.0-29-armmp-di i2c-modules-5.10.0-29-armmp-di crc-modules-5.10.0-29-armmp-di crypto-modules-5.10.0-29-armmp-di crypto-dm-modules-5.10.0-29-armmp-di efi-modules-5.10.0-29-armmp-di ata-modules-5.10.0-29-armmp-di mmc-modules-5.10.0-29-armmp-di nbd-modules-5.10.0-29-armmp-di uinput-modules-5.10.0-29-armmp-di leds-modules-5.10.0-29-armmp-di mtd-modules-5.10.0-29-armmp-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_armhf_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='armhf' DH_OPTIONS='-plinux-compiler-gcc-10-arm' binary-arch_armhf_none: binary-arch_armhf_none_armmp binary-arch_armhf_none_armmp-lpae binary-arch_armhf_none_real binary-arch_armhf_none_armmp: binary-arch_armhf_none_armmp_real binary-arch_armhf_none_armmp-lpae: binary-arch_armhf_none_armmp-lpae_real binary-arch_armhf_none_armmp-lpae_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_armhf_none_armmp_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_armhf_none_real: binary-arch_armhf_real:: setup_armhf binary-arch_armhf_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_armhf_rt: binary-arch_armhf_rt_armmp binary-arch_armhf_rt_real binary-arch_armhf_rt_armmp: binary-arch_armhf_rt_armmp_real binary-arch_armhf_rt_armmp_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_armhf_rt_real: binary-arch_hppa:: binary-arch_hppa_extra binary-arch_hppa_none binary-arch_hppa_real binary-arch_hppa:: - $(MAKE) -f debian/rules.real install-udeb_hppa ABINAME='5.10.0-28' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-parisc-di nic-modules-5.10.0-28-parisc-di nic-shared-modules-5.10.0-28-parisc-di serial-modules-5.10.0-28-parisc-di usb-serial-modules-5.10.0-28-parisc-di ppp-modules-5.10.0-28-parisc-di pata-modules-5.10.0-28-parisc-di cdrom-core-modules-5.10.0-28-parisc-di scsi-core-modules-5.10.0-28-parisc-di scsi-modules-5.10.0-28-parisc-di loop-modules-5.10.0-28-parisc-di btrfs-modules-5.10.0-28-parisc-di ext4-modules-5.10.0-28-parisc-di isofs-modules-5.10.0-28-parisc-di jfs-modules-5.10.0-28-parisc-di xfs-modules-5.10.0-28-parisc-di fat-modules-5.10.0-28-parisc-di squashfs-modules-5.10.0-28-parisc-di fuse-modules-5.10.0-28-parisc-di f2fs-modules-5.10.0-28-parisc-di md-modules-5.10.0-28-parisc-di multipath-modules-5.10.0-28-parisc-di usb-modules-5.10.0-28-parisc-di usb-storage-modules-5.10.0-28-parisc-di input-modules-5.10.0-28-parisc-di event-modules-5.10.0-28-parisc-di mouse-modules-5.10.0-28-parisc-di nic-usb-modules-5.10.0-28-parisc-di sata-modules-5.10.0-28-parisc-di crc-modules-5.10.0-28-parisc-di crypto-modules-5.10.0-28-parisc-di crypto-dm-modules-5.10.0-28-parisc-di ata-modules-5.10.0-28-parisc-di nbd-modules-5.10.0-28-parisc-di kernel-image-5.10.0-28-parisc64-di nic-modules-5.10.0-28-parisc64-di nic-shared-modules-5.10.0-28-parisc64-di serial-modules-5.10.0-28-parisc64-di usb-serial-modules-5.10.0-28-parisc64-di ppp-modules-5.10.0-28-parisc64-di pata-modules-5.10.0-28-parisc64-di cdrom-core-modules-5.10.0-28-parisc64-di scsi-core-modules-5.10.0-28-parisc64-di scsi-modules-5.10.0-28-parisc64-di loop-modules-5.10.0-28-parisc64-di btrfs-modules-5.10.0-28-parisc64-di ext4-modules-5.10.0-28-parisc64-di isofs-modules-5.10.0-28-parisc64-di jfs-modules-5.10.0-28-parisc64-di xfs-modules-5.10.0-28-parisc64-di fat-modules-5.10.0-28-parisc64-di squashfs-modules-5.10.0-28-parisc64-di fuse-modules-5.10.0-28-parisc64-di f2fs-modules-5.10.0-28-parisc64-di md-modules-5.10.0-28-parisc64-di multipath-modules-5.10.0-28-parisc64-di usb-modules-5.10.0-28-parisc64-di usb-storage-modules-5.10.0-28-parisc64-di fb-modules-5.10.0-28-parisc64-di input-modules-5.10.0-28-parisc64-di event-modules-5.10.0-28-parisc64-di mouse-modules-5.10.0-28-parisc64-di nic-usb-modules-5.10.0-28-parisc64-di sata-modules-5.10.0-28-parisc64-di crc-modules-5.10.0-28-parisc64-di crypto-modules-5.10.0-28-parisc64-di crypto-dm-modules-5.10.0-28-parisc64-di ata-modules-5.10.0-28-parisc64-di nbd-modules-5.10.0-28-parisc64-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_hppa ABINAME='5.10.0-29' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-parisc-di nic-modules-5.10.0-29-parisc-di nic-shared-modules-5.10.0-29-parisc-di serial-modules-5.10.0-29-parisc-di usb-serial-modules-5.10.0-29-parisc-di ppp-modules-5.10.0-29-parisc-di pata-modules-5.10.0-29-parisc-di cdrom-core-modules-5.10.0-29-parisc-di scsi-core-modules-5.10.0-29-parisc-di scsi-modules-5.10.0-29-parisc-di loop-modules-5.10.0-29-parisc-di btrfs-modules-5.10.0-29-parisc-di ext4-modules-5.10.0-29-parisc-di isofs-modules-5.10.0-29-parisc-di jfs-modules-5.10.0-29-parisc-di xfs-modules-5.10.0-29-parisc-di fat-modules-5.10.0-29-parisc-di squashfs-modules-5.10.0-29-parisc-di fuse-modules-5.10.0-29-parisc-di f2fs-modules-5.10.0-29-parisc-di md-modules-5.10.0-29-parisc-di multipath-modules-5.10.0-29-parisc-di usb-modules-5.10.0-29-parisc-di usb-storage-modules-5.10.0-29-parisc-di input-modules-5.10.0-29-parisc-di event-modules-5.10.0-29-parisc-di mouse-modules-5.10.0-29-parisc-di nic-usb-modules-5.10.0-29-parisc-di sata-modules-5.10.0-29-parisc-di crc-modules-5.10.0-29-parisc-di crypto-modules-5.10.0-29-parisc-di crypto-dm-modules-5.10.0-29-parisc-di ata-modules-5.10.0-29-parisc-di nbd-modules-5.10.0-29-parisc-di kernel-image-5.10.0-29-parisc64-di nic-modules-5.10.0-29-parisc64-di nic-shared-modules-5.10.0-29-parisc64-di serial-modules-5.10.0-29-parisc64-di usb-serial-modules-5.10.0-29-parisc64-di ppp-modules-5.10.0-29-parisc64-di pata-modules-5.10.0-29-parisc64-di cdrom-core-modules-5.10.0-29-parisc64-di scsi-core-modules-5.10.0-29-parisc64-di scsi-modules-5.10.0-29-parisc64-di loop-modules-5.10.0-29-parisc64-di btrfs-modules-5.10.0-29-parisc64-di ext4-modules-5.10.0-29-parisc64-di isofs-modules-5.10.0-29-parisc64-di jfs-modules-5.10.0-29-parisc64-di xfs-modules-5.10.0-29-parisc64-di fat-modules-5.10.0-29-parisc64-di squashfs-modules-5.10.0-29-parisc64-di fuse-modules-5.10.0-29-parisc64-di f2fs-modules-5.10.0-29-parisc64-di md-modules-5.10.0-29-parisc64-di multipath-modules-5.10.0-29-parisc64-di usb-modules-5.10.0-29-parisc64-di usb-storage-modules-5.10.0-29-parisc64-di fb-modules-5.10.0-29-parisc64-di input-modules-5.10.0-29-parisc64-di event-modules-5.10.0-29-parisc64-di mouse-modules-5.10.0-29-parisc64-di nic-usb-modules-5.10.0-29-parisc64-di sata-modules-5.10.0-29-parisc64-di crc-modules-5.10.0-29-parisc64-di crypto-modules-5.10.0-29-parisc64-di crypto-dm-modules-5.10.0-29-parisc64-di ata-modules-5.10.0-29-parisc64-di nbd-modules-5.10.0-29-parisc64-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_hppa_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='hppa' DH_OPTIONS='-plinux-image-parisc64-smp' $(MAKE) -f debian/rules.real install-dummy ARCH='hppa' DH_OPTIONS='-plinux-image-parisc-smp' @@ -109,604 +109,604 @@ binary-arch_hppa_none_parisc: binary-arch_hppa_none_parisc_real binary-arch_hppa_none_parisc64: binary-arch_hppa_none_parisc64_real binary-arch_hppa_none_parisc64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_hppa_none_parisc_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_hppa_none_real: binary-arch_hppa_real:: setup_hppa binary-arch_hppa_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_i386:: binary-arch_i386_extra binary-arch_i386_none binary-arch_i386_real binary-arch_i386_rt binary-arch_i386:: - $(MAKE) -f debian/rules.real install-udeb_i386 ABINAME='5.10.0-28' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-686-di nic-modules-5.10.0-28-686-di nic-wireless-modules-5.10.0-28-686-di nic-shared-modules-5.10.0-28-686-di serial-modules-5.10.0-28-686-di usb-serial-modules-5.10.0-28-686-di ppp-modules-5.10.0-28-686-di pata-modules-5.10.0-28-686-di cdrom-core-modules-5.10.0-28-686-di firewire-core-modules-5.10.0-28-686-di scsi-core-modules-5.10.0-28-686-di scsi-modules-5.10.0-28-686-di scsi-nic-modules-5.10.0-28-686-di loop-modules-5.10.0-28-686-di btrfs-modules-5.10.0-28-686-di ext4-modules-5.10.0-28-686-di isofs-modules-5.10.0-28-686-di jfs-modules-5.10.0-28-686-di xfs-modules-5.10.0-28-686-di fat-modules-5.10.0-28-686-di squashfs-modules-5.10.0-28-686-di udf-modules-5.10.0-28-686-di fuse-modules-5.10.0-28-686-di f2fs-modules-5.10.0-28-686-di md-modules-5.10.0-28-686-di multipath-modules-5.10.0-28-686-di usb-modules-5.10.0-28-686-di usb-storage-modules-5.10.0-28-686-di pcmcia-storage-modules-5.10.0-28-686-di fb-modules-5.10.0-28-686-di input-modules-5.10.0-28-686-di event-modules-5.10.0-28-686-di mouse-modules-5.10.0-28-686-di nic-pcmcia-modules-5.10.0-28-686-di pcmcia-modules-5.10.0-28-686-di nic-usb-modules-5.10.0-28-686-di sata-modules-5.10.0-28-686-di acpi-modules-5.10.0-28-686-di i2c-modules-5.10.0-28-686-di crc-modules-5.10.0-28-686-di crypto-modules-5.10.0-28-686-di crypto-dm-modules-5.10.0-28-686-di efi-modules-5.10.0-28-686-di ata-modules-5.10.0-28-686-di mmc-core-modules-5.10.0-28-686-di mmc-modules-5.10.0-28-686-di nbd-modules-5.10.0-28-686-di speakup-modules-5.10.0-28-686-di uinput-modules-5.10.0-28-686-di sound-modules-5.10.0-28-686-di mtd-core-modules-5.10.0-28-686-di rfkill-modules-5.10.0-28-686-di kernel-image-5.10.0-28-686-pae-di nic-modules-5.10.0-28-686-pae-di nic-wireless-modules-5.10.0-28-686-pae-di nic-shared-modules-5.10.0-28-686-pae-di serial-modules-5.10.0-28-686-pae-di usb-serial-modules-5.10.0-28-686-pae-di ppp-modules-5.10.0-28-686-pae-di pata-modules-5.10.0-28-686-pae-di cdrom-core-modules-5.10.0-28-686-pae-di firewire-core-modules-5.10.0-28-686-pae-di scsi-core-modules-5.10.0-28-686-pae-di scsi-modules-5.10.0-28-686-pae-di scsi-nic-modules-5.10.0-28-686-pae-di loop-modules-5.10.0-28-686-pae-di btrfs-modules-5.10.0-28-686-pae-di ext4-modules-5.10.0-28-686-pae-di isofs-modules-5.10.0-28-686-pae-di jfs-modules-5.10.0-28-686-pae-di xfs-modules-5.10.0-28-686-pae-di fat-modules-5.10.0-28-686-pae-di squashfs-modules-5.10.0-28-686-pae-di udf-modules-5.10.0-28-686-pae-di fuse-modules-5.10.0-28-686-pae-di f2fs-modules-5.10.0-28-686-pae-di md-modules-5.10.0-28-686-pae-di multipath-modules-5.10.0-28-686-pae-di usb-modules-5.10.0-28-686-pae-di usb-storage-modules-5.10.0-28-686-pae-di pcmcia-storage-modules-5.10.0-28-686-pae-di fb-modules-5.10.0-28-686-pae-di input-modules-5.10.0-28-686-pae-di event-modules-5.10.0-28-686-pae-di mouse-modules-5.10.0-28-686-pae-di nic-pcmcia-modules-5.10.0-28-686-pae-di pcmcia-modules-5.10.0-28-686-pae-di nic-usb-modules-5.10.0-28-686-pae-di sata-modules-5.10.0-28-686-pae-di acpi-modules-5.10.0-28-686-pae-di i2c-modules-5.10.0-28-686-pae-di crc-modules-5.10.0-28-686-pae-di crypto-modules-5.10.0-28-686-pae-di crypto-dm-modules-5.10.0-28-686-pae-di efi-modules-5.10.0-28-686-pae-di ata-modules-5.10.0-28-686-pae-di mmc-core-modules-5.10.0-28-686-pae-di mmc-modules-5.10.0-28-686-pae-di nbd-modules-5.10.0-28-686-pae-di speakup-modules-5.10.0-28-686-pae-di uinput-modules-5.10.0-28-686-pae-di sound-modules-5.10.0-28-686-pae-di mtd-core-modules-5.10.0-28-686-pae-di rfkill-modules-5.10.0-28-686-pae-di' UDEB_UNSIGNED_TEST_BUILD=True + $(MAKE) -f debian/rules.real install-udeb_i386 ABINAME='5.10.0-29' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-686-di nic-modules-5.10.0-29-686-di nic-wireless-modules-5.10.0-29-686-di nic-shared-modules-5.10.0-29-686-di serial-modules-5.10.0-29-686-di usb-serial-modules-5.10.0-29-686-di ppp-modules-5.10.0-29-686-di pata-modules-5.10.0-29-686-di cdrom-core-modules-5.10.0-29-686-di firewire-core-modules-5.10.0-29-686-di scsi-core-modules-5.10.0-29-686-di scsi-modules-5.10.0-29-686-di scsi-nic-modules-5.10.0-29-686-di loop-modules-5.10.0-29-686-di btrfs-modules-5.10.0-29-686-di ext4-modules-5.10.0-29-686-di isofs-modules-5.10.0-29-686-di jfs-modules-5.10.0-29-686-di xfs-modules-5.10.0-29-686-di fat-modules-5.10.0-29-686-di squashfs-modules-5.10.0-29-686-di udf-modules-5.10.0-29-686-di fuse-modules-5.10.0-29-686-di f2fs-modules-5.10.0-29-686-di md-modules-5.10.0-29-686-di multipath-modules-5.10.0-29-686-di usb-modules-5.10.0-29-686-di usb-storage-modules-5.10.0-29-686-di pcmcia-storage-modules-5.10.0-29-686-di fb-modules-5.10.0-29-686-di input-modules-5.10.0-29-686-di event-modules-5.10.0-29-686-di mouse-modules-5.10.0-29-686-di nic-pcmcia-modules-5.10.0-29-686-di pcmcia-modules-5.10.0-29-686-di nic-usb-modules-5.10.0-29-686-di sata-modules-5.10.0-29-686-di acpi-modules-5.10.0-29-686-di i2c-modules-5.10.0-29-686-di crc-modules-5.10.0-29-686-di crypto-modules-5.10.0-29-686-di crypto-dm-modules-5.10.0-29-686-di efi-modules-5.10.0-29-686-di ata-modules-5.10.0-29-686-di mmc-core-modules-5.10.0-29-686-di mmc-modules-5.10.0-29-686-di nbd-modules-5.10.0-29-686-di speakup-modules-5.10.0-29-686-di uinput-modules-5.10.0-29-686-di sound-modules-5.10.0-29-686-di mtd-core-modules-5.10.0-29-686-di rfkill-modules-5.10.0-29-686-di kernel-image-5.10.0-29-686-pae-di nic-modules-5.10.0-29-686-pae-di nic-wireless-modules-5.10.0-29-686-pae-di nic-shared-modules-5.10.0-29-686-pae-di serial-modules-5.10.0-29-686-pae-di usb-serial-modules-5.10.0-29-686-pae-di ppp-modules-5.10.0-29-686-pae-di pata-modules-5.10.0-29-686-pae-di cdrom-core-modules-5.10.0-29-686-pae-di firewire-core-modules-5.10.0-29-686-pae-di scsi-core-modules-5.10.0-29-686-pae-di scsi-modules-5.10.0-29-686-pae-di scsi-nic-modules-5.10.0-29-686-pae-di loop-modules-5.10.0-29-686-pae-di btrfs-modules-5.10.0-29-686-pae-di ext4-modules-5.10.0-29-686-pae-di isofs-modules-5.10.0-29-686-pae-di jfs-modules-5.10.0-29-686-pae-di xfs-modules-5.10.0-29-686-pae-di fat-modules-5.10.0-29-686-pae-di squashfs-modules-5.10.0-29-686-pae-di udf-modules-5.10.0-29-686-pae-di fuse-modules-5.10.0-29-686-pae-di f2fs-modules-5.10.0-29-686-pae-di md-modules-5.10.0-29-686-pae-di multipath-modules-5.10.0-29-686-pae-di usb-modules-5.10.0-29-686-pae-di usb-storage-modules-5.10.0-29-686-pae-di pcmcia-storage-modules-5.10.0-29-686-pae-di fb-modules-5.10.0-29-686-pae-di input-modules-5.10.0-29-686-pae-di event-modules-5.10.0-29-686-pae-di mouse-modules-5.10.0-29-686-pae-di nic-pcmcia-modules-5.10.0-29-686-pae-di pcmcia-modules-5.10.0-29-686-pae-di nic-usb-modules-5.10.0-29-686-pae-di sata-modules-5.10.0-29-686-pae-di acpi-modules-5.10.0-29-686-pae-di i2c-modules-5.10.0-29-686-pae-di crc-modules-5.10.0-29-686-pae-di crypto-modules-5.10.0-29-686-pae-di crypto-dm-modules-5.10.0-29-686-pae-di efi-modules-5.10.0-29-686-pae-di ata-modules-5.10.0-29-686-pae-di mmc-core-modules-5.10.0-29-686-pae-di mmc-modules-5.10.0-29-686-pae-di nbd-modules-5.10.0-29-686-pae-di speakup-modules-5.10.0-29-686-pae-di uinput-modules-5.10.0-29-686-pae-di sound-modules-5.10.0-29-686-pae-di mtd-core-modules-5.10.0-29-686-pae-di rfkill-modules-5.10.0-29-686-pae-di' UDEB_UNSIGNED_TEST_BUILD=True binary-arch_i386:: - $(MAKE) -f debian/rules.real install-signed-template_i386 ABINAME='5.10.0-28' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real install-signed-template_i386 ABINAME='5.10.0-29' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_i386_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='i386' DH_OPTIONS='-plinux-compiler-gcc-10-x86' binary-arch_i386_none: binary-arch_i386_none_686 binary-arch_i386_none_686-pae binary-arch_i386_none_real binary-arch_i386_none_686: binary-arch_i386_none_686_real binary-arch_i386_none_686-pae: binary-arch_i386_none_686-pae_real binary-arch_i386_none_686-pae_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_i386_none_686_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_i386_none_real: binary-arch_i386_real:: setup_i386 binary-arch_i386_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_i386_rt: binary-arch_i386_rt_686-pae binary-arch_i386_rt_real binary-arch_i386_rt_686-pae: binary-arch_i386_rt_686-pae_real binary-arch_i386_rt_686-pae_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_i386_rt_real: binary-arch_ia64:: binary-arch_ia64_none binary-arch_ia64_real binary-arch_ia64:: - $(MAKE) -f debian/rules.real install-udeb_ia64 ABINAME='5.10.0-28' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-itanium-di nic-modules-5.10.0-28-itanium-di nic-shared-modules-5.10.0-28-itanium-di serial-modules-5.10.0-28-itanium-di usb-serial-modules-5.10.0-28-itanium-di ppp-modules-5.10.0-28-itanium-di pata-modules-5.10.0-28-itanium-di cdrom-core-modules-5.10.0-28-itanium-di firewire-core-modules-5.10.0-28-itanium-di scsi-core-modules-5.10.0-28-itanium-di scsi-modules-5.10.0-28-itanium-di scsi-nic-modules-5.10.0-28-itanium-di loop-modules-5.10.0-28-itanium-di btrfs-modules-5.10.0-28-itanium-di ext4-modules-5.10.0-28-itanium-di isofs-modules-5.10.0-28-itanium-di jfs-modules-5.10.0-28-itanium-di xfs-modules-5.10.0-28-itanium-di fat-modules-5.10.0-28-itanium-di squashfs-modules-5.10.0-28-itanium-di udf-modules-5.10.0-28-itanium-di fuse-modules-5.10.0-28-itanium-di f2fs-modules-5.10.0-28-itanium-di md-modules-5.10.0-28-itanium-di multipath-modules-5.10.0-28-itanium-di usb-modules-5.10.0-28-itanium-di usb-storage-modules-5.10.0-28-itanium-di fb-modules-5.10.0-28-itanium-di input-modules-5.10.0-28-itanium-di event-modules-5.10.0-28-itanium-di mouse-modules-5.10.0-28-itanium-di pcmcia-modules-5.10.0-28-itanium-di nic-usb-modules-5.10.0-28-itanium-di sata-modules-5.10.0-28-itanium-di i2c-modules-5.10.0-28-itanium-di crc-modules-5.10.0-28-itanium-di crypto-modules-5.10.0-28-itanium-di crypto-dm-modules-5.10.0-28-itanium-di ata-modules-5.10.0-28-itanium-di nbd-modules-5.10.0-28-itanium-di uinput-modules-5.10.0-28-itanium-di mtd-core-modules-5.10.0-28-itanium-di ide-core-modules-5.10.0-28-itanium-di ide-modules-5.10.0-28-itanium-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_ia64 ABINAME='5.10.0-29' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-itanium-di nic-modules-5.10.0-29-itanium-di nic-shared-modules-5.10.0-29-itanium-di serial-modules-5.10.0-29-itanium-di usb-serial-modules-5.10.0-29-itanium-di ppp-modules-5.10.0-29-itanium-di pata-modules-5.10.0-29-itanium-di cdrom-core-modules-5.10.0-29-itanium-di firewire-core-modules-5.10.0-29-itanium-di scsi-core-modules-5.10.0-29-itanium-di scsi-modules-5.10.0-29-itanium-di scsi-nic-modules-5.10.0-29-itanium-di loop-modules-5.10.0-29-itanium-di btrfs-modules-5.10.0-29-itanium-di ext4-modules-5.10.0-29-itanium-di isofs-modules-5.10.0-29-itanium-di jfs-modules-5.10.0-29-itanium-di xfs-modules-5.10.0-29-itanium-di fat-modules-5.10.0-29-itanium-di squashfs-modules-5.10.0-29-itanium-di udf-modules-5.10.0-29-itanium-di fuse-modules-5.10.0-29-itanium-di f2fs-modules-5.10.0-29-itanium-di md-modules-5.10.0-29-itanium-di multipath-modules-5.10.0-29-itanium-di usb-modules-5.10.0-29-itanium-di usb-storage-modules-5.10.0-29-itanium-di fb-modules-5.10.0-29-itanium-di input-modules-5.10.0-29-itanium-di event-modules-5.10.0-29-itanium-di mouse-modules-5.10.0-29-itanium-di pcmcia-modules-5.10.0-29-itanium-di nic-usb-modules-5.10.0-29-itanium-di sata-modules-5.10.0-29-itanium-di i2c-modules-5.10.0-29-itanium-di crc-modules-5.10.0-29-itanium-di crypto-modules-5.10.0-29-itanium-di crypto-dm-modules-5.10.0-29-itanium-di ata-modules-5.10.0-29-itanium-di nbd-modules-5.10.0-29-itanium-di uinput-modules-5.10.0-29-itanium-di mtd-core-modules-5.10.0-29-itanium-di ide-core-modules-5.10.0-29-itanium-di ide-modules-5.10.0-29-itanium-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_ia64_none: binary-arch_ia64_none_itanium binary-arch_ia64_none_mckinley binary-arch_ia64_none_real binary-arch_ia64_none_itanium: binary-arch_ia64_none_itanium_real binary-arch_ia64_none_itanium_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_ia64_none_mckinley: binary-arch_ia64_none_mckinley_real binary-arch_ia64_none_mckinley_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_ia64_none_real: binary-arch_ia64_real:: setup_ia64 binary-arch_ia64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_m68k:: binary-arch_m68k_none binary-arch_m68k_real binary-arch_m68k:: - $(MAKE) -f debian/rules.real install-udeb_m68k ABINAME='5.10.0-28' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-m68k-di nic-modules-5.10.0-28-m68k-di nic-shared-modules-5.10.0-28-m68k-di ppp-modules-5.10.0-28-m68k-di pata-modules-5.10.0-28-m68k-di cdrom-core-modules-5.10.0-28-m68k-di scsi-core-modules-5.10.0-28-m68k-di scsi-modules-5.10.0-28-m68k-di loop-modules-5.10.0-28-m68k-di btrfs-modules-5.10.0-28-m68k-di ext4-modules-5.10.0-28-m68k-di isofs-modules-5.10.0-28-m68k-di fat-modules-5.10.0-28-m68k-di hfs-modules-5.10.0-28-m68k-di affs-modules-5.10.0-28-m68k-di squashfs-modules-5.10.0-28-m68k-di udf-modules-5.10.0-28-m68k-di fuse-modules-5.10.0-28-m68k-di md-modules-5.10.0-28-m68k-di crc-modules-5.10.0-28-m68k-di crypto-modules-5.10.0-28-m68k-di ata-modules-5.10.0-28-m68k-di nbd-modules-5.10.0-28-m68k-di ide-core-modules-5.10.0-28-m68k-di ide-modules-5.10.0-28-m68k-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_m68k ABINAME='5.10.0-29' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-m68k-di nic-modules-5.10.0-29-m68k-di nic-shared-modules-5.10.0-29-m68k-di ppp-modules-5.10.0-29-m68k-di pata-modules-5.10.0-29-m68k-di cdrom-core-modules-5.10.0-29-m68k-di scsi-core-modules-5.10.0-29-m68k-di scsi-modules-5.10.0-29-m68k-di loop-modules-5.10.0-29-m68k-di btrfs-modules-5.10.0-29-m68k-di ext4-modules-5.10.0-29-m68k-di isofs-modules-5.10.0-29-m68k-di fat-modules-5.10.0-29-m68k-di hfs-modules-5.10.0-29-m68k-di affs-modules-5.10.0-29-m68k-di squashfs-modules-5.10.0-29-m68k-di udf-modules-5.10.0-29-m68k-di fuse-modules-5.10.0-29-m68k-di md-modules-5.10.0-29-m68k-di crc-modules-5.10.0-29-m68k-di crypto-modules-5.10.0-29-m68k-di ata-modules-5.10.0-29-m68k-di nbd-modules-5.10.0-29-m68k-di ide-core-modules-5.10.0-29-m68k-di ide-modules-5.10.0-29-m68k-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_m68k_none: binary-arch_m68k_none_m68k binary-arch_m68k_none_real binary-arch_m68k_none_m68k: binary-arch_m68k_none_m68k_real binary-arch_m68k_none_m68k_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_m68k_none_real: binary-arch_m68k_real:: setup_m68k binary-arch_m68k_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips:: binary-arch_mips_none binary-arch_mips_real binary-arch_mips:: - $(MAKE) -f debian/rules.real install-udeb_mips ABINAME='5.10.0-28' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-4kc-malta-di nic-modules-5.10.0-28-4kc-malta-di nic-wireless-modules-5.10.0-28-4kc-malta-di nic-shared-modules-5.10.0-28-4kc-malta-di usb-serial-modules-5.10.0-28-4kc-malta-di ppp-modules-5.10.0-28-4kc-malta-di pata-modules-5.10.0-28-4kc-malta-di cdrom-core-modules-5.10.0-28-4kc-malta-di scsi-core-modules-5.10.0-28-4kc-malta-di scsi-modules-5.10.0-28-4kc-malta-di scsi-nic-modules-5.10.0-28-4kc-malta-di loop-modules-5.10.0-28-4kc-malta-di btrfs-modules-5.10.0-28-4kc-malta-di ext4-modules-5.10.0-28-4kc-malta-di isofs-modules-5.10.0-28-4kc-malta-di jfs-modules-5.10.0-28-4kc-malta-di xfs-modules-5.10.0-28-4kc-malta-di fat-modules-5.10.0-28-4kc-malta-di affs-modules-5.10.0-28-4kc-malta-di minix-modules-5.10.0-28-4kc-malta-di squashfs-modules-5.10.0-28-4kc-malta-di udf-modules-5.10.0-28-4kc-malta-di fuse-modules-5.10.0-28-4kc-malta-di f2fs-modules-5.10.0-28-4kc-malta-di md-modules-5.10.0-28-4kc-malta-di multipath-modules-5.10.0-28-4kc-malta-di usb-modules-5.10.0-28-4kc-malta-di usb-storage-modules-5.10.0-28-4kc-malta-di fb-modules-5.10.0-28-4kc-malta-di input-modules-5.10.0-28-4kc-malta-di event-modules-5.10.0-28-4kc-malta-di mouse-modules-5.10.0-28-4kc-malta-di nic-usb-modules-5.10.0-28-4kc-malta-di sata-modules-5.10.0-28-4kc-malta-di i2c-modules-5.10.0-28-4kc-malta-di crc-modules-5.10.0-28-4kc-malta-di crypto-modules-5.10.0-28-4kc-malta-di crypto-dm-modules-5.10.0-28-4kc-malta-di ata-modules-5.10.0-28-4kc-malta-di mmc-core-modules-5.10.0-28-4kc-malta-di mmc-modules-5.10.0-28-4kc-malta-di nbd-modules-5.10.0-28-4kc-malta-di sound-modules-5.10.0-28-4kc-malta-di mtd-core-modules-5.10.0-28-4kc-malta-di kernel-image-5.10.0-28-octeon-di nic-modules-5.10.0-28-octeon-di nic-wireless-modules-5.10.0-28-octeon-di nic-shared-modules-5.10.0-28-octeon-di usb-serial-modules-5.10.0-28-octeon-di ppp-modules-5.10.0-28-octeon-di pata-modules-5.10.0-28-octeon-di cdrom-core-modules-5.10.0-28-octeon-di scsi-core-modules-5.10.0-28-octeon-di scsi-modules-5.10.0-28-octeon-di scsi-nic-modules-5.10.0-28-octeon-di loop-modules-5.10.0-28-octeon-di btrfs-modules-5.10.0-28-octeon-di ext4-modules-5.10.0-28-octeon-di isofs-modules-5.10.0-28-octeon-di jfs-modules-5.10.0-28-octeon-di xfs-modules-5.10.0-28-octeon-di fat-modules-5.10.0-28-octeon-di affs-modules-5.10.0-28-octeon-di minix-modules-5.10.0-28-octeon-di squashfs-modules-5.10.0-28-octeon-di udf-modules-5.10.0-28-octeon-di fuse-modules-5.10.0-28-octeon-di f2fs-modules-5.10.0-28-octeon-di md-modules-5.10.0-28-octeon-di multipath-modules-5.10.0-28-octeon-di usb-modules-5.10.0-28-octeon-di usb-storage-modules-5.10.0-28-octeon-di input-modules-5.10.0-28-octeon-di event-modules-5.10.0-28-octeon-di nic-usb-modules-5.10.0-28-octeon-di sata-modules-5.10.0-28-octeon-di crc-modules-5.10.0-28-octeon-di crypto-modules-5.10.0-28-octeon-di crypto-dm-modules-5.10.0-28-octeon-di nbd-modules-5.10.0-28-octeon-di rtc-modules-5.10.0-28-octeon-di sound-modules-5.10.0-28-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mips ABINAME='5.10.0-29' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-4kc-malta-di nic-modules-5.10.0-29-4kc-malta-di nic-wireless-modules-5.10.0-29-4kc-malta-di nic-shared-modules-5.10.0-29-4kc-malta-di usb-serial-modules-5.10.0-29-4kc-malta-di ppp-modules-5.10.0-29-4kc-malta-di pata-modules-5.10.0-29-4kc-malta-di cdrom-core-modules-5.10.0-29-4kc-malta-di scsi-core-modules-5.10.0-29-4kc-malta-di scsi-modules-5.10.0-29-4kc-malta-di scsi-nic-modules-5.10.0-29-4kc-malta-di loop-modules-5.10.0-29-4kc-malta-di btrfs-modules-5.10.0-29-4kc-malta-di ext4-modules-5.10.0-29-4kc-malta-di isofs-modules-5.10.0-29-4kc-malta-di jfs-modules-5.10.0-29-4kc-malta-di xfs-modules-5.10.0-29-4kc-malta-di fat-modules-5.10.0-29-4kc-malta-di affs-modules-5.10.0-29-4kc-malta-di minix-modules-5.10.0-29-4kc-malta-di squashfs-modules-5.10.0-29-4kc-malta-di udf-modules-5.10.0-29-4kc-malta-di fuse-modules-5.10.0-29-4kc-malta-di f2fs-modules-5.10.0-29-4kc-malta-di md-modules-5.10.0-29-4kc-malta-di multipath-modules-5.10.0-29-4kc-malta-di usb-modules-5.10.0-29-4kc-malta-di usb-storage-modules-5.10.0-29-4kc-malta-di fb-modules-5.10.0-29-4kc-malta-di input-modules-5.10.0-29-4kc-malta-di event-modules-5.10.0-29-4kc-malta-di mouse-modules-5.10.0-29-4kc-malta-di nic-usb-modules-5.10.0-29-4kc-malta-di sata-modules-5.10.0-29-4kc-malta-di i2c-modules-5.10.0-29-4kc-malta-di crc-modules-5.10.0-29-4kc-malta-di crypto-modules-5.10.0-29-4kc-malta-di crypto-dm-modules-5.10.0-29-4kc-malta-di ata-modules-5.10.0-29-4kc-malta-di mmc-core-modules-5.10.0-29-4kc-malta-di mmc-modules-5.10.0-29-4kc-malta-di nbd-modules-5.10.0-29-4kc-malta-di sound-modules-5.10.0-29-4kc-malta-di mtd-core-modules-5.10.0-29-4kc-malta-di kernel-image-5.10.0-29-octeon-di nic-modules-5.10.0-29-octeon-di nic-wireless-modules-5.10.0-29-octeon-di nic-shared-modules-5.10.0-29-octeon-di usb-serial-modules-5.10.0-29-octeon-di ppp-modules-5.10.0-29-octeon-di pata-modules-5.10.0-29-octeon-di cdrom-core-modules-5.10.0-29-octeon-di scsi-core-modules-5.10.0-29-octeon-di scsi-modules-5.10.0-29-octeon-di scsi-nic-modules-5.10.0-29-octeon-di loop-modules-5.10.0-29-octeon-di btrfs-modules-5.10.0-29-octeon-di ext4-modules-5.10.0-29-octeon-di isofs-modules-5.10.0-29-octeon-di jfs-modules-5.10.0-29-octeon-di xfs-modules-5.10.0-29-octeon-di fat-modules-5.10.0-29-octeon-di affs-modules-5.10.0-29-octeon-di minix-modules-5.10.0-29-octeon-di squashfs-modules-5.10.0-29-octeon-di udf-modules-5.10.0-29-octeon-di fuse-modules-5.10.0-29-octeon-di f2fs-modules-5.10.0-29-octeon-di md-modules-5.10.0-29-octeon-di multipath-modules-5.10.0-29-octeon-di usb-modules-5.10.0-29-octeon-di usb-storage-modules-5.10.0-29-octeon-di input-modules-5.10.0-29-octeon-di event-modules-5.10.0-29-octeon-di nic-usb-modules-5.10.0-29-octeon-di sata-modules-5.10.0-29-octeon-di crc-modules-5.10.0-29-octeon-di crypto-modules-5.10.0-29-octeon-di crypto-dm-modules-5.10.0-29-octeon-di nbd-modules-5.10.0-29-octeon-di rtc-modules-5.10.0-29-octeon-di sound-modules-5.10.0-29-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mips64:: binary-arch_mips64_none binary-arch_mips64_real binary-arch_mips64:: - $(MAKE) -f debian/rules.real install-udeb_mips64 ABINAME='5.10.0-28' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-5kc-malta-di nic-modules-5.10.0-28-5kc-malta-di nic-wireless-modules-5.10.0-28-5kc-malta-di nic-shared-modules-5.10.0-28-5kc-malta-di usb-serial-modules-5.10.0-28-5kc-malta-di ppp-modules-5.10.0-28-5kc-malta-di pata-modules-5.10.0-28-5kc-malta-di cdrom-core-modules-5.10.0-28-5kc-malta-di scsi-core-modules-5.10.0-28-5kc-malta-di scsi-modules-5.10.0-28-5kc-malta-di scsi-nic-modules-5.10.0-28-5kc-malta-di loop-modules-5.10.0-28-5kc-malta-di btrfs-modules-5.10.0-28-5kc-malta-di ext4-modules-5.10.0-28-5kc-malta-di isofs-modules-5.10.0-28-5kc-malta-di jfs-modules-5.10.0-28-5kc-malta-di xfs-modules-5.10.0-28-5kc-malta-di fat-modules-5.10.0-28-5kc-malta-di affs-modules-5.10.0-28-5kc-malta-di minix-modules-5.10.0-28-5kc-malta-di squashfs-modules-5.10.0-28-5kc-malta-di udf-modules-5.10.0-28-5kc-malta-di fuse-modules-5.10.0-28-5kc-malta-di f2fs-modules-5.10.0-28-5kc-malta-di md-modules-5.10.0-28-5kc-malta-di multipath-modules-5.10.0-28-5kc-malta-di usb-modules-5.10.0-28-5kc-malta-di usb-storage-modules-5.10.0-28-5kc-malta-di fb-modules-5.10.0-28-5kc-malta-di input-modules-5.10.0-28-5kc-malta-di event-modules-5.10.0-28-5kc-malta-di mouse-modules-5.10.0-28-5kc-malta-di nic-usb-modules-5.10.0-28-5kc-malta-di sata-modules-5.10.0-28-5kc-malta-di i2c-modules-5.10.0-28-5kc-malta-di crc-modules-5.10.0-28-5kc-malta-di crypto-modules-5.10.0-28-5kc-malta-di crypto-dm-modules-5.10.0-28-5kc-malta-di ata-modules-5.10.0-28-5kc-malta-di mmc-core-modules-5.10.0-28-5kc-malta-di mmc-modules-5.10.0-28-5kc-malta-di nbd-modules-5.10.0-28-5kc-malta-di sound-modules-5.10.0-28-5kc-malta-di mtd-core-modules-5.10.0-28-5kc-malta-di kernel-image-5.10.0-28-octeon-di nic-modules-5.10.0-28-octeon-di nic-wireless-modules-5.10.0-28-octeon-di nic-shared-modules-5.10.0-28-octeon-di usb-serial-modules-5.10.0-28-octeon-di ppp-modules-5.10.0-28-octeon-di pata-modules-5.10.0-28-octeon-di cdrom-core-modules-5.10.0-28-octeon-di scsi-core-modules-5.10.0-28-octeon-di scsi-modules-5.10.0-28-octeon-di scsi-nic-modules-5.10.0-28-octeon-di loop-modules-5.10.0-28-octeon-di btrfs-modules-5.10.0-28-octeon-di ext4-modules-5.10.0-28-octeon-di isofs-modules-5.10.0-28-octeon-di jfs-modules-5.10.0-28-octeon-di xfs-modules-5.10.0-28-octeon-di fat-modules-5.10.0-28-octeon-di affs-modules-5.10.0-28-octeon-di minix-modules-5.10.0-28-octeon-di squashfs-modules-5.10.0-28-octeon-di udf-modules-5.10.0-28-octeon-di fuse-modules-5.10.0-28-octeon-di f2fs-modules-5.10.0-28-octeon-di md-modules-5.10.0-28-octeon-di multipath-modules-5.10.0-28-octeon-di usb-modules-5.10.0-28-octeon-di usb-storage-modules-5.10.0-28-octeon-di input-modules-5.10.0-28-octeon-di event-modules-5.10.0-28-octeon-di nic-usb-modules-5.10.0-28-octeon-di sata-modules-5.10.0-28-octeon-di crc-modules-5.10.0-28-octeon-di crypto-modules-5.10.0-28-octeon-di crypto-dm-modules-5.10.0-28-octeon-di nbd-modules-5.10.0-28-octeon-di rtc-modules-5.10.0-28-octeon-di sound-modules-5.10.0-28-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mips64 ABINAME='5.10.0-29' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-5kc-malta-di nic-modules-5.10.0-29-5kc-malta-di nic-wireless-modules-5.10.0-29-5kc-malta-di nic-shared-modules-5.10.0-29-5kc-malta-di usb-serial-modules-5.10.0-29-5kc-malta-di ppp-modules-5.10.0-29-5kc-malta-di pata-modules-5.10.0-29-5kc-malta-di cdrom-core-modules-5.10.0-29-5kc-malta-di scsi-core-modules-5.10.0-29-5kc-malta-di scsi-modules-5.10.0-29-5kc-malta-di scsi-nic-modules-5.10.0-29-5kc-malta-di loop-modules-5.10.0-29-5kc-malta-di btrfs-modules-5.10.0-29-5kc-malta-di ext4-modules-5.10.0-29-5kc-malta-di isofs-modules-5.10.0-29-5kc-malta-di jfs-modules-5.10.0-29-5kc-malta-di xfs-modules-5.10.0-29-5kc-malta-di fat-modules-5.10.0-29-5kc-malta-di affs-modules-5.10.0-29-5kc-malta-di minix-modules-5.10.0-29-5kc-malta-di squashfs-modules-5.10.0-29-5kc-malta-di udf-modules-5.10.0-29-5kc-malta-di fuse-modules-5.10.0-29-5kc-malta-di f2fs-modules-5.10.0-29-5kc-malta-di md-modules-5.10.0-29-5kc-malta-di multipath-modules-5.10.0-29-5kc-malta-di usb-modules-5.10.0-29-5kc-malta-di usb-storage-modules-5.10.0-29-5kc-malta-di fb-modules-5.10.0-29-5kc-malta-di input-modules-5.10.0-29-5kc-malta-di event-modules-5.10.0-29-5kc-malta-di mouse-modules-5.10.0-29-5kc-malta-di nic-usb-modules-5.10.0-29-5kc-malta-di sata-modules-5.10.0-29-5kc-malta-di i2c-modules-5.10.0-29-5kc-malta-di crc-modules-5.10.0-29-5kc-malta-di crypto-modules-5.10.0-29-5kc-malta-di crypto-dm-modules-5.10.0-29-5kc-malta-di ata-modules-5.10.0-29-5kc-malta-di mmc-core-modules-5.10.0-29-5kc-malta-di mmc-modules-5.10.0-29-5kc-malta-di nbd-modules-5.10.0-29-5kc-malta-di sound-modules-5.10.0-29-5kc-malta-di mtd-core-modules-5.10.0-29-5kc-malta-di kernel-image-5.10.0-29-octeon-di nic-modules-5.10.0-29-octeon-di nic-wireless-modules-5.10.0-29-octeon-di nic-shared-modules-5.10.0-29-octeon-di usb-serial-modules-5.10.0-29-octeon-di ppp-modules-5.10.0-29-octeon-di pata-modules-5.10.0-29-octeon-di cdrom-core-modules-5.10.0-29-octeon-di scsi-core-modules-5.10.0-29-octeon-di scsi-modules-5.10.0-29-octeon-di scsi-nic-modules-5.10.0-29-octeon-di loop-modules-5.10.0-29-octeon-di btrfs-modules-5.10.0-29-octeon-di ext4-modules-5.10.0-29-octeon-di isofs-modules-5.10.0-29-octeon-di jfs-modules-5.10.0-29-octeon-di xfs-modules-5.10.0-29-octeon-di fat-modules-5.10.0-29-octeon-di affs-modules-5.10.0-29-octeon-di minix-modules-5.10.0-29-octeon-di squashfs-modules-5.10.0-29-octeon-di udf-modules-5.10.0-29-octeon-di fuse-modules-5.10.0-29-octeon-di f2fs-modules-5.10.0-29-octeon-di md-modules-5.10.0-29-octeon-di multipath-modules-5.10.0-29-octeon-di usb-modules-5.10.0-29-octeon-di usb-storage-modules-5.10.0-29-octeon-di input-modules-5.10.0-29-octeon-di event-modules-5.10.0-29-octeon-di nic-usb-modules-5.10.0-29-octeon-di sata-modules-5.10.0-29-octeon-di crc-modules-5.10.0-29-octeon-di crypto-modules-5.10.0-29-octeon-di crypto-dm-modules-5.10.0-29-octeon-di nbd-modules-5.10.0-29-octeon-di rtc-modules-5.10.0-29-octeon-di sound-modules-5.10.0-29-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mips64_none: binary-arch_mips64_none_5kc-malta binary-arch_mips64_none_octeon binary-arch_mips64_none_real binary-arch_mips64_none_5kc-malta: binary-arch_mips64_none_5kc-malta_real binary-arch_mips64_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64_none_octeon: binary-arch_mips64_none_octeon_real binary-arch_mips64_none_octeon_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64_none_real: binary-arch_mips64_real:: setup_mips64 binary-arch_mips64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64el:: binary-arch_mips64el_none binary-arch_mips64el_real binary-arch_mips64el:: - $(MAKE) -f debian/rules.real install-udeb_mips64el ABINAME='5.10.0-28' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-5kc-malta-di nic-modules-5.10.0-28-5kc-malta-di nic-wireless-modules-5.10.0-28-5kc-malta-di nic-shared-modules-5.10.0-28-5kc-malta-di usb-serial-modules-5.10.0-28-5kc-malta-di ppp-modules-5.10.0-28-5kc-malta-di pata-modules-5.10.0-28-5kc-malta-di cdrom-core-modules-5.10.0-28-5kc-malta-di scsi-core-modules-5.10.0-28-5kc-malta-di scsi-modules-5.10.0-28-5kc-malta-di scsi-nic-modules-5.10.0-28-5kc-malta-di loop-modules-5.10.0-28-5kc-malta-di btrfs-modules-5.10.0-28-5kc-malta-di ext4-modules-5.10.0-28-5kc-malta-di isofs-modules-5.10.0-28-5kc-malta-di jfs-modules-5.10.0-28-5kc-malta-di xfs-modules-5.10.0-28-5kc-malta-di fat-modules-5.10.0-28-5kc-malta-di affs-modules-5.10.0-28-5kc-malta-di minix-modules-5.10.0-28-5kc-malta-di squashfs-modules-5.10.0-28-5kc-malta-di udf-modules-5.10.0-28-5kc-malta-di fuse-modules-5.10.0-28-5kc-malta-di f2fs-modules-5.10.0-28-5kc-malta-di md-modules-5.10.0-28-5kc-malta-di multipath-modules-5.10.0-28-5kc-malta-di usb-modules-5.10.0-28-5kc-malta-di usb-storage-modules-5.10.0-28-5kc-malta-di fb-modules-5.10.0-28-5kc-malta-di input-modules-5.10.0-28-5kc-malta-di event-modules-5.10.0-28-5kc-malta-di mouse-modules-5.10.0-28-5kc-malta-di nic-usb-modules-5.10.0-28-5kc-malta-di sata-modules-5.10.0-28-5kc-malta-di i2c-modules-5.10.0-28-5kc-malta-di crc-modules-5.10.0-28-5kc-malta-di crypto-modules-5.10.0-28-5kc-malta-di crypto-dm-modules-5.10.0-28-5kc-malta-di ata-modules-5.10.0-28-5kc-malta-di mmc-core-modules-5.10.0-28-5kc-malta-di mmc-modules-5.10.0-28-5kc-malta-di nbd-modules-5.10.0-28-5kc-malta-di sound-modules-5.10.0-28-5kc-malta-di mtd-core-modules-5.10.0-28-5kc-malta-di kernel-image-5.10.0-28-loongson-3-di nic-modules-5.10.0-28-loongson-3-di nic-wireless-modules-5.10.0-28-loongson-3-di nic-shared-modules-5.10.0-28-loongson-3-di usb-serial-modules-5.10.0-28-loongson-3-di ppp-modules-5.10.0-28-loongson-3-di pata-modules-5.10.0-28-loongson-3-di cdrom-core-modules-5.10.0-28-loongson-3-di firewire-core-modules-5.10.0-28-loongson-3-di scsi-core-modules-5.10.0-28-loongson-3-di scsi-modules-5.10.0-28-loongson-3-di scsi-nic-modules-5.10.0-28-loongson-3-di loop-modules-5.10.0-28-loongson-3-di btrfs-modules-5.10.0-28-loongson-3-di ext4-modules-5.10.0-28-loongson-3-di isofs-modules-5.10.0-28-loongson-3-di jfs-modules-5.10.0-28-loongson-3-di xfs-modules-5.10.0-28-loongson-3-di fat-modules-5.10.0-28-loongson-3-di affs-modules-5.10.0-28-loongson-3-di minix-modules-5.10.0-28-loongson-3-di nfs-modules-5.10.0-28-loongson-3-di squashfs-modules-5.10.0-28-loongson-3-di udf-modules-5.10.0-28-loongson-3-di fuse-modules-5.10.0-28-loongson-3-di f2fs-modules-5.10.0-28-loongson-3-di md-modules-5.10.0-28-loongson-3-di multipath-modules-5.10.0-28-loongson-3-di usb-modules-5.10.0-28-loongson-3-di usb-storage-modules-5.10.0-28-loongson-3-di fb-modules-5.10.0-28-loongson-3-di input-modules-5.10.0-28-loongson-3-di event-modules-5.10.0-28-loongson-3-di nic-usb-modules-5.10.0-28-loongson-3-di sata-modules-5.10.0-28-loongson-3-di crc-modules-5.10.0-28-loongson-3-di crypto-modules-5.10.0-28-loongson-3-di crypto-dm-modules-5.10.0-28-loongson-3-di ata-modules-5.10.0-28-loongson-3-di nbd-modules-5.10.0-28-loongson-3-di speakup-modules-5.10.0-28-loongson-3-di sound-modules-5.10.0-28-loongson-3-di mtd-core-modules-5.10.0-28-loongson-3-di kernel-image-5.10.0-28-octeon-di nic-modules-5.10.0-28-octeon-di nic-wireless-modules-5.10.0-28-octeon-di nic-shared-modules-5.10.0-28-octeon-di usb-serial-modules-5.10.0-28-octeon-di ppp-modules-5.10.0-28-octeon-di pata-modules-5.10.0-28-octeon-di cdrom-core-modules-5.10.0-28-octeon-di scsi-core-modules-5.10.0-28-octeon-di scsi-modules-5.10.0-28-octeon-di scsi-nic-modules-5.10.0-28-octeon-di loop-modules-5.10.0-28-octeon-di btrfs-modules-5.10.0-28-octeon-di ext4-modules-5.10.0-28-octeon-di isofs-modules-5.10.0-28-octeon-di jfs-modules-5.10.0-28-octeon-di xfs-modules-5.10.0-28-octeon-di fat-modules-5.10.0-28-octeon-di affs-modules-5.10.0-28-octeon-di minix-modules-5.10.0-28-octeon-di squashfs-modules-5.10.0-28-octeon-di udf-modules-5.10.0-28-octeon-di fuse-modules-5.10.0-28-octeon-di f2fs-modules-5.10.0-28-octeon-di md-modules-5.10.0-28-octeon-di multipath-modules-5.10.0-28-octeon-di usb-modules-5.10.0-28-octeon-di usb-storage-modules-5.10.0-28-octeon-di input-modules-5.10.0-28-octeon-di event-modules-5.10.0-28-octeon-di nic-usb-modules-5.10.0-28-octeon-di sata-modules-5.10.0-28-octeon-di crc-modules-5.10.0-28-octeon-di crypto-modules-5.10.0-28-octeon-di crypto-dm-modules-5.10.0-28-octeon-di nbd-modules-5.10.0-28-octeon-di rtc-modules-5.10.0-28-octeon-di sound-modules-5.10.0-28-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mips64el ABINAME='5.10.0-29' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-5kc-malta-di nic-modules-5.10.0-29-5kc-malta-di nic-wireless-modules-5.10.0-29-5kc-malta-di nic-shared-modules-5.10.0-29-5kc-malta-di usb-serial-modules-5.10.0-29-5kc-malta-di ppp-modules-5.10.0-29-5kc-malta-di pata-modules-5.10.0-29-5kc-malta-di cdrom-core-modules-5.10.0-29-5kc-malta-di scsi-core-modules-5.10.0-29-5kc-malta-di scsi-modules-5.10.0-29-5kc-malta-di scsi-nic-modules-5.10.0-29-5kc-malta-di loop-modules-5.10.0-29-5kc-malta-di btrfs-modules-5.10.0-29-5kc-malta-di ext4-modules-5.10.0-29-5kc-malta-di isofs-modules-5.10.0-29-5kc-malta-di jfs-modules-5.10.0-29-5kc-malta-di xfs-modules-5.10.0-29-5kc-malta-di fat-modules-5.10.0-29-5kc-malta-di affs-modules-5.10.0-29-5kc-malta-di minix-modules-5.10.0-29-5kc-malta-di squashfs-modules-5.10.0-29-5kc-malta-di udf-modules-5.10.0-29-5kc-malta-di fuse-modules-5.10.0-29-5kc-malta-di f2fs-modules-5.10.0-29-5kc-malta-di md-modules-5.10.0-29-5kc-malta-di multipath-modules-5.10.0-29-5kc-malta-di usb-modules-5.10.0-29-5kc-malta-di usb-storage-modules-5.10.0-29-5kc-malta-di fb-modules-5.10.0-29-5kc-malta-di input-modules-5.10.0-29-5kc-malta-di event-modules-5.10.0-29-5kc-malta-di mouse-modules-5.10.0-29-5kc-malta-di nic-usb-modules-5.10.0-29-5kc-malta-di sata-modules-5.10.0-29-5kc-malta-di i2c-modules-5.10.0-29-5kc-malta-di crc-modules-5.10.0-29-5kc-malta-di crypto-modules-5.10.0-29-5kc-malta-di crypto-dm-modules-5.10.0-29-5kc-malta-di ata-modules-5.10.0-29-5kc-malta-di mmc-core-modules-5.10.0-29-5kc-malta-di mmc-modules-5.10.0-29-5kc-malta-di nbd-modules-5.10.0-29-5kc-malta-di sound-modules-5.10.0-29-5kc-malta-di mtd-core-modules-5.10.0-29-5kc-malta-di kernel-image-5.10.0-29-loongson-3-di nic-modules-5.10.0-29-loongson-3-di nic-wireless-modules-5.10.0-29-loongson-3-di nic-shared-modules-5.10.0-29-loongson-3-di usb-serial-modules-5.10.0-29-loongson-3-di ppp-modules-5.10.0-29-loongson-3-di pata-modules-5.10.0-29-loongson-3-di cdrom-core-modules-5.10.0-29-loongson-3-di firewire-core-modules-5.10.0-29-loongson-3-di scsi-core-modules-5.10.0-29-loongson-3-di scsi-modules-5.10.0-29-loongson-3-di scsi-nic-modules-5.10.0-29-loongson-3-di loop-modules-5.10.0-29-loongson-3-di btrfs-modules-5.10.0-29-loongson-3-di ext4-modules-5.10.0-29-loongson-3-di isofs-modules-5.10.0-29-loongson-3-di jfs-modules-5.10.0-29-loongson-3-di xfs-modules-5.10.0-29-loongson-3-di fat-modules-5.10.0-29-loongson-3-di affs-modules-5.10.0-29-loongson-3-di minix-modules-5.10.0-29-loongson-3-di nfs-modules-5.10.0-29-loongson-3-di squashfs-modules-5.10.0-29-loongson-3-di udf-modules-5.10.0-29-loongson-3-di fuse-modules-5.10.0-29-loongson-3-di f2fs-modules-5.10.0-29-loongson-3-di md-modules-5.10.0-29-loongson-3-di multipath-modules-5.10.0-29-loongson-3-di usb-modules-5.10.0-29-loongson-3-di usb-storage-modules-5.10.0-29-loongson-3-di fb-modules-5.10.0-29-loongson-3-di input-modules-5.10.0-29-loongson-3-di event-modules-5.10.0-29-loongson-3-di nic-usb-modules-5.10.0-29-loongson-3-di sata-modules-5.10.0-29-loongson-3-di crc-modules-5.10.0-29-loongson-3-di crypto-modules-5.10.0-29-loongson-3-di crypto-dm-modules-5.10.0-29-loongson-3-di ata-modules-5.10.0-29-loongson-3-di nbd-modules-5.10.0-29-loongson-3-di speakup-modules-5.10.0-29-loongson-3-di sound-modules-5.10.0-29-loongson-3-di mtd-core-modules-5.10.0-29-loongson-3-di kernel-image-5.10.0-29-octeon-di nic-modules-5.10.0-29-octeon-di nic-wireless-modules-5.10.0-29-octeon-di nic-shared-modules-5.10.0-29-octeon-di usb-serial-modules-5.10.0-29-octeon-di ppp-modules-5.10.0-29-octeon-di pata-modules-5.10.0-29-octeon-di cdrom-core-modules-5.10.0-29-octeon-di scsi-core-modules-5.10.0-29-octeon-di scsi-modules-5.10.0-29-octeon-di scsi-nic-modules-5.10.0-29-octeon-di loop-modules-5.10.0-29-octeon-di btrfs-modules-5.10.0-29-octeon-di ext4-modules-5.10.0-29-octeon-di isofs-modules-5.10.0-29-octeon-di jfs-modules-5.10.0-29-octeon-di xfs-modules-5.10.0-29-octeon-di fat-modules-5.10.0-29-octeon-di affs-modules-5.10.0-29-octeon-di minix-modules-5.10.0-29-octeon-di squashfs-modules-5.10.0-29-octeon-di udf-modules-5.10.0-29-octeon-di fuse-modules-5.10.0-29-octeon-di f2fs-modules-5.10.0-29-octeon-di md-modules-5.10.0-29-octeon-di multipath-modules-5.10.0-29-octeon-di usb-modules-5.10.0-29-octeon-di usb-storage-modules-5.10.0-29-octeon-di input-modules-5.10.0-29-octeon-di event-modules-5.10.0-29-octeon-di nic-usb-modules-5.10.0-29-octeon-di sata-modules-5.10.0-29-octeon-di crc-modules-5.10.0-29-octeon-di crypto-modules-5.10.0-29-octeon-di crypto-dm-modules-5.10.0-29-octeon-di nbd-modules-5.10.0-29-octeon-di rtc-modules-5.10.0-29-octeon-di sound-modules-5.10.0-29-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mips64el_none: binary-arch_mips64el_none_5kc-malta binary-arch_mips64el_none_loongson-3 binary-arch_mips64el_none_octeon binary-arch_mips64el_none_real binary-arch_mips64el_none_5kc-malta: binary-arch_mips64el_none_5kc-malta_real binary-arch_mips64el_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64el_none_loongson-3: binary-arch_mips64el_none_loongson-3_real binary-arch_mips64el_none_loongson-3_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64el_none_octeon: binary-arch_mips64el_none_octeon_real binary-arch_mips64el_none_octeon_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64el_none_real: binary-arch_mips64el_real:: setup_mips64el binary-arch_mips64el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64r6:: binary-arch_mips64r6_none binary-arch_mips64r6_real binary-arch_mips64r6:: - $(MAKE) -f debian/rules.real install-udeb_mips64r6 ABINAME='5.10.0-28' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-mips64r6-di nic-shared-modules-5.10.0-28-mips64r6-di loop-modules-5.10.0-28-mips64r6-di btrfs-modules-5.10.0-28-mips64r6-di ext4-modules-5.10.0-28-mips64r6-di isofs-modules-5.10.0-28-mips64r6-di jfs-modules-5.10.0-28-mips64r6-di xfs-modules-5.10.0-28-mips64r6-di squashfs-modules-5.10.0-28-mips64r6-di udf-modules-5.10.0-28-mips64r6-di fuse-modules-5.10.0-28-mips64r6-di f2fs-modules-5.10.0-28-mips64r6-di md-modules-5.10.0-28-mips64r6-di multipath-modules-5.10.0-28-mips64r6-di crc-modules-5.10.0-28-mips64r6-di crypto-modules-5.10.0-28-mips64r6-di crypto-dm-modules-5.10.0-28-mips64r6-di nbd-modules-5.10.0-28-mips64r6-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mips64r6 ABINAME='5.10.0-29' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-mips64r6-di nic-shared-modules-5.10.0-29-mips64r6-di loop-modules-5.10.0-29-mips64r6-di btrfs-modules-5.10.0-29-mips64r6-di ext4-modules-5.10.0-29-mips64r6-di isofs-modules-5.10.0-29-mips64r6-di jfs-modules-5.10.0-29-mips64r6-di xfs-modules-5.10.0-29-mips64r6-di squashfs-modules-5.10.0-29-mips64r6-di udf-modules-5.10.0-29-mips64r6-di fuse-modules-5.10.0-29-mips64r6-di f2fs-modules-5.10.0-29-mips64r6-di md-modules-5.10.0-29-mips64r6-di multipath-modules-5.10.0-29-mips64r6-di crc-modules-5.10.0-29-mips64r6-di crypto-modules-5.10.0-29-mips64r6-di crypto-dm-modules-5.10.0-29-mips64r6-di nbd-modules-5.10.0-29-mips64r6-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mips64r6_none: binary-arch_mips64r6_none_mips64r6 binary-arch_mips64r6_none_real binary-arch_mips64r6_none_mips64r6: binary-arch_mips64r6_none_mips64r6_real binary-arch_mips64r6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64r6_none_real: binary-arch_mips64r6_real:: setup_mips64r6 binary-arch_mips64r6_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64r6el:: binary-arch_mips64r6el_none binary-arch_mips64r6el_real binary-arch_mips64r6el:: - $(MAKE) -f debian/rules.real install-udeb_mips64r6el ABINAME='5.10.0-28' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-mips64r6el-di nic-shared-modules-5.10.0-28-mips64r6el-di loop-modules-5.10.0-28-mips64r6el-di btrfs-modules-5.10.0-28-mips64r6el-di ext4-modules-5.10.0-28-mips64r6el-di isofs-modules-5.10.0-28-mips64r6el-di jfs-modules-5.10.0-28-mips64r6el-di xfs-modules-5.10.0-28-mips64r6el-di squashfs-modules-5.10.0-28-mips64r6el-di udf-modules-5.10.0-28-mips64r6el-di fuse-modules-5.10.0-28-mips64r6el-di f2fs-modules-5.10.0-28-mips64r6el-di md-modules-5.10.0-28-mips64r6el-di multipath-modules-5.10.0-28-mips64r6el-di crc-modules-5.10.0-28-mips64r6el-di crypto-modules-5.10.0-28-mips64r6el-di crypto-dm-modules-5.10.0-28-mips64r6el-di nbd-modules-5.10.0-28-mips64r6el-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mips64r6el ABINAME='5.10.0-29' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-mips64r6el-di nic-shared-modules-5.10.0-29-mips64r6el-di loop-modules-5.10.0-29-mips64r6el-di btrfs-modules-5.10.0-29-mips64r6el-di ext4-modules-5.10.0-29-mips64r6el-di isofs-modules-5.10.0-29-mips64r6el-di jfs-modules-5.10.0-29-mips64r6el-di xfs-modules-5.10.0-29-mips64r6el-di squashfs-modules-5.10.0-29-mips64r6el-di udf-modules-5.10.0-29-mips64r6el-di fuse-modules-5.10.0-29-mips64r6el-di f2fs-modules-5.10.0-29-mips64r6el-di md-modules-5.10.0-29-mips64r6el-di multipath-modules-5.10.0-29-mips64r6el-di crc-modules-5.10.0-29-mips64r6el-di crypto-modules-5.10.0-29-mips64r6el-di crypto-dm-modules-5.10.0-29-mips64r6el-di nbd-modules-5.10.0-29-mips64r6el-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mips64r6el_none: binary-arch_mips64r6el_none_mips64r6el binary-arch_mips64r6el_none_real binary-arch_mips64r6el_none_mips64r6el: binary-arch_mips64r6el_none_mips64r6el_real binary-arch_mips64r6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips64r6el_none_real: binary-arch_mips64r6el_real:: setup_mips64r6el binary-arch_mips64r6el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips_none: binary-arch_mips_none_4kc-malta binary-arch_mips_none_5kc-malta binary-arch_mips_none_octeon binary-arch_mips_none_real binary-arch_mips_none_4kc-malta: binary-arch_mips_none_4kc-malta_real binary-arch_mips_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips_none_5kc-malta: binary-arch_mips_none_5kc-malta_real binary-arch_mips_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips_none_octeon: binary-arch_mips_none_octeon_real binary-arch_mips_none_octeon_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mips_none_real: binary-arch_mips_real:: setup_mips binary-arch_mips_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsel:: binary-arch_mipsel_none binary-arch_mipsel_real binary-arch_mipsel:: - $(MAKE) -f debian/rules.real install-udeb_mipsel ABINAME='5.10.0-28' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-4kc-malta-di nic-modules-5.10.0-28-4kc-malta-di nic-wireless-modules-5.10.0-28-4kc-malta-di nic-shared-modules-5.10.0-28-4kc-malta-di usb-serial-modules-5.10.0-28-4kc-malta-di ppp-modules-5.10.0-28-4kc-malta-di pata-modules-5.10.0-28-4kc-malta-di cdrom-core-modules-5.10.0-28-4kc-malta-di scsi-core-modules-5.10.0-28-4kc-malta-di scsi-modules-5.10.0-28-4kc-malta-di scsi-nic-modules-5.10.0-28-4kc-malta-di loop-modules-5.10.0-28-4kc-malta-di btrfs-modules-5.10.0-28-4kc-malta-di ext4-modules-5.10.0-28-4kc-malta-di isofs-modules-5.10.0-28-4kc-malta-di jfs-modules-5.10.0-28-4kc-malta-di xfs-modules-5.10.0-28-4kc-malta-di fat-modules-5.10.0-28-4kc-malta-di affs-modules-5.10.0-28-4kc-malta-di minix-modules-5.10.0-28-4kc-malta-di squashfs-modules-5.10.0-28-4kc-malta-di udf-modules-5.10.0-28-4kc-malta-di fuse-modules-5.10.0-28-4kc-malta-di f2fs-modules-5.10.0-28-4kc-malta-di md-modules-5.10.0-28-4kc-malta-di multipath-modules-5.10.0-28-4kc-malta-di usb-modules-5.10.0-28-4kc-malta-di usb-storage-modules-5.10.0-28-4kc-malta-di fb-modules-5.10.0-28-4kc-malta-di input-modules-5.10.0-28-4kc-malta-di event-modules-5.10.0-28-4kc-malta-di mouse-modules-5.10.0-28-4kc-malta-di nic-usb-modules-5.10.0-28-4kc-malta-di sata-modules-5.10.0-28-4kc-malta-di i2c-modules-5.10.0-28-4kc-malta-di crc-modules-5.10.0-28-4kc-malta-di crypto-modules-5.10.0-28-4kc-malta-di crypto-dm-modules-5.10.0-28-4kc-malta-di ata-modules-5.10.0-28-4kc-malta-di mmc-core-modules-5.10.0-28-4kc-malta-di mmc-modules-5.10.0-28-4kc-malta-di nbd-modules-5.10.0-28-4kc-malta-di sound-modules-5.10.0-28-4kc-malta-di mtd-core-modules-5.10.0-28-4kc-malta-di kernel-image-5.10.0-28-loongson-3-di nic-modules-5.10.0-28-loongson-3-di nic-wireless-modules-5.10.0-28-loongson-3-di nic-shared-modules-5.10.0-28-loongson-3-di usb-serial-modules-5.10.0-28-loongson-3-di ppp-modules-5.10.0-28-loongson-3-di pata-modules-5.10.0-28-loongson-3-di cdrom-core-modules-5.10.0-28-loongson-3-di firewire-core-modules-5.10.0-28-loongson-3-di scsi-core-modules-5.10.0-28-loongson-3-di scsi-modules-5.10.0-28-loongson-3-di scsi-nic-modules-5.10.0-28-loongson-3-di loop-modules-5.10.0-28-loongson-3-di btrfs-modules-5.10.0-28-loongson-3-di ext4-modules-5.10.0-28-loongson-3-di isofs-modules-5.10.0-28-loongson-3-di jfs-modules-5.10.0-28-loongson-3-di xfs-modules-5.10.0-28-loongson-3-di fat-modules-5.10.0-28-loongson-3-di affs-modules-5.10.0-28-loongson-3-di minix-modules-5.10.0-28-loongson-3-di nfs-modules-5.10.0-28-loongson-3-di squashfs-modules-5.10.0-28-loongson-3-di udf-modules-5.10.0-28-loongson-3-di fuse-modules-5.10.0-28-loongson-3-di f2fs-modules-5.10.0-28-loongson-3-di md-modules-5.10.0-28-loongson-3-di multipath-modules-5.10.0-28-loongson-3-di usb-modules-5.10.0-28-loongson-3-di usb-storage-modules-5.10.0-28-loongson-3-di fb-modules-5.10.0-28-loongson-3-di input-modules-5.10.0-28-loongson-3-di event-modules-5.10.0-28-loongson-3-di nic-usb-modules-5.10.0-28-loongson-3-di sata-modules-5.10.0-28-loongson-3-di crc-modules-5.10.0-28-loongson-3-di crypto-modules-5.10.0-28-loongson-3-di crypto-dm-modules-5.10.0-28-loongson-3-di ata-modules-5.10.0-28-loongson-3-di nbd-modules-5.10.0-28-loongson-3-di speakup-modules-5.10.0-28-loongson-3-di sound-modules-5.10.0-28-loongson-3-di mtd-core-modules-5.10.0-28-loongson-3-di kernel-image-5.10.0-28-octeon-di nic-modules-5.10.0-28-octeon-di nic-wireless-modules-5.10.0-28-octeon-di nic-shared-modules-5.10.0-28-octeon-di usb-serial-modules-5.10.0-28-octeon-di ppp-modules-5.10.0-28-octeon-di pata-modules-5.10.0-28-octeon-di cdrom-core-modules-5.10.0-28-octeon-di scsi-core-modules-5.10.0-28-octeon-di scsi-modules-5.10.0-28-octeon-di scsi-nic-modules-5.10.0-28-octeon-di loop-modules-5.10.0-28-octeon-di btrfs-modules-5.10.0-28-octeon-di ext4-modules-5.10.0-28-octeon-di isofs-modules-5.10.0-28-octeon-di jfs-modules-5.10.0-28-octeon-di xfs-modules-5.10.0-28-octeon-di fat-modules-5.10.0-28-octeon-di affs-modules-5.10.0-28-octeon-di minix-modules-5.10.0-28-octeon-di squashfs-modules-5.10.0-28-octeon-di udf-modules-5.10.0-28-octeon-di fuse-modules-5.10.0-28-octeon-di f2fs-modules-5.10.0-28-octeon-di md-modules-5.10.0-28-octeon-di multipath-modules-5.10.0-28-octeon-di usb-modules-5.10.0-28-octeon-di usb-storage-modules-5.10.0-28-octeon-di input-modules-5.10.0-28-octeon-di event-modules-5.10.0-28-octeon-di nic-usb-modules-5.10.0-28-octeon-di sata-modules-5.10.0-28-octeon-di crc-modules-5.10.0-28-octeon-di crypto-modules-5.10.0-28-octeon-di crypto-dm-modules-5.10.0-28-octeon-di nbd-modules-5.10.0-28-octeon-di rtc-modules-5.10.0-28-octeon-di sound-modules-5.10.0-28-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mipsel ABINAME='5.10.0-29' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-4kc-malta-di nic-modules-5.10.0-29-4kc-malta-di nic-wireless-modules-5.10.0-29-4kc-malta-di nic-shared-modules-5.10.0-29-4kc-malta-di usb-serial-modules-5.10.0-29-4kc-malta-di ppp-modules-5.10.0-29-4kc-malta-di pata-modules-5.10.0-29-4kc-malta-di cdrom-core-modules-5.10.0-29-4kc-malta-di scsi-core-modules-5.10.0-29-4kc-malta-di scsi-modules-5.10.0-29-4kc-malta-di scsi-nic-modules-5.10.0-29-4kc-malta-di loop-modules-5.10.0-29-4kc-malta-di btrfs-modules-5.10.0-29-4kc-malta-di ext4-modules-5.10.0-29-4kc-malta-di isofs-modules-5.10.0-29-4kc-malta-di jfs-modules-5.10.0-29-4kc-malta-di xfs-modules-5.10.0-29-4kc-malta-di fat-modules-5.10.0-29-4kc-malta-di affs-modules-5.10.0-29-4kc-malta-di minix-modules-5.10.0-29-4kc-malta-di squashfs-modules-5.10.0-29-4kc-malta-di udf-modules-5.10.0-29-4kc-malta-di fuse-modules-5.10.0-29-4kc-malta-di f2fs-modules-5.10.0-29-4kc-malta-di md-modules-5.10.0-29-4kc-malta-di multipath-modules-5.10.0-29-4kc-malta-di usb-modules-5.10.0-29-4kc-malta-di usb-storage-modules-5.10.0-29-4kc-malta-di fb-modules-5.10.0-29-4kc-malta-di input-modules-5.10.0-29-4kc-malta-di event-modules-5.10.0-29-4kc-malta-di mouse-modules-5.10.0-29-4kc-malta-di nic-usb-modules-5.10.0-29-4kc-malta-di sata-modules-5.10.0-29-4kc-malta-di i2c-modules-5.10.0-29-4kc-malta-di crc-modules-5.10.0-29-4kc-malta-di crypto-modules-5.10.0-29-4kc-malta-di crypto-dm-modules-5.10.0-29-4kc-malta-di ata-modules-5.10.0-29-4kc-malta-di mmc-core-modules-5.10.0-29-4kc-malta-di mmc-modules-5.10.0-29-4kc-malta-di nbd-modules-5.10.0-29-4kc-malta-di sound-modules-5.10.0-29-4kc-malta-di mtd-core-modules-5.10.0-29-4kc-malta-di kernel-image-5.10.0-29-loongson-3-di nic-modules-5.10.0-29-loongson-3-di nic-wireless-modules-5.10.0-29-loongson-3-di nic-shared-modules-5.10.0-29-loongson-3-di usb-serial-modules-5.10.0-29-loongson-3-di ppp-modules-5.10.0-29-loongson-3-di pata-modules-5.10.0-29-loongson-3-di cdrom-core-modules-5.10.0-29-loongson-3-di firewire-core-modules-5.10.0-29-loongson-3-di scsi-core-modules-5.10.0-29-loongson-3-di scsi-modules-5.10.0-29-loongson-3-di scsi-nic-modules-5.10.0-29-loongson-3-di loop-modules-5.10.0-29-loongson-3-di btrfs-modules-5.10.0-29-loongson-3-di ext4-modules-5.10.0-29-loongson-3-di isofs-modules-5.10.0-29-loongson-3-di jfs-modules-5.10.0-29-loongson-3-di xfs-modules-5.10.0-29-loongson-3-di fat-modules-5.10.0-29-loongson-3-di affs-modules-5.10.0-29-loongson-3-di minix-modules-5.10.0-29-loongson-3-di nfs-modules-5.10.0-29-loongson-3-di squashfs-modules-5.10.0-29-loongson-3-di udf-modules-5.10.0-29-loongson-3-di fuse-modules-5.10.0-29-loongson-3-di f2fs-modules-5.10.0-29-loongson-3-di md-modules-5.10.0-29-loongson-3-di multipath-modules-5.10.0-29-loongson-3-di usb-modules-5.10.0-29-loongson-3-di usb-storage-modules-5.10.0-29-loongson-3-di fb-modules-5.10.0-29-loongson-3-di input-modules-5.10.0-29-loongson-3-di event-modules-5.10.0-29-loongson-3-di nic-usb-modules-5.10.0-29-loongson-3-di sata-modules-5.10.0-29-loongson-3-di crc-modules-5.10.0-29-loongson-3-di crypto-modules-5.10.0-29-loongson-3-di crypto-dm-modules-5.10.0-29-loongson-3-di ata-modules-5.10.0-29-loongson-3-di nbd-modules-5.10.0-29-loongson-3-di speakup-modules-5.10.0-29-loongson-3-di sound-modules-5.10.0-29-loongson-3-di mtd-core-modules-5.10.0-29-loongson-3-di kernel-image-5.10.0-29-octeon-di nic-modules-5.10.0-29-octeon-di nic-wireless-modules-5.10.0-29-octeon-di nic-shared-modules-5.10.0-29-octeon-di usb-serial-modules-5.10.0-29-octeon-di ppp-modules-5.10.0-29-octeon-di pata-modules-5.10.0-29-octeon-di cdrom-core-modules-5.10.0-29-octeon-di scsi-core-modules-5.10.0-29-octeon-di scsi-modules-5.10.0-29-octeon-di scsi-nic-modules-5.10.0-29-octeon-di loop-modules-5.10.0-29-octeon-di btrfs-modules-5.10.0-29-octeon-di ext4-modules-5.10.0-29-octeon-di isofs-modules-5.10.0-29-octeon-di jfs-modules-5.10.0-29-octeon-di xfs-modules-5.10.0-29-octeon-di fat-modules-5.10.0-29-octeon-di affs-modules-5.10.0-29-octeon-di minix-modules-5.10.0-29-octeon-di squashfs-modules-5.10.0-29-octeon-di udf-modules-5.10.0-29-octeon-di fuse-modules-5.10.0-29-octeon-di f2fs-modules-5.10.0-29-octeon-di md-modules-5.10.0-29-octeon-di multipath-modules-5.10.0-29-octeon-di usb-modules-5.10.0-29-octeon-di usb-storage-modules-5.10.0-29-octeon-di input-modules-5.10.0-29-octeon-di event-modules-5.10.0-29-octeon-di nic-usb-modules-5.10.0-29-octeon-di sata-modules-5.10.0-29-octeon-di crc-modules-5.10.0-29-octeon-di crypto-modules-5.10.0-29-octeon-di crypto-dm-modules-5.10.0-29-octeon-di nbd-modules-5.10.0-29-octeon-di rtc-modules-5.10.0-29-octeon-di sound-modules-5.10.0-29-octeon-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mipsel_none: binary-arch_mipsel_none_4kc-malta binary-arch_mipsel_none_5kc-malta binary-arch_mipsel_none_loongson-3 binary-arch_mipsel_none_octeon binary-arch_mipsel_none_real binary-arch_mipsel_none_4kc-malta: binary-arch_mipsel_none_4kc-malta_real binary-arch_mipsel_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsel_none_5kc-malta: binary-arch_mipsel_none_5kc-malta_real binary-arch_mipsel_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsel_none_loongson-3: binary-arch_mipsel_none_loongson-3_real binary-arch_mipsel_none_loongson-3_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsel_none_octeon: binary-arch_mipsel_none_octeon_real binary-arch_mipsel_none_octeon_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsel_none_real: binary-arch_mipsel_real:: setup_mipsel binary-arch_mipsel_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsn32: binary-arch_mipsn32_real binary-arch_mipsn32_real:: setup_mipsn32 binary-arch_mipsn32_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsn32el: binary-arch_mipsn32el_real binary-arch_mipsn32el_real:: setup_mipsn32el binary-arch_mipsn32el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsn32r6: binary-arch_mipsn32r6_real binary-arch_mipsn32r6_real:: setup_mipsn32r6 binary-arch_mipsn32r6_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsn32r6el: binary-arch_mipsn32r6el_real binary-arch_mipsn32r6el_real:: setup_mipsn32r6el binary-arch_mipsn32r6el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6:: binary-arch_mipsr6_none binary-arch_mipsr6_real binary-arch_mipsr6:: - $(MAKE) -f debian/rules.real install-udeb_mipsr6 ABINAME='5.10.0-28' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-mips32r6-di nic-shared-modules-5.10.0-28-mips32r6-di loop-modules-5.10.0-28-mips32r6-di btrfs-modules-5.10.0-28-mips32r6-di ext4-modules-5.10.0-28-mips32r6-di isofs-modules-5.10.0-28-mips32r6-di jfs-modules-5.10.0-28-mips32r6-di xfs-modules-5.10.0-28-mips32r6-di squashfs-modules-5.10.0-28-mips32r6-di udf-modules-5.10.0-28-mips32r6-di fuse-modules-5.10.0-28-mips32r6-di f2fs-modules-5.10.0-28-mips32r6-di md-modules-5.10.0-28-mips32r6-di multipath-modules-5.10.0-28-mips32r6-di crc-modules-5.10.0-28-mips32r6-di crypto-modules-5.10.0-28-mips32r6-di crypto-dm-modules-5.10.0-28-mips32r6-di nbd-modules-5.10.0-28-mips32r6-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mipsr6 ABINAME='5.10.0-29' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-mips32r6-di nic-shared-modules-5.10.0-29-mips32r6-di loop-modules-5.10.0-29-mips32r6-di btrfs-modules-5.10.0-29-mips32r6-di ext4-modules-5.10.0-29-mips32r6-di isofs-modules-5.10.0-29-mips32r6-di jfs-modules-5.10.0-29-mips32r6-di xfs-modules-5.10.0-29-mips32r6-di squashfs-modules-5.10.0-29-mips32r6-di udf-modules-5.10.0-29-mips32r6-di fuse-modules-5.10.0-29-mips32r6-di f2fs-modules-5.10.0-29-mips32r6-di md-modules-5.10.0-29-mips32r6-di multipath-modules-5.10.0-29-mips32r6-di crc-modules-5.10.0-29-mips32r6-di crypto-modules-5.10.0-29-mips32r6-di crypto-dm-modules-5.10.0-29-mips32r6-di nbd-modules-5.10.0-29-mips32r6-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mipsr6_none: binary-arch_mipsr6_none_mips32r6 binary-arch_mipsr6_none_mips64r6 binary-arch_mipsr6_none_real binary-arch_mipsr6_none_mips32r6: binary-arch_mipsr6_none_mips32r6_real binary-arch_mipsr6_none_mips32r6_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6_none_mips64r6: binary-arch_mipsr6_none_mips64r6_real binary-arch_mipsr6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6_none_real: binary-arch_mipsr6_real:: setup_mipsr6 binary-arch_mipsr6_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6el:: binary-arch_mipsr6el_none binary-arch_mipsr6el_real binary-arch_mipsr6el:: - $(MAKE) -f debian/rules.real install-udeb_mipsr6el ABINAME='5.10.0-28' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-mips32r6el-di nic-shared-modules-5.10.0-28-mips32r6el-di loop-modules-5.10.0-28-mips32r6el-di btrfs-modules-5.10.0-28-mips32r6el-di ext4-modules-5.10.0-28-mips32r6el-di isofs-modules-5.10.0-28-mips32r6el-di jfs-modules-5.10.0-28-mips32r6el-di xfs-modules-5.10.0-28-mips32r6el-di squashfs-modules-5.10.0-28-mips32r6el-di udf-modules-5.10.0-28-mips32r6el-di fuse-modules-5.10.0-28-mips32r6el-di f2fs-modules-5.10.0-28-mips32r6el-di md-modules-5.10.0-28-mips32r6el-di multipath-modules-5.10.0-28-mips32r6el-di crc-modules-5.10.0-28-mips32r6el-di crypto-modules-5.10.0-28-mips32r6el-di crypto-dm-modules-5.10.0-28-mips32r6el-di nbd-modules-5.10.0-28-mips32r6el-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_mipsr6el ABINAME='5.10.0-29' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-mips32r6el-di nic-shared-modules-5.10.0-29-mips32r6el-di loop-modules-5.10.0-29-mips32r6el-di btrfs-modules-5.10.0-29-mips32r6el-di ext4-modules-5.10.0-29-mips32r6el-di isofs-modules-5.10.0-29-mips32r6el-di jfs-modules-5.10.0-29-mips32r6el-di xfs-modules-5.10.0-29-mips32r6el-di squashfs-modules-5.10.0-29-mips32r6el-di udf-modules-5.10.0-29-mips32r6el-di fuse-modules-5.10.0-29-mips32r6el-di f2fs-modules-5.10.0-29-mips32r6el-di md-modules-5.10.0-29-mips32r6el-di multipath-modules-5.10.0-29-mips32r6el-di crc-modules-5.10.0-29-mips32r6el-di crypto-modules-5.10.0-29-mips32r6el-di crypto-dm-modules-5.10.0-29-mips32r6el-di nbd-modules-5.10.0-29-mips32r6el-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_mipsr6el_none: binary-arch_mipsr6el_none_mips32r6el binary-arch_mipsr6el_none_mips64r6el binary-arch_mipsr6el_none_real binary-arch_mipsr6el_none_mips32r6el: binary-arch_mipsr6el_none_mips32r6el_real binary-arch_mipsr6el_none_mips32r6el_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6el_none_mips64r6el: binary-arch_mipsr6el_none_mips64r6el_real binary-arch_mipsr6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_mipsr6el_none_real: binary-arch_mipsr6el_real:: setup_mipsr6el binary-arch_mipsr6el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_powerpc:: binary-arch_powerpc_none binary-arch_powerpc_real binary-arch_powerpc:: - $(MAKE) -f debian/rules.real install-udeb_powerpc ABINAME='5.10.0-28' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-powerpc-di nic-modules-5.10.0-28-powerpc-di nic-wireless-modules-5.10.0-28-powerpc-di nic-shared-modules-5.10.0-28-powerpc-di serial-modules-5.10.0-28-powerpc-di usb-serial-modules-5.10.0-28-powerpc-di ppp-modules-5.10.0-28-powerpc-di pata-modules-5.10.0-28-powerpc-di cdrom-core-modules-5.10.0-28-powerpc-di firewire-core-modules-5.10.0-28-powerpc-di scsi-core-modules-5.10.0-28-powerpc-di scsi-modules-5.10.0-28-powerpc-di scsi-nic-modules-5.10.0-28-powerpc-di loop-modules-5.10.0-28-powerpc-di btrfs-modules-5.10.0-28-powerpc-di ext4-modules-5.10.0-28-powerpc-di isofs-modules-5.10.0-28-powerpc-di jfs-modules-5.10.0-28-powerpc-di xfs-modules-5.10.0-28-powerpc-di fat-modules-5.10.0-28-powerpc-di hfs-modules-5.10.0-28-powerpc-di affs-modules-5.10.0-28-powerpc-di squashfs-modules-5.10.0-28-powerpc-di udf-modules-5.10.0-28-powerpc-di fuse-modules-5.10.0-28-powerpc-di f2fs-modules-5.10.0-28-powerpc-di md-modules-5.10.0-28-powerpc-di multipath-modules-5.10.0-28-powerpc-di usb-modules-5.10.0-28-powerpc-di usb-storage-modules-5.10.0-28-powerpc-di pcmcia-storage-modules-5.10.0-28-powerpc-di fb-modules-5.10.0-28-powerpc-di input-modules-5.10.0-28-powerpc-di event-modules-5.10.0-28-powerpc-di mouse-modules-5.10.0-28-powerpc-di nic-pcmcia-modules-5.10.0-28-powerpc-di pcmcia-modules-5.10.0-28-powerpc-di nic-usb-modules-5.10.0-28-powerpc-di sata-modules-5.10.0-28-powerpc-di crc-modules-5.10.0-28-powerpc-di crypto-modules-5.10.0-28-powerpc-di crypto-dm-modules-5.10.0-28-powerpc-di ata-modules-5.10.0-28-powerpc-di mmc-core-modules-5.10.0-28-powerpc-di nbd-modules-5.10.0-28-powerpc-di uinput-modules-5.10.0-28-powerpc-di kernel-image-5.10.0-28-powerpc64-di nic-modules-5.10.0-28-powerpc64-di nic-wireless-modules-5.10.0-28-powerpc64-di nic-shared-modules-5.10.0-28-powerpc64-di serial-modules-5.10.0-28-powerpc64-di usb-serial-modules-5.10.0-28-powerpc64-di ppp-modules-5.10.0-28-powerpc64-di pata-modules-5.10.0-28-powerpc64-di cdrom-core-modules-5.10.0-28-powerpc64-di firewire-core-modules-5.10.0-28-powerpc64-di scsi-core-modules-5.10.0-28-powerpc64-di scsi-modules-5.10.0-28-powerpc64-di scsi-nic-modules-5.10.0-28-powerpc64-di loop-modules-5.10.0-28-powerpc64-di btrfs-modules-5.10.0-28-powerpc64-di ext4-modules-5.10.0-28-powerpc64-di isofs-modules-5.10.0-28-powerpc64-di jfs-modules-5.10.0-28-powerpc64-di xfs-modules-5.10.0-28-powerpc64-di fat-modules-5.10.0-28-powerpc64-di hfs-modules-5.10.0-28-powerpc64-di affs-modules-5.10.0-28-powerpc64-di squashfs-modules-5.10.0-28-powerpc64-di udf-modules-5.10.0-28-powerpc64-di fuse-modules-5.10.0-28-powerpc64-di f2fs-modules-5.10.0-28-powerpc64-di md-modules-5.10.0-28-powerpc64-di multipath-modules-5.10.0-28-powerpc64-di usb-modules-5.10.0-28-powerpc64-di usb-storage-modules-5.10.0-28-powerpc64-di pcmcia-storage-modules-5.10.0-28-powerpc64-di fb-modules-5.10.0-28-powerpc64-di input-modules-5.10.0-28-powerpc64-di event-modules-5.10.0-28-powerpc64-di mouse-modules-5.10.0-28-powerpc64-di nic-pcmcia-modules-5.10.0-28-powerpc64-di pcmcia-modules-5.10.0-28-powerpc64-di nic-usb-modules-5.10.0-28-powerpc64-di sata-modules-5.10.0-28-powerpc64-di i2c-modules-5.10.0-28-powerpc64-di crc-modules-5.10.0-28-powerpc64-di crypto-modules-5.10.0-28-powerpc64-di crypto-dm-modules-5.10.0-28-powerpc64-di ata-modules-5.10.0-28-powerpc64-di mmc-core-modules-5.10.0-28-powerpc64-di nbd-modules-5.10.0-28-powerpc64-di uinput-modules-5.10.0-28-powerpc64-di mtd-core-modules-5.10.0-28-powerpc64-di hypervisor-modules-5.10.0-28-powerpc64-di fancontrol-modules-5.10.0-28-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_powerpc ABINAME='5.10.0-29' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-powerpc-di nic-modules-5.10.0-29-powerpc-di nic-wireless-modules-5.10.0-29-powerpc-di nic-shared-modules-5.10.0-29-powerpc-di serial-modules-5.10.0-29-powerpc-di usb-serial-modules-5.10.0-29-powerpc-di ppp-modules-5.10.0-29-powerpc-di pata-modules-5.10.0-29-powerpc-di cdrom-core-modules-5.10.0-29-powerpc-di firewire-core-modules-5.10.0-29-powerpc-di scsi-core-modules-5.10.0-29-powerpc-di scsi-modules-5.10.0-29-powerpc-di scsi-nic-modules-5.10.0-29-powerpc-di loop-modules-5.10.0-29-powerpc-di btrfs-modules-5.10.0-29-powerpc-di ext4-modules-5.10.0-29-powerpc-di isofs-modules-5.10.0-29-powerpc-di jfs-modules-5.10.0-29-powerpc-di xfs-modules-5.10.0-29-powerpc-di fat-modules-5.10.0-29-powerpc-di hfs-modules-5.10.0-29-powerpc-di affs-modules-5.10.0-29-powerpc-di squashfs-modules-5.10.0-29-powerpc-di udf-modules-5.10.0-29-powerpc-di fuse-modules-5.10.0-29-powerpc-di f2fs-modules-5.10.0-29-powerpc-di md-modules-5.10.0-29-powerpc-di multipath-modules-5.10.0-29-powerpc-di usb-modules-5.10.0-29-powerpc-di usb-storage-modules-5.10.0-29-powerpc-di pcmcia-storage-modules-5.10.0-29-powerpc-di fb-modules-5.10.0-29-powerpc-di input-modules-5.10.0-29-powerpc-di event-modules-5.10.0-29-powerpc-di mouse-modules-5.10.0-29-powerpc-di nic-pcmcia-modules-5.10.0-29-powerpc-di pcmcia-modules-5.10.0-29-powerpc-di nic-usb-modules-5.10.0-29-powerpc-di sata-modules-5.10.0-29-powerpc-di crc-modules-5.10.0-29-powerpc-di crypto-modules-5.10.0-29-powerpc-di crypto-dm-modules-5.10.0-29-powerpc-di ata-modules-5.10.0-29-powerpc-di mmc-core-modules-5.10.0-29-powerpc-di nbd-modules-5.10.0-29-powerpc-di uinput-modules-5.10.0-29-powerpc-di kernel-image-5.10.0-29-powerpc64-di nic-modules-5.10.0-29-powerpc64-di nic-wireless-modules-5.10.0-29-powerpc64-di nic-shared-modules-5.10.0-29-powerpc64-di serial-modules-5.10.0-29-powerpc64-di usb-serial-modules-5.10.0-29-powerpc64-di ppp-modules-5.10.0-29-powerpc64-di pata-modules-5.10.0-29-powerpc64-di cdrom-core-modules-5.10.0-29-powerpc64-di firewire-core-modules-5.10.0-29-powerpc64-di scsi-core-modules-5.10.0-29-powerpc64-di scsi-modules-5.10.0-29-powerpc64-di scsi-nic-modules-5.10.0-29-powerpc64-di loop-modules-5.10.0-29-powerpc64-di btrfs-modules-5.10.0-29-powerpc64-di ext4-modules-5.10.0-29-powerpc64-di isofs-modules-5.10.0-29-powerpc64-di jfs-modules-5.10.0-29-powerpc64-di xfs-modules-5.10.0-29-powerpc64-di fat-modules-5.10.0-29-powerpc64-di hfs-modules-5.10.0-29-powerpc64-di affs-modules-5.10.0-29-powerpc64-di squashfs-modules-5.10.0-29-powerpc64-di udf-modules-5.10.0-29-powerpc64-di fuse-modules-5.10.0-29-powerpc64-di f2fs-modules-5.10.0-29-powerpc64-di md-modules-5.10.0-29-powerpc64-di multipath-modules-5.10.0-29-powerpc64-di usb-modules-5.10.0-29-powerpc64-di usb-storage-modules-5.10.0-29-powerpc64-di pcmcia-storage-modules-5.10.0-29-powerpc64-di fb-modules-5.10.0-29-powerpc64-di input-modules-5.10.0-29-powerpc64-di event-modules-5.10.0-29-powerpc64-di mouse-modules-5.10.0-29-powerpc64-di nic-pcmcia-modules-5.10.0-29-powerpc64-di pcmcia-modules-5.10.0-29-powerpc64-di nic-usb-modules-5.10.0-29-powerpc64-di sata-modules-5.10.0-29-powerpc64-di i2c-modules-5.10.0-29-powerpc64-di crc-modules-5.10.0-29-powerpc64-di crypto-modules-5.10.0-29-powerpc64-di crypto-dm-modules-5.10.0-29-powerpc64-di ata-modules-5.10.0-29-powerpc64-di mmc-core-modules-5.10.0-29-powerpc64-di nbd-modules-5.10.0-29-powerpc64-di uinput-modules-5.10.0-29-powerpc64-di mtd-core-modules-5.10.0-29-powerpc64-di hypervisor-modules-5.10.0-29-powerpc64-di fancontrol-modules-5.10.0-29-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_powerpc_none: binary-arch_powerpc_none_powerpc binary-arch_powerpc_none_powerpc-smp binary-arch_powerpc_none_powerpc64 binary-arch_powerpc_none_real binary-arch_powerpc_none_powerpc: binary-arch_powerpc_none_powerpc_real binary-arch_powerpc_none_powerpc-smp: binary-arch_powerpc_none_powerpc-smp_real binary-arch_powerpc_none_powerpc-smp_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_powerpc_none_powerpc64: binary-arch_powerpc_none_powerpc64_real binary-arch_powerpc_none_powerpc64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_powerpc_none_powerpc_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_powerpc_none_real: binary-arch_powerpc_real:: setup_powerpc binary-arch_powerpc_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_ppc64:: binary-arch_ppc64_none binary-arch_ppc64_real binary-arch_ppc64:: - $(MAKE) -f debian/rules.real install-udeb_ppc64 ABINAME='5.10.0-28' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-powerpc64-di nic-modules-5.10.0-28-powerpc64-di nic-wireless-modules-5.10.0-28-powerpc64-di nic-shared-modules-5.10.0-28-powerpc64-di serial-modules-5.10.0-28-powerpc64-di usb-serial-modules-5.10.0-28-powerpc64-di ppp-modules-5.10.0-28-powerpc64-di pata-modules-5.10.0-28-powerpc64-di cdrom-core-modules-5.10.0-28-powerpc64-di firewire-core-modules-5.10.0-28-powerpc64-di scsi-core-modules-5.10.0-28-powerpc64-di scsi-modules-5.10.0-28-powerpc64-di scsi-nic-modules-5.10.0-28-powerpc64-di loop-modules-5.10.0-28-powerpc64-di btrfs-modules-5.10.0-28-powerpc64-di ext4-modules-5.10.0-28-powerpc64-di isofs-modules-5.10.0-28-powerpc64-di jfs-modules-5.10.0-28-powerpc64-di xfs-modules-5.10.0-28-powerpc64-di fat-modules-5.10.0-28-powerpc64-di hfs-modules-5.10.0-28-powerpc64-di affs-modules-5.10.0-28-powerpc64-di squashfs-modules-5.10.0-28-powerpc64-di udf-modules-5.10.0-28-powerpc64-di fuse-modules-5.10.0-28-powerpc64-di f2fs-modules-5.10.0-28-powerpc64-di md-modules-5.10.0-28-powerpc64-di multipath-modules-5.10.0-28-powerpc64-di usb-modules-5.10.0-28-powerpc64-di usb-storage-modules-5.10.0-28-powerpc64-di pcmcia-storage-modules-5.10.0-28-powerpc64-di fb-modules-5.10.0-28-powerpc64-di input-modules-5.10.0-28-powerpc64-di event-modules-5.10.0-28-powerpc64-di mouse-modules-5.10.0-28-powerpc64-di nic-pcmcia-modules-5.10.0-28-powerpc64-di pcmcia-modules-5.10.0-28-powerpc64-di nic-usb-modules-5.10.0-28-powerpc64-di sata-modules-5.10.0-28-powerpc64-di i2c-modules-5.10.0-28-powerpc64-di crc-modules-5.10.0-28-powerpc64-di crypto-modules-5.10.0-28-powerpc64-di crypto-dm-modules-5.10.0-28-powerpc64-di ata-modules-5.10.0-28-powerpc64-di mmc-core-modules-5.10.0-28-powerpc64-di nbd-modules-5.10.0-28-powerpc64-di uinput-modules-5.10.0-28-powerpc64-di mtd-core-modules-5.10.0-28-powerpc64-di hypervisor-modules-5.10.0-28-powerpc64-di fancontrol-modules-5.10.0-28-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_ppc64 ABINAME='5.10.0-29' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-powerpc64-di nic-modules-5.10.0-29-powerpc64-di nic-wireless-modules-5.10.0-29-powerpc64-di nic-shared-modules-5.10.0-29-powerpc64-di serial-modules-5.10.0-29-powerpc64-di usb-serial-modules-5.10.0-29-powerpc64-di ppp-modules-5.10.0-29-powerpc64-di pata-modules-5.10.0-29-powerpc64-di cdrom-core-modules-5.10.0-29-powerpc64-di firewire-core-modules-5.10.0-29-powerpc64-di scsi-core-modules-5.10.0-29-powerpc64-di scsi-modules-5.10.0-29-powerpc64-di scsi-nic-modules-5.10.0-29-powerpc64-di loop-modules-5.10.0-29-powerpc64-di btrfs-modules-5.10.0-29-powerpc64-di ext4-modules-5.10.0-29-powerpc64-di isofs-modules-5.10.0-29-powerpc64-di jfs-modules-5.10.0-29-powerpc64-di xfs-modules-5.10.0-29-powerpc64-di fat-modules-5.10.0-29-powerpc64-di hfs-modules-5.10.0-29-powerpc64-di affs-modules-5.10.0-29-powerpc64-di squashfs-modules-5.10.0-29-powerpc64-di udf-modules-5.10.0-29-powerpc64-di fuse-modules-5.10.0-29-powerpc64-di f2fs-modules-5.10.0-29-powerpc64-di md-modules-5.10.0-29-powerpc64-di multipath-modules-5.10.0-29-powerpc64-di usb-modules-5.10.0-29-powerpc64-di usb-storage-modules-5.10.0-29-powerpc64-di pcmcia-storage-modules-5.10.0-29-powerpc64-di fb-modules-5.10.0-29-powerpc64-di input-modules-5.10.0-29-powerpc64-di event-modules-5.10.0-29-powerpc64-di mouse-modules-5.10.0-29-powerpc64-di nic-pcmcia-modules-5.10.0-29-powerpc64-di pcmcia-modules-5.10.0-29-powerpc64-di nic-usb-modules-5.10.0-29-powerpc64-di sata-modules-5.10.0-29-powerpc64-di i2c-modules-5.10.0-29-powerpc64-di crc-modules-5.10.0-29-powerpc64-di crypto-modules-5.10.0-29-powerpc64-di crypto-dm-modules-5.10.0-29-powerpc64-di ata-modules-5.10.0-29-powerpc64-di mmc-core-modules-5.10.0-29-powerpc64-di nbd-modules-5.10.0-29-powerpc64-di uinput-modules-5.10.0-29-powerpc64-di mtd-core-modules-5.10.0-29-powerpc64-di hypervisor-modules-5.10.0-29-powerpc64-di fancontrol-modules-5.10.0-29-powerpc64-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_ppc64_none: binary-arch_ppc64_none_powerpc64 binary-arch_ppc64_none_real binary-arch_ppc64_none_powerpc64: binary-arch_ppc64_none_powerpc64_real binary-arch_ppc64_none_powerpc64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_ppc64_none_real: binary-arch_ppc64_real:: setup_ppc64 binary-arch_ppc64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_ppc64el:: binary-arch_ppc64el_none binary-arch_ppc64el_real binary-arch_ppc64el:: - $(MAKE) -f debian/rules.real install-udeb_ppc64el ABINAME='5.10.0-28' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-powerpc64le-di nic-modules-5.10.0-28-powerpc64le-di nic-wireless-modules-5.10.0-28-powerpc64le-di nic-shared-modules-5.10.0-28-powerpc64le-di serial-modules-5.10.0-28-powerpc64le-di usb-serial-modules-5.10.0-28-powerpc64le-di ppp-modules-5.10.0-28-powerpc64le-di cdrom-core-modules-5.10.0-28-powerpc64le-di firewire-core-modules-5.10.0-28-powerpc64le-di scsi-core-modules-5.10.0-28-powerpc64le-di scsi-modules-5.10.0-28-powerpc64le-di scsi-nic-modules-5.10.0-28-powerpc64le-di loop-modules-5.10.0-28-powerpc64le-di btrfs-modules-5.10.0-28-powerpc64le-di ext4-modules-5.10.0-28-powerpc64le-di isofs-modules-5.10.0-28-powerpc64le-di jfs-modules-5.10.0-28-powerpc64le-di xfs-modules-5.10.0-28-powerpc64le-di fat-modules-5.10.0-28-powerpc64le-di squashfs-modules-5.10.0-28-powerpc64le-di udf-modules-5.10.0-28-powerpc64le-di fuse-modules-5.10.0-28-powerpc64le-di f2fs-modules-5.10.0-28-powerpc64le-di md-modules-5.10.0-28-powerpc64le-di multipath-modules-5.10.0-28-powerpc64le-di usb-modules-5.10.0-28-powerpc64le-di usb-storage-modules-5.10.0-28-powerpc64le-di fb-modules-5.10.0-28-powerpc64le-di input-modules-5.10.0-28-powerpc64le-di event-modules-5.10.0-28-powerpc64le-di mouse-modules-5.10.0-28-powerpc64le-di nic-usb-modules-5.10.0-28-powerpc64le-di sata-modules-5.10.0-28-powerpc64le-di i2c-modules-5.10.0-28-powerpc64le-di crc-modules-5.10.0-28-powerpc64le-di crypto-modules-5.10.0-28-powerpc64le-di crypto-dm-modules-5.10.0-28-powerpc64le-di ata-modules-5.10.0-28-powerpc64le-di nbd-modules-5.10.0-28-powerpc64le-di uinput-modules-5.10.0-28-powerpc64le-di mtd-core-modules-5.10.0-28-powerpc64le-di hypervisor-modules-5.10.0-28-powerpc64le-di fancontrol-modules-5.10.0-28-powerpc64le-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_ppc64el ABINAME='5.10.0-29' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-powerpc64le-di nic-modules-5.10.0-29-powerpc64le-di nic-wireless-modules-5.10.0-29-powerpc64le-di nic-shared-modules-5.10.0-29-powerpc64le-di serial-modules-5.10.0-29-powerpc64le-di usb-serial-modules-5.10.0-29-powerpc64le-di ppp-modules-5.10.0-29-powerpc64le-di cdrom-core-modules-5.10.0-29-powerpc64le-di firewire-core-modules-5.10.0-29-powerpc64le-di scsi-core-modules-5.10.0-29-powerpc64le-di scsi-modules-5.10.0-29-powerpc64le-di scsi-nic-modules-5.10.0-29-powerpc64le-di loop-modules-5.10.0-29-powerpc64le-di btrfs-modules-5.10.0-29-powerpc64le-di ext4-modules-5.10.0-29-powerpc64le-di isofs-modules-5.10.0-29-powerpc64le-di jfs-modules-5.10.0-29-powerpc64le-di xfs-modules-5.10.0-29-powerpc64le-di fat-modules-5.10.0-29-powerpc64le-di squashfs-modules-5.10.0-29-powerpc64le-di udf-modules-5.10.0-29-powerpc64le-di fuse-modules-5.10.0-29-powerpc64le-di f2fs-modules-5.10.0-29-powerpc64le-di md-modules-5.10.0-29-powerpc64le-di multipath-modules-5.10.0-29-powerpc64le-di usb-modules-5.10.0-29-powerpc64le-di usb-storage-modules-5.10.0-29-powerpc64le-di fb-modules-5.10.0-29-powerpc64le-di input-modules-5.10.0-29-powerpc64le-di event-modules-5.10.0-29-powerpc64le-di mouse-modules-5.10.0-29-powerpc64le-di nic-usb-modules-5.10.0-29-powerpc64le-di sata-modules-5.10.0-29-powerpc64le-di i2c-modules-5.10.0-29-powerpc64le-di crc-modules-5.10.0-29-powerpc64le-di crypto-modules-5.10.0-29-powerpc64le-di crypto-dm-modules-5.10.0-29-powerpc64le-di ata-modules-5.10.0-29-powerpc64le-di nbd-modules-5.10.0-29-powerpc64le-di uinput-modules-5.10.0-29-powerpc64le-di mtd-core-modules-5.10.0-29-powerpc64le-di hypervisor-modules-5.10.0-29-powerpc64le-di fancontrol-modules-5.10.0-29-powerpc64le-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_ppc64el_none: binary-arch_ppc64el_none_powerpc64le binary-arch_ppc64el_none_real binary-arch_ppc64el_none_powerpc64le: binary-arch_ppc64el_none_powerpc64le_real binary-arch_ppc64el_none_powerpc64le_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_ppc64el_none_real: binary-arch_ppc64el_real:: setup_ppc64el binary-arch_ppc64el_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_riscv64:: binary-arch_riscv64_none binary-arch_riscv64_real binary-arch_riscv64:: - $(MAKE) -f debian/rules.real install-udeb_riscv64 ABINAME='5.10.0-28' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-riscv64-di nic-modules-5.10.0-28-riscv64-di nic-wireless-modules-5.10.0-28-riscv64-di nic-shared-modules-5.10.0-28-riscv64-di usb-serial-modules-5.10.0-28-riscv64-di ppp-modules-5.10.0-28-riscv64-di pata-modules-5.10.0-28-riscv64-di cdrom-core-modules-5.10.0-28-riscv64-di scsi-core-modules-5.10.0-28-riscv64-di scsi-modules-5.10.0-28-riscv64-di scsi-nic-modules-5.10.0-28-riscv64-di loop-modules-5.10.0-28-riscv64-di btrfs-modules-5.10.0-28-riscv64-di ext4-modules-5.10.0-28-riscv64-di isofs-modules-5.10.0-28-riscv64-di jfs-modules-5.10.0-28-riscv64-di fat-modules-5.10.0-28-riscv64-di squashfs-modules-5.10.0-28-riscv64-di udf-modules-5.10.0-28-riscv64-di fuse-modules-5.10.0-28-riscv64-di f2fs-modules-5.10.0-28-riscv64-di md-modules-5.10.0-28-riscv64-di multipath-modules-5.10.0-28-riscv64-di usb-modules-5.10.0-28-riscv64-di usb-storage-modules-5.10.0-28-riscv64-di fb-modules-5.10.0-28-riscv64-di input-modules-5.10.0-28-riscv64-di event-modules-5.10.0-28-riscv64-di nic-usb-modules-5.10.0-28-riscv64-di sata-modules-5.10.0-28-riscv64-di i2c-modules-5.10.0-28-riscv64-di crc-modules-5.10.0-28-riscv64-di crypto-modules-5.10.0-28-riscv64-di crypto-dm-modules-5.10.0-28-riscv64-di ata-modules-5.10.0-28-riscv64-di mmc-core-modules-5.10.0-28-riscv64-di mmc-modules-5.10.0-28-riscv64-di nbd-modules-5.10.0-28-riscv64-di mtd-modules-5.10.0-28-riscv64-di mtd-core-modules-5.10.0-28-riscv64-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_riscv64 ABINAME='5.10.0-29' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-riscv64-di nic-modules-5.10.0-29-riscv64-di nic-wireless-modules-5.10.0-29-riscv64-di nic-shared-modules-5.10.0-29-riscv64-di usb-serial-modules-5.10.0-29-riscv64-di ppp-modules-5.10.0-29-riscv64-di pata-modules-5.10.0-29-riscv64-di cdrom-core-modules-5.10.0-29-riscv64-di scsi-core-modules-5.10.0-29-riscv64-di scsi-modules-5.10.0-29-riscv64-di scsi-nic-modules-5.10.0-29-riscv64-di loop-modules-5.10.0-29-riscv64-di btrfs-modules-5.10.0-29-riscv64-di ext4-modules-5.10.0-29-riscv64-di isofs-modules-5.10.0-29-riscv64-di jfs-modules-5.10.0-29-riscv64-di fat-modules-5.10.0-29-riscv64-di squashfs-modules-5.10.0-29-riscv64-di udf-modules-5.10.0-29-riscv64-di fuse-modules-5.10.0-29-riscv64-di f2fs-modules-5.10.0-29-riscv64-di md-modules-5.10.0-29-riscv64-di multipath-modules-5.10.0-29-riscv64-di usb-modules-5.10.0-29-riscv64-di usb-storage-modules-5.10.0-29-riscv64-di fb-modules-5.10.0-29-riscv64-di input-modules-5.10.0-29-riscv64-di event-modules-5.10.0-29-riscv64-di nic-usb-modules-5.10.0-29-riscv64-di sata-modules-5.10.0-29-riscv64-di i2c-modules-5.10.0-29-riscv64-di crc-modules-5.10.0-29-riscv64-di crypto-modules-5.10.0-29-riscv64-di crypto-dm-modules-5.10.0-29-riscv64-di ata-modules-5.10.0-29-riscv64-di mmc-core-modules-5.10.0-29-riscv64-di mmc-modules-5.10.0-29-riscv64-di nbd-modules-5.10.0-29-riscv64-di mtd-modules-5.10.0-29-riscv64-di mtd-core-modules-5.10.0-29-riscv64-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_riscv64_none: binary-arch_riscv64_none_real binary-arch_riscv64_none_riscv64 binary-arch_riscv64_none_real: binary-arch_riscv64_none_riscv64: binary-arch_riscv64_none_riscv64_real binary-arch_riscv64_none_riscv64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_riscv64_real:: setup_riscv64 binary-arch_riscv64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_s390: binary-arch_s390_extra binary-arch_s390_real binary-arch_s390_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='s390' DH_OPTIONS='-plinux-compiler-gcc-10-s390' binary-arch_s390_real:: setup_s390 binary-arch_s390_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_s390x:: binary-arch_s390x_extra binary-arch_s390x_none binary-arch_s390x_real binary-arch_s390x:: - $(MAKE) -f debian/rules.real install-udeb_s390x ABINAME='5.10.0-28' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-s390x-di nic-modules-5.10.0-28-s390x-di cdrom-core-modules-5.10.0-28-s390x-di scsi-core-modules-5.10.0-28-s390x-di scsi-modules-5.10.0-28-s390x-di loop-modules-5.10.0-28-s390x-di btrfs-modules-5.10.0-28-s390x-di ext4-modules-5.10.0-28-s390x-di isofs-modules-5.10.0-28-s390x-di xfs-modules-5.10.0-28-s390x-di fat-modules-5.10.0-28-s390x-di udf-modules-5.10.0-28-s390x-di fuse-modules-5.10.0-28-s390x-di f2fs-modules-5.10.0-28-s390x-di md-modules-5.10.0-28-s390x-di multipath-modules-5.10.0-28-s390x-di crc-modules-5.10.0-28-s390x-di crypto-modules-5.10.0-28-s390x-di crypto-dm-modules-5.10.0-28-s390x-di nbd-modules-5.10.0-28-s390x-di mtd-core-modules-5.10.0-28-s390x-di dasd-modules-5.10.0-28-s390x-di dasd-extra-modules-5.10.0-28-s390x-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_s390x ABINAME='5.10.0-29' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-s390x-di nic-modules-5.10.0-29-s390x-di cdrom-core-modules-5.10.0-29-s390x-di scsi-core-modules-5.10.0-29-s390x-di scsi-modules-5.10.0-29-s390x-di loop-modules-5.10.0-29-s390x-di btrfs-modules-5.10.0-29-s390x-di ext4-modules-5.10.0-29-s390x-di isofs-modules-5.10.0-29-s390x-di xfs-modules-5.10.0-29-s390x-di fat-modules-5.10.0-29-s390x-di udf-modules-5.10.0-29-s390x-di fuse-modules-5.10.0-29-s390x-di f2fs-modules-5.10.0-29-s390x-di md-modules-5.10.0-29-s390x-di multipath-modules-5.10.0-29-s390x-di crc-modules-5.10.0-29-s390x-di crypto-modules-5.10.0-29-s390x-di crypto-dm-modules-5.10.0-29-s390x-di nbd-modules-5.10.0-29-s390x-di mtd-core-modules-5.10.0-29-s390x-di dasd-modules-5.10.0-29-s390x-di dasd-extra-modules-5.10.0-29-s390x-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_s390x_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='s390x' DH_OPTIONS='-plinux-compiler-gcc-10-s390' binary-arch_s390x_none: binary-arch_s390x_none_real binary-arch_s390x_none_s390x binary-arch_s390x_none_real: binary-arch_s390x_none_s390x: binary-arch_s390x_none_s390x_real binary-arch_s390x_none_s390x_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' binary-arch_s390x_real:: setup_s390x binary-arch_s390x_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sh3: binary-arch_sh3_real binary-arch_sh3_real:: setup_sh3 binary-arch_sh3_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sh4:: binary-arch_sh4_none binary-arch_sh4_real binary-arch_sh4:: - $(MAKE) -f debian/rules.real install-udeb_sh4 ABINAME='5.10.0-28' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-sh7751r-di nic-modules-5.10.0-28-sh7751r-di nic-shared-modules-5.10.0-28-sh7751r-di usb-serial-modules-5.10.0-28-sh7751r-di ppp-modules-5.10.0-28-sh7751r-di pata-modules-5.10.0-28-sh7751r-di cdrom-core-modules-5.10.0-28-sh7751r-di firewire-core-modules-5.10.0-28-sh7751r-di loop-modules-5.10.0-28-sh7751r-di btrfs-modules-5.10.0-28-sh7751r-di ext4-modules-5.10.0-28-sh7751r-di isofs-modules-5.10.0-28-sh7751r-di jfs-modules-5.10.0-28-sh7751r-di xfs-modules-5.10.0-28-sh7751r-di fat-modules-5.10.0-28-sh7751r-di minix-modules-5.10.0-28-sh7751r-di squashfs-modules-5.10.0-28-sh7751r-di udf-modules-5.10.0-28-sh7751r-di fuse-modules-5.10.0-28-sh7751r-di f2fs-modules-5.10.0-28-sh7751r-di md-modules-5.10.0-28-sh7751r-di multipath-modules-5.10.0-28-sh7751r-di usb-storage-modules-5.10.0-28-sh7751r-di nic-usb-modules-5.10.0-28-sh7751r-di sata-modules-5.10.0-28-sh7751r-di i2c-modules-5.10.0-28-sh7751r-di crc-modules-5.10.0-28-sh7751r-di crypto-modules-5.10.0-28-sh7751r-di crypto-dm-modules-5.10.0-28-sh7751r-di nbd-modules-5.10.0-28-sh7751r-di speakup-modules-5.10.0-28-sh7751r-di sound-modules-5.10.0-28-sh7751r-di kernel-image-5.10.0-28-sh7785lcr-di nic-modules-5.10.0-28-sh7785lcr-di nic-shared-modules-5.10.0-28-sh7785lcr-di usb-serial-modules-5.10.0-28-sh7785lcr-di ppp-modules-5.10.0-28-sh7785lcr-di pata-modules-5.10.0-28-sh7785lcr-di cdrom-core-modules-5.10.0-28-sh7785lcr-di firewire-core-modules-5.10.0-28-sh7785lcr-di loop-modules-5.10.0-28-sh7785lcr-di btrfs-modules-5.10.0-28-sh7785lcr-di ext4-modules-5.10.0-28-sh7785lcr-di isofs-modules-5.10.0-28-sh7785lcr-di jfs-modules-5.10.0-28-sh7785lcr-di xfs-modules-5.10.0-28-sh7785lcr-di fat-modules-5.10.0-28-sh7785lcr-di minix-modules-5.10.0-28-sh7785lcr-di squashfs-modules-5.10.0-28-sh7785lcr-di udf-modules-5.10.0-28-sh7785lcr-di fuse-modules-5.10.0-28-sh7785lcr-di f2fs-modules-5.10.0-28-sh7785lcr-di md-modules-5.10.0-28-sh7785lcr-di multipath-modules-5.10.0-28-sh7785lcr-di nic-usb-modules-5.10.0-28-sh7785lcr-di sata-modules-5.10.0-28-sh7785lcr-di crc-modules-5.10.0-28-sh7785lcr-di crypto-modules-5.10.0-28-sh7785lcr-di crypto-dm-modules-5.10.0-28-sh7785lcr-di nbd-modules-5.10.0-28-sh7785lcr-di speakup-modules-5.10.0-28-sh7785lcr-di sound-modules-5.10.0-28-sh7785lcr-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_sh4 ABINAME='5.10.0-29' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-sh7751r-di nic-modules-5.10.0-29-sh7751r-di nic-shared-modules-5.10.0-29-sh7751r-di usb-serial-modules-5.10.0-29-sh7751r-di ppp-modules-5.10.0-29-sh7751r-di pata-modules-5.10.0-29-sh7751r-di cdrom-core-modules-5.10.0-29-sh7751r-di firewire-core-modules-5.10.0-29-sh7751r-di loop-modules-5.10.0-29-sh7751r-di btrfs-modules-5.10.0-29-sh7751r-di ext4-modules-5.10.0-29-sh7751r-di isofs-modules-5.10.0-29-sh7751r-di jfs-modules-5.10.0-29-sh7751r-di xfs-modules-5.10.0-29-sh7751r-di fat-modules-5.10.0-29-sh7751r-di minix-modules-5.10.0-29-sh7751r-di squashfs-modules-5.10.0-29-sh7751r-di udf-modules-5.10.0-29-sh7751r-di fuse-modules-5.10.0-29-sh7751r-di f2fs-modules-5.10.0-29-sh7751r-di md-modules-5.10.0-29-sh7751r-di multipath-modules-5.10.0-29-sh7751r-di usb-storage-modules-5.10.0-29-sh7751r-di nic-usb-modules-5.10.0-29-sh7751r-di sata-modules-5.10.0-29-sh7751r-di i2c-modules-5.10.0-29-sh7751r-di crc-modules-5.10.0-29-sh7751r-di crypto-modules-5.10.0-29-sh7751r-di crypto-dm-modules-5.10.0-29-sh7751r-di nbd-modules-5.10.0-29-sh7751r-di speakup-modules-5.10.0-29-sh7751r-di sound-modules-5.10.0-29-sh7751r-di kernel-image-5.10.0-29-sh7785lcr-di nic-modules-5.10.0-29-sh7785lcr-di nic-shared-modules-5.10.0-29-sh7785lcr-di usb-serial-modules-5.10.0-29-sh7785lcr-di ppp-modules-5.10.0-29-sh7785lcr-di pata-modules-5.10.0-29-sh7785lcr-di cdrom-core-modules-5.10.0-29-sh7785lcr-di firewire-core-modules-5.10.0-29-sh7785lcr-di loop-modules-5.10.0-29-sh7785lcr-di btrfs-modules-5.10.0-29-sh7785lcr-di ext4-modules-5.10.0-29-sh7785lcr-di isofs-modules-5.10.0-29-sh7785lcr-di jfs-modules-5.10.0-29-sh7785lcr-di xfs-modules-5.10.0-29-sh7785lcr-di fat-modules-5.10.0-29-sh7785lcr-di minix-modules-5.10.0-29-sh7785lcr-di squashfs-modules-5.10.0-29-sh7785lcr-di udf-modules-5.10.0-29-sh7785lcr-di fuse-modules-5.10.0-29-sh7785lcr-di f2fs-modules-5.10.0-29-sh7785lcr-di md-modules-5.10.0-29-sh7785lcr-di multipath-modules-5.10.0-29-sh7785lcr-di nic-usb-modules-5.10.0-29-sh7785lcr-di sata-modules-5.10.0-29-sh7785lcr-di crc-modules-5.10.0-29-sh7785lcr-di crypto-modules-5.10.0-29-sh7785lcr-di crypto-dm-modules-5.10.0-29-sh7785lcr-di nbd-modules-5.10.0-29-sh7785lcr-di speakup-modules-5.10.0-29-sh7785lcr-di sound-modules-5.10.0-29-sh7785lcr-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_sh4_none: binary-arch_sh4_none_real binary-arch_sh4_none_sh7751r binary-arch_sh4_none_sh7785lcr binary-arch_sh4_none_real: binary-arch_sh4_none_sh7751r: binary-arch_sh4_none_sh7751r_real binary-arch_sh4_none_sh7751r_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sh4_none_sh7785lcr: binary-arch_sh4_none_sh7785lcr_real binary-arch_sh4_none_sh7785lcr_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sh4_real:: setup_sh4 binary-arch_sh4_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sparc: binary-arch_sparc_real binary-arch_sparc64:: binary-arch_sparc64_none binary-arch_sparc64_real binary-arch_sparc64:: - $(MAKE) -f debian/rules.real install-udeb_sparc64 ABINAME='5.10.0-28' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-28-sparc64-di nic-modules-5.10.0-28-sparc64-di nic-shared-modules-5.10.0-28-sparc64-di usb-serial-modules-5.10.0-28-sparc64-di ppp-modules-5.10.0-28-sparc64-di pata-modules-5.10.0-28-sparc64-di cdrom-core-modules-5.10.0-28-sparc64-di scsi-core-modules-5.10.0-28-sparc64-di scsi-modules-5.10.0-28-sparc64-di btrfs-modules-5.10.0-28-sparc64-di ext4-modules-5.10.0-28-sparc64-di isofs-modules-5.10.0-28-sparc64-di jfs-modules-5.10.0-28-sparc64-di ufs-modules-5.10.0-28-sparc64-di xfs-modules-5.10.0-28-sparc64-di fat-modules-5.10.0-28-sparc64-di squashfs-modules-5.10.0-28-sparc64-di udf-modules-5.10.0-28-sparc64-di fuse-modules-5.10.0-28-sparc64-di f2fs-modules-5.10.0-28-sparc64-di md-modules-5.10.0-28-sparc64-di multipath-modules-5.10.0-28-sparc64-di usb-modules-5.10.0-28-sparc64-di usb-storage-modules-5.10.0-28-sparc64-di fb-modules-5.10.0-28-sparc64-di input-modules-5.10.0-28-sparc64-di nic-usb-modules-5.10.0-28-sparc64-di sata-modules-5.10.0-28-sparc64-di i2c-modules-5.10.0-28-sparc64-di crc-modules-5.10.0-28-sparc64-di crypto-modules-5.10.0-28-sparc64-di crypto-dm-modules-5.10.0-28-sparc64-di ata-modules-5.10.0-28-sparc64-di nbd-modules-5.10.0-28-sparc64-di' UDEB_UNSIGNED_TEST_BUILD=False + $(MAKE) -f debian/rules.real install-udeb_sparc64 ABINAME='5.10.0-29' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' PACKAGE_NAMES='kernel-image-5.10.0-29-sparc64-di nic-modules-5.10.0-29-sparc64-di nic-shared-modules-5.10.0-29-sparc64-di usb-serial-modules-5.10.0-29-sparc64-di ppp-modules-5.10.0-29-sparc64-di pata-modules-5.10.0-29-sparc64-di cdrom-core-modules-5.10.0-29-sparc64-di scsi-core-modules-5.10.0-29-sparc64-di scsi-modules-5.10.0-29-sparc64-di btrfs-modules-5.10.0-29-sparc64-di ext4-modules-5.10.0-29-sparc64-di isofs-modules-5.10.0-29-sparc64-di jfs-modules-5.10.0-29-sparc64-di ufs-modules-5.10.0-29-sparc64-di xfs-modules-5.10.0-29-sparc64-di fat-modules-5.10.0-29-sparc64-di squashfs-modules-5.10.0-29-sparc64-di udf-modules-5.10.0-29-sparc64-di fuse-modules-5.10.0-29-sparc64-di f2fs-modules-5.10.0-29-sparc64-di md-modules-5.10.0-29-sparc64-di multipath-modules-5.10.0-29-sparc64-di usb-modules-5.10.0-29-sparc64-di usb-storage-modules-5.10.0-29-sparc64-di fb-modules-5.10.0-29-sparc64-di input-modules-5.10.0-29-sparc64-di nic-usb-modules-5.10.0-29-sparc64-di sata-modules-5.10.0-29-sparc64-di i2c-modules-5.10.0-29-sparc64-di crc-modules-5.10.0-29-sparc64-di crypto-modules-5.10.0-29-sparc64-di crypto-dm-modules-5.10.0-29-sparc64-di ata-modules-5.10.0-29-sparc64-di nbd-modules-5.10.0-29-sparc64-di' UDEB_UNSIGNED_TEST_BUILD=False binary-arch_sparc64_none: binary-arch_sparc64_none_real binary-arch_sparc64_none_sparc64 binary-arch_sparc64_none_sparc64-smp binary-arch_sparc64_none_real: binary-arch_sparc64_none_sparc64: binary-arch_sparc64_none_sparc64_real binary-arch_sparc64_none_sparc64-smp: binary-arch_sparc64_none_sparc64-smp_real binary-arch_sparc64_none_sparc64-smp_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sparc64_none_sparc64_real:: - $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sparc64_real:: setup_sparc64 binary-arch_sparc64_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_sparc_real:: setup_sparc binary-arch_sparc_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-arch_x32: binary-arch_x32_extra binary-arch_x32_real binary-arch_x32_extra:: $(MAKE) -f debian/rules.real install-dummy ARCH='x32' DH_OPTIONS='-plinux-compiler-gcc-10-x86' binary-arch_x32_real:: setup_x32 binary-arch_x32_real:: - $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-28' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-arch-arch ABINAME='5.10.0-29' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-indep:: binary-indep_none binary-indep_rt binary-indep:: - $(MAKE) -f debian/rules.real binary-indep ABINAME='5.10.0-28' ALL_FEATURESETS='none rt' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-indep ABINAME='5.10.0-29' ALL_FEATURESETS='none rt' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-indep_none: binary-indep_none_real binary-indep_none_real:: - $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='5.10.0-28' ALL_KERNEL_ARCHES='alpha arm arm64 ia64 m68k mips parisc powerpc riscv s390 sh sparc x86' FEATURESET='none' LOCALVERSION='' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='5.10.0-29' ALL_KERNEL_ARCHES='alpha arm arm64 ia64 m68k mips parisc powerpc riscv s390 sh sparc x86' FEATURESET='none' LOCALVERSION='' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' binary-indep_rt: binary-indep_rt_real binary-indep_rt_real:: - $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='5.10.0-28' ALL_KERNEL_ARCHES='arm arm64 x86' FEATURESET='rt' LOCALVERSION='-rt' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real binary-indep-featureset ABINAME='5.10.0-29' ALL_KERNEL_ARCHES='arm arm64 x86' FEATURESET='rt' LOCALVERSION='-rt' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch: build-arch_alpha build-arch_amd64 build-arch_arm64 build-arch_arm64ilp32 build-arch_armel build-arch_armhf build-arch_hppa build-arch_i386 build-arch_ia64 build-arch_m68k build-arch_mips build-arch_mips64 build-arch_mips64el build-arch_mips64r6 build-arch_mips64r6el build-arch_mipsel build-arch_mipsn32 build-arch_mipsn32el build-arch_mipsn32r6 build-arch_mipsn32r6el build-arch_mipsr6 build-arch_mipsr6el build-arch_powerpc build-arch_ppc64 build-arch_ppc64el build-arch_riscv64 build-arch_s390 build-arch_s390x build-arch_sh3 build-arch_sh4 build-arch_sparc build-arch_sparc64 build-arch_x32 build-arch_alpha: build-arch_alpha_none build-arch_alpha_real build-arch_alpha_none: build-arch_alpha_none_alpha-generic build-arch_alpha_none_alpha-smp build-arch_alpha_none_real build-arch_alpha_none_alpha-generic: build-arch_alpha_none_alpha-generic_real build-arch_alpha_none_alpha-generic_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_alpha_none_alpha-smp: build-arch_alpha_none_alpha-smp_real build-arch_alpha_none_alpha-smp_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_alpha_none_real: build-arch_alpha_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='alpha' KERNEL_ARCH='alpha' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_amd64: build-arch_amd64_none build-arch_amd64_real build-arch_amd64_rt build-arch_amd64_none: build-arch_amd64_none_amd64 build-arch_amd64_none_cloud-amd64 build-arch_amd64_none_real build-arch_amd64_none_amd64: build-arch_amd64_none_amd64_real build-arch_amd64_none_amd64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_amd64_none_cloud-amd64: build-arch_amd64_none_cloud-amd64_real build-arch_amd64_none_cloud-amd64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_amd64_none_real: build-arch_amd64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='amd64' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_amd64_rt: build-arch_amd64_rt_amd64 build-arch_amd64_rt_real build-arch_amd64_rt_amd64: build-arch_amd64_rt_amd64_real build-arch_amd64_rt_amd64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_amd64_rt_real: build-arch_arm64: build-arch_arm64_none build-arch_arm64_real build-arch_arm64_rt build-arch_arm64_none: build-arch_arm64_none_arm64 build-arch_arm64_none_cloud-arm64 build-arch_arm64_none_real build-arch_arm64_none_arm64: build-arch_arm64_none_arm64_real build-arch_arm64_none_arm64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_arm64_none_cloud-arm64: build-arch_arm64_none_cloud-arm64_real build-arch_arm64_none_cloud-arm64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_arm64_none_real: build-arch_arm64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='arm64' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_arm64_rt: build-arch_arm64_rt_arm64 build-arch_arm64_rt_real build-arch_arm64_rt_arm64: build-arch_arm64_rt_arm64_real build-arch_arm64_rt_arm64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_arm64_rt_real: build-arch_arm64ilp32: build-arch_arm64ilp32_real build-arch_arm64ilp32_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='arm64ilp32' KERNEL_ARCH='arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_armel: build-arch_armel_none build-arch_armel_real build-arch_armel_none: build-arch_armel_none_marvell build-arch_armel_none_real build-arch_armel_none_rpi build-arch_armel_none_marvell: build-arch_armel_none_marvell_real build-arch_armel_none_marvell_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_armel_none_real: build-arch_armel_none_rpi: build-arch_armel_none_rpi_real build-arch_armel_none_rpi_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_armel_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='armel' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_armhf: build-arch_armhf_none build-arch_armhf_real build-arch_armhf_rt build-arch_armhf_none: build-arch_armhf_none_armmp build-arch_armhf_none_armmp-lpae build-arch_armhf_none_real build-arch_armhf_none_armmp: build-arch_armhf_none_armmp_real build-arch_armhf_none_armmp-lpae: build-arch_armhf_none_armmp-lpae_real build-arch_armhf_none_armmp-lpae_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_armhf_none_armmp_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_armhf_none_real: build-arch_armhf_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='armhf' KERNEL_ARCH='arm' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_armhf_rt: build-arch_armhf_rt_armmp build-arch_armhf_rt_real build-arch_armhf_rt_armmp: build-arch_armhf_rt_armmp_real build-arch_armhf_rt_armmp_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_armhf_rt_real: build-arch_hppa: build-arch_hppa_none build-arch_hppa_real build-arch_hppa_none: build-arch_hppa_none_parisc build-arch_hppa_none_parisc64 build-arch_hppa_none_real build-arch_hppa_none_parisc: build-arch_hppa_none_parisc_real build-arch_hppa_none_parisc64: build-arch_hppa_none_parisc64_real build-arch_hppa_none_parisc64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_hppa_none_parisc_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_hppa_none_real: build-arch_hppa_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='hppa' KERNEL_ARCH='parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_i386: build-arch_i386_none build-arch_i386_real build-arch_i386_rt build-arch_i386_none: build-arch_i386_none_686 build-arch_i386_none_686-pae build-arch_i386_none_real build-arch_i386_none_686: build-arch_i386_none_686_real build-arch_i386_none_686-pae: build-arch_i386_none_686-pae_real build-arch_i386_none_686-pae_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_i386_none_686_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_i386_none_real: build-arch_i386_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='i386' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_i386_rt: build-arch_i386_rt_686-pae build-arch_i386_rt_real build-arch_i386_rt_686-pae: build-arch_i386_rt_686-pae_real build-arch_i386_rt_686-pae_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_i386_rt_real: build-arch_ia64: build-arch_ia64_none build-arch_ia64_real build-arch_ia64_none: build-arch_ia64_none_itanium build-arch_ia64_none_mckinley build-arch_ia64_none_real build-arch_ia64_none_itanium: build-arch_ia64_none_itanium_real build-arch_ia64_none_itanium_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_ia64_none_mckinley: build-arch_ia64_none_mckinley_real build-arch_ia64_none_mckinley_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_ia64_none_real: build-arch_ia64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='ia64' KERNEL_ARCH='ia64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_m68k: build-arch_m68k_none build-arch_m68k_real build-arch_m68k_none: build-arch_m68k_none_m68k build-arch_m68k_none_real build-arch_m68k_none_m68k: build-arch_m68k_none_m68k_real build-arch_m68k_none_m68k_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_m68k_none_real: build-arch_m68k_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='m68k' KERNEL_ARCH='m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips: build-arch_mips_none build-arch_mips_real build-arch_mips64: build-arch_mips64_none build-arch_mips64_real build-arch_mips64_none: build-arch_mips64_none_5kc-malta build-arch_mips64_none_octeon build-arch_mips64_none_real build-arch_mips64_none_5kc-malta: build-arch_mips64_none_5kc-malta_real build-arch_mips64_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64_none_octeon: build-arch_mips64_none_octeon_real build-arch_mips64_none_octeon_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64_none_real: build-arch_mips64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mips64' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64el: build-arch_mips64el_none build-arch_mips64el_real build-arch_mips64el_none: build-arch_mips64el_none_5kc-malta build-arch_mips64el_none_loongson-3 build-arch_mips64el_none_octeon build-arch_mips64el_none_real build-arch_mips64el_none_5kc-malta: build-arch_mips64el_none_5kc-malta_real build-arch_mips64el_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64el_none_loongson-3: build-arch_mips64el_none_loongson-3_real build-arch_mips64el_none_loongson-3_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64el_none_octeon: build-arch_mips64el_none_octeon_real build-arch_mips64el_none_octeon_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64el_none_real: build-arch_mips64el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mips64el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64r6: build-arch_mips64r6_none build-arch_mips64r6_real build-arch_mips64r6_none: build-arch_mips64r6_none_mips64r6 build-arch_mips64r6_none_real build-arch_mips64r6_none_mips64r6: build-arch_mips64r6_none_mips64r6_real build-arch_mips64r6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64r6_none_real: build-arch_mips64r6_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mips64r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64r6el: build-arch_mips64r6el_none build-arch_mips64r6el_real build-arch_mips64r6el_none: build-arch_mips64r6el_none_mips64r6el build-arch_mips64r6el_none_real build-arch_mips64r6el_none_mips64r6el: build-arch_mips64r6el_none_mips64r6el_real build-arch_mips64r6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips64r6el_none_real: build-arch_mips64r6el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mips64r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips_none: build-arch_mips_none_4kc-malta build-arch_mips_none_5kc-malta build-arch_mips_none_octeon build-arch_mips_none_real build-arch_mips_none_4kc-malta: build-arch_mips_none_4kc-malta_real build-arch_mips_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips_none_5kc-malta: build-arch_mips_none_5kc-malta_real build-arch_mips_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips_none_octeon: build-arch_mips_none_octeon_real build-arch_mips_none_octeon_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mips_none_real: build-arch_mips_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mips' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsel: build-arch_mipsel_none build-arch_mipsel_real build-arch_mipsel_none: build-arch_mipsel_none_4kc-malta build-arch_mipsel_none_5kc-malta build-arch_mipsel_none_loongson-3 build-arch_mipsel_none_octeon build-arch_mipsel_none_real build-arch_mipsel_none_4kc-malta: build-arch_mipsel_none_4kc-malta_real build-arch_mipsel_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsel_none_5kc-malta: build-arch_mipsel_none_5kc-malta_real build-arch_mipsel_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsel_none_loongson-3: build-arch_mipsel_none_loongson-3_real build-arch_mipsel_none_loongson-3_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsel_none_octeon: build-arch_mipsel_none_octeon_real build-arch_mipsel_none_octeon_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsel_none_real: build-arch_mipsel_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsel' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsn32: build-arch_mipsn32_real build-arch_mipsn32_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsn32el: build-arch_mipsn32el_real build-arch_mipsn32el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsn32r6: build-arch_mipsn32r6_real build-arch_mipsn32r6_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32r6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsn32r6el: build-arch_mipsn32r6el_real build-arch_mipsn32r6el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsn32r6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6: build-arch_mipsr6_none build-arch_mipsr6_real build-arch_mipsr6_none: build-arch_mipsr6_none_mips32r6 build-arch_mipsr6_none_mips64r6 build-arch_mipsr6_none_real build-arch_mipsr6_none_mips32r6: build-arch_mipsr6_none_mips32r6_real build-arch_mipsr6_none_mips32r6_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6_none_mips64r6: build-arch_mipsr6_none_mips64r6_real build-arch_mipsr6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6_none_real: build-arch_mipsr6_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsr6' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6el: build-arch_mipsr6el_none build-arch_mipsr6el_real build-arch_mipsr6el_none: build-arch_mipsr6el_none_mips32r6el build-arch_mipsr6el_none_mips64r6el build-arch_mipsr6el_none_real build-arch_mipsr6el_none_mips32r6el: build-arch_mipsr6el_none_mips32r6el_real build-arch_mipsr6el_none_mips32r6el_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6el_none_mips64r6el: build-arch_mipsr6el_none_mips64r6el_real build-arch_mipsr6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_mipsr6el_none_real: build-arch_mipsr6el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='mipsr6el' KERNEL_ARCH='mips' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_powerpc: build-arch_powerpc_none build-arch_powerpc_real build-arch_powerpc_none: build-arch_powerpc_none_powerpc build-arch_powerpc_none_powerpc-smp build-arch_powerpc_none_powerpc64 build-arch_powerpc_none_real build-arch_powerpc_none_powerpc: build-arch_powerpc_none_powerpc_real build-arch_powerpc_none_powerpc-smp: build-arch_powerpc_none_powerpc-smp_real build-arch_powerpc_none_powerpc-smp_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_powerpc_none_powerpc64: build-arch_powerpc_none_powerpc64_real build-arch_powerpc_none_powerpc64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_powerpc_none_powerpc_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_powerpc_none_real: build-arch_powerpc_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='powerpc' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_ppc64: build-arch_ppc64_none build-arch_ppc64_real build-arch_ppc64_none: build-arch_ppc64_none_powerpc64 build-arch_ppc64_none_real build-arch_ppc64_none_powerpc64: build-arch_ppc64_none_powerpc64_real build-arch_ppc64_none_powerpc64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_ppc64_none_real: build-arch_ppc64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='ppc64' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_ppc64el: build-arch_ppc64el_none build-arch_ppc64el_real build-arch_ppc64el_none: build-arch_ppc64el_none_powerpc64le build-arch_ppc64el_none_real build-arch_ppc64el_none_powerpc64le: build-arch_ppc64el_none_powerpc64le_real build-arch_ppc64el_none_powerpc64le_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_ppc64el_none_real: build-arch_ppc64el_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='ppc64el' KERNEL_ARCH='powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_riscv64: build-arch_riscv64_none build-arch_riscv64_real build-arch_riscv64_none: build-arch_riscv64_none_real build-arch_riscv64_none_riscv64 build-arch_riscv64_none_real: build-arch_riscv64_none_riscv64: build-arch_riscv64_none_riscv64_real build-arch_riscv64_none_riscv64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_riscv64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='riscv64' KERNEL_ARCH='riscv' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_s390: build-arch_s390_real build-arch_s390_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='s390' KERNEL_ARCH='s390' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_s390x: build-arch_s390x_none build-arch_s390x_real build-arch_s390x_none: build-arch_s390x_none_real build-arch_s390x_none_s390x build-arch_s390x_none_real: build-arch_s390x_none_s390x: build-arch_s390x_none_s390x_real build-arch_s390x_none_s390x_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' build-arch_s390x_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='s390x' KERNEL_ARCH='s390' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sh3: build-arch_sh3_real build-arch_sh3_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='sh3' KERNEL_ARCH='sh' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sh4: build-arch_sh4_none build-arch_sh4_real build-arch_sh4_none: build-arch_sh4_none_real build-arch_sh4_none_sh7751r build-arch_sh4_none_sh7785lcr build-arch_sh4_none_real: build-arch_sh4_none_sh7751r: build-arch_sh4_none_sh7751r_real build-arch_sh4_none_sh7751r_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sh4_none_sh7785lcr: build-arch_sh4_none_sh7785lcr_real build-arch_sh4_none_sh7785lcr_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sh4_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='sh4' KERNEL_ARCH='sh' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sparc: build-arch_sparc_real build-arch_sparc64: build-arch_sparc64_none build-arch_sparc64_real build-arch_sparc64_none: build-arch_sparc64_none_real build-arch_sparc64_none_sparc64 build-arch_sparc64_none_sparc64-smp @@ -714,163 +714,163 @@ build-arch_sparc64_none_sparc64: build-arch_sparc64_none_sparc64_real build-arch_sparc64_none_sparc64-smp: build-arch_sparc64_none_sparc64-smp_real build-arch_sparc64_none_sparc64-smp_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sparc64_none_sparc64_real:: - $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sparc64_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='sparc64' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_sparc_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='sparc' KERNEL_ARCH='sparc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-arch_x32: build-arch_x32_real build-arch_x32_real:: - $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-28' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-arch-arch ABINAME='5.10.0-29' ARCH='x32' KERNEL_ARCH='x86' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-indep:: build-indep_none build-indep_rt build-indep:: - $(MAKE) -f debian/rules.real build-indep ABINAME='5.10.0-28' ALL_FEATURESETS='none rt' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real build-indep ABINAME='5.10.0-29' ALL_FEATURESETS='none rt' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' build-indep_none: build-indep_none_real build-indep_none_real: build-indep_rt: build-indep_rt_real build-indep_rt_real: debian/build/config.alpha_none_alpha-generic:: - $(MAKE) -f debian/rules.real debian/build/config.alpha_none_alpha-generic ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.alpha_none_alpha-generic ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.alpha_none_alpha-smp:: - $(MAKE) -f debian/rules.real debian/build/config.alpha_none_alpha-smp ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.alpha_none_alpha-smp ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.amd64_none_amd64:: - $(MAKE) -f debian/rules.real debian/build/config.amd64_none_amd64 ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.amd64_none_amd64 ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.amd64_none_cloud-amd64:: - $(MAKE) -f debian/rules.real debian/build/config.amd64_none_cloud-amd64 ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.amd64_none_cloud-amd64 ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.amd64_rt_amd64:: - $(MAKE) -f debian/rules.real debian/build/config.amd64_rt_amd64 ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.amd64_rt_amd64 ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.arm64_none_arm64:: - $(MAKE) -f debian/rules.real debian/build/config.arm64_none_arm64 ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.arm64_none_arm64 ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.arm64_none_cloud-arm64:: - $(MAKE) -f debian/rules.real debian/build/config.arm64_none_cloud-arm64 ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.arm64_none_cloud-arm64 ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.arm64_rt_arm64:: - $(MAKE) -f debian/rules.real debian/build/config.arm64_rt_arm64 ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.arm64_rt_arm64 ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.armel_none_marvell:: - $(MAKE) -f debian/rules.real debian/build/config.armel_none_marvell ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.armel_none_marvell ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.armel_none_rpi:: - $(MAKE) -f debian/rules.real debian/build/config.armel_none_rpi ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.armel_none_rpi ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.armhf_none_armmp:: - $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.armhf_none_armmp-lpae:: - $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp-lpae ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.armhf_none_armmp-lpae ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.armhf_rt_armmp:: - $(MAKE) -f debian/rules.real debian/build/config.armhf_rt_armmp ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.armhf_rt_armmp ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.hppa_none_parisc:: - $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.hppa_none_parisc64:: - $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc64 ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.hppa_none_parisc64 ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.i386_none_686:: - $(MAKE) -f debian/rules.real debian/build/config.i386_none_686 ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.i386_none_686 ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.i386_none_686-pae:: - $(MAKE) -f debian/rules.real debian/build/config.i386_none_686-pae ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.i386_none_686-pae ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.i386_rt_686-pae:: - $(MAKE) -f debian/rules.real debian/build/config.i386_rt_686-pae ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.i386_rt_686-pae ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.ia64_none_itanium:: - $(MAKE) -f debian/rules.real debian/build/config.ia64_none_itanium ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.ia64_none_itanium ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.ia64_none_mckinley:: - $(MAKE) -f debian/rules.real debian/build/config.ia64_none_mckinley ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.ia64_none_mckinley ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.m68k_none_m68k:: - $(MAKE) -f debian/rules.real debian/build/config.m68k_none_m68k ABINAME='5.10.0-28' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.m68k_none_m68k ABINAME='5.10.0-29' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64_none_5kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mips64_none_5kc-malta ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64_none_5kc-malta ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64_none_octeon:: - $(MAKE) -f debian/rules.real debian/build/config.mips64_none_octeon ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64_none_octeon ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64el_none_5kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_5kc-malta ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_5kc-malta ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64el_none_loongson-3:: - $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_loongson-3 ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_loongson-3 ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64el_none_octeon:: - $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_octeon ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64el_none_octeon ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64r6_none_mips64r6:: - $(MAKE) -f debian/rules.real debian/build/config.mips64r6_none_mips64r6 ABINAME='5.10.0-28' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64r6_none_mips64r6 ABINAME='5.10.0-29' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips64r6el_none_mips64r6el:: - $(MAKE) -f debian/rules.real debian/build/config.mips64r6el_none_mips64r6el ABINAME='5.10.0-28' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips64r6el_none_mips64r6el ABINAME='5.10.0-29' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips_none_4kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mips_none_4kc-malta ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips_none_4kc-malta ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips_none_5kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mips_none_5kc-malta ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips_none_5kc-malta ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mips_none_octeon:: - $(MAKE) -f debian/rules.real debian/build/config.mips_none_octeon ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mips_none_octeon ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsel_none_4kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_4kc-malta ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_4kc-malta ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsel_none_5kc-malta:: - $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_5kc-malta ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_5kc-malta ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsel_none_loongson-3:: - $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_loongson-3 ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_loongson-3 ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsel_none_octeon:: - $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_octeon ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsel_none_octeon ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsr6_none_mips32r6:: - $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips32r6 ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips32r6 ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsr6_none_mips64r6:: - $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips64r6 ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsr6_none_mips64r6 ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsr6el_none_mips32r6el:: - $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips32r6el ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips32r6el ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.mipsr6el_none_mips64r6el:: - $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips64r6el ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.mipsr6el_none_mips64r6el ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.powerpc_none_powerpc:: - $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.powerpc_none_powerpc-smp:: - $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc-smp ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc-smp ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.powerpc_none_powerpc64:: - $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc64 ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.powerpc_none_powerpc64 ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.ppc64_none_powerpc64:: - $(MAKE) -f debian/rules.real debian/build/config.ppc64_none_powerpc64 ABINAME='5.10.0-28' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.ppc64_none_powerpc64 ABINAME='5.10.0-29' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.ppc64el_none_powerpc64le:: - $(MAKE) -f debian/rules.real debian/build/config.ppc64el_none_powerpc64le ABINAME='5.10.0-28' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.ppc64el_none_powerpc64le ABINAME='5.10.0-29' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.riscv64_none_riscv64:: - $(MAKE) -f debian/rules.real debian/build/config.riscv64_none_riscv64 ABINAME='5.10.0-28' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.riscv64_none_riscv64 ABINAME='5.10.0-29' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.s390x_none_s390x:: - $(MAKE) -f debian/rules.real debian/build/config.s390x_none_s390x ABINAME='5.10.0-28' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.s390x_none_s390x ABINAME='5.10.0-29' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' debian/build/config.sh4_none_sh7751r:: - $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7751r ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7751r ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.sh4_none_sh7785lcr:: - $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7785lcr ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.sh4_none_sh7785lcr ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.sparc64_none_sparc64:: - $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64 ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64 ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' debian/build/config.sparc64_none_sparc64-smp:: - $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64-smp ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real debian/build/config.sparc64_none_sparc64-smp ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup: setup_alpha setup_amd64 setup_arm64 setup_arm64ilp32 setup_armel setup_armhf setup_hppa setup_i386 setup_ia64 setup_m68k setup_mips setup_mips64 setup_mips64el setup_mips64r6 setup_mips64r6el setup_mipsel setup_mipsn32 setup_mipsn32el setup_mipsn32r6 setup_mipsn32r6el setup_mipsr6 setup_mipsr6el setup_none setup_powerpc setup_ppc64 setup_ppc64el setup_riscv64 setup_rt setup_s390 setup_s390x setup_sh3 setup_sh4 setup_sparc setup_sparc64 setup_x32 setup_alpha: setup_alpha_none setup_alpha_real setup_alpha_none: setup_alpha_none_alpha-generic setup_alpha_none_alpha-smp setup_alpha_none_real setup_alpha_none_alpha-generic: setup_alpha_none_alpha-generic_real setup_alpha_none_alpha-generic_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-generic' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-generic' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-generic' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-generic\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-generic' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-generic' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_alpha_none_alpha-smp: setup_alpha_none_alpha-smp_real setup_alpha_none_alpha-smp_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='alpha' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='alpha-smp' IMAGE_FILE='arch/alpha/boot/vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-alpha-smp' KCONFIG='debian/config/config debian/config/alpha/config debian/config/alpha/config.alpha-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-alpha-smp\""' KERNEL_ARCH='alpha' LOCALVERSION='-alpha-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-alpha-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_alpha_none_real: setup_alpha_real: setup_amd64: setup_amd64_none setup_amd64_real setup_amd64_rt setup_amd64_none: setup_amd64_none_amd64 setup_amd64_none_cloud-amd64 setup_amd64_none_real setup_amd64_none_amd64: setup_amd64_none_amd64_real setup_amd64_none_amd64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_amd64_none_cloud-amd64: setup_amd64_none_cloud-amd64_real setup_amd64_none_cloud-amd64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/amd64/config.cloud-amd64 debian/config/config.cloud debian/config/amd64/config.cloud-amd64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-cloud-amd64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_amd64_none_real: setup_amd64_real: setup_amd64_rt: setup_amd64_rt_amd64 setup_amd64_rt_real setup_amd64_rt_amd64: setup_amd64_rt_amd64_real setup_amd64_rt_amd64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='amd64' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='amd64' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-amd64-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/amd64/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-amd64\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-amd64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-amd64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_amd64_rt_real: setup_arm64: setup_arm64_none setup_arm64_real setup_arm64_rt setup_arm64_none: setup_arm64_none_arm64 setup_arm64_none_cloud-arm64 setup_arm64_none_real setup_arm64_none_arm64: setup_arm64_none_arm64_real setup_arm64_none_arm64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_arm64_none_cloud-arm64: setup_arm64_none_cloud-arm64_real setup_arm64_none_cloud-arm64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='none' FLAVOUR='cloud-arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-cloud-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/arm64/config.cloud-arm64 debian/config/config.cloud debian/config/arm64/config.cloud-arm64' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-cloud-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-cloud-arm64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-cloud-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_arm64_none_real: setup_arm64_real: setup_arm64_rt: setup_arm64_rt_arm64 setup_arm64_rt_real setup_arm64_rt_arm64: setup_arm64_rt_arm64_real setup_arm64_rt_arm64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='arm64' COMPILER='gcc-10' CROSS_COMPILE_COMPAT='arm-linux-gnueabihf-' DEBUG='True' FEATURESET='rt' FLAVOUR='arm64' IMAGE_FILE='arch/arm64/boot/Image' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-arm64-unsigned' KCONFIG='debian/config/config debian/config/arm64/config debian/config/featureset-rt/config debian/config/arm64/rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-arm64\""' KERNEL_ARCH='arm64' LOCALVERSION='-rt-arm64' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-arm64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_arm64_rt_real: setup_arm64ilp32: setup_arm64ilp32_real setup_arm64ilp32_real: @@ -878,35 +878,35 @@ setup_armel_none: setup_armel_none_marvell setup_armel_none_real setup_armel_none_rpi setup_armel_none_marvell: setup_armel_none_marvell_real setup_armel_none_marvell_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='marvell' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-marvell' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.marvell' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-marvell\""' KERNEL_ARCH='arm' LOCALVERSION='-marvell' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-marvell' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_armel_none_real: setup_armel_none_rpi: setup_armel_none_rpi_real setup_armel_none_rpi_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='armel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='rpi' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rpi' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armel/config debian/config/armel/config.rpi' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rpi\""' KERNEL_ARCH='arm' LOCALVERSION='-rpi' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-rpi' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_armel_real: setup_armhf: setup_armhf_none setup_armhf_real setup_armhf_rt setup_armhf_none: setup_armhf_none_armmp setup_armhf_none_armmp-lpae setup_armhf_none_real setup_armhf_none_armmp: setup_armhf_none_armmp_real setup_armhf_none_armmp-lpae: setup_armhf_none_armmp-lpae_real setup_armhf_none_armmp-lpae_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp-lpae' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp-lpae' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/armhf/config.armmp-lpae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp-lpae\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp-lpae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp-lpae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_armhf_none_armmp_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-armmp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_armhf_none_real: setup_armhf_real: setup_armhf_rt: setup_armhf_rt_armmp setup_armhf_rt_real setup_armhf_rt_armmp: setup_armhf_rt_armmp_real setup_armhf_rt_armmp_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='armhf' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='armmp' IMAGE_FILE='arch/arm/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-armmp' KCONFIG='debian/config/config debian/config/kernelarch-arm/config debian/config/armhf/config debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-rt-armmp\""' KERNEL_ARCH='arm' LOCALVERSION='-rt-armmp' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-armmp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_armhf_rt_real: setup_hppa: setup_hppa_none setup_hppa_real setup_hppa_none: setup_hppa_none_parisc setup_hppa_none_parisc64 setup_hppa_none_real setup_hppa_none_parisc: setup_hppa_none_parisc_real setup_hppa_none_parisc64: setup_hppa_none_parisc64_real setup_hppa_none_parisc64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc64' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc64' KCFLAGS='-fno-cse-follow-jumps' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc64' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc64\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc64' OVERRIDE_HOST_TYPE='hppa64-linux-gnu' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_hppa_none_parisc_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-28-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='hppa' COMPILER='gcc-10' FEATURESET='none' FLAVOUR='parisc' IMAGE_FILE='arch/parisc/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-parisc' KCONFIG='debian/config/config debian/config/hppa/config debian/config/hppa/config.parisc' KCONFIG_OPTIONS=' -o "BUILD_SALT=\"5.10.0-29-parisc\""' KERNEL_ARCH='parisc' LOCALVERSION='-parisc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-parisc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_hppa_none_real: setup_hppa_real: setup_i386: setup_i386_none setup_i386_real setup_i386_rt @@ -914,31 +914,31 @@ setup_i386_none_686: setup_i386_none_686_real setup_i386_none_686-pae: setup_i386_none_686-pae_real setup_i386_none_686-pae_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-686-pae' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_i386_none_686_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='686' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-686-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-686\""' KERNEL_ARCH='x86' LOCALVERSION='-686' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-686' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_i386_none_real: setup_i386_real: setup_i386_rt: setup_i386_rt_686-pae setup_i386_rt_real setup_i386_rt_686-pae: setup_i386_rt_686-pae_real setup_i386_rt_686-pae_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-28-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='i386' COMPILER='gcc-10' DEBUG='True' FEATURESET='rt' FLAVOUR='686-pae' IMAGE_FILE='arch/x86/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-rt-686-pae-unsigned' KCONFIG='debian/config/config debian/config/kernelarch-x86/config debian/config/i386/config debian/config/i386/config.686-pae debian/config/featureset-rt/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o SECURITY_LOCKDOWN_LSM=y -o MODULE_SIG=y -o "BUILD_SALT=\"5.10.0-29-rt-686-pae\""' KERNEL_ARCH='x86' LOCALVERSION='-rt-686-pae' LOCALVERSION_HEADERS='-rt' LOCALVERSION_IMAGE='-rt-686-pae' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_i386_rt_real: setup_ia64: setup_ia64_none setup_ia64_real setup_ia64_none: setup_ia64_none_itanium setup_ia64_none_mckinley setup_ia64_none_real setup_ia64_none_itanium: setup_ia64_none_itanium_real setup_ia64_none_itanium_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='itanium' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-itanium' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.itanium' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-itanium\""' KERNEL_ARCH='ia64' LOCALVERSION='-itanium' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-itanium' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_ia64_none_mckinley: setup_ia64_none_mckinley_real setup_ia64_none_mckinley_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='ia64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mckinley' IMAGE_FILE='vmlinux.gz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mckinley' KCONFIG='debian/config/config debian/config/ia64/config debian/config/ia64/config.mckinley' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mckinley\""' KERNEL_ARCH='ia64' LOCALVERSION='-mckinley' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mckinley' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_ia64_none_real: setup_ia64_real: setup_m68k: setup_m68k_none setup_m68k_real setup_m68k_none: setup_m68k_none_m68k setup_m68k_none_real setup_m68k_none_m68k: setup_m68k_none_m68k_real setup_m68k_none_m68k_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='m68k' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='m68k' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-m68k' KCFLAGS='-ffreestanding' KCONFIG='debian/config/config debian/config/m68k/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-m68k\""' KERNEL_ARCH='m68k' LOCALVERSION='-m68k' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-m68k' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_m68k_none_real: setup_m68k_real: setup_mips: setup_mips_none setup_mips_real @@ -946,65 +946,65 @@ setup_mips64_none: setup_mips64_none_5kc-malta setup_mips64_none_octeon setup_mips64_none_real setup_mips64_none_5kc-malta: setup_mips64_none_5kc-malta_real setup_mips64_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64_none_octeon: setup_mips64_none_octeon_real setup_mips64_none_octeon_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64_none_real: setup_mips64_real: setup_mips64el: setup_mips64el_none setup_mips64el_real setup_mips64el_none: setup_mips64el_none_5kc-malta setup_mips64el_none_loongson-3 setup_mips64el_none_octeon setup_mips64el_none_real setup_mips64el_none_5kc-malta: setup_mips64el_none_5kc-malta_real setup_mips64el_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64el_none_loongson-3: setup_mips64el_none_loongson-3_real setup_mips64el_none_loongson-3_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64el_none_octeon: setup_mips64el_none_octeon_real setup_mips64el_none_octeon_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64el/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64el_none_real: setup_mips64el_real: setup_mips64r6: setup_mips64r6_none setup_mips64r6_real setup_mips64r6_none: setup_mips64r6_none_mips64r6 setup_mips64r6_none_real setup_mips64r6_none_mips64r6: setup_mips64r6_none_mips64r6_real setup_mips64r6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64r6_none_real: setup_mips64r6_real: setup_mips64r6el: setup_mips64r6el_none setup_mips64r6el_real setup_mips64r6el_none: setup_mips64r6el_none_mips64r6el setup_mips64r6el_none_real setup_mips64r6el_none_mips64r6el: setup_mips64r6el_none_mips64r6el_real setup_mips64r6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips64r6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips64r6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips64r6el_none_real: setup_mips64r6el_real: setup_mips_none: setup_mips_none_4kc-malta setup_mips_none_5kc-malta setup_mips_none_octeon setup_mips_none_real setup_mips_none_4kc-malta: setup_mips_none_4kc-malta_real setup_mips_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips_none_5kc-malta: setup_mips_none_5kc-malta_real setup_mips_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips_none_octeon: setup_mips_none_octeon_real setup_mips_none_octeon_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mips' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mips/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mips_none_real: setup_mips_real: setup_mipsel: setup_mipsel_none setup_mipsel_real setup_mipsel_none: setup_mipsel_none_4kc-malta setup_mipsel_none_5kc-malta setup_mipsel_none_loongson-3 setup_mipsel_none_octeon setup_mipsel_none_real setup_mipsel_none_4kc-malta: setup_mipsel_none_4kc-malta_real setup_mipsel_none_4kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='4kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-4kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips32r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-4kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-4kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-4kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsel_none_5kc-malta: setup_mipsel_none_5kc-malta_real setup_mipsel_none_5kc-malta_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='5kc-malta' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-5kc-malta' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.malta debian/config/kernelarch-mips/config.mips64r2' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-5kc-malta\""' KERNEL_ARCH='mips' LOCALVERSION='-5kc-malta' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-5kc-malta' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsel_none_loongson-3: setup_mipsel_none_loongson-3_real setup_mipsel_none_loongson-3_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='loongson-3' IMAGE_FILE='vmlinuz' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-loongson-3' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.loongson-3' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-loongson-3\""' KERNEL_ARCH='mips' LOCALVERSION='-loongson-3' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-loongson-3' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsel_none_octeon: setup_mipsel_none_octeon_real setup_mipsel_none_octeon_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsel' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='octeon' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-octeon' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsel/config debian/config/kernelarch-mips/config.octeon' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-octeon\""' KERNEL_ARCH='mips' LOCALVERSION='-octeon' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-octeon' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsel_none_real: setup_mipsel_real: setup_mipsn32: setup_mipsn32_real @@ -1019,20 +1019,20 @@ setup_mipsr6_none: setup_mipsr6_none_mips32r6 setup_mipsr6_none_mips64r6 setup_mipsr6_none_real setup_mipsr6_none_mips32r6: setup_mipsr6_none_mips32r6_real setup_mipsr6_none_mips32r6_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsr6_none_mips64r6: setup_mipsr6_none_mips64r6_real setup_mipsr6_none_mips64r6_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsr6_none_real: setup_mipsr6_real: setup_mipsr6el: setup_mipsr6el_none setup_mipsr6el_real setup_mipsr6el_none: setup_mipsr6el_none_mips32r6el setup_mipsr6el_none_mips64r6el setup_mipsr6el_none_real setup_mipsr6el_none_mips32r6el: setup_mipsr6el_none_mips32r6el_real setup_mipsr6el_none_mips32r6el_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips32r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips32r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips32r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips32r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips32r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips32r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsr6el_none_mips64r6el: setup_mipsr6el_none_mips64r6el_real setup_mipsr6el_none_mips64r6el_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='mipsr6el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='mips64r6el' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-mips64r6el' KCONFIG='debian/config/config debian/config/kernelarch-mips/config debian/config/mipsr6el/config debian/config/kernelarch-mips/config.boston debian/config/kernelarch-mips/config.mips64r6' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-mips64r6el\""' KERNEL_ARCH='mips' LOCALVERSION='-mips64r6el' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-mips64r6el' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_mipsr6el_none_real: setup_mipsr6el_real: setup_none: setup_none_real @@ -1042,26 +1042,26 @@ setup_powerpc_none_powerpc: setup_powerpc_none_powerpc_real setup_powerpc_none_powerpc-smp: setup_powerpc_none_powerpc-smp_real setup_powerpc_none_powerpc-smp_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc-smp' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc debian/config/powerpc/config.powerpc-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc-smp\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_powerpc_none_powerpc64: setup_powerpc_none_powerpc64_real setup_powerpc_none_powerpc64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_powerpc_none_powerpc_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='powerpc' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/powerpc/config.powerpc' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_powerpc_none_real: setup_powerpc_real: setup_ppc64: setup_ppc64_none setup_ppc64_real setup_ppc64_none: setup_ppc64_none_powerpc64 setup_ppc64_none_real setup_ppc64_none_powerpc64: setup_ppc64_none_powerpc64_real setup_ppc64_none_powerpc64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-be' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_ppc64_none_real: setup_ppc64_real: setup_ppc64el: setup_ppc64el_none setup_ppc64el_real setup_ppc64el_none: setup_ppc64el_none_powerpc64le setup_ppc64el_none_real setup_ppc64el_none_powerpc64le: setup_ppc64el_none_powerpc64le_real setup_ppc64el_none_powerpc64le_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='ppc64el' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='powerpc64le' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-powerpc64le' KCONFIG='debian/config/config debian/config/kernelarch-powerpc/config debian/config/kernelarch-powerpc/config-arch-64 debian/config/kernelarch-powerpc/config-arch-64-le' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-powerpc64le\""' KERNEL_ARCH='powerpc' LOCALVERSION='-powerpc64le' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-powerpc64le' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_ppc64el_none_real: setup_ppc64el_real: setup_riscv64: setup_riscv64_none setup_riscv64_real @@ -1069,7 +1069,7 @@ setup_riscv64_none_real: setup_riscv64_none_riscv64: setup_riscv64_none_riscv64_real setup_riscv64_none_riscv64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='riscv64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='riscv64' IMAGE_FILE='arch/riscv/boot/Image' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-riscv64' KCONFIG='debian/config/config debian/config/riscv64/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-riscv64\""' KERNEL_ARCH='riscv' LOCALVERSION='-riscv64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-riscv64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_riscv64_real: setup_rt: setup_rt_real setup_rt_real: @@ -1080,7 +1080,7 @@ setup_s390x_none_real: setup_s390x_none_s390x: setup_s390x_none_s390x_real setup_s390x_none_s390x_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='s390x' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='s390x' IMAGE_FILE='arch/s390/boot/bzImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-s390x' KCONFIG='debian/config/config debian/config/s390x/config' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-s390x\""' KERNEL_ARCH='s390' LOCALVERSION='-s390x' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-s390x' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VDSO='True' VERSION='5.10' setup_s390x_real: setup_sh3: setup_sh3_real setup_sh3_real: @@ -1089,10 +1089,10 @@ setup_sh4_none_real: setup_sh4_none_sh7751r: setup_sh4_none_sh7751r_real setup_sh4_none_sh7751r_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7751r' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7751r' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7751r' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7751r\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7751r' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7751r' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_sh4_none_sh7785lcr: setup_sh4_none_sh7785lcr_real setup_sh4_none_sh7785lcr_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='sh4' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sh7785lcr' IMAGE_FILE='arch/sh/boot/zImage' IMAGE_INSTALL_STEM='vmlinuz' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sh7785lcr' KCONFIG='debian/config/config debian/config/sh4/config debian/config/sh4/config.sh7785lcr' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sh7785lcr\""' KERNEL_ARCH='sh' LOCALVERSION='-sh7785lcr' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sh7785lcr' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_sh4_real: setup_sparc: setup_sparc_real setup_sparc64: setup_sparc64_none setup_sparc64_real @@ -1101,9 +1101,9 @@ setup_sparc64_none_sparc64: setup_sparc64_none_sparc64_real setup_sparc64_none_sparc64-smp: setup_sparc64_none_sparc64-smp_real setup_sparc64_none_sparc64-smp_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64-smp' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64-smp' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-smp' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64-smp\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64-smp' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64-smp' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_sparc64_none_sparc64_real:: - $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-28' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-28-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-28-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real setup-arch-flavour ABINAME='5.10.0-29' ARCH='sparc64' COMPILER='gcc-10' DEBUG='True' FEATURESET='none' FLAVOUR='sparc64' IMAGE_FILE='vmlinux' IMAGE_INSTALL_STEM='vmlinux' IMAGE_PACKAGE_NAME='linux-image-5.10.0-29-sparc64' KCONFIG='debian/config/config debian/config/kernelarch-sparc/config debian/config/kernelarch-sparc/config-up' KCONFIG_OPTIONS=' -o DEBUG_INFO=y -o "BUILD_SALT=\"5.10.0-29-sparc64\""' KERNEL_ARCH='sparc' LOCALVERSION='-sparc64' LOCALVERSION_HEADERS='' LOCALVERSION_IMAGE='-sparc64' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' setup_sparc64_real: setup_sparc_real: setup_x32: setup_x32_real @@ -1111,7 +1111,7 @@ source: source_none source_rt source_none: source_none_real source_none_real:: - $(MAKE) -f debian/rules.real source-featureset ABINAME='5.10.0-28' FEATURESET='none' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real source-featureset ABINAME='5.10.0-29' FEATURESET='none' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' source_rt: source_rt_real source_rt_real:: - $(MAKE) -f debian/rules.real source-featureset ABINAME='5.10.0-28' FEATURESET='rt' SOURCEVERSION='5.10.209-2' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' + $(MAKE) -f debian/rules.real source-featureset ABINAME='5.10.0-29' FEATURESET='rt' SOURCEVERSION='5.10.216-1' SOURCE_BASENAME='linux' SOURCE_SUFFIX='' UPSTREAMVERSION='5.10' VERSION='5.10' diff -Nru linux-5.10.209/debian/tests/control linux-5.10.216/debian/tests/control --- linux-5.10.209/debian/tests/control 2024-01-31 21:14:09.000000000 +0000 +++ linux-5.10.216/debian/tests/control 2024-05-03 12:40:24.000000000 +0000 @@ -4,6 +4,6 @@ Tests: selftests Restrictions: breaks-testbed, needs-root, isolation-machine -Depends: kexec-tools, python3, gcc, make, libpopt-dev, gcc-multilib [amd64], bc, fuse, libfuse-dev, pkg-config, linux-image-5.10.0-28-alpha-generic [alpha], linux-image-5.10.0-28-alpha-smp [alpha], linux-image-5.10.0-28-amd64-unsigned [amd64], linux-image-5.10.0-28-cloud-amd64-unsigned [amd64], linux-image-5.10.0-28-rt-amd64-unsigned [amd64], linux-image-5.10.0-28-arm64-unsigned [arm64], linux-image-5.10.0-28-cloud-arm64-unsigned [arm64], linux-image-5.10.0-28-rt-arm64-unsigned [arm64], linux-image-5.10.0-28-marvell [armel], linux-image-5.10.0-28-rpi [armel], linux-image-5.10.0-28-armmp [armhf], linux-image-5.10.0-28-armmp-lpae [armhf], linux-image-5.10.0-28-rt-armmp [armhf], linux-image-5.10.0-28-parisc [hppa], linux-image-5.10.0-28-parisc64 [hppa], linux-image-5.10.0-28-686-unsigned [i386], linux-image-5.10.0-28-686-pae-unsigned [i386], linux-image-5.10.0-28-rt-686-pae-unsigned [i386], linux-image-5.10.0-28-itanium [ia64], linux-image-5.10.0-28-mckinley [ia64], linux-image-5.10.0-28-m68k [m68k], linux-image-5.10.0-28-4kc-malta [mips mipsel], linux-image-5.10.0-28-5kc-malta [mips mips64 mips64el mipsel], linux-image-5.10.0-28-octeon [mips mips64 mips64el mipsel], linux-image-5.10.0-28-loongson-3 [mips64el mipsel], linux-image-5.10.0-28-mips64r6 [mips64r6 mipsr6], linux-image-5.10.0-28-mips64r6el [mips64r6el mipsr6el], linux-image-5.10.0-28-mips32r6 [mipsr6], linux-image-5.10.0-28-mips32r6el [mipsr6el], linux-image-5.10.0-28-powerpc [powerpc], linux-image-5.10.0-28-powerpc-smp [powerpc], linux-image-5.10.0-28-powerpc64 [powerpc ppc64], linux-image-5.10.0-28-powerpc64le [ppc64el], linux-image-5.10.0-28-riscv64 [riscv64], linux-image-5.10.0-28-s390x [s390x], linux-image-5.10.0-28-sh7751r [sh4], linux-image-5.10.0-28-sh7785lcr [sh4], linux-image-5.10.0-28-sparc64 [sparc64], linux-image-5.10.0-28-sparc64-smp [sparc64] +Depends: kexec-tools, python3, gcc, make, libpopt-dev, gcc-multilib [amd64], bc, fuse, libfuse-dev, pkg-config, linux-image-5.10.0-29-alpha-generic [alpha], linux-image-5.10.0-29-alpha-smp [alpha], linux-image-5.10.0-29-amd64-unsigned [amd64], linux-image-5.10.0-29-cloud-amd64-unsigned [amd64], linux-image-5.10.0-29-rt-amd64-unsigned [amd64], linux-image-5.10.0-29-arm64-unsigned [arm64], linux-image-5.10.0-29-cloud-arm64-unsigned [arm64], linux-image-5.10.0-29-rt-arm64-unsigned [arm64], linux-image-5.10.0-29-marvell [armel], linux-image-5.10.0-29-rpi [armel], linux-image-5.10.0-29-armmp [armhf], linux-image-5.10.0-29-armmp-lpae [armhf], linux-image-5.10.0-29-rt-armmp [armhf], linux-image-5.10.0-29-parisc [hppa], linux-image-5.10.0-29-parisc64 [hppa], linux-image-5.10.0-29-686-unsigned [i386], linux-image-5.10.0-29-686-pae-unsigned [i386], linux-image-5.10.0-29-rt-686-pae-unsigned [i386], linux-image-5.10.0-29-itanium [ia64], linux-image-5.10.0-29-mckinley [ia64], linux-image-5.10.0-29-m68k [m68k], linux-image-5.10.0-29-4kc-malta [mips mipsel], linux-image-5.10.0-29-5kc-malta [mips mips64 mips64el mipsel], linux-image-5.10.0-29-octeon [mips mips64 mips64el mipsel], linux-image-5.10.0-29-loongson-3 [mips64el mipsel], linux-image-5.10.0-29-mips64r6 [mips64r6 mipsr6], linux-image-5.10.0-29-mips64r6el [mips64r6el mipsr6el], linux-image-5.10.0-29-mips32r6 [mipsr6], linux-image-5.10.0-29-mips32r6el [mipsr6el], linux-image-5.10.0-29-powerpc [powerpc], linux-image-5.10.0-29-powerpc-smp [powerpc], linux-image-5.10.0-29-powerpc64 [powerpc ppc64], linux-image-5.10.0-29-powerpc64le [ppc64el], linux-image-5.10.0-29-riscv64 [riscv64], linux-image-5.10.0-29-s390x [s390x], linux-image-5.10.0-29-sh7751r [sh4], linux-image-5.10.0-29-sh7785lcr [sh4], linux-image-5.10.0-29-sparc64 [sparc64], linux-image-5.10.0-29-sparc64-smp [sparc64] Classes: smp diff -Nru linux-5.10.209/drivers/accessibility/speakup/main.c linux-5.10.216/drivers/accessibility/speakup/main.c --- linux-5.10.209/drivers/accessibility/speakup/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/accessibility/speakup/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -576,7 +576,7 @@ } attr_ch = get_char(vc, (u_short *)tmp_pos, &spk_attr); buf[cnt++] = attr_ch; - while (tmpx < vc->vc_cols - 1) { + while (tmpx < vc->vc_cols - 1 && cnt < sizeof(buf) - 1) { tmp_pos += 2; tmpx++; ch = get_char(vc, (u_short *)tmp_pos, &temp); diff -Nru linux-5.10.209/drivers/accessibility/speakup/synth.c linux-5.10.216/drivers/accessibility/speakup/synth.c --- linux-5.10.209/drivers/accessibility/speakup/synth.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/accessibility/speakup/synth.c 2024-05-02 14:23:46.000000000 +0000 @@ -208,8 +208,10 @@ wake_up_process(speakup_task); } -void synth_write(const char *buf, size_t count) +void synth_write(const char *_buf, size_t count) { + const unsigned char *buf = (const unsigned char *) _buf; + while (count--) synth_buffer_add(*buf++); synth_start(); diff -Nru linux-5.10.209/drivers/acpi/acpi_extlog.c linux-5.10.216/drivers/acpi/acpi_extlog.c --- linux-5.10.209/drivers/acpi/acpi_extlog.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/acpi_extlog.c 2024-05-02 14:23:46.000000000 +0000 @@ -308,9 +308,10 @@ static void __exit extlog_exit(void) { mce_unregister_decode_chain(&extlog_mce_dec); - ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN; - if (extlog_l1_addr) + if (extlog_l1_addr) { + ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN; acpi_os_unmap_iomem(extlog_l1_addr, l1_size); + } if (elog_addr) acpi_os_unmap_iomem(elog_addr, elog_size); release_mem_region(elog_base, elog_size); diff -Nru linux-5.10.209/drivers/acpi/acpi_video.c linux-5.10.216/drivers/acpi/acpi_video.c --- linux-5.10.209/drivers/acpi/acpi_video.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/acpi_video.c 2024-05-02 14:23:46.000000000 +0000 @@ -568,6 +568,15 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"), }, }, + { + .callback = video_set_report_key_events, + .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS), + .ident = "COLORFUL X15 AT 23", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COLORFUL"), + DMI_MATCH(DMI_PRODUCT_NAME, "X15 AT 23"), + }, + }, /* * Some machines change the brightness themselves when a brightness * hotkey gets pressed, despite us telling them not to. In this case diff -Nru linux-5.10.209/drivers/acpi/acpica/dbnames.c linux-5.10.216/drivers/acpi/acpica/dbnames.c --- linux-5.10.209/drivers/acpi/acpica/dbnames.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/acpica/dbnames.c 2024-05-02 14:23:46.000000000 +0000 @@ -550,8 +550,12 @@ ACPI_FREE(buffer.pointer); buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER; - acpi_evaluate_object(obj_handle, NULL, NULL, &buffer); - + status = acpi_evaluate_object(obj_handle, NULL, NULL, &buffer); + if (ACPI_FAILURE(status)) { + acpi_os_printf("Could Not evaluate object %p\n", + obj_handle); + return (AE_OK); + } /* * Since this is a field unit, surround the output in braces */ diff -Nru linux-5.10.209/drivers/acpi/apei/ghes.c linux-5.10.216/drivers/acpi/apei/ghes.c --- linux-5.10.209/drivers/acpi/apei/ghes.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/apei/ghes.c 2024-05-02 14:23:46.000000000 +0000 @@ -100,6 +100,20 @@ } /* + * A platform may describe one error source for the handling of synchronous + * errors (e.g. MCE or SEA), or for handling asynchronous errors (e.g. SCI + * or External Interrupt). On x86, the HEST notifications are always + * asynchronous, so only SEA on ARM is delivered as a synchronous + * notification. + */ +static inline bool is_hest_sync_notify(struct ghes *ghes) +{ + u8 notify_type = ghes->generic->notify.type; + + return notify_type == ACPI_HEST_NOTIFY_SEA; +} + +/* * This driver isn't really modular, however for the time being, * continuing to use module_param is the easiest way to remain * compatible with existing boot arg use cases. @@ -461,7 +475,7 @@ } static bool ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata, - int sev) + int sev, bool sync) { int flags = -1; int sec_sev = ghes_severity(gdata->error_severity); @@ -475,7 +489,7 @@ (gdata->flags & CPER_SEC_ERROR_THRESHOLD_EXCEEDED)) flags = MF_SOFT_OFFLINE; if (sev == GHES_SEV_RECOVERABLE && sec_sev == GHES_SEV_RECOVERABLE) - flags = 0; + flags = sync ? MF_ACTION_REQUIRED : 0; if (flags != -1) return ghes_do_memory_failure(mem_err->physical_addr, flags); @@ -483,9 +497,11 @@ return false; } -static bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata, int sev) +static bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata, + int sev, bool sync) { struct cper_sec_proc_arm *err = acpi_hest_get_payload(gdata); + int flags = sync ? MF_ACTION_REQUIRED : 0; bool queued = false; int sec_sev, i; char *p; @@ -510,7 +526,7 @@ * and don't filter out 'corrected' error here. */ if (is_cache && has_pa) { - queued = ghes_do_memory_failure(err_info->physical_fault_addr, 0); + queued = ghes_do_memory_failure(err_info->physical_fault_addr, flags); p += err_info->length; continue; } @@ -631,6 +647,7 @@ const guid_t *fru_id = &guid_null; char *fru_text = ""; bool queued = false; + bool sync = is_hest_sync_notify(ghes); sev = ghes_severity(estatus->error_severity); apei_estatus_for_each_section(estatus, gdata) { @@ -648,13 +665,13 @@ ghes_edac_report_mem_error(sev, mem_err); arch_apei_report_mem_error(sev, mem_err); - queued = ghes_handle_memory_failure(gdata, sev); + queued = ghes_handle_memory_failure(gdata, sev, sync); } else if (guid_equal(sec_type, &CPER_SEC_PCIE)) { ghes_handle_aer(gdata); } else if (guid_equal(sec_type, &CPER_SEC_PROC_ARM)) { - queued = ghes_handle_arm_hw_error(gdata, sev); + queued = ghes_handle_arm_hw_error(gdata, sev, sync); } else { void *err = acpi_hest_get_payload(gdata); diff -Nru linux-5.10.209/drivers/acpi/processor_idle.c linux-5.10.216/drivers/acpi/processor_idle.c --- linux-5.10.209/drivers/acpi/processor_idle.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/processor_idle.c 2024-05-02 14:23:46.000000000 +0000 @@ -1427,6 +1427,8 @@ acpi_processor_registered--; if (acpi_processor_registered == 0) cpuidle_unregister_driver(&acpi_idle_driver); + + kfree(dev); } pr->flags.power_setup_done = 0; diff -Nru linux-5.10.209/drivers/acpi/scan.c linux-5.10.216/drivers/acpi/scan.c --- linux-5.10.209/drivers/acpi/scan.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/scan.c 2024-05-02 14:23:46.000000000 +0000 @@ -321,18 +321,14 @@ * again). */ if (adev->handler) { - dev_warn(&adev->dev, "Already enumerated\n"); - return -EALREADY; + dev_dbg(&adev->dev, "Already enumerated\n"); + return 0; } error = acpi_bus_scan(adev->handle); if (error) { dev_warn(&adev->dev, "Namespace scan failure\n"); return error; } - if (!adev->handler) { - dev_warn(&adev->dev, "Enumeration failure\n"); - error = -ENODEV; - } } else { error = acpi_scan_device_not_present(adev); } diff -Nru linux-5.10.209/drivers/acpi/sleep.c linux-5.10.216/drivers/acpi/sleep.c --- linux-5.10.209/drivers/acpi/sleep.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/acpi/sleep.c 2024-05-02 14:23:46.000000000 +0000 @@ -385,18 +385,6 @@ DMI_MATCH(DMI_PRODUCT_NAME, "20GGA00L00"), }, }, - /* - * ASUS B1400CEAE hangs on resume from suspend (see - * https://bugzilla.kernel.org/show_bug.cgi?id=215742). - */ - { - .callback = init_default_s3, - .ident = "ASUS B1400CEAE", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "ASUS EXPERTBOOK B1400CEAE"), - }, - }, {}, }; diff -Nru linux-5.10.209/drivers/android/binder.c linux-5.10.216/drivers/android/binder.c --- linux-5.10.209/drivers/android/binder.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/android/binder.c 2024-05-02 14:23:46.000000000 +0000 @@ -836,6 +836,16 @@ { WARN_ON(!list_empty(&thread->waiting_thread_node)); binder_enqueue_work_ilocked(work, &thread->todo); + + /* (e)poll-based threads require an explicit wakeup signal when + * queuing their own work; they rely on these events to consume + * messages without I/O block. Without it, threads risk waiting + * indefinitely without handling the work. + */ + if (thread->looper & BINDER_LOOPER_STATE_POLL && + thread->pid == current->pid && !thread->process_todo) + wake_up_interruptible_sync(&thread->wait); + thread->process_todo = true; } @@ -2032,8 +2042,10 @@ size_t object_size = 0; read_size = min_t(size_t, sizeof(*object), buffer->data_size - offset); - if (offset > buffer->data_size || read_size < sizeof(*hdr)) + if (offset > buffer->data_size || read_size < sizeof(*hdr) || + !IS_ALIGNED(offset, sizeof(u32))) return 0; + if (u) { if (copy_from_user(object, u + offset, read_size)) return 0; diff -Nru linux-5.10.209/drivers/ata/ahci.c linux-5.10.216/drivers/ata/ahci.c --- linux-5.10.209/drivers/ata/ahci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/ata/ahci.c 2024-05-02 14:23:46.000000000 +0000 @@ -49,6 +49,7 @@ enum board_ids { /* board IDs by feature in alphabetical order */ board_ahci, + board_ahci_43bit_dma, board_ahci_ign_iferr, board_ahci_low_power, board_ahci_no_debounce_delay, @@ -129,6 +130,13 @@ .udma_mask = ATA_UDMA6, .port_ops = &ahci_ops, }, + [board_ahci_43bit_dma] = { + AHCI_HFLAGS (AHCI_HFLAG_43BIT_ONLY), + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_ops, + }, [board_ahci_ign_iferr] = { AHCI_HFLAGS (AHCI_HFLAG_IGN_IRQ_IF_ERR), .flags = AHCI_FLAG_COMMON, @@ -594,11 +602,11 @@ { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ { PCI_VDEVICE(PROMISE, 0x3781), board_ahci }, /* FastTrak TX8660 ahci-mode */ - /* Asmedia */ + /* ASMedia */ { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci }, /* ASM1060 */ { PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci }, /* ASM1060 */ - { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci }, /* ASM1061 */ - { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */ + { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci_43bit_dma }, /* ASM1061 */ + { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci_43bit_dma }, /* ASM1061/1062 */ { PCI_VDEVICE(ASMEDIA, 0x0621), board_ahci }, /* ASM1061R */ { PCI_VDEVICE(ASMEDIA, 0x0622), board_ahci }, /* ASM1062R */ @@ -946,11 +954,20 @@ #endif /* CONFIG_PM */ -static int ahci_configure_dma_masks(struct pci_dev *pdev, int using_dac) +static int ahci_configure_dma_masks(struct pci_dev *pdev, + struct ahci_host_priv *hpriv) { - const int dma_bits = using_dac ? 64 : 32; + int dma_bits; int rc; + if (hpriv->cap & HOST_CAP_64) { + dma_bits = 64; + if (hpriv->flags & AHCI_HFLAG_43BIT_ONLY) + dma_bits = 43; + } else { + dma_bits = 32; + } + /* * If the device fixup already set the dma_mask to some non-standard * value, don't extend it here. This happens on STA2X11, for example. @@ -1928,7 +1945,7 @@ ahci_gtf_filter_workaround(host); /* initialize adapter */ - rc = ahci_configure_dma_masks(pdev, hpriv->cap & HOST_CAP_64); + rc = ahci_configure_dma_masks(pdev, hpriv); if (rc) return rc; diff -Nru linux-5.10.209/drivers/ata/ahci.h linux-5.10.216/drivers/ata/ahci.h --- linux-5.10.209/drivers/ata/ahci.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/ata/ahci.h 2024-05-02 14:23:46.000000000 +0000 @@ -244,6 +244,7 @@ AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = BIT(27), /* ignore -EOPNOTSUPP from phy_power_on() */ AHCI_HFLAG_NO_SXS = BIT(28), /* SXS not supported */ + AHCI_HFLAG_43BIT_ONLY = BIT(29), /* 43bit DMA addr limit */ /* ap->flags bits */ diff -Nru linux-5.10.209/drivers/ata/libata-eh.c linux-5.10.216/drivers/ata/libata-eh.c --- linux-5.10.209/drivers/ata/libata-eh.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/ata/libata-eh.c 2024-05-02 14:23:46.000000000 +0000 @@ -1607,7 +1607,7 @@ } if (qc->flags & ATA_QCFLAG_SENSE_VALID) { - int ret = scsi_check_sense(qc->scsicmd); + enum scsi_disposition ret = scsi_check_sense(qc->scsicmd); /* * SUCCESS here means that the sense code could be * evaluated and should be passed to the upper layers diff -Nru linux-5.10.209/drivers/ata/sata_mv.c linux-5.10.216/drivers/ata/sata_mv.c --- linux-5.10.209/drivers/ata/sata_mv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/ata/sata_mv.c 2024-05-02 14:23:46.000000000 +0000 @@ -783,37 +783,6 @@ }, }; -static const struct pci_device_id mv_pci_tbl[] = { - { PCI_VDEVICE(MARVELL, 0x5040), chip_504x }, - { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, - { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, - { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, - /* RocketRAID 1720/174x have different identifiers */ - { PCI_VDEVICE(TTI, 0x1720), chip_6042 }, - { PCI_VDEVICE(TTI, 0x1740), chip_6042 }, - { PCI_VDEVICE(TTI, 0x1742), chip_6042 }, - - { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, - { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, - { PCI_VDEVICE(MARVELL, 0x6042), chip_6042 }, - { PCI_VDEVICE(MARVELL, 0x6080), chip_608x }, - { PCI_VDEVICE(MARVELL, 0x6081), chip_608x }, - - { PCI_VDEVICE(ADAPTEC2, 0x0241), chip_604x }, - - /* Adaptec 1430SA */ - { PCI_VDEVICE(ADAPTEC2, 0x0243), chip_7042 }, - - /* Marvell 7042 support */ - { PCI_VDEVICE(MARVELL, 0x7042), chip_7042 }, - - /* Highpoint RocketRAID PCIe series */ - { PCI_VDEVICE(TTI, 0x2300), chip_7042 }, - { PCI_VDEVICE(TTI, 0x2310), chip_7042 }, - - { } /* terminate list */ -}; - static const struct mv_hw_ops mv5xxx_ops = { .phy_errata = mv5_phy_errata, .enable_leds = mv5_enable_leds, @@ -4307,6 +4276,36 @@ static int mv_pci_device_resume(struct pci_dev *pdev); #endif +static const struct pci_device_id mv_pci_tbl[] = { + { PCI_VDEVICE(MARVELL, 0x5040), chip_504x }, + { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, + { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, + { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, + /* RocketRAID 1720/174x have different identifiers */ + { PCI_VDEVICE(TTI, 0x1720), chip_6042 }, + { PCI_VDEVICE(TTI, 0x1740), chip_6042 }, + { PCI_VDEVICE(TTI, 0x1742), chip_6042 }, + + { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, + { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, + { PCI_VDEVICE(MARVELL, 0x6042), chip_6042 }, + { PCI_VDEVICE(MARVELL, 0x6080), chip_608x }, + { PCI_VDEVICE(MARVELL, 0x6081), chip_608x }, + + { PCI_VDEVICE(ADAPTEC2, 0x0241), chip_604x }, + + /* Adaptec 1430SA */ + { PCI_VDEVICE(ADAPTEC2, 0x0243), chip_7042 }, + + /* Marvell 7042 support */ + { PCI_VDEVICE(MARVELL, 0x7042), chip_7042 }, + + /* Highpoint RocketRAID PCIe series */ + { PCI_VDEVICE(TTI, 0x2300), chip_7042 }, + { PCI_VDEVICE(TTI, 0x2310), chip_7042 }, + + { } /* terminate list */ +}; static struct pci_driver mv_pci_driver = { .name = DRV_NAME, @@ -4319,6 +4318,7 @@ #endif }; +MODULE_DEVICE_TABLE(pci, mv_pci_tbl); /** * mv_print_info - Dump key info to kernel log for perusal. @@ -4491,7 +4491,6 @@ MODULE_AUTHOR("Brett Russ"); MODULE_DESCRIPTION("SCSI low-level driver for Marvell SATA controllers"); MODULE_LICENSE("GPL v2"); -MODULE_DEVICE_TABLE(pci, mv_pci_tbl); MODULE_VERSION(DRV_VERSION); MODULE_ALIAS("platform:" DRV_NAME); diff -Nru linux-5.10.209/drivers/ata/sata_sx4.c linux-5.10.216/drivers/ata/sata_sx4.c --- linux-5.10.209/drivers/ata/sata_sx4.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/ata/sata_sx4.c 2024-05-02 14:23:46.000000000 +0000 @@ -1004,8 +1004,7 @@ offset -= (idx * window_size); idx++; - dist = ((long) (window_size - (offset + size))) >= 0 ? size : - (long) (window_size - offset); + dist = min(size, window_size - offset); memcpy_fromio(psource, dimm_mmio + offset / 4, dist); psource += dist; @@ -1053,8 +1052,7 @@ readl(mmio + PDC_DIMM_WINDOW_CTLR); offset -= (idx * window_size); idx++; - dist = ((long)(s32)(window_size - (offset + size))) >= 0 ? size : - (long) (window_size - offset); + dist = min(size, window_size - offset); memcpy_toio(dimm_mmio + offset / 4, psource, dist); writel(0x01, mmio + PDC_GENERAL_CTLR); readl(mmio + PDC_GENERAL_CTLR); diff -Nru linux-5.10.209/drivers/atm/idt77252.c linux-5.10.216/drivers/atm/idt77252.c --- linux-5.10.209/drivers/atm/idt77252.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/atm/idt77252.c 2024-05-02 14:23:46.000000000 +0000 @@ -2936,6 +2936,8 @@ vc->scq = alloc_scq(card, vc->class); if (!vc->scq) { printk("%s: can't get SCQ.\n", card->name); + kfree(card->vcs[0]); + card->vcs[0] = NULL; return -ENOMEM; } diff -Nru linux-5.10.209/drivers/base/core.c linux-5.10.216/drivers/base/core.c --- linux-5.10.209/drivers/base/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -53,6 +53,7 @@ static unsigned int defer_fw_devlink_count; static LIST_HEAD(deferred_fw_devlink); static DEFINE_MUTEX(defer_fw_devlink_lock); +static struct workqueue_struct *device_link_wq; static bool fw_devlink_is_permissive(void); #ifdef CONFIG_SRCU @@ -364,12 +365,26 @@ /* * It may take a while to complete this work because of the SRCU * synchronization in device_link_release_fn() and if the consumer or - * supplier devices get deleted when it runs, so put it into the "long" - * workqueue. + * supplier devices get deleted when it runs, so put it into the + * dedicated workqueue. */ - queue_work(system_long_wq, &link->rm_work); + queue_work(device_link_wq, &link->rm_work); } +/** + * device_link_wait_removal - Wait for ongoing devlink removal jobs to terminate + */ +void device_link_wait_removal(void) +{ + /* + * devlink removal jobs are queued in the dedicated work queue. + * To be sure that all removal jobs are terminated, ensure that any + * scheduled work has run to completion. + */ + flush_workqueue(device_link_wq); +} +EXPORT_SYMBOL_GPL(device_link_wait_removal); + static struct class devlink_class = { .name = "devlink", .owner = THIS_MODULE, @@ -3415,9 +3430,14 @@ sysfs_dev_char_kobj = kobject_create_and_add("char", dev_kobj); if (!sysfs_dev_char_kobj) goto char_kobj_err; + device_link_wq = alloc_workqueue("device_link_wq", 0, 0); + if (!device_link_wq) + goto wq_err; return 0; + wq_err: + kobject_put(sysfs_dev_char_kobj); char_kobj_err: kobject_put(sysfs_dev_block_kobj); block_kobj_err: diff -Nru linux-5.10.209/drivers/base/cpu.c linux-5.10.216/drivers/base/cpu.c --- linux-5.10.209/drivers/base/cpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/cpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -591,6 +591,12 @@ return sysfs_emit(buf, "Not affected\n"); } +ssize_t __weak cpu_show_reg_file_data_sampling(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "Not affected\n"); +} + static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL); static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL); static DEVICE_ATTR(spectre_v2, 0444, cpu_show_spectre_v2, NULL); @@ -604,6 +610,7 @@ static DEVICE_ATTR(retbleed, 0444, cpu_show_retbleed, NULL); static DEVICE_ATTR(gather_data_sampling, 0444, cpu_show_gds, NULL); static DEVICE_ATTR(spec_rstack_overflow, 0444, cpu_show_spec_rstack_overflow, NULL); +static DEVICE_ATTR(reg_file_data_sampling, 0444, cpu_show_reg_file_data_sampling, NULL); static struct attribute *cpu_root_vulnerabilities_attrs[] = { &dev_attr_meltdown.attr, @@ -619,6 +626,7 @@ &dev_attr_retbleed.attr, &dev_attr_gather_data_sampling.attr, &dev_attr_spec_rstack_overflow.attr, + &dev_attr_reg_file_data_sampling.attr, NULL }; diff -Nru linux-5.10.209/drivers/base/power/domain.c linux-5.10.216/drivers/base/power/domain.c --- linux-5.10.209/drivers/base/power/domain.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/power/domain.c 2024-05-02 14:23:46.000000000 +0000 @@ -958,7 +958,7 @@ return 0; } -late_initcall(genpd_power_off_unused); +late_initcall_sync(genpd_power_off_unused); #ifdef CONFIG_PM_SLEEP diff -Nru linux-5.10.209/drivers/base/power/main.c linux-5.10.216/drivers/base/power/main.c --- linux-5.10.209/drivers/base/power/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/power/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -16,6 +16,7 @@ */ #define pr_fmt(fmt) "PM: " fmt +#define dev_fmt pr_fmt #include #include @@ -449,8 +450,8 @@ static void pm_dev_err(struct device *dev, pm_message_t state, const char *info, int error) { - pr_err("Device %s failed to %s%s: error %d\n", - dev_name(dev), pm_verb(state.event), info, error); + dev_err(dev, "failed to %s%s: error %d\n", pm_verb(state.event), info, + error); } static void dpm_show_time(ktime_t starttime, pm_message_t state, int error, @@ -582,7 +583,7 @@ } /** - * device_resume_noirq - Execute a "noirq resume" callback for given device. + * __device_resume_noirq - Execute a "noirq resume" callback for given device. * @dev: Device to handle. * @state: PM transition of the system being carried out. * @async: If true, the device is being resumed asynchronously. @@ -590,7 +591,7 @@ * The driver of @dev will not receive interrupts while this function is being * executed. */ -static int device_resume_noirq(struct device *dev, pm_message_t state, bool async) +static void __device_resume_noirq(struct device *dev, pm_message_t state, bool async) { pm_callback_t callback = NULL; const char *info = NULL; @@ -658,7 +659,13 @@ Out: complete_all(&dev->power.completion); TRACE_RESUME(error); - return error; + + if (error) { + suspend_stats.failed_resume_noirq++; + dpm_save_failed_step(SUSPEND_RESUME_NOIRQ); + dpm_save_failed_dev(dev_name(dev)); + pm_dev_err(dev, state, async ? " async noirq" : " noirq", error); + } } static bool is_async(struct device *dev) @@ -671,27 +678,35 @@ { reinit_completion(&dev->power.completion); - if (is_async(dev)) { - get_device(dev); - async_schedule_dev(func, dev); + if (!is_async(dev)) + return false; + + get_device(dev); + + if (async_schedule_dev_nocall(func, dev)) return true; - } + + put_device(dev); return false; } static void async_resume_noirq(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; - int error; - - error = device_resume_noirq(dev, pm_transition, true); - if (error) - pm_dev_err(dev, pm_transition, " async", error); + struct device *dev = data; + __device_resume_noirq(dev, pm_transition, true); put_device(dev); } +static void device_resume_noirq(struct device *dev) +{ + if (dpm_async_fn(dev, async_resume_noirq)) + return; + + __device_resume_noirq(dev, pm_transition, false); +} + static void dpm_noirq_resume_devices(pm_message_t state) { struct device *dev; @@ -701,34 +716,18 @@ mutex_lock(&dpm_list_mtx); pm_transition = state; - /* - * Advanced the async threads upfront, - * in case the starting of async threads is - * delayed by non-async resuming devices. - */ - list_for_each_entry(dev, &dpm_noirq_list, power.entry) - dpm_async_fn(dev, async_resume_noirq); - while (!list_empty(&dpm_noirq_list)) { dev = to_device(dpm_noirq_list.next); get_device(dev); list_move_tail(&dev->power.entry, &dpm_late_early_list); + mutex_unlock(&dpm_list_mtx); - if (!is_async(dev)) { - int error; + device_resume_noirq(dev); - error = device_resume_noirq(dev, state, false); - if (error) { - suspend_stats.failed_resume_noirq++; - dpm_save_failed_step(SUSPEND_RESUME_NOIRQ); - dpm_save_failed_dev(dev_name(dev)); - pm_dev_err(dev, state, " noirq", error); - } - } + put_device(dev); mutex_lock(&dpm_list_mtx); - put_device(dev); } mutex_unlock(&dpm_list_mtx); async_synchronize_full(); @@ -754,14 +753,14 @@ } /** - * device_resume_early - Execute an "early resume" callback for given device. + * __device_resume_early - Execute an "early resume" callback for given device. * @dev: Device to handle. * @state: PM transition of the system being carried out. * @async: If true, the device is being resumed asynchronously. * * Runtime PM is disabled for @dev while this function is being executed. */ -static int device_resume_early(struct device *dev, pm_message_t state, bool async) +static void __device_resume_early(struct device *dev, pm_message_t state, bool async) { pm_callback_t callback = NULL; const char *info = NULL; @@ -814,21 +813,31 @@ pm_runtime_enable(dev); complete_all(&dev->power.completion); - return error; + + if (error) { + suspend_stats.failed_resume_early++; + dpm_save_failed_step(SUSPEND_RESUME_EARLY); + dpm_save_failed_dev(dev_name(dev)); + pm_dev_err(dev, state, async ? " async early" : " early", error); + } } static void async_resume_early(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; - int error; - - error = device_resume_early(dev, pm_transition, true); - if (error) - pm_dev_err(dev, pm_transition, " async", error); + struct device *dev = data; + __device_resume_early(dev, pm_transition, true); put_device(dev); } +static void device_resume_early(struct device *dev) +{ + if (dpm_async_fn(dev, async_resume_early)) + return; + + __device_resume_early(dev, pm_transition, false); +} + /** * dpm_resume_early - Execute "early resume" callbacks for all devices. * @state: PM transition of the system being carried out. @@ -842,33 +851,18 @@ mutex_lock(&dpm_list_mtx); pm_transition = state; - /* - * Advanced the async threads upfront, - * in case the starting of async threads is - * delayed by non-async resuming devices. - */ - list_for_each_entry(dev, &dpm_late_early_list, power.entry) - dpm_async_fn(dev, async_resume_early); - while (!list_empty(&dpm_late_early_list)) { dev = to_device(dpm_late_early_list.next); get_device(dev); list_move_tail(&dev->power.entry, &dpm_suspended_list); + mutex_unlock(&dpm_list_mtx); - if (!is_async(dev)) { - int error; + device_resume_early(dev); - error = device_resume_early(dev, state, false); - if (error) { - suspend_stats.failed_resume_early++; - dpm_save_failed_step(SUSPEND_RESUME_EARLY); - dpm_save_failed_dev(dev_name(dev)); - pm_dev_err(dev, state, " early", error); - } - } - mutex_lock(&dpm_list_mtx); put_device(dev); + + mutex_lock(&dpm_list_mtx); } mutex_unlock(&dpm_list_mtx); async_synchronize_full(); @@ -888,12 +882,12 @@ EXPORT_SYMBOL_GPL(dpm_resume_start); /** - * device_resume - Execute "resume" callbacks for given device. + * __device_resume - Execute "resume" callbacks for given device. * @dev: Device to handle. * @state: PM transition of the system being carried out. * @async: If true, the device is being resumed asynchronously. */ -static int device_resume(struct device *dev, pm_message_t state, bool async) +static void __device_resume(struct device *dev, pm_message_t state, bool async) { pm_callback_t callback = NULL; const char *info = NULL; @@ -975,20 +969,30 @@ TRACE_RESUME(error); - return error; + if (error) { + suspend_stats.failed_resume++; + dpm_save_failed_step(SUSPEND_RESUME); + dpm_save_failed_dev(dev_name(dev)); + pm_dev_err(dev, state, async ? " async" : "", error); + } } static void async_resume(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; - int error; + struct device *dev = data; - error = device_resume(dev, pm_transition, true); - if (error) - pm_dev_err(dev, pm_transition, " async", error); + __device_resume(dev, pm_transition, true); put_device(dev); } +static void device_resume(struct device *dev) +{ + if (dpm_async_fn(dev, async_resume)) + return; + + __device_resume(dev, pm_transition, false); +} + /** * dpm_resume - Execute "resume" callbacks for non-sysdev devices. * @state: PM transition of the system being carried out. @@ -1008,30 +1012,25 @@ pm_transition = state; async_error = 0; - list_for_each_entry(dev, &dpm_suspended_list, power.entry) - dpm_async_fn(dev, async_resume); - while (!list_empty(&dpm_suspended_list)) { dev = to_device(dpm_suspended_list.next); + get_device(dev); - if (!is_async(dev)) { - int error; - mutex_unlock(&dpm_list_mtx); + mutex_unlock(&dpm_list_mtx); - error = device_resume(dev, state, false); - if (error) { - suspend_stats.failed_resume++; - dpm_save_failed_step(SUSPEND_RESUME); - dpm_save_failed_dev(dev_name(dev)); - pm_dev_err(dev, state, "", error); - } + device_resume(dev); + + mutex_lock(&dpm_list_mtx); - mutex_lock(&dpm_list_mtx); - } if (!list_empty(&dev->power.entry)) list_move_tail(&dev->power.entry, &dpm_prepared_list); + + mutex_unlock(&dpm_list_mtx); + put_device(dev); + + mutex_lock(&dpm_list_mtx); } mutex_unlock(&dpm_list_mtx); async_synchronize_full(); @@ -1109,14 +1108,16 @@ get_device(dev); dev->power.is_prepared = false; list_move(&dev->power.entry, &list); + mutex_unlock(&dpm_list_mtx); trace_device_pm_callback_start(dev, "", state.event); device_complete(dev, state); trace_device_pm_callback_end(dev, 0); - mutex_lock(&dpm_list_mtx); put_device(dev); + + mutex_lock(&dpm_list_mtx); } list_splice(&list, &dpm_list); mutex_unlock(&dpm_list_mtx); @@ -1262,7 +1263,7 @@ static void async_suspend_noirq(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; + struct device *dev = data; int error; error = __device_suspend_noirq(dev, pm_transition, true); @@ -1301,17 +1302,21 @@ error = device_suspend_noirq(dev); mutex_lock(&dpm_list_mtx); + if (error) { pm_dev_err(dev, state, " noirq", error); dpm_save_failed_dev(dev_name(dev)); - put_device(dev); - break; - } - if (!list_empty(&dev->power.entry)) + } else if (!list_empty(&dev->power.entry)) { list_move(&dev->power.entry, &dpm_noirq_list); + } + + mutex_unlock(&dpm_list_mtx); + put_device(dev); - if (async_error) + mutex_lock(&dpm_list_mtx); + + if (error || async_error) break; } mutex_unlock(&dpm_list_mtx); @@ -1441,7 +1446,7 @@ static void async_suspend_late(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; + struct device *dev = data; int error; error = __device_suspend_late(dev, pm_transition, true); @@ -1478,23 +1483,28 @@ struct device *dev = to_device(dpm_suspended_list.prev); get_device(dev); + mutex_unlock(&dpm_list_mtx); error = device_suspend_late(dev); mutex_lock(&dpm_list_mtx); + if (!list_empty(&dev->power.entry)) list_move(&dev->power.entry, &dpm_late_early_list); if (error) { pm_dev_err(dev, state, " late", error); dpm_save_failed_dev(dev_name(dev)); - put_device(dev); - break; } + + mutex_unlock(&dpm_list_mtx); + put_device(dev); - if (async_error) + mutex_lock(&dpm_list_mtx); + + if (error || async_error) break; } mutex_unlock(&dpm_list_mtx); @@ -1712,7 +1722,7 @@ static void async_suspend(void *data, async_cookie_t cookie) { - struct device *dev = (struct device *)data; + struct device *dev = data; int error; error = __device_suspend(dev, pm_transition, true); @@ -1754,21 +1764,27 @@ struct device *dev = to_device(dpm_prepared_list.prev); get_device(dev); + mutex_unlock(&dpm_list_mtx); error = device_suspend(dev); mutex_lock(&dpm_list_mtx); + if (error) { pm_dev_err(dev, state, "", error); dpm_save_failed_dev(dev_name(dev)); - put_device(dev); - break; - } - if (!list_empty(&dev->power.entry)) + } else if (!list_empty(&dev->power.entry)) { list_move(&dev->power.entry, &dpm_suspended_list); + } + + mutex_unlock(&dpm_list_mtx); + put_device(dev); - if (async_error) + + mutex_lock(&dpm_list_mtx); + + if (error || async_error) break; } mutex_unlock(&dpm_list_mtx); @@ -1881,10 +1897,11 @@ device_block_probing(); mutex_lock(&dpm_list_mtx); - while (!list_empty(&dpm_list)) { + while (!list_empty(&dpm_list) && !error) { struct device *dev = to_device(dpm_list.next); get_device(dev); + mutex_unlock(&dpm_list_mtx); trace_device_pm_callback_start(dev, "", state.event); @@ -1892,21 +1909,23 @@ trace_device_pm_callback_end(dev, error); mutex_lock(&dpm_list_mtx); - if (error) { - if (error == -EAGAIN) { - put_device(dev); - error = 0; - continue; - } - pr_info("Device %s not prepared for power transition: code %d\n", - dev_name(dev), error); - put_device(dev); - break; + + if (!error) { + dev->power.is_prepared = true; + if (!list_empty(&dev->power.entry)) + list_move_tail(&dev->power.entry, &dpm_prepared_list); + } else if (error == -EAGAIN) { + error = 0; + } else { + dev_info(dev, "not prepared for power transition: code %d\n", + error); } - dev->power.is_prepared = true; - if (!list_empty(&dev->power.entry)) - list_move_tail(&dev->power.entry, &dpm_prepared_list); + + mutex_unlock(&dpm_list_mtx); + put_device(dev); + + mutex_lock(&dpm_list_mtx); } mutex_unlock(&dpm_list_mtx); trace_suspend_resume(TPS("dpm_prepare"), state.event, false); diff -Nru linux-5.10.209/drivers/base/power/runtime.c linux-5.10.216/drivers/base/power/runtime.c --- linux-5.10.209/drivers/base/power/runtime.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/power/runtime.c 2024-05-02 14:23:46.000000000 +0000 @@ -1479,6 +1479,28 @@ } EXPORT_SYMBOL_GPL(pm_runtime_enable); +static void pm_runtime_disable_action(void *data) +{ + pm_runtime_dont_use_autosuspend(data); + pm_runtime_disable(data); +} + +/** + * devm_pm_runtime_enable - devres-enabled version of pm_runtime_enable. + * + * NOTE: this will also handle calling pm_runtime_dont_use_autosuspend() for + * you at driver exit time if needed. + * + * @dev: Device to handle. + */ +int devm_pm_runtime_enable(struct device *dev) +{ + pm_runtime_enable(dev); + + return devm_add_action_or_reset(dev, pm_runtime_disable_action, dev); +} +EXPORT_SYMBOL_GPL(devm_pm_runtime_enable); + /** * pm_runtime_forbid - Block runtime PM of a device. * @dev: Device to handle. diff -Nru linux-5.10.209/drivers/base/power/wakeirq.c linux-5.10.216/drivers/base/power/wakeirq.c --- linux-5.10.209/drivers/base/power/wakeirq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/power/wakeirq.c 2024-05-02 14:23:46.000000000 +0000 @@ -365,8 +365,10 @@ return; if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED && - wirq->status & WAKE_IRQ_DEDICATED_REVERSE) + wirq->status & WAKE_IRQ_DEDICATED_REVERSE) { enable_irq(wirq->irq); + wirq->status |= WAKE_IRQ_DEDICATED_ENABLED; + } } /** diff -Nru linux-5.10.209/drivers/base/regmap/internal.h linux-5.10.216/drivers/base/regmap/internal.h --- linux-5.10.209/drivers/base/regmap/internal.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/regmap/internal.h 2024-05-02 14:23:46.000000000 +0000 @@ -104,6 +104,10 @@ int (*reg_write)(void *context, unsigned int reg, unsigned int val); int (*reg_update_bits)(void *context, unsigned int reg, unsigned int mask, unsigned int val); + /* Bulk read/write */ + int (*read)(void *context, const void *reg_buf, size_t reg_size, + void *val_buf, size_t val_size); + int (*write)(void *context, const void *data, size_t count); bool defer_caching; diff -Nru linux-5.10.209/drivers/base/regmap/regmap.c linux-5.10.216/drivers/base/regmap/regmap.c --- linux-5.10.209/drivers/base/regmap/regmap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/base/regmap/regmap.c 2024-05-02 14:23:46.000000000 +0000 @@ -800,12 +800,15 @@ map->reg_stride_order = ilog2(map->reg_stride); else map->reg_stride_order = -1; - map->use_single_read = config->use_single_read || !bus || !bus->read; - map->use_single_write = config->use_single_write || !bus || !bus->write; - map->can_multi_write = config->can_multi_write && bus && bus->write; + map->use_single_read = config->use_single_read || !(config->read || (bus && bus->read)); + map->use_single_write = config->use_single_write || !(config->write || (bus && bus->write)); + map->can_multi_write = config->can_multi_write && (config->write || (bus && bus->write)); if (bus) { map->max_raw_read = bus->max_raw_read; map->max_raw_write = bus->max_raw_write; + } else if (config->max_raw_read && config->max_raw_write) { + map->max_raw_read = config->max_raw_read; + map->max_raw_write = config->max_raw_write; } map->dev = dev; map->bus = bus; @@ -839,9 +842,19 @@ map->read_flag_mask = bus->read_flag_mask; } - if (!bus) { + if (config && config->read && config->write) { + map->reg_read = _regmap_bus_read; + + /* Bulk read/write */ + map->read = config->read; + map->write = config->write; + + reg_endian = REGMAP_ENDIAN_NATIVE; + val_endian = REGMAP_ENDIAN_NATIVE; + } else if (!bus) { map->reg_read = config->reg_read; map->reg_write = config->reg_write; + map->reg_update_bits = config->reg_update_bits; map->defer_caching = false; goto skip_format_initialization; @@ -855,10 +868,13 @@ } else { map->reg_read = _regmap_bus_read; map->reg_update_bits = bus->reg_update_bits; - } + /* Bulk read/write */ + map->read = bus->read; + map->write = bus->write; - reg_endian = regmap_get_reg_endian(bus, config); - val_endian = regmap_get_val_endian(dev, bus, config); + reg_endian = regmap_get_reg_endian(bus, config); + val_endian = regmap_get_val_endian(dev, bus, config); + } switch (config->reg_bits + map->reg_shift) { case 2: @@ -1627,8 +1643,6 @@ size_t len; int i; - WARN_ON(!map->bus); - /* Check for unwritable or noinc registers in range * before we start */ @@ -1710,7 +1724,7 @@ val = work_val; } - if (map->async && map->bus->async_write) { + if (map->async && map->bus && map->bus->async_write) { struct regmap_async *async; trace_regmap_async_write_start(map, reg, val_len); @@ -1778,11 +1792,11 @@ * write. */ if (val == work_val) - ret = map->bus->write(map->bus_context, map->work_buf, - map->format.reg_bytes + - map->format.pad_bytes + - val_len); - else if (map->bus->gather_write) + ret = map->write(map->bus_context, map->work_buf, + map->format.reg_bytes + + map->format.pad_bytes + + val_len); + else if (map->bus && map->bus->gather_write) ret = map->bus->gather_write(map->bus_context, map->work_buf, map->format.reg_bytes + map->format.pad_bytes, @@ -1800,7 +1814,7 @@ memcpy(buf, map->work_buf, map->format.reg_bytes); memcpy(buf + map->format.reg_bytes + map->format.pad_bytes, val, val_len); - ret = map->bus->write(map->bus_context, buf, len); + ret = map->write(map->bus_context, buf, len); kfree(buf); } else if (ret != 0 && !map->cache_bypass && map->format.parse_val) { @@ -1857,7 +1871,7 @@ struct regmap_range_node *range; struct regmap *map = context; - WARN_ON(!map->bus || !map->format.format_write); + WARN_ON(!map->format.format_write); range = _regmap_range_lookup(map, reg); if (range) { @@ -1870,8 +1884,7 @@ trace_regmap_hw_write_start(map, reg, 1); - ret = map->bus->write(map->bus_context, map->work_buf, - map->format.buf_size); + ret = map->write(map->bus_context, map->work_buf, map->format.buf_size); trace_regmap_hw_write_done(map, reg, 1); @@ -1891,7 +1904,7 @@ { struct regmap *map = context; - WARN_ON(!map->bus || !map->format.format_val); + WARN_ON(!map->format.format_val); map->format.format_val(map->work_buf + map->format.reg_bytes + map->format.pad_bytes, val, 0); @@ -1905,7 +1918,7 @@ static inline void *_regmap_map_get_context(struct regmap *map) { - return (map->bus) ? map : map->bus_context; + return (map->bus || (!map->bus && map->read)) ? map : map->bus_context; } int _regmap_write(struct regmap *map, unsigned int reg, @@ -2312,7 +2325,7 @@ u8 = buf; *u8 |= map->write_flag_mask; - ret = map->bus->write(map->bus_context, buf, len); + ret = map->write(map->bus_context, buf, len); kfree(buf); @@ -2618,9 +2631,7 @@ struct regmap_range_node *range; int ret; - WARN_ON(!map->bus); - - if (!map->bus || !map->bus->read) + if (!map->read) return -EINVAL; range = _regmap_range_lookup(map, reg); @@ -2636,9 +2647,9 @@ map->read_flag_mask); trace_regmap_hw_read_start(map, reg, val_len / map->format.val_bytes); - ret = map->bus->read(map->bus_context, map->work_buf, - map->format.reg_bytes + map->format.pad_bytes, - val, val_len); + ret = map->read(map->bus_context, map->work_buf, + map->format.reg_bytes + map->format.pad_bytes, + val, val_len); trace_regmap_hw_read_done(map, reg, val_len / map->format.val_bytes); @@ -2749,8 +2760,6 @@ unsigned int v; int ret, i; - if (!map->bus) - return -EINVAL; if (val_len % map->format.val_bytes) return -EINVAL; if (!IS_ALIGNED(reg, map->reg_stride)) @@ -2765,7 +2774,7 @@ size_t chunk_count, chunk_bytes; size_t chunk_regs = val_count; - if (!map->bus->read) { + if (!map->read) { ret = -ENOTSUPP; goto out; } @@ -2825,7 +2834,7 @@ * @val: Pointer to data buffer * @val_len: Length of output buffer in bytes. * - * The regmap API usually assumes that bulk bus read operations will read a + * The regmap API usually assumes that bulk read operations will read a * range of registers. Some devices have certain registers for which a read * operation read will read from an internal FIFO. * @@ -2843,10 +2852,6 @@ size_t read_len; int ret; - if (!map->bus) - return -EINVAL; - if (!map->bus->read) - return -ENOTSUPP; if (val_len % map->format.val_bytes) return -EINVAL; if (!IS_ALIGNED(reg, map->reg_stride)) @@ -2960,7 +2965,7 @@ if (val_count == 0) return -EINVAL; - if (map->bus && map->format.parse_inplace && (vol || map->cache_type == REGCACHE_NONE)) { + if (map->format.parse_inplace && (vol || map->cache_type == REGCACHE_NONE)) { ret = regmap_raw_read(map, reg, val, val_bytes * val_count); if (ret != 0) return ret; diff -Nru linux-5.10.209/drivers/block/aoe/aoecmd.c linux-5.10.216/drivers/block/aoe/aoecmd.c --- linux-5.10.209/drivers/block/aoe/aoecmd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/aoe/aoecmd.c 2024-05-02 14:23:46.000000000 +0000 @@ -420,13 +420,16 @@ rcu_read_lock(); for_each_netdev_rcu(&init_net, ifp) { dev_hold(ifp); - if (!is_aoe_netif(ifp)) - goto cont; + if (!is_aoe_netif(ifp)) { + dev_put(ifp); + continue; + } skb = new_skb(sizeof *h + sizeof *ch); if (skb == NULL) { printk(KERN_INFO "aoe: skb alloc failure\n"); - goto cont; + dev_put(ifp); + continue; } skb_put(skb, sizeof *h + sizeof *ch); skb->dev = ifp; @@ -441,9 +444,6 @@ h->major = cpu_to_be16(aoemajor); h->minor = aoeminor; h->cmd = AOECMD_CFG; - -cont: - dev_put(ifp); } rcu_read_unlock(); } diff -Nru linux-5.10.209/drivers/block/aoe/aoenet.c linux-5.10.216/drivers/block/aoe/aoenet.c --- linux-5.10.209/drivers/block/aoe/aoenet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/aoe/aoenet.c 2024-05-02 14:23:46.000000000 +0000 @@ -64,6 +64,7 @@ pr_warn("aoe: packet could not be sent on %s. %s\n", ifp ? ifp->name : "netif", "consider increasing tx_queue_len"); + dev_put(ifp); spin_lock_irq(&txlock); } return 0; diff -Nru linux-5.10.209/drivers/block/ataflop.c linux-5.10.216/drivers/block/ataflop.c --- linux-5.10.209/drivers/block/ataflop.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/ataflop.c 2024-05-02 14:23:46.000000000 +0000 @@ -456,10 +456,20 @@ static void fd_end_request_cur(blk_status_t err) { + DPRINT(("fd_end_request_cur(), bytes %d of %d\n", + blk_rq_cur_bytes(fd_request), + blk_rq_bytes(fd_request))); + if (!blk_update_request(fd_request, err, blk_rq_cur_bytes(fd_request))) { + DPRINT(("calling __blk_mq_end_request()\n")); __blk_mq_end_request(fd_request, err); fd_request = NULL; + } else { + /* requeue rest of request */ + DPRINT(("calling blk_mq_requeue_request()\n")); + blk_mq_requeue_request(fd_request, true); + fd_request = NULL; } } @@ -653,9 +663,6 @@ *p2++ = *p1++; } - - - /* General Interrupt Handling */ static void (*FloppyIRQHandler)( int status ) = NULL; @@ -700,12 +707,21 @@ if (fd_request->error_count >= MAX_ERRORS) { printk(KERN_ERR "fd%d: too many errors.\n", SelectedDrive ); fd_end_request_cur(BLK_STS_IOERR); + finish_fdc(); + return; } else if (fd_request->error_count == RECALIBRATE_ERRORS) { printk(KERN_WARNING "fd%d: recalibrating\n", SelectedDrive ); if (SelectedDrive != -1) SUD.track = -1; } + /* need to re-run request to recalibrate */ + atari_disable_irq( IRQ_MFP_FDC ); + + setup_req_params( SelectedDrive ); + do_fd_action( SelectedDrive ); + + atari_enable_irq( IRQ_MFP_FDC ); } @@ -740,6 +756,7 @@ if (type) { if (--type >= NUM_DISK_MINORS || minor2disktype[type].drive_types > DriveType) { + finish_fdc(); ret = -EINVAL; goto out; } @@ -748,6 +765,7 @@ } if (!UDT || desc->track >= UDT->blocks/UDT->spt/2 || desc->head >= 2) { + finish_fdc(); ret = -EINVAL; goto out; } @@ -788,6 +806,7 @@ wait_for_completion(&format_wait); + finish_fdc(); ret = FormatError ? -EIO : 0; out: blk_mq_unquiesce_queue(q); @@ -822,6 +841,7 @@ else { /* all sectors finished */ fd_end_request_cur(BLK_STS_OK); + finish_fdc(); return; } } @@ -1226,6 +1246,7 @@ else { /* all sectors finished */ fd_end_request_cur(BLK_STS_OK); + finish_fdc(); } return; @@ -1347,7 +1368,7 @@ static void finish_fdc( void ) { - if (!NeedSeek) { + if (!NeedSeek || !stdma_is_locked_by(floppy_irq)) { finish_fdc_done( 0 ); } else { @@ -1382,7 +1403,8 @@ start_motor_off_timer(); local_irq_save(flags); - stdma_release(); + if (stdma_is_locked_by(floppy_irq)) + stdma_release(); local_irq_restore(flags); DPRINT(("finish_fdc() finished\n")); @@ -1472,15 +1494,6 @@ ReqTrack, ReqSector, (unsigned long)ReqData )); } -static void ataflop_commit_rqs(struct blk_mq_hw_ctx *hctx) -{ - spin_lock_irq(&ataflop_lock); - atari_disable_irq(IRQ_MFP_FDC); - finish_fdc(); - atari_enable_irq(IRQ_MFP_FDC); - spin_unlock_irq(&ataflop_lock); -} - static blk_status_t ataflop_queue_rq(struct blk_mq_hw_ctx *hctx, const struct blk_mq_queue_data *bd) { @@ -1488,6 +1501,10 @@ int drive = floppy - unit; int type = floppy->type; + DPRINT(("Queue request: drive %d type %d sectors %d of %d last %d\n", + drive, type, blk_rq_cur_sectors(bd->rq), + blk_rq_sectors(bd->rq), bd->last)); + spin_lock_irq(&ataflop_lock); if (fd_request) { spin_unlock_irq(&ataflop_lock); @@ -1508,6 +1525,7 @@ /* drive not connected */ printk(KERN_ERR "Unknown Device: fd%d\n", drive ); fd_end_request_cur(BLK_STS_IOERR); + stdma_release(); goto out; } @@ -1524,11 +1542,13 @@ if (--type >= NUM_DISK_MINORS) { printk(KERN_WARNING "fd%d: invalid disk format", drive ); fd_end_request_cur(BLK_STS_IOERR); + stdma_release(); goto out; } if (minor2disktype[type].drive_types > DriveType) { printk(KERN_WARNING "fd%d: unsupported disk format", drive ); fd_end_request_cur(BLK_STS_IOERR); + stdma_release(); goto out; } type = minor2disktype[type].index; @@ -1547,8 +1567,6 @@ setup_req_params( drive ); do_fd_action( drive ); - if (bd->last) - finish_fdc(); atari_enable_irq( IRQ_MFP_FDC ); out: @@ -1631,6 +1649,7 @@ /* what if type > 0 here? Overwrite specified entry ? */ if (type) { /* refuse to re-set a predefined type for now */ + finish_fdc(); return -EINVAL; } @@ -1698,8 +1717,10 @@ /* sanity check */ if (setprm.track != dtp->blocks/dtp->spt/2 || - setprm.head != 2) + setprm.head != 2) { + finish_fdc(); return -EINVAL; + } UDT = dtp; set_capacity(floppy->disk, UDT->blocks); @@ -1959,7 +1980,6 @@ static const struct blk_mq_ops ataflop_mq_ops = { .queue_rq = ataflop_queue_rq, - .commit_rqs = ataflop_commit_rqs, }; static struct kobject *floppy_find(dev_t dev, int *part, void *data) diff -Nru linux-5.10.209/drivers/block/nbd.c linux-5.10.216/drivers/block/nbd.c --- linux-5.10.209/drivers/block/nbd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/nbd.c 2024-05-02 14:23:46.000000000 +0000 @@ -2339,6 +2339,12 @@ } dev_list = nla_nest_start_noflag(reply, NBD_ATTR_DEVICE_LIST); + if (!dev_list) { + nlmsg_free(reply); + ret = -EMSGSIZE; + goto out; + } + if (index == -1) { ret = idr_for_each(&nbd_index_idr, &status_cb, reply); if (ret) { diff -Nru linux-5.10.209/drivers/block/rbd.c linux-5.10.216/drivers/block/rbd.c --- linux-5.10.209/drivers/block/rbd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/rbd.c 2024-05-02 14:23:46.000000000 +0000 @@ -3517,14 +3517,15 @@ static void rbd_lock_del_request(struct rbd_img_request *img_req) { struct rbd_device *rbd_dev = img_req->rbd_dev; - bool need_wakeup; + bool need_wakeup = false; lockdep_assert_held(&rbd_dev->lock_rwsem); spin_lock(&rbd_dev->lock_lists_lock); - rbd_assert(!list_empty(&img_req->lock_item)); - list_del_init(&img_req->lock_item); - need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING && - list_empty(&rbd_dev->running_list)); + if (!list_empty(&img_req->lock_item)) { + list_del_init(&img_req->lock_item); + need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING && + list_empty(&rbd_dev->running_list)); + } spin_unlock(&rbd_dev->lock_lists_lock); if (need_wakeup) complete(&rbd_dev->releasing_wait); @@ -3907,14 +3908,19 @@ return; } - list_for_each_entry(img_req, &rbd_dev->acquiring_list, lock_item) { + while (!list_empty(&rbd_dev->acquiring_list)) { + img_req = list_first_entry(&rbd_dev->acquiring_list, + struct rbd_img_request, lock_item); mutex_lock(&img_req->state_mutex); rbd_assert(img_req->state == RBD_IMG_EXCLUSIVE_LOCK); + if (!result) + list_move_tail(&img_req->lock_item, + &rbd_dev->running_list); + else + list_del_init(&img_req->lock_item); rbd_img_schedule(img_req, result); mutex_unlock(&img_req->state_mutex); } - - list_splice_tail_init(&rbd_dev->acquiring_list, &rbd_dev->running_list); } static bool locker_equal(const struct ceph_locker *lhs, diff -Nru linux-5.10.209/drivers/block/rnbd/rnbd-srv.c linux-5.10.216/drivers/block/rnbd/rnbd-srv.c --- linux-5.10.209/drivers/block/rnbd/rnbd-srv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/rnbd/rnbd-srv.c 2024-05-02 14:23:46.000000000 +0000 @@ -591,6 +591,7 @@ { char *full_path; char *a, *b; + int len; full_path = kmalloc(PATH_MAX, GFP_KERNEL); if (!full_path) @@ -602,19 +603,19 @@ */ a = strnstr(dev_search_path, "%SESSNAME%", sizeof(dev_search_path)); if (a) { - int len = a - dev_search_path; + len = a - dev_search_path; len = snprintf(full_path, PATH_MAX, "%.*s/%s/%s", len, dev_search_path, srv_sess->sessname, dev_name); - if (len >= PATH_MAX) { - pr_err("Too long path: %s, %s, %s\n", - dev_search_path, srv_sess->sessname, dev_name); - kfree(full_path); - return ERR_PTR(-EINVAL); - } } else { - snprintf(full_path, PATH_MAX, "%s/%s", - dev_search_path, dev_name); + len = snprintf(full_path, PATH_MAX, "%s/%s", + dev_search_path, dev_name); + } + if (len >= PATH_MAX) { + pr_err("Too long path: %s, %s, %s\n", + dev_search_path, srv_sess->sessname, dev_name); + kfree(full_path); + return ERR_PTR(-EINVAL); } /* eliminitate duplicated slashes */ diff -Nru linux-5.10.209/drivers/block/virtio_blk.c linux-5.10.216/drivers/block/virtio_blk.c --- linux-5.10.209/drivers/block/virtio_blk.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/block/virtio_blk.c 2024-05-02 14:23:46.000000000 +0000 @@ -952,14 +952,15 @@ { struct virtio_blk *vblk = vdev->priv; + /* Ensure no requests in virtqueues before deleting vqs. */ + blk_mq_freeze_queue(vblk->disk->queue); + /* Ensure we don't receive any more interrupts */ vdev->config->reset(vdev); /* Make sure no work handler is accessing the device. */ flush_work(&vblk->config_work); - blk_mq_quiesce_queue(vblk->disk->queue); - vdev->config->del_vqs(vdev); kfree(vblk->vqs); @@ -977,7 +978,7 @@ virtio_device_ready(vdev); - blk_mq_unquiesce_queue(vblk->disk->queue); + blk_mq_unfreeze_queue(vblk->disk->queue); return 0; } #endif diff -Nru linux-5.10.209/drivers/bluetooth/btintel.c linux-5.10.216/drivers/bluetooth/btintel.c --- linux-5.10.209/drivers/bluetooth/btintel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bluetooth/btintel.c 2024-05-02 14:23:46.000000000 +0000 @@ -350,7 +350,7 @@ return PTR_ERR(skb); } - if (skb->len != sizeof(*ver)) { + if (!skb || skb->len != sizeof(*ver)) { bt_dev_err(hdev, "Intel version event size mismatch"); kfree_skb(skb); return -EILSEQ; diff -Nru linux-5.10.209/drivers/bluetooth/btusb.c linux-5.10.216/drivers/bluetooth/btusb.c --- linux-5.10.209/drivers/bluetooth/btusb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bluetooth/btusb.c 2024-05-02 14:23:46.000000000 +0000 @@ -418,6 +418,8 @@ /* Realtek 8852BE Bluetooth devices */ { USB_DEVICE(0x0cb8, 0xc559), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0bda, 0x4853), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0bda, 0x887b), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0bda, 0xb85b), .driver_info = BTUSB_REALTEK | diff -Nru linux-5.10.209/drivers/bluetooth/hci_qca.c linux-5.10.216/drivers/bluetooth/hci_qca.c --- linux-5.10.209/drivers/bluetooth/hci_qca.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bluetooth/hci_qca.c 2024-05-02 14:23:46.000000000 +0000 @@ -1814,6 +1814,7 @@ static const struct qca_device_data qca_soc_data_qca6390 = { .soc_type = QCA_QCA6390, .num_vregs = 0, + .capabilities = QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES, }; static void qca_power_shutdown(struct hci_uart *hu) diff -Nru linux-5.10.209/drivers/bus/Kconfig linux-5.10.216/drivers/bus/Kconfig --- linux-5.10.209/drivers/bus/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bus/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -176,11 +176,12 @@ config TEGRA_ACONNECT tristate "Tegra ACONNECT Bus Driver" - depends on ARCH_TEGRA_210_SOC + depends on ARCH_TEGRA depends on OF && PM help Driver for the Tegra ACONNECT bus which is used to interface with - the devices inside the Audio Processing Engine (APE) for Tegra210. + the devices inside the Audio Processing Engine (APE) for + Tegra210 and later. config TEGRA_GMI tristate "Tegra Generic Memory Interface bus driver" diff -Nru linux-5.10.209/drivers/bus/mhi/host/main.c linux-5.10.216/drivers/bus/mhi/host/main.c --- linux-5.10.209/drivers/bus/mhi/host/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bus/mhi/host/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -569,6 +569,8 @@ mhi_del_ring_element(mhi_cntrl, tre_ring); local_rp = tre_ring->rp; + read_unlock_bh(&mhi_chan->lock); + /* notify client */ mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); @@ -591,6 +593,8 @@ kfree(buf_info->cb_buf); } } + + read_lock_bh(&mhi_chan->lock); } break; } /* CC_EOT */ diff -Nru linux-5.10.209/drivers/bus/moxtet.c linux-5.10.216/drivers/bus/moxtet.c --- linux-5.10.209/drivers/bus/moxtet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/bus/moxtet.c 2024-05-02 14:23:46.000000000 +0000 @@ -832,6 +832,12 @@ return 0; } +static const struct spi_device_id moxtet_spi_ids[] = { + { "moxtet" }, + { }, +}; +MODULE_DEVICE_TABLE(spi, moxtet_spi_ids); + static const struct of_device_id moxtet_dt_ids[] = { { .compatible = "cznic,moxtet" }, {}, @@ -843,6 +849,7 @@ .name = "moxtet", .of_match_table = moxtet_dt_ids, }, + .id_table = moxtet_spi_ids, .probe = moxtet_probe, .remove = moxtet_remove, }; diff -Nru linux-5.10.209/drivers/char/hw_random/core.c linux-5.10.216/drivers/char/hw_random/core.c --- linux-5.10.209/drivers/char/hw_random/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/char/hw_random/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -24,10 +24,13 @@ #include #include #include +#include #include #define RNG_MODULE_NAME "hw_random" +#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES) + static struct hwrng *current_rng; /* the current rng has been explicitly chosen by user via sysfs */ static int cur_rng_set_by_user; @@ -59,7 +62,7 @@ static size_t rng_buffer_size(void) { - return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES; + return RNG_BUFFER_SIZE; } static void add_early_randomness(struct hwrng *rng) @@ -206,6 +209,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf, size_t size, loff_t *offp) { + u8 buffer[RNG_BUFFER_SIZE]; ssize_t ret = 0; int err = 0; int bytes_read, len; @@ -233,34 +237,37 @@ if (bytes_read < 0) { err = bytes_read; goto out_unlock_reading; + } else if (bytes_read == 0 && + (filp->f_flags & O_NONBLOCK)) { + err = -EAGAIN; + goto out_unlock_reading; } + data_avail = bytes_read; } - if (!data_avail) { - if (filp->f_flags & O_NONBLOCK) { - err = -EAGAIN; - goto out_unlock_reading; - } - } else { - len = data_avail; + len = data_avail; + if (len) { if (len > size) len = size; data_avail -= len; - if (copy_to_user(buf + ret, rng_buffer + data_avail, - len)) { + memcpy(buffer, rng_buffer + data_avail, len); + } + mutex_unlock(&reading_mutex); + put_rng(rng); + + if (len) { + if (copy_to_user(buf + ret, buffer, len)) { err = -EFAULT; - goto out_unlock_reading; + goto out; } size -= len; ret += len; } - mutex_unlock(&reading_mutex); - put_rng(rng); if (need_resched()) schedule_timeout_interruptible(1); @@ -271,6 +278,7 @@ } } out: + memzero_explicit(buffer, sizeof(buffer)); return ret ? : err; out_unlock_reading: diff -Nru linux-5.10.209/drivers/clk/clk.c linux-5.10.216/drivers/clk/clk.c --- linux-5.10.209/drivers/clk/clk.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/clk.c 2024-05-02 14:23:46.000000000 +0000 @@ -37,7 +37,11 @@ static HLIST_HEAD(clk_orphan_list); static LIST_HEAD(clk_notifier_list); -static struct hlist_head *all_lists[] = { +/* List of registered clks that use runtime PM */ +static HLIST_HEAD(clk_rpm_list); +static DEFINE_MUTEX(clk_rpm_list_lock); + +static const struct hlist_head *all_lists[] = { &clk_root_list, &clk_orphan_list, NULL, @@ -59,6 +63,7 @@ struct clk_hw *hw; struct module *owner; struct device *dev; + struct hlist_node rpm_node; struct device_node *of_node; struct clk_core *parent; struct clk_parent_map *parents; @@ -129,6 +134,89 @@ pm_runtime_put_sync(core->dev); } +/** + * clk_pm_runtime_get_all() - Runtime "get" all clk provider devices + * + * Call clk_pm_runtime_get() on all runtime PM enabled clks in the clk tree so + * that disabling unused clks avoids a deadlock where a device is runtime PM + * resuming/suspending and the runtime PM callback is trying to grab the + * prepare_lock for something like clk_prepare_enable() while + * clk_disable_unused_subtree() holds the prepare_lock and is trying to runtime + * PM resume/suspend the device as well. + * + * Context: Acquires the 'clk_rpm_list_lock' and returns with the lock held on + * success. Otherwise the lock is released on failure. + * + * Return: 0 on success, negative errno otherwise. + */ +static int clk_pm_runtime_get_all(void) +{ + int ret; + struct clk_core *core, *failed; + + /* + * Grab the list lock to prevent any new clks from being registered + * or unregistered until clk_pm_runtime_put_all(). + */ + mutex_lock(&clk_rpm_list_lock); + + /* + * Runtime PM "get" all the devices that are needed for the clks + * currently registered. Do this without holding the prepare_lock, to + * avoid the deadlock. + */ + hlist_for_each_entry(core, &clk_rpm_list, rpm_node) { + ret = clk_pm_runtime_get(core); + if (ret) { + failed = core; + pr_err("clk: Failed to runtime PM get '%s' for clk '%s'\n", + dev_name(failed->dev), failed->name); + goto err; + } + } + + return 0; + +err: + hlist_for_each_entry(core, &clk_rpm_list, rpm_node) { + if (core == failed) + break; + + clk_pm_runtime_put(core); + } + mutex_unlock(&clk_rpm_list_lock); + + return ret; +} + +/** + * clk_pm_runtime_put_all() - Runtime "put" all clk provider devices + * + * Put the runtime PM references taken in clk_pm_runtime_get_all() and release + * the 'clk_rpm_list_lock'. + */ +static void clk_pm_runtime_put_all(void) +{ + struct clk_core *core; + + hlist_for_each_entry(core, &clk_rpm_list, rpm_node) + clk_pm_runtime_put(core); + mutex_unlock(&clk_rpm_list_lock); +} + +static void clk_pm_runtime_init(struct clk_core *core) +{ + struct device *dev = core->dev; + + if (dev && pm_runtime_enabled(dev)) { + core->rpm_enabled = true; + + mutex_lock(&clk_rpm_list_lock); + hlist_add_head(&core->rpm_node, &clk_rpm_list); + mutex_unlock(&clk_rpm_list_lock); + } +} + /*** locking ***/ static void clk_prepare_lock(void) { @@ -425,6 +513,9 @@ if (IS_ERR(hw)) return ERR_CAST(hw); + if (!hw) + return NULL; + return hw->core; } @@ -1228,9 +1319,6 @@ if (core->flags & CLK_IGNORE_UNUSED) return; - if (clk_pm_runtime_get(core)) - return; - if (clk_core_is_prepared(core)) { trace_clk_unprepare(core); if (core->ops->unprepare_unused) @@ -1239,8 +1327,6 @@ core->ops->unprepare(core->hw); trace_clk_unprepare_complete(core); } - - clk_pm_runtime_put(core); } static void __init clk_disable_unused_subtree(struct clk_core *core) @@ -1256,9 +1342,6 @@ if (core->flags & CLK_OPS_PARENT_ENABLE) clk_core_prepare_enable(core->parent); - if (clk_pm_runtime_get(core)) - goto unprepare_out; - flags = clk_enable_lock(); if (core->enable_count) @@ -1283,8 +1366,6 @@ unlock_out: clk_enable_unlock(flags); - clk_pm_runtime_put(core); -unprepare_out: if (core->flags & CLK_OPS_PARENT_ENABLE) clk_core_disable_unprepare(core->parent); } @@ -1300,12 +1381,22 @@ static int __init clk_disable_unused(void) { struct clk_core *core; + int ret; if (clk_ignore_unused) { pr_warn("clk: Not disabling unused clocks\n"); return 0; } + pr_info("clk: Disabling unused clocks\n"); + + ret = clk_pm_runtime_get_all(); + if (ret) + return ret; + /* + * Grab the prepare lock to keep the clk topology stable while iterating + * over clks. + */ clk_prepare_lock(); hlist_for_each_entry(core, &clk_root_list, child_node) @@ -1322,6 +1413,8 @@ clk_prepare_unlock(); + clk_pm_runtime_put_all(); + return 0; } late_initcall_sync(clk_disable_unused); @@ -3627,9 +3720,6 @@ } clk_core_reparent_orphans_nolock(); - - - kref_init(&core->ref); out: clk_pm_runtime_put(core); unlock: @@ -3839,6 +3929,22 @@ kfree(core->parents); } +/* Free memory allocated for a struct clk_core */ +static void __clk_release(struct kref *ref) +{ + struct clk_core *core = container_of(ref, struct clk_core, ref); + + if (core->rpm_enabled) { + mutex_lock(&clk_rpm_list_lock); + hlist_del(&core->rpm_node); + mutex_unlock(&clk_rpm_list_lock); + } + + clk_core_free_parent_map(core); + kfree_const(core->name); + kfree(core); +} + static struct clk * __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw) { @@ -3859,6 +3965,8 @@ goto fail_out; } + kref_init(&core->ref); + core->name = kstrdup_const(init->name, GFP_KERNEL); if (!core->name) { ret = -ENOMEM; @@ -3871,9 +3979,8 @@ } core->ops = init->ops; - if (dev && pm_runtime_enabled(dev)) - core->rpm_enabled = true; core->dev = dev; + clk_pm_runtime_init(core); core->of_node = np; if (dev && dev->driver) core->owner = dev->driver->owner; @@ -3913,12 +4020,10 @@ hw->clk = NULL; fail_create_clk: - clk_core_free_parent_map(core); fail_parents: fail_ops: - kfree_const(core->name); fail_name: - kfree(core); + kref_put(&core->ref, __clk_release); fail_out: return ERR_PTR(ret); } @@ -3998,18 +4103,6 @@ } EXPORT_SYMBOL_GPL(of_clk_hw_register); -/* Free memory allocated for a clock. */ -static void __clk_release(struct kref *ref) -{ - struct clk_core *core = container_of(ref, struct clk_core, ref); - - lockdep_assert_held(&prepare_lock); - - clk_core_free_parent_map(core); - kfree_const(core->name); - kfree(core); -} - /* * Empty clk_ops for unregistered clocks. These are used temporarily * after clk_unregister() was called on a clock and until last clock @@ -4062,7 +4155,7 @@ /* Remove this clk from all parent caches */ static void clk_core_evict_parent_cache(struct clk_core *core) { - struct hlist_head **lists; + const struct hlist_head **lists; struct clk_core *root; lockdep_assert_held(&prepare_lock); diff -Nru linux-5.10.209/drivers/clk/hisilicon/clk-hi3519.c linux-5.10.216/drivers/clk/hisilicon/clk-hi3519.c --- linux-5.10.209/drivers/clk/hisilicon/clk-hi3519.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/hisilicon/clk-hi3519.c 2024-05-02 14:23:46.000000000 +0000 @@ -130,7 +130,7 @@ of_clk_del_provider(pdev->dev.of_node); hisi_clk_unregister_gate(hi3519_gate_clks, - ARRAY_SIZE(hi3519_mux_clks), + ARRAY_SIZE(hi3519_gate_clks), crg->clk_data); hisi_clk_unregister_mux(hi3519_mux_clks, ARRAY_SIZE(hi3519_mux_clks), diff -Nru linux-5.10.209/drivers/clk/hisilicon/clk-hi3620.c linux-5.10.216/drivers/clk/hisilicon/clk-hi3620.c --- linux-5.10.209/drivers/clk/hisilicon/clk-hi3620.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/hisilicon/clk-hi3620.c 2024-05-02 14:23:46.000000000 +0000 @@ -467,8 +467,10 @@ return; clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL); - if (!clk_data->clks) + if (!clk_data->clks) { + kfree(clk_data); return; + } for (i = 0; i < num; i++) { struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i]; diff -Nru linux-5.10.209/drivers/clk/mmp/clk-of-pxa168.c linux-5.10.216/drivers/clk/mmp/clk-of-pxa168.c --- linux-5.10.209/drivers/clk/mmp/clk-of-pxa168.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/mmp/clk-of-pxa168.c 2024-05-02 14:23:46.000000000 +0000 @@ -258,18 +258,21 @@ pxa_unit->mpmu_base = of_iomap(np, 0); if (!pxa_unit->mpmu_base) { pr_err("failed to map mpmu registers\n"); + kfree(pxa_unit); return; } pxa_unit->apmu_base = of_iomap(np, 1); if (!pxa_unit->apmu_base) { pr_err("failed to map apmu registers\n"); + kfree(pxa_unit); return; } pxa_unit->apbc_base = of_iomap(np, 2); if (!pxa_unit->apbc_base) { pr_err("failed to map apbc registers\n"); + kfree(pxa_unit); return; } diff -Nru linux-5.10.209/drivers/clk/qcom/dispcc-sdm845.c linux-5.10.216/drivers/clk/qcom/dispcc-sdm845.c --- linux-5.10.209/drivers/clk/qcom/dispcc-sdm845.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/dispcc-sdm845.c 2024-05-02 14:23:46.000000000 +0000 @@ -768,6 +768,8 @@ static struct gdsc mdss_gdsc = { .gdscr = 0x3000, + .en_few_wait_val = 0x6, + .en_rest_wait_val = 0x5, .pd = { .name = "mdss_gdsc", }, diff -Nru linux-5.10.209/drivers/clk/qcom/gcc-ipq6018.c linux-5.10.216/drivers/clk/qcom/gcc-ipq6018.c --- linux-5.10.209/drivers/clk/qcom/gcc-ipq6018.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/gcc-ipq6018.c 2024-05-02 14:23:46.000000000 +0000 @@ -1557,6 +1557,7 @@ static const struct freq_tbl ftbl_pcie_aux_clk_src[] = { F(24000000, P_XO, 1, 0, 0), + { } }; static const struct clk_parent_data gcc_xo_gpll0_core_pi_sleep_clk[] = { @@ -1737,6 +1738,7 @@ F(160000000, P_GPLL0, 5, 0, 0), F(216000000, P_GPLL6, 5, 0, 0), F(308570000, P_GPLL6, 3.5, 0, 0), + { } }; static const struct clk_parent_data gcc_xo_gpll0_gpll6_gpll0_div2[] = { diff -Nru linux-5.10.209/drivers/clk/qcom/gcc-ipq8074.c linux-5.10.216/drivers/clk/qcom/gcc-ipq8074.c --- linux-5.10.209/drivers/clk/qcom/gcc-ipq8074.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/gcc-ipq8074.c 2024-05-02 14:23:46.000000000 +0000 @@ -972,6 +972,7 @@ static const struct freq_tbl ftbl_pcie_aux_clk_src[] = { F(19200000, P_XO, 1, 0, 0), + { } }; static struct clk_rcg2 pcie0_aux_clk_src = { @@ -1077,6 +1078,7 @@ F(19200000, P_XO, 1, 0, 0), F(160000000, P_GPLL0, 5, 0, 0), F(308570000, P_GPLL6, 3.5, 0, 0), + { } }; static struct clk_rcg2 sdcc1_ice_core_clk_src = { diff -Nru linux-5.10.209/drivers/clk/qcom/gcc-sdm845.c linux-5.10.216/drivers/clk/qcom/gcc-sdm845.c --- linux-5.10.209/drivers/clk/qcom/gcc-sdm845.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/gcc-sdm845.c 2024-05-02 14:23:46.000000000 +0000 @@ -3646,3 +3646,4 @@ MODULE_DESCRIPTION("QTI GCC SDM845 Driver"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:gcc-sdm845"); +MODULE_SOFTDEP("pre: rpmhpd"); diff -Nru linux-5.10.209/drivers/clk/qcom/mmcc-apq8084.c linux-5.10.216/drivers/clk/qcom/mmcc-apq8084.c --- linux-5.10.209/drivers/clk/qcom/mmcc-apq8084.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/mmcc-apq8084.c 2024-05-02 14:23:46.000000000 +0000 @@ -333,6 +333,7 @@ F(333430000, P_MMPLL1, 3.5, 0, 0), F(400000000, P_MMPLL0, 2, 0, 0), F(466800000, P_MMPLL1, 2.5, 0, 0), + { } }; static struct clk_rcg2 mmss_axi_clk_src = { @@ -357,6 +358,7 @@ F(150000000, P_GPLL0, 4, 0, 0), F(228570000, P_MMPLL0, 3.5, 0, 0), F(320000000, P_MMPLL0, 2.5, 0, 0), + { } }; static struct clk_rcg2 ocmemnoc_clk_src = { diff -Nru linux-5.10.209/drivers/clk/qcom/mmcc-msm8974.c linux-5.10.216/drivers/clk/qcom/mmcc-msm8974.c --- linux-5.10.209/drivers/clk/qcom/mmcc-msm8974.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/mmcc-msm8974.c 2024-05-02 14:23:46.000000000 +0000 @@ -283,6 +283,7 @@ F(291750000, P_MMPLL1, 4, 0, 0), F(400000000, P_MMPLL0, 2, 0, 0), F(466800000, P_MMPLL1, 2.5, 0, 0), + { } }; static struct clk_rcg2 mmss_axi_clk_src = { @@ -307,6 +308,7 @@ F(150000000, P_GPLL0, 4, 0, 0), F(291750000, P_MMPLL1, 4, 0, 0), F(400000000, P_MMPLL0, 2, 0, 0), + { } }; static struct clk_rcg2 ocmemnoc_clk_src = { diff -Nru linux-5.10.209/drivers/clk/qcom/reset.c linux-5.10.216/drivers/clk/qcom/reset.c --- linux-5.10.209/drivers/clk/qcom/reset.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/clk/qcom/reset.c 2024-05-02 14:23:46.000000000 +0000 @@ -22,8 +22,8 @@ return 0; } -static int -qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) +static int qcom_reset_set_assert(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) { struct qcom_reset_controller *rst; const struct qcom_reset_map *map; @@ -33,21 +33,22 @@ map = &rst->reset_map[id]; mask = map->bitmask ? map->bitmask : BIT(map->bit); - return regmap_update_bits(rst->regmap, map->reg, mask, mask); + regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); + + /* Read back the register to ensure write completion, ignore the value */ + regmap_read(rst->regmap, map->reg, &mask); + + return 0; } -static int -qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id) +static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) { - struct qcom_reset_controller *rst; - const struct qcom_reset_map *map; - u32 mask; - - rst = to_qcom_reset_controller(rcdev); - map = &rst->reset_map[id]; - mask = map->bitmask ? map->bitmask : BIT(map->bit); + return qcom_reset_set_assert(rcdev, id, true); +} - return regmap_update_bits(rst->regmap, map->reg, mask, 0); +static int qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id) +{ + return qcom_reset_set_assert(rcdev, id, false); } const struct reset_control_ops qcom_reset_ops = { diff -Nru linux-5.10.209/drivers/cpufreq/brcmstb-avs-cpufreq.c linux-5.10.216/drivers/cpufreq/brcmstb-avs-cpufreq.c --- linux-5.10.209/drivers/cpufreq/brcmstb-avs-cpufreq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/cpufreq/brcmstb-avs-cpufreq.c 2024-05-02 14:23:46.000000000 +0000 @@ -481,8 +481,11 @@ static unsigned int brcm_avs_cpufreq_get(unsigned int cpu) { struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); - struct private_data *priv = policy->driver_data; + struct private_data *priv; + if (!policy) + return 0; + priv = policy->driver_data; cpufreq_cpu_put(policy); return brcm_avs_get_frequency(priv->base); diff -Nru linux-5.10.209/drivers/cpufreq/cpufreq-dt.c linux-5.10.216/drivers/cpufreq/cpufreq-dt.c --- linux-5.10.209/drivers/cpufreq/cpufreq-dt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/cpufreq/cpufreq-dt.c 2024-05-02 14:23:46.000000000 +0000 @@ -251,7 +251,7 @@ if (!priv) return -ENOMEM; - if (!alloc_cpumask_var(&priv->cpus, GFP_KERNEL)) + if (!zalloc_cpumask_var(&priv->cpus, GFP_KERNEL)) return -ENOMEM; priv->cpu_dev = cpu_dev; diff -Nru linux-5.10.209/drivers/crypto/ccp/sev-dev.c linux-5.10.216/drivers/crypto/ccp/sev-dev.c --- linux-5.10.209/drivers/crypto/ccp/sev-dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/crypto/ccp/sev-dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -304,10 +304,16 @@ static int __sev_platform_shutdown_locked(int *error) { - struct sev_device *sev = psp_master->sev_data; + struct psp_device *psp = psp_master; + struct sev_device *sev; int ret; - if (!sev || sev->state == SEV_STATE_UNINIT) + if (!psp || !psp->sev_data) + return 0; + + sev = psp->sev_data; + + if (sev->state == SEV_STATE_UNINIT) return 0; ret = __sev_do_cmd_locked(SEV_CMD_SHUTDOWN, NULL, error); diff -Nru linux-5.10.209/drivers/crypto/qat/qat_common/adf_aer.c linux-5.10.216/drivers/crypto/qat/qat_common/adf_aer.c --- linux-5.10.209/drivers/crypto/qat/qat_common/adf_aer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/crypto/qat/qat_common/adf_aer.c 2024-05-02 14:23:46.000000000 +0000 @@ -95,18 +95,28 @@ if (adf_dev_init(accel_dev) || adf_dev_start(accel_dev)) { /* The device hanged and we can't restart it so stop here */ dev_err(&GET_DEV(accel_dev), "Restart device failed\n"); - kfree(reset_data); + if (reset_data->mode == ADF_DEV_RESET_ASYNC || + completion_done(&reset_data->compl)) + kfree(reset_data); WARN(1, "QAT: device restart failed. Device is unusable\n"); return; } adf_dev_restarted_notify(accel_dev); clear_bit(ADF_STATUS_RESTARTING, &accel_dev->status); - /* The dev is back alive. Notify the caller if in sync mode */ - if (reset_data->mode == ADF_DEV_RESET_SYNC) - complete(&reset_data->compl); - else + /* + * The dev is back alive. Notify the caller if in sync mode + * + * If device restart will take a more time than expected, + * the schedule_reset() function can timeout and exit. This can be + * detected by calling the completion_done() function. In this case + * the reset_data structure needs to be freed here. + */ + if (reset_data->mode == ADF_DEV_RESET_ASYNC || + completion_done(&reset_data->compl)) kfree(reset_data); + else + complete(&reset_data->compl); } static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev, @@ -139,8 +149,9 @@ dev_err(&GET_DEV(accel_dev), "Reset device timeout expired\n"); ret = -EFAULT; + } else { + kfree(reset_data); } - kfree(reset_data); return ret; } return 0; diff -Nru linux-5.10.209/drivers/crypto/stm32/stm32-crc32.c linux-5.10.216/drivers/crypto/stm32/stm32-crc32.c --- linux-5.10.209/drivers/crypto/stm32/stm32-crc32.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/crypto/stm32/stm32-crc32.c 2024-05-02 14:23:46.000000000 +0000 @@ -104,7 +104,7 @@ struct stm32_crc *crc; spin_lock_bh(&crc_list.lock); - crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list); + crc = list_first_entry_or_null(&crc_list.dev_list, struct stm32_crc, list); if (crc) list_move_tail(&crc->list, &crc_list.dev_list); spin_unlock_bh(&crc_list.lock); diff -Nru linux-5.10.209/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c linux-5.10.216/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c --- linux-5.10.209/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c 2024-05-02 14:23:46.000000000 +0000 @@ -101,7 +101,8 @@ } static int virtio_crypto_alg_akcipher_init_session(struct virtio_crypto_akcipher_ctx *ctx, - struct virtio_crypto_ctrl_header *header, void *para, + struct virtio_crypto_ctrl_header *header, + struct virtio_crypto_akcipher_session_para *para, const uint8_t *key, unsigned int keylen) { struct scatterlist outhdr_sg, key_sg, inhdr_sg, *sgs[3]; @@ -125,7 +126,7 @@ ctrl = &vc_ctrl_req->ctrl; memcpy(&ctrl->header, header, sizeof(ctrl->header)); - memcpy(&ctrl->u, para, sizeof(ctrl->u)); + memcpy(&ctrl->u.akcipher_create_session.para, para, sizeof(*para)); input = &vc_ctrl_req->input; input->status = cpu_to_le32(VIRTIO_CRYPTO_ERR); diff -Nru linux-5.10.209/drivers/crypto/xilinx/zynqmp-aes-gcm.c linux-5.10.216/drivers/crypto/xilinx/zynqmp-aes-gcm.c --- linux-5.10.209/drivers/crypto/xilinx/zynqmp-aes-gcm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/crypto/xilinx/zynqmp-aes-gcm.c 2024-05-02 14:23:46.000000000 +0000 @@ -231,7 +231,10 @@ err = zynqmp_aes_aead_cipher(areq); } + local_bh_disable(); crypto_finalize_aead_request(engine, areq, err); + local_bh_enable(); + return 0; } diff -Nru linux-5.10.209/drivers/devfreq/devfreq.c linux-5.10.216/drivers/devfreq/devfreq.c --- linux-5.10.209/drivers/devfreq/devfreq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/devfreq/devfreq.c 2024-05-02 14:23:46.000000000 +0000 @@ -438,10 +438,14 @@ if (err) dev_err(&devfreq->dev, "dvfs failed with (%d) error\n", err); + if (devfreq->stop_polling) + goto out; + queue_delayed_work(devfreq_wq, &devfreq->work, msecs_to_jiffies(devfreq->profile->polling_ms)); - mutex_unlock(&devfreq->lock); +out: + mutex_unlock(&devfreq->lock); trace_devfreq_monitor(devfreq); } @@ -459,6 +463,10 @@ if (devfreq->governor->interrupt_driven) return; + mutex_lock(&devfreq->lock); + if (delayed_work_pending(&devfreq->work)) + goto out; + switch (devfreq->profile->timer) { case DEVFREQ_TIMER_DEFERRABLE: INIT_DEFERRABLE_WORK(&devfreq->work, devfreq_monitor); @@ -467,12 +475,16 @@ INIT_DELAYED_WORK(&devfreq->work, devfreq_monitor); break; default: - return; + goto out; } if (devfreq->profile->polling_ms) queue_delayed_work(devfreq_wq, &devfreq->work, msecs_to_jiffies(devfreq->profile->polling_ms)); + +out: + devfreq->stop_polling = false; + mutex_unlock(&devfreq->lock); } EXPORT_SYMBOL(devfreq_monitor_start); @@ -489,6 +501,14 @@ if (devfreq->governor->interrupt_driven) return; + mutex_lock(&devfreq->lock); + if (devfreq->stop_polling) { + mutex_unlock(&devfreq->lock); + return; + } + + devfreq->stop_polling = true; + mutex_unlock(&devfreq->lock); cancel_delayed_work_sync(&devfreq->work); } EXPORT_SYMBOL(devfreq_monitor_stop); @@ -1619,7 +1639,7 @@ struct device_attribute *attr, char *buf) { struct devfreq *df = to_devfreq(dev); - ssize_t len; + ssize_t len = 0; int i, j; unsigned int max_state; @@ -1628,7 +1648,7 @@ max_state = df->profile->max_state; if (max_state == 0) - return sprintf(buf, "Not Supported.\n"); + return scnprintf(buf, PAGE_SIZE, "Not Supported.\n"); mutex_lock(&df->lock); if (!df->stop_polling && @@ -1638,33 +1658,54 @@ } mutex_unlock(&df->lock); - len = sprintf(buf, " From : To\n"); - len += sprintf(buf + len, " :"); - for (i = 0; i < max_state; i++) - len += sprintf(buf + len, "%10lu", - df->profile->freq_table[i]); + len += scnprintf(buf + len, PAGE_SIZE - len, " From : To\n"); + len += scnprintf(buf + len, PAGE_SIZE - len, " :"); + for (i = 0; i < max_state; i++) { + if (len >= PAGE_SIZE - 1) + break; + len += scnprintf(buf + len, PAGE_SIZE - len, "%10lu", + df->profile->freq_table[i]); + } + if (len >= PAGE_SIZE - 1) + return PAGE_SIZE - 1; - len += sprintf(buf + len, " time(ms)\n"); + len += scnprintf(buf + len, PAGE_SIZE - len, " time(ms)\n"); for (i = 0; i < max_state; i++) { + if (len >= PAGE_SIZE - 1) + break; if (df->profile->freq_table[i] == df->previous_freq) { - len += sprintf(buf + len, "*"); + len += scnprintf(buf + len, PAGE_SIZE - len, "*"); } else { - len += sprintf(buf + len, " "); + len += scnprintf(buf + len, PAGE_SIZE - len, " "); } - len += sprintf(buf + len, "%10lu:", - df->profile->freq_table[i]); - for (j = 0; j < max_state; j++) - len += sprintf(buf + len, "%10u", - df->stats.trans_table[(i * max_state) + j]); + if (len >= PAGE_SIZE - 1) + break; + + len += scnprintf(buf + len, PAGE_SIZE - len, "%10lu:", + df->profile->freq_table[i]); + for (j = 0; j < max_state; j++) { + if (len >= PAGE_SIZE - 1) + break; + len += scnprintf(buf + len, PAGE_SIZE - len, "%10u", + df->stats.trans_table[(i * max_state) + j]); + } + if (len >= PAGE_SIZE - 1) + break; + len += scnprintf(buf + len, PAGE_SIZE - len, "%10llu\n", (u64) + jiffies64_to_msecs(df->stats.time_in_state[i])); + } - len += sprintf(buf + len, "%10llu\n", (u64) - jiffies64_to_msecs(df->stats.time_in_state[i])); + if (len < PAGE_SIZE - 1) + len += scnprintf(buf + len, PAGE_SIZE - len, "Total transition : %u\n", + df->stats.total_trans); + + if (len >= PAGE_SIZE - 1) { + pr_warn_once("devfreq transition table exceeds PAGE_SIZE. Disabling\n"); + return -EFBIG; } - len += sprintf(buf + len, "Total transition : %u\n", - df->stats.total_trans); return len; } diff -Nru linux-5.10.209/drivers/dma/Kconfig linux-5.10.216/drivers/dma/Kconfig --- linux-5.10.209/drivers/dma/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -614,16 +614,16 @@ config TEGRA210_ADMA tristate "NVIDIA Tegra210 ADMA support" - depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST) + depends on (ARCH_TEGRA || COMPILE_TEST) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help - Support for the NVIDIA Tegra210 ADMA controller driver. The - DMA controller has multiple DMA channels and is used to service - various audio clients in the Tegra210 audio processing engine - (APE). This DMA controller transfers data from memory to - peripheral and vice versa. It does not support memory to - memory data transfer. + Support for the NVIDIA Tegra210/Tegra186/Tegra194/Tegra234 ADMA + controller driver. The DMA controller has multiple DMA channels + and is used to service various audio clients in the Tegra210 + audio processing engine (APE). This DMA controller transfers + data from memory to peripheral and vice versa. It does not + support memory to memory data transfer. config TIMB_DMA tristate "Timberdale FPGA DMA support" diff -Nru linux-5.10.209/drivers/dma/dmaengine.c linux-5.10.216/drivers/dma/dmaengine.c --- linux-5.10.209/drivers/dma/dmaengine.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/dmaengine.c 2024-05-02 14:23:46.000000000 +0000 @@ -1108,6 +1108,9 @@ static void __dma_async_device_channel_unregister(struct dma_device *device, struct dma_chan *chan) { + if (chan->local == NULL) + return; + WARN_ONCE(!device->device_release && chan->client_count, "%s called while %d clients hold a reference\n", __func__, chan->client_count); diff -Nru linux-5.10.209/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c linux-5.10.216/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c --- linux-5.10.209/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c 2024-05-02 14:23:46.000000000 +0000 @@ -38,15 +38,17 @@ if (!dpaa2_chan->fd_pool) goto err; - dpaa2_chan->fl_pool = dma_pool_create("fl_pool", dev, - sizeof(struct dpaa2_fl_entry), - sizeof(struct dpaa2_fl_entry), 0); + dpaa2_chan->fl_pool = + dma_pool_create("fl_pool", dev, + sizeof(struct dpaa2_fl_entry) * 3, + sizeof(struct dpaa2_fl_entry), 0); + if (!dpaa2_chan->fl_pool) goto err_fd; dpaa2_chan->sdd_pool = dma_pool_create("sdd_pool", dev, - sizeof(struct dpaa2_qdma_sd_d), + sizeof(struct dpaa2_qdma_sd_d) * 2, sizeof(struct dpaa2_qdma_sd_d), 0); if (!dpaa2_chan->sdd_pool) goto err_fl; diff -Nru linux-5.10.209/drivers/dma/fsl-qdma.c linux-5.10.216/drivers/dma/fsl-qdma.c --- linux-5.10.209/drivers/dma/fsl-qdma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/fsl-qdma.c 2024-05-02 14:23:46.000000000 +0000 @@ -109,6 +109,7 @@ #define FSL_QDMA_CMD_WTHROTL_OFFSET 20 #define FSL_QDMA_CMD_DSEN_OFFSET 19 #define FSL_QDMA_CMD_LWC_OFFSET 16 +#define FSL_QDMA_CMD_PF BIT(17) /* Field definition for Descriptor status */ #define QDMA_CCDF_STATUS_RTE BIT(5) @@ -384,7 +385,8 @@ qdma_csgf_set_f(csgf_dest, len); /* Descriptor Buffer */ cmd = cpu_to_le32(FSL_QDMA_CMD_RWTTYPE << - FSL_QDMA_CMD_RWTTYPE_OFFSET); + FSL_QDMA_CMD_RWTTYPE_OFFSET) | + FSL_QDMA_CMD_PF; sdf->data = QDMA_SDDF_CMD(cmd); cmd = cpu_to_le32(FSL_QDMA_CMD_RWTTYPE << @@ -514,11 +516,11 @@ queue_temp = queue_head + i + (j * queue_num); queue_temp->cq = - dma_alloc_coherent(&pdev->dev, - sizeof(struct fsl_qdma_format) * - queue_size[i], - &queue_temp->bus_addr, - GFP_KERNEL); + dmam_alloc_coherent(&pdev->dev, + sizeof(struct fsl_qdma_format) * + queue_size[i], + &queue_temp->bus_addr, + GFP_KERNEL); if (!queue_temp->cq) return NULL; queue_temp->block_base = fsl_qdma->block_base + @@ -563,11 +565,11 @@ /* * Buffer for queue command */ - status_head->cq = dma_alloc_coherent(&pdev->dev, - sizeof(struct fsl_qdma_format) * - status_size, - &status_head->bus_addr, - GFP_KERNEL); + status_head->cq = dmam_alloc_coherent(&pdev->dev, + sizeof(struct fsl_qdma_format) * + status_size, + &status_head->bus_addr, + GFP_KERNEL); if (!status_head->cq) { devm_kfree(&pdev->dev, status_head); return NULL; @@ -805,7 +807,7 @@ int i; int cpu; int ret; - char irq_name[20]; + char irq_name[32]; fsl_qdma->error_irq = platform_get_irq_byname(pdev, "qdma-error"); @@ -1201,10 +1203,6 @@ if (!fsl_qdma->queue) return -ENOMEM; - ret = fsl_qdma_irq_init(pdev, fsl_qdma); - if (ret) - return ret; - fsl_qdma->irq_base = platform_get_irq_byname(pdev, "qdma-queue0"); if (fsl_qdma->irq_base < 0) return fsl_qdma->irq_base; @@ -1243,16 +1241,19 @@ platform_set_drvdata(pdev, fsl_qdma); - ret = dma_async_device_register(&fsl_qdma->dma_dev); + ret = fsl_qdma_reg_init(fsl_qdma); if (ret) { - dev_err(&pdev->dev, - "Can't register NXP Layerscape qDMA engine.\n"); + dev_err(&pdev->dev, "Can't Initialize the qDMA engine.\n"); return ret; } - ret = fsl_qdma_reg_init(fsl_qdma); + ret = fsl_qdma_irq_init(pdev, fsl_qdma); + if (ret) + return ret; + + ret = dma_async_device_register(&fsl_qdma->dma_dev); if (ret) { - dev_err(&pdev->dev, "Can't Initialize the qDMA engine.\n"); + dev_err(&pdev->dev, "Can't register NXP Layerscape qDMA engine.\n"); return ret; } @@ -1272,8 +1273,6 @@ static int fsl_qdma_remove(struct platform_device *pdev) { - int i; - struct fsl_qdma_queue *status; struct device_node *np = pdev->dev.of_node; struct fsl_qdma_engine *fsl_qdma = platform_get_drvdata(pdev); @@ -1282,11 +1281,6 @@ of_dma_controller_free(np); dma_async_device_unregister(&fsl_qdma->dma_dev); - for (i = 0; i < fsl_qdma->block_number; i++) { - status = fsl_qdma->status[i]; - dma_free_coherent(&pdev->dev, sizeof(struct fsl_qdma_format) * - status->n_cq, status->cq, status->bus_addr); - } return 0; } diff -Nru linux-5.10.209/drivers/dma/idma64.c linux-5.10.216/drivers/dma/idma64.c --- linux-5.10.209/drivers/dma/idma64.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/idma64.c 2024-05-02 14:23:46.000000000 +0000 @@ -167,6 +167,10 @@ u32 status_err; unsigned short i; + /* Since IRQ may be shared, check if DMA controller is powered on */ + if (status == GENMASK(31, 0)) + return IRQ_NONE; + dev_vdbg(idma64->dma.dev, "%s: status=%#x\n", __func__, status); /* Check if we have any interrupt from the DMA controller */ diff -Nru linux-5.10.209/drivers/dma/owl-dma.c linux-5.10.216/drivers/dma/owl-dma.c --- linux-5.10.209/drivers/dma/owl-dma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/owl-dma.c 2024-05-02 14:23:46.000000000 +0000 @@ -249,7 +249,7 @@ else regval &= ~val; - writel(val, pchan->base + reg); + writel(regval, pchan->base + reg); } static void pchan_writel(struct owl_dma_pchan *pchan, u32 reg, u32 data) @@ -273,7 +273,7 @@ else regval &= ~val; - writel(val, od->base + reg); + writel(regval, od->base + reg); } static void dma_writel(struct owl_dma *od, u32 reg, u32 data) diff -Nru linux-5.10.209/drivers/dma/sh/shdma.h linux-5.10.216/drivers/dma/sh/shdma.h --- linux-5.10.209/drivers/dma/sh/shdma.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/sh/shdma.h 2024-05-02 14:23:46.000000000 +0000 @@ -25,7 +25,7 @@ const struct sh_dmae_slave_config *config; /* Slave DMA configuration */ int xmit_shift; /* log_2(bytes_per_xfer) */ void __iomem *base; - char dev_id[16]; /* unique name per DMAC of channel */ + char dev_id[32]; /* unique name per DMAC of channel */ int pm_error; dma_addr_t slave_addr; }; diff -Nru linux-5.10.209/drivers/dma/ti/edma.c linux-5.10.216/drivers/dma/ti/edma.c --- linux-5.10.209/drivers/dma/ti/edma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/ti/edma.c 2024-05-02 14:23:46.000000000 +0000 @@ -2462,6 +2462,11 @@ if (irq > 0) { irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccint", dev_name(dev)); + if (!irq_name) { + ret = -ENOMEM; + goto err_disable_pm; + } + ret = devm_request_irq(dev, irq, dma_irq_handler, 0, irq_name, ecc); if (ret) { @@ -2478,6 +2483,11 @@ if (irq > 0) { irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccerrint", dev_name(dev)); + if (!irq_name) { + ret = -ENOMEM; + goto err_disable_pm; + } + ret = devm_request_irq(dev, irq, dma_ccerr_handler, 0, irq_name, ecc); if (ret) { diff -Nru linux-5.10.209/drivers/dma/ti/k3-udma.c linux-5.10.216/drivers/dma/ti/k3-udma.c --- linux-5.10.209/drivers/dma/ti/k3-udma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/ti/k3-udma.c 2024-05-02 14:23:46.000000000 +0000 @@ -2877,6 +2877,7 @@ { struct udma_chan *uc = to_udma_chan(&vc->chan); struct udma_desc *d; + u8 status; if (!vd) return; @@ -2886,12 +2887,12 @@ if (d->metadata_size) udma_fetch_epib(uc, d); - /* Provide residue information for the client */ if (result) { void *desc_vaddr = udma_curr_cppi5_desc_vaddr(d, d->desc_idx); if (cppi5_desc_get_type(desc_vaddr) == CPPI5_INFO0_DESC_TYPE_VAL_HOST) { + /* Provide residue information for the client */ result->residue = d->residue - cppi5_hdesc_get_pktlen(desc_vaddr); if (result->residue) @@ -2900,7 +2901,12 @@ result->result = DMA_TRANS_NOERROR; } else { result->residue = 0; - result->result = DMA_TRANS_NOERROR; + /* Propagate TR Response errors to the client */ + status = d->hwdesc[0].tr_resp_base->status; + if (status) + result->result = DMA_TRANS_ABORTED; + else + result->result = DMA_TRANS_NOERROR; } } } diff -Nru linux-5.10.209/drivers/dma/xilinx/xilinx_dpdma.c linux-5.10.216/drivers/dma/xilinx/xilinx_dpdma.c --- linux-5.10.209/drivers/dma/xilinx/xilinx_dpdma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/dma/xilinx/xilinx_dpdma.c 2024-05-02 14:23:46.000000000 +0000 @@ -213,7 +213,8 @@ * @running: true if the channel is running * @first_frame: flag for the first frame of stream * @video_group: flag if multi-channel operation is needed for video channels - * @lock: lock to access struct xilinx_dpdma_chan + * @lock: lock to access struct xilinx_dpdma_chan. Must be taken before + * @vchan.lock, if both are to be held. * @desc_pool: descriptor allocation pool * @err_task: error IRQ bottom half handler * @desc: References to descriptors being processed @@ -1101,12 +1102,14 @@ * Complete the active descriptor, if any, promote the pending * descriptor to active, and queue the next transfer, if any. */ + spin_lock(&chan->vchan.lock); if (chan->desc.active) vchan_cookie_complete(&chan->desc.active->vdesc); chan->desc.active = pending; chan->desc.pending = NULL; xilinx_dpdma_chan_queue_transfer(chan); + spin_unlock(&chan->vchan.lock); out: spin_unlock_irqrestore(&chan->lock, flags); @@ -1264,10 +1267,12 @@ struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan); unsigned long flags; - spin_lock_irqsave(&chan->vchan.lock, flags); + spin_lock_irqsave(&chan->lock, flags); + spin_lock(&chan->vchan.lock); if (vchan_issue_pending(&chan->vchan)) xilinx_dpdma_chan_queue_transfer(chan); - spin_unlock_irqrestore(&chan->vchan.lock, flags); + spin_unlock(&chan->vchan.lock); + spin_unlock_irqrestore(&chan->lock, flags); } static int xilinx_dpdma_config(struct dma_chan *dchan, @@ -1491,7 +1496,9 @@ XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id); spin_lock_irqsave(&chan->lock, flags); + spin_lock(&chan->vchan.lock); xilinx_dpdma_chan_queue_transfer(chan); + spin_unlock(&chan->vchan.lock); spin_unlock_irqrestore(&chan->lock, flags); } diff -Nru linux-5.10.209/drivers/firewire/core-card.c linux-5.10.216/drivers/firewire/core-card.c --- linux-5.10.209/drivers/firewire/core-card.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firewire/core-card.c 2024-05-02 14:23:46.000000000 +0000 @@ -429,7 +429,23 @@ */ card->bm_generation = generation; - if (root_device == NULL) { + if (card->gap_count == 0) { + /* + * If self IDs have inconsistent gap counts, do a + * bus reset ASAP. The config rom read might never + * complete, so don't wait for it. However, still + * send a PHY configuration packet prior to the + * bus reset. The PHY configuration packet might + * fail, but 1394-2008 8.4.5.2 explicitly permits + * it in this case, so it should be safe to try. + */ + new_root_id = local_id; + /* + * We must always send a bus reset if the gap count + * is inconsistent, so bypass the 5-reset limit. + */ + card->bm_retries = 0; + } else if (root_device == NULL) { /* * Either link_on is false, or we failed to read the * config rom. In either case, pick another root. @@ -484,7 +500,19 @@ fw_notice(card, "phy config: new root=%x, gap_count=%d\n", new_root_id, gap_count); fw_send_phy_config(card, new_root_id, generation, gap_count); - reset_bus(card, true); + /* + * Where possible, use a short bus reset to minimize + * disruption to isochronous transfers. But in the event + * of a gap count inconsistency, use a long bus reset. + * + * As noted in 1394a 8.4.6.2, nodes on a mixed 1394/1394a bus + * may set different gap counts after a bus reset. On a mixed + * 1394/1394a bus, a short bus reset can get doubled. Some + * nodes may treat the double reset as one bus reset and others + * may treat it as two, causing a gap count inconsistency + * again. Using a long bus reset prevents this. + */ + reset_bus(card, card->gap_count != 0); /* Will allocate broadcast channel after the reset. */ goto out; } diff -Nru linux-5.10.209/drivers/firewire/core-device.c linux-5.10.216/drivers/firewire/core-device.c --- linux-5.10.209/drivers/firewire/core-device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firewire/core-device.c 2024-05-02 14:23:46.000000000 +0000 @@ -100,10 +100,9 @@ * @buf: where to put the string * @size: size of @buf, in bytes * - * The string is taken from a minimal ASCII text descriptor leaf after - * the immediate entry with @key. The string is zero-terminated. - * An overlong string is silently truncated such that it and the - * zero byte fit into @size. + * The string is taken from a minimal ASCII text descriptor leaf just after the entry with the + * @key. The string is zero-terminated. An overlong string is silently truncated such that it + * and the zero byte fit into @size. * * Returns strlen(buf) or a negative error code. */ diff -Nru linux-5.10.209/drivers/firmware/efi/arm-runtime.c linux-5.10.216/drivers/firmware/efi/arm-runtime.c --- linux-5.10.209/drivers/firmware/efi/arm-runtime.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firmware/efi/arm-runtime.c 2024-05-02 14:23:46.000000000 +0000 @@ -107,7 +107,7 @@ efi_memory_desc_t *md; for_each_efi_memory_desc(md) { - int md_size = md->num_pages << EFI_PAGE_SHIFT; + u64 md_size = md->num_pages << EFI_PAGE_SHIFT; struct resource *res; if (!(md->attribute & EFI_MEMORY_SP)) diff -Nru linux-5.10.209/drivers/firmware/efi/capsule-loader.c linux-5.10.216/drivers/firmware/efi/capsule-loader.c --- linux-5.10.209/drivers/firmware/efi/capsule-loader.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firmware/efi/capsule-loader.c 2024-05-02 14:23:46.000000000 +0000 @@ -292,7 +292,7 @@ return -ENOMEM; } - cap_info->phys = kzalloc(sizeof(void *), GFP_KERNEL); + cap_info->phys = kzalloc(sizeof(phys_addr_t), GFP_KERNEL); if (!cap_info->phys) { kfree(cap_info->pages); kfree(cap_info); diff -Nru linux-5.10.209/drivers/firmware/efi/efi-init.c linux-5.10.216/drivers/firmware/efi/efi-init.c --- linux-5.10.209/drivers/firmware/efi/efi-init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firmware/efi/efi-init.c 2024-05-02 14:23:46.000000000 +0000 @@ -142,15 +142,6 @@ case EFI_CONVENTIONAL_MEMORY: case EFI_PERSISTENT_MEMORY: /* - * Special purpose memory is 'soft reserved', which means it - * is set aside initially, but can be hotplugged back in or - * be assigned to the dax driver after boot. - */ - if (efi_soft_reserve_enabled() && - (md->attribute & EFI_MEMORY_SP)) - return false; - - /* * According to the spec, these regions are no longer reserved * after calling ExitBootServices(). However, we can only use * them as System RAM if they can be mapped writeback cacheable. @@ -194,6 +185,16 @@ size = npages << PAGE_SHIFT; if (is_memory(md)) { + /* + * Special purpose memory is 'soft reserved', which + * means it is set aside initially. Don't add a memblock + * for it now so that it can be hotplugged back in or + * be assigned to the dax driver after boot. + */ + if (efi_soft_reserve_enabled() && + (md->attribute & EFI_MEMORY_SP)) + continue; + early_init_dt_add_memory_arch(paddr, size); if (!is_usable_memory(md)) diff -Nru linux-5.10.209/drivers/firmware/efi/riscv-runtime.c linux-5.10.216/drivers/firmware/efi/riscv-runtime.c --- linux-5.10.209/drivers/firmware/efi/riscv-runtime.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firmware/efi/riscv-runtime.c 2024-05-02 14:23:46.000000000 +0000 @@ -85,7 +85,7 @@ efi_memory_desc_t *md; for_each_efi_memory_desc(md) { - int md_size = md->num_pages << EFI_PAGE_SHIFT; + u64 md_size = md->num_pages << EFI_PAGE_SHIFT; struct resource *res; if (!(md->attribute & EFI_MEMORY_SP)) diff -Nru linux-5.10.209/drivers/firmware/efi/vars.c linux-5.10.216/drivers/firmware/efi/vars.c --- linux-5.10.209/drivers/firmware/efi/vars.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/firmware/efi/vars.c 2024-05-02 14:23:46.000000000 +0000 @@ -415,7 +415,7 @@ void *data, bool duplicates, struct list_head *head) { const struct efivar_operations *ops; - unsigned long variable_name_size = 1024; + unsigned long variable_name_size = 512; efi_char16_t *variable_name; efi_status_t status; efi_guid_t vendor_guid; @@ -438,12 +438,13 @@ } /* - * Per EFI spec, the maximum storage allocated for both - * the variable name and variable data is 1024 bytes. + * A small set of old UEFI implementations reject sizes + * above a certain threshold, the lowest seen in the wild + * is 512. */ do { - variable_name_size = 1024; + variable_name_size = 512; status = ops->get_next_variable(&variable_name_size, variable_name, @@ -491,9 +492,13 @@ break; case EFI_NOT_FOUND: break; + case EFI_BUFFER_TOO_SMALL: + pr_warn("efivars: Variable name size exceeds maximum (%lu > 512)\n", + variable_name_size); + status = EFI_NOT_FOUND; + break; default: - printk(KERN_WARNING "efivars: get_next_variable: status=%lx\n", - status); + pr_warn("efivars: get_next_variable: status=%lx\n", status); status = EFI_NOT_FOUND; break; } diff -Nru linux-5.10.209/drivers/gpio/gpio-74x164.c linux-5.10.216/drivers/gpio/gpio-74x164.c --- linux-5.10.209/drivers/gpio/gpio-74x164.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpio/gpio-74x164.c 2024-05-02 14:23:46.000000000 +0000 @@ -127,8 +127,6 @@ if (IS_ERR(chip->gpiod_oe)) return PTR_ERR(chip->gpiod_oe); - gpiod_set_value_cansleep(chip->gpiod_oe, 1); - spi_set_drvdata(spi, chip); chip->gpio_chip.label = spi->modalias; @@ -153,6 +151,8 @@ goto exit_destroy; } + gpiod_set_value_cansleep(chip->gpiod_oe, 1); + ret = gpiochip_add_data(&chip->gpio_chip, chip); if (!ret) return 0; diff -Nru linux-5.10.209/drivers/gpio/gpio-eic-sprd.c linux-5.10.216/drivers/gpio/gpio-eic-sprd.c --- linux-5.10.209/drivers/gpio/gpio-eic-sprd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpio/gpio-eic-sprd.c 2024-05-02 14:23:46.000000000 +0000 @@ -318,20 +318,27 @@ switch (flow_type) { case IRQ_TYPE_LEVEL_HIGH: sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 1); + sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1); break; case IRQ_TYPE_LEVEL_LOW: sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 0); + sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1); break; case IRQ_TYPE_EDGE_RISING: case IRQ_TYPE_EDGE_FALLING: case IRQ_TYPE_EDGE_BOTH: state = sprd_eic_get(chip, offset); - if (state) + if (state) { sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 0); - else + sprd_eic_update(chip, offset, + SPRD_EIC_DBNC_IC, 1); + } else { sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 1); + sprd_eic_update(chip, offset, + SPRD_EIC_DBNC_IC, 1); + } break; default: return -ENOTSUPP; @@ -343,20 +350,27 @@ switch (flow_type) { case IRQ_TYPE_LEVEL_HIGH: sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 0); + sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1); break; case IRQ_TYPE_LEVEL_LOW: sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 1); + sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1); break; case IRQ_TYPE_EDGE_RISING: case IRQ_TYPE_EDGE_FALLING: case IRQ_TYPE_EDGE_BOTH: state = sprd_eic_get(chip, offset); - if (state) + if (state) { sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 0); - else + sprd_eic_update(chip, offset, + SPRD_EIC_LATCH_INTCLR, 1); + } else { sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 1); + sprd_eic_update(chip, offset, + SPRD_EIC_LATCH_INTCLR, 1); + } break; default: return -ENOTSUPP; @@ -370,29 +384,34 @@ sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1); + sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_EDGE_FALLING: sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0); + sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_EDGE_BOTH: sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 1); + sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_LEVEL_HIGH: sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1); + sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1); irq_set_handler_locked(data, handle_level_irq); break; case IRQ_TYPE_LEVEL_LOW: sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1); sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0); + sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1); irq_set_handler_locked(data, handle_level_irq); break; default: @@ -405,29 +424,34 @@ sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1); + sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_EDGE_FALLING: sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0); + sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_EDGE_BOTH: sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 1); + sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1); irq_set_handler_locked(data, handle_edge_irq); break; case IRQ_TYPE_LEVEL_HIGH: sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1); + sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1); irq_set_handler_locked(data, handle_level_irq); break; case IRQ_TYPE_LEVEL_LOW: sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1); sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0); + sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1); irq_set_handler_locked(data, handle_level_irq); break; default: diff -Nru linux-5.10.209/drivers/gpio/gpiolib-acpi.c linux-5.10.216/drivers/gpio/gpiolib-acpi.c --- linux-5.10.209/drivers/gpio/gpiolib-acpi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpio/gpiolib-acpi.c 2024-05-02 14:23:46.000000000 +0000 @@ -1479,6 +1479,20 @@ .ignore_wake = "INT33FF:01@0", }, }, + { + /* + * Spurious wakeups from TP_ATTN# pin + * Found in BIOS 0.35 + * https://gitlab.freedesktop.org/drm/amd/-/issues/3073 + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GPD"), + DMI_MATCH(DMI_PRODUCT_NAME, "G1619-04"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_wake = "PNP0C50:00@8", + }, + }, {} /* Terminating entry */ }; diff -Nru linux-5.10.209/drivers/gpio/gpiolib.c linux-5.10.216/drivers/gpio/gpiolib.c --- linux-5.10.209/drivers/gpio/gpiolib.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpio/gpiolib.c 2024-05-02 14:23:46.000000000 +0000 @@ -732,11 +732,11 @@ ret = gpiochip_irqchip_init_valid_mask(gc); if (ret) - goto err_remove_acpi_chip; + goto err_free_hogs; ret = gpiochip_irqchip_init_hw(gc); if (ret) - goto err_remove_acpi_chip; + goto err_remove_irqchip_mask; ret = gpiochip_add_irqchip(gc, lock_key, request_key); if (ret) @@ -761,13 +761,13 @@ gpiochip_irqchip_remove(gc); err_remove_irqchip_mask: gpiochip_irqchip_free_valid_mask(gc); -err_remove_acpi_chip: +err_free_hogs: + gpiochip_free_hogs(gc); acpi_gpiochip_remove(gc); + gpiochip_remove_pin_ranges(gc); err_remove_of_chip: - gpiochip_free_hogs(gc); of_gpiochip_remove(gc); err_free_gpiochip_mask: - gpiochip_remove_pin_ranges(gc); gpiochip_free_valid_mask(gc); err_remove_from_list: spin_lock_irqsave(&gpio_lock, flags); diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c 2024-05-02 14:23:46.000000000 +0000 @@ -88,7 +88,7 @@ return NULL; fence = container_of(f, struct amdgpu_amdkfd_fence, base); - if (fence && f->ops == &amdkfd_fence_ops) + if (f->ops == &amdkfd_fence_ops) return fence; return NULL; diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c 2024-05-02 14:23:46.000000000 +0000 @@ -1259,6 +1259,7 @@ err_bo_create: unreserve_mem_limit(adev, size, alloc_domain, !!sg); err_reserve_limit: + amdgpu_sync_free(&(*mem)->sync); mutex_destroy(&(*mem)->lock); kfree(*mem); err: diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 2024-05-02 14:23:46.000000000 +0000 @@ -1184,6 +1184,7 @@ return true; fw_ver = *((uint32_t *)adev->pm.fw->data + 69); + release_firmware(adev->pm.fw); if (fw_ver < 0x00160e00) return true; } diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c 2024-05-02 14:23:46.000000000 +0000 @@ -241,7 +241,8 @@ /* Never sync to VM updates either. */ if (fence_owner == AMDGPU_FENCE_OWNER_VM && - owner != AMDGPU_FENCE_OWNER_UNDEFINED) + owner != AMDGPU_FENCE_OWNER_UNDEFINED && + owner != AMDGPU_FENCE_OWNER_KFD) continue; /* Ignore fences depending on the sync mode */ diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 2024-05-02 14:23:46.000000000 +0000 @@ -2201,6 +2201,37 @@ trace_amdgpu_vm_bo_map(bo_va, mapping); } +/* Validate operation parameters to prevent potential abuse */ +static int amdgpu_vm_verify_parameters(struct amdgpu_device *adev, + struct amdgpu_bo *bo, + uint64_t saddr, + uint64_t offset, + uint64_t size) +{ + uint64_t tmp, lpfn; + + if (saddr & AMDGPU_GPU_PAGE_MASK + || offset & AMDGPU_GPU_PAGE_MASK + || size & AMDGPU_GPU_PAGE_MASK) + return -EINVAL; + + if (check_add_overflow(saddr, size, &tmp) + || check_add_overflow(offset, size, &tmp) + || size == 0 /* which also leads to end < begin */) + return -EINVAL; + + /* make sure object fit at this offset */ + if (bo && offset + size > amdgpu_bo_size(bo)) + return -EINVAL; + + /* Ensure last pfn not exceed max_pfn */ + lpfn = (saddr + size - 1) >> AMDGPU_GPU_PAGE_SHIFT; + if (lpfn >= adev->vm_manager.max_pfn) + return -EINVAL; + + return 0; +} + /** * amdgpu_vm_bo_map - map bo inside a vm * @@ -2227,21 +2258,14 @@ struct amdgpu_bo *bo = bo_va->base.bo; struct amdgpu_vm *vm = bo_va->base.vm; uint64_t eaddr; + int r; - /* validate the parameters */ - if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || size & ~PAGE_MASK) - return -EINVAL; - if (saddr + size <= saddr || offset + size <= offset) - return -EINVAL; - - /* make sure object fit at this offset */ - eaddr = saddr + size - 1; - if ((bo && offset + size > amdgpu_bo_size(bo)) || - (eaddr >= adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT)) - return -EINVAL; + r = amdgpu_vm_verify_parameters(adev, bo, saddr, offset, size); + if (r) + return r; saddr /= AMDGPU_GPU_PAGE_SIZE; - eaddr /= AMDGPU_GPU_PAGE_SIZE; + eaddr = saddr + (size - 1) / AMDGPU_GPU_PAGE_SIZE; tmp = amdgpu_vm_it_iter_first(&vm->va, saddr, eaddr); if (tmp) { @@ -2294,17 +2318,9 @@ uint64_t eaddr; int r; - /* validate the parameters */ - if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || size & ~PAGE_MASK) - return -EINVAL; - if (saddr + size <= saddr || offset + size <= offset) - return -EINVAL; - - /* make sure object fit at this offset */ - eaddr = saddr + size - 1; - if ((bo && offset + size > amdgpu_bo_size(bo)) || - (eaddr >= adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT)) - return -EINVAL; + r = amdgpu_vm_verify_parameters(adev, bo, saddr, offset, size); + if (r) + return r; /* Allocate all the needed memory */ mapping = kmalloc(sizeof(*mapping), GFP_KERNEL); @@ -2318,7 +2334,7 @@ } saddr /= AMDGPU_GPU_PAGE_SIZE; - eaddr /= AMDGPU_GPU_PAGE_SIZE; + eaddr = saddr + (size - 1) / AMDGPU_GPU_PAGE_SIZE; mapping->start = saddr; mapping->last = eaddr; @@ -2405,10 +2421,14 @@ struct amdgpu_bo_va_mapping *before, *after, *tmp, *next; LIST_HEAD(removed); uint64_t eaddr; + int r; + + r = amdgpu_vm_verify_parameters(adev, NULL, saddr, 0, size); + if (r) + return r; - eaddr = saddr + size - 1; saddr /= AMDGPU_GPU_PAGE_SIZE; - eaddr /= AMDGPU_GPU_PAGE_SIZE; + eaddr = saddr + (size - 1) / AMDGPU_GPU_PAGE_SIZE; /* Allocate all the needed memory */ before = kzalloc(sizeof(*before), GFP_KERNEL); diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/atom.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/atom.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/atom.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/atom.c 2024-05-02 14:23:46.000000000 +0000 @@ -310,7 +310,7 @@ DEBUG("IMM 0x%02X\n", val); return val; } - return 0; + break; case ATOM_ARG_PLL: idx = U8(*ptr); (*ptr)++; diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c linux-5.10.216/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c --- linux-5.10.209/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c 2024-05-02 14:23:46.000000000 +0000 @@ -390,17 +390,21 @@ u32 ref_and_mask = 0; const struct nbio_hdp_flush_reg *nbio_hf_reg = adev->nbio.hdp_flush_reg; - ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0 << ring->me; + if (ring->me > 1) { + amdgpu_asic_flush_hdp(adev, ring); + } else { + ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0 << ring->me; - amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_POLL_REGMEM) | - SDMA_PKT_POLL_REGMEM_HEADER_HDP_FLUSH(1) | - SDMA_PKT_POLL_REGMEM_HEADER_FUNC(3)); /* == */ - amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_done_offset(adev)) << 2); - amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_req_offset(adev)) << 2); - amdgpu_ring_write(ring, ref_and_mask); /* reference */ - amdgpu_ring_write(ring, ref_and_mask); /* mask */ - amdgpu_ring_write(ring, SDMA_PKT_POLL_REGMEM_DW5_RETRY_COUNT(0xfff) | - SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */ + amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_POLL_REGMEM) | + SDMA_PKT_POLL_REGMEM_HEADER_HDP_FLUSH(1) | + SDMA_PKT_POLL_REGMEM_HEADER_FUNC(3)); /* == */ + amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_done_offset(adev)) << 2); + amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_req_offset(adev)) << 2); + amdgpu_ring_write(ring, ref_and_mask); /* reference */ + amdgpu_ring_write(ring, ref_and_mask); /* mask */ + amdgpu_ring_write(ring, SDMA_PKT_POLL_REGMEM_DW5_RETRY_COUNT(0xfff) | + SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */ + } } /** diff -Nru linux-5.10.209/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c linux-5.10.216/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c --- linux-5.10.209/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 2024-05-02 14:23:46.000000000 +0000 @@ -959,8 +959,8 @@ * nodes, but not more than args->num_of_nodes as that is * the amount of memory allocated by user */ - pa = kzalloc((sizeof(struct kfd_process_device_apertures) * - args->num_of_nodes), GFP_KERNEL); + pa = kcalloc(args->num_of_nodes, sizeof(struct kfd_process_device_apertures), + GFP_KERNEL); if (!pa) return -ENOMEM; diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c linux-5.10.216/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c --- linux-5.10.209/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 2024-05-02 14:23:46.000000000 +0000 @@ -1456,6 +1456,7 @@ if (adev->dm.dmub_srv) { dmub_srv_destroy(adev->dm.dmub_srv); + kfree(adev->dm.dmub_srv); adev->dm.dmub_srv = NULL; } diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c linux-5.10.216/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c --- linux-5.10.209/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -1179,7 +1179,7 @@ const uint32_t rd_buf_size = 10; struct pipe_ctx *pipe_ctx; ssize_t result = 0; - int i, r, str_len = 30; + int i, r, str_len = 10; rd_buf = kcalloc(rd_buf_size, sizeof(char), GFP_KERNEL); diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/dc/core/dc.c linux-5.10.216/drivers/gpu/drm/amd/display/dc/core/dc.c --- linux-5.10.209/drivers/gpu/drm/amd/display/dc/core/dc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/dc/core/dc.c 2024-05-02 14:23:46.000000000 +0000 @@ -1440,6 +1440,10 @@ wait_for_no_pipes_pending(dc, context); /* pplib is notified if disp_num changed */ dc->hwss.optimize_bandwidth(dc, context); + /* Need to do otg sync again as otg could be out of sync due to otg + * workaround applied during clock update + */ + dc_trigger_sync(dc, context); } context->stream_mask = get_stream_mask(dc, context); diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c linux-5.10.216/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c --- linux-5.10.209/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c 2024-05-02 14:23:46.000000000 +0000 @@ -1669,6 +1669,9 @@ { struct dpp *dpp = pipe_ctx->plane_res.dpp; + if (!stream) + return false; + if (dpp == NULL) return false; @@ -1691,8 +1694,8 @@ } else dpp->funcs->dpp_program_regamma_pwl(dpp, NULL, OPP_REGAMMA_BYPASS); - if (stream != NULL && stream->ctx != NULL && - stream->out_transfer_func != NULL) { + if (stream->ctx && + stream->out_transfer_func) { log_tf(stream->ctx, stream->out_transfer_func, dpp->regamma_params.hw_points_num); diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c linux-5.10.216/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c --- linux-5.10.209/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c 2024-05-02 14:23:46.000000000 +0000 @@ -641,10 +641,20 @@ if (pipe_ctx == NULL) return; - if (dc_is_hdmi_tmds_signal(pipe_ctx->stream->signal) && pipe_ctx->stream_res.stream_enc != NULL) + if (dc_is_hdmi_tmds_signal(pipe_ctx->stream->signal) && pipe_ctx->stream_res.stream_enc != NULL) { pipe_ctx->stream_res.stream_enc->funcs->set_avmute( pipe_ctx->stream_res.stream_enc, enable); + + /* Wait for two frame to make sure AV mute is sent out */ + if (enable) { + pipe_ctx->stream_res.tg->funcs->wait_for_state(pipe_ctx->stream_res.tg, CRTC_STATE_VACTIVE); + pipe_ctx->stream_res.tg->funcs->wait_for_state(pipe_ctx->stream_res.tg, CRTC_STATE_VBLANK); + pipe_ctx->stream_res.tg->funcs->wait_for_state(pipe_ctx->stream_res.tg, CRTC_STATE_VACTIVE); + pipe_ctx->stream_res.tg->funcs->wait_for_state(pipe_ctx->stream_res.tg, CRTC_STATE_VBLANK); + pipe_ctx->stream_res.tg->funcs->wait_for_state(pipe_ctx->stream_res.tg, CRTC_STATE_VACTIVE); + } + } } void dcn30_update_info_frame(struct pipe_ctx *pipe_ctx) diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c linux-5.10.216/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c --- linux-5.10.209/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c 2024-05-02 14:23:46.000000000 +0000 @@ -405,6 +405,9 @@ hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.hdcp_shared_buf; memset(hdcp_cmd, 0, sizeof(struct ta_hdcp_shared_memory)); + if (!display) + return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND; + hdcp_cmd->in_msg.hdcp2_create_session_v2.display_handle = display->index; if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0) diff -Nru linux-5.10.209/drivers/gpu/drm/amd/display/modules/inc/mod_stats.h linux-5.10.216/drivers/gpu/drm/amd/display/modules/inc/mod_stats.h --- linux-5.10.209/drivers/gpu/drm/amd/display/modules/inc/mod_stats.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/display/modules/inc/mod_stats.h 2024-05-02 14:23:46.000000000 +0000 @@ -57,10 +57,10 @@ unsigned int length); void mod_stats_update_flip(struct mod_stats *mod_stats, - unsigned long timestamp_in_ns); + unsigned long long timestamp_in_ns); void mod_stats_update_vupdate(struct mod_stats *mod_stats, - unsigned long timestamp_in_ns); + unsigned long long timestamp_in_ns); void mod_stats_update_freesync(struct mod_stats *mod_stats, unsigned int v_total_min, diff -Nru linux-5.10.209/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c linux-5.10.216/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c --- linux-5.10.209/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c 2024-05-02 14:23:46.000000000 +0000 @@ -204,7 +204,7 @@ struct pp_hwmgr *hwmgr, ATOM_Tonga_PPM_Table *atom_ppm_table) { - struct phm_ppm_table *ptr = kzalloc(sizeof(ATOM_Tonga_PPM_Table), GFP_KERNEL); + struct phm_ppm_table *ptr = kzalloc(sizeof(*ptr), GFP_KERNEL); struct phm_ppt_v1_information *pp_table_information = (struct phm_ppt_v1_information *)(hwmgr->pptable); diff -Nru linux-5.10.209/drivers/gpu/drm/bridge/nxp-ptn3460.c linux-5.10.216/drivers/gpu/drm/bridge/nxp-ptn3460.c --- linux-5.10.209/drivers/gpu/drm/bridge/nxp-ptn3460.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/bridge/nxp-ptn3460.c 2024-05-02 14:23:46.000000000 +0000 @@ -54,13 +54,13 @@ int ret; ret = i2c_master_send(ptn_bridge->client, &addr, 1); - if (ret <= 0) { + if (ret < 0) { DRM_ERROR("Failed to send i2c command, ret=%d\n", ret); return ret; } ret = i2c_master_recv(ptn_bridge->client, buf, len); - if (ret <= 0) { + if (ret < 0) { DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret); return ret; } @@ -78,7 +78,7 @@ buf[1] = val; ret = i2c_master_send(ptn_bridge->client, buf, ARRAY_SIZE(buf)); - if (ret <= 0) { + if (ret < 0) { DRM_ERROR("Failed to send i2c command, ret=%d\n", ret); return ret; } diff -Nru linux-5.10.209/drivers/gpu/drm/drm_client_modeset.c linux-5.10.216/drivers/gpu/drm/drm_client_modeset.c --- linux-5.10.209/drivers/gpu/drm/drm_client_modeset.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_client_modeset.c 2024-05-02 14:23:46.000000000 +0000 @@ -774,6 +774,7 @@ unsigned int total_modes_count = 0; struct drm_client_offset *offsets; unsigned int connector_count = 0; + /* points to modes protected by mode_config.mutex */ struct drm_display_mode **modes; struct drm_crtc **crtcs; int i, ret = 0; @@ -842,7 +843,6 @@ drm_client_pick_crtcs(client, connectors, connector_count, crtcs, modes, 0, width, height); } - mutex_unlock(&dev->mode_config.mutex); drm_client_modeset_release(client); @@ -872,6 +872,7 @@ modeset->y = offset->y; } } + mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&client->modeset_mutex); out: diff -Nru linux-5.10.209/drivers/gpu/drm/drm_file.c linux-5.10.216/drivers/gpu/drm/drm_file.c --- linux-5.10.209/drivers/gpu/drm/drm_file.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_file.c 2024-05-02 14:23:46.000000000 +0000 @@ -411,7 +411,7 @@ { struct drm_device *dev; struct drm_minor *minor; - int retcode; + int retcode = 0; int need_setup = 0; minor = drm_minor_acquire(iminor(inode)); diff -Nru linux-5.10.209/drivers/gpu/drm/drm_framebuffer.c linux-5.10.216/drivers/gpu/drm/drm_framebuffer.c --- linux-5.10.209/drivers/gpu/drm/drm_framebuffer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_framebuffer.c 2024-05-02 14:23:46.000000000 +0000 @@ -570,7 +570,7 @@ struct drm_mode_fb_cmd2 *r = data; struct drm_framebuffer *fb; unsigned int i; - int ret; + int ret = 0; if (!drm_core_check_feature(dev, DRIVER_MODESET)) return -EINVAL; diff -Nru linux-5.10.209/drivers/gpu/drm/drm_mipi_dsi.c linux-5.10.216/drivers/gpu/drm/drm_mipi_dsi.c --- linux-5.10.209/drivers/gpu/drm/drm_mipi_dsi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_mipi_dsi.c 2024-05-02 14:23:46.000000000 +0000 @@ -300,7 +300,8 @@ { struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); - mipi_dsi_detach(dsi); + if (dsi->attached) + mipi_dsi_detach(dsi); mipi_dsi_device_unregister(dsi); return 0; @@ -323,11 +324,18 @@ int mipi_dsi_attach(struct mipi_dsi_device *dsi) { const struct mipi_dsi_host_ops *ops = dsi->host->ops; + int ret; if (!ops || !ops->attach) return -ENOSYS; - return ops->attach(dsi->host, dsi); + ret = ops->attach(dsi->host, dsi); + if (ret) + return ret; + + dsi->attached = true; + + return 0; } EXPORT_SYMBOL(mipi_dsi_attach); @@ -339,9 +347,14 @@ { const struct mipi_dsi_host_ops *ops = dsi->host->ops; + if (WARN_ON(!dsi->attached)) + return -EINVAL; + if (!ops || !ops->detach) return -ENOSYS; + dsi->attached = false; + return ops->detach(dsi->host, dsi); } EXPORT_SYMBOL(mipi_dsi_detach); diff -Nru linux-5.10.209/drivers/gpu/drm/drm_panel.c linux-5.10.216/drivers/gpu/drm/drm_panel.c --- linux-5.10.209/drivers/gpu/drm/drm_panel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_panel.c 2024-05-02 14:23:46.000000000 +0000 @@ -207,19 +207,24 @@ * The modes probed from the panel are automatically added to the connector * that the panel is attached to. * - * Return: The number of modes available from the panel on success or a - * negative error code on failure. + * Return: The number of modes available from the panel on success, or 0 on + * failure (no modes). */ int drm_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector) { if (!panel) - return -EINVAL; + return 0; - if (panel->funcs && panel->funcs->get_modes) - return panel->funcs->get_modes(panel, connector); + if (panel->funcs && panel->funcs->get_modes) { + int num; - return -EOPNOTSUPP; + num = panel->funcs->get_modes(panel, connector); + if (num > 0) + return num; + } + + return 0; } EXPORT_SYMBOL(drm_panel_get_modes); diff -Nru linux-5.10.209/drivers/gpu/drm/drm_plane.c linux-5.10.216/drivers/gpu/drm/drm_plane.c --- linux-5.10.209/drivers/gpu/drm/drm_plane.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_plane.c 2024-05-02 14:23:46.000000000 +0000 @@ -1213,6 +1213,7 @@ out: if (fb) drm_framebuffer_put(fb); + fb = NULL; if (plane->old_fb) drm_framebuffer_put(plane->old_fb); plane->old_fb = NULL; diff -Nru linux-5.10.209/drivers/gpu/drm/drm_syncobj.c linux-5.10.216/drivers/gpu/drm/drm_syncobj.c --- linux-5.10.209/drivers/gpu/drm/drm_syncobj.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/drm_syncobj.c 2024-05-02 14:23:46.000000000 +0000 @@ -387,6 +387,15 @@ if (!syncobj) return -ENOENT; + /* Waiting for userspace with locks help is illegal cause that can + * trivial deadlock with page faults for example. Make lockdep complain + * about it early on. + */ + if (flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT) { + might_sleep(); + lockdep_assert_none_held_once(); + } + *fence = drm_syncobj_fence_get(syncobj); if (*fence) { @@ -951,6 +960,10 @@ uint64_t *points; uint32_t signaled_count, i; + if (flags & (DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT | + DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE)) + lockdep_assert_none_held_once(); + points = kmalloc_array(count, sizeof(*points), GFP_KERNEL); if (points == NULL) return -ENOMEM; @@ -1017,7 +1030,8 @@ * fallthough and try a 0 timeout wait! */ - if (flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT) { + if (flags & (DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT | + DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE)) { for (i = 0; i < count; ++i) drm_syncobj_fence_add_wait(syncobjs[i], &entries[i]); } diff -Nru linux-5.10.209/drivers/gpu/drm/etnaviv/etnaviv_drv.c linux-5.10.216/drivers/gpu/drm/etnaviv/etnaviv_drv.c --- linux-5.10.209/drivers/gpu/drm/etnaviv/etnaviv_drv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/etnaviv/etnaviv_drv.c 2024-05-02 14:23:46.000000000 +0000 @@ -511,7 +511,7 @@ .desc = "etnaviv DRM", .date = "20151214", .major = 1, - .minor = 3, + .minor = 4, }; /* diff -Nru linux-5.10.209/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c linux-5.10.216/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c --- linux-5.10.209/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c 2024-05-02 14:23:46.000000000 +0000 @@ -73,6 +73,9 @@ bool etnaviv_fill_identity_from_hwdb(struct etnaviv_gpu *gpu) { struct etnaviv_chip_identity *ident = &gpu->identity; + const u32 product_id = ident->product_id; + const u32 customer_id = ident->customer_id; + const u32 eco_id = ident->eco_id; int i; for (i = 0; i < ARRAY_SIZE(etnaviv_chip_identities); i++) { @@ -86,6 +89,12 @@ etnaviv_chip_identities[i].eco_id == ~0U)) { memcpy(ident, &etnaviv_chip_identities[i], sizeof(*ident)); + + /* Restore some id values as ~0U aka 'don't care' might been used. */ + ident->product_id = product_id; + ident->customer_id = customer_id; + ident->eco_id = eco_id; + return true; } } diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos5433_drm_decon.c linux-5.10.216/drivers/gpu/drm/exynos/exynos5433_drm_decon.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos5433_drm_decon.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos5433_drm_decon.c 2024-05-02 14:23:46.000000000 +0000 @@ -318,9 +318,9 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win, struct drm_framebuffer *fb) { - struct exynos_drm_plane plane = ctx->planes[win]; + struct exynos_drm_plane *plane = &ctx->planes[win]; struct exynos_drm_plane_state *state = - to_exynos_plane_state(plane.base.state); + to_exynos_plane_state(plane->base.state); unsigned int alpha = state->base.alpha; unsigned int pixel_alpha; unsigned long val; diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_drv.c linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_drv.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_drv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_drv.c 2024-05-02 14:23:46.000000000 +0000 @@ -344,6 +344,7 @@ drm_mode_config_cleanup(drm); exynos_drm_cleanup_dma(drm); kfree(private); + dev_set_drvdata(dev, NULL); err_free_drm: drm_dev_put(drm); @@ -358,6 +359,7 @@ exynos_drm_fbdev_fini(drm); drm_kms_helper_poll_fini(drm); + drm_atomic_helper_shutdown(drm); component_unbind_all(drm->dev, drm); drm_mode_config_cleanup(drm); @@ -395,9 +397,18 @@ return 0; } +static void exynos_drm_platform_shutdown(struct platform_device *pdev) +{ + struct drm_device *drm = platform_get_drvdata(pdev); + + if (drm) + drm_atomic_helper_shutdown(drm); +} + static struct platform_driver exynos_drm_platform_driver = { .probe = exynos_drm_platform_probe, .remove = exynos_drm_platform_remove, + .shutdown = exynos_drm_platform_shutdown, .driver = { .name = "exynos-drm", .pm = &exynos_drm_pm_ops, diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_fimd.c linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_fimd.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_fimd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_fimd.c 2024-05-02 14:23:46.000000000 +0000 @@ -637,9 +637,9 @@ static void fimd_win_set_pixfmt(struct fimd_context *ctx, unsigned int win, struct drm_framebuffer *fb, int width) { - struct exynos_drm_plane plane = ctx->planes[win]; + struct exynos_drm_plane *plane = &ctx->planes[win]; struct exynos_drm_plane_state *state = - to_exynos_plane_state(plane.base.state); + to_exynos_plane_state(plane->base.state); uint32_t pixel_format = fb->format->format; unsigned int alpha = state->base.alpha; u32 val = WINCONx_ENWIN; diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_gsc.c linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_gsc.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_gsc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_gsc.c 2024-05-02 14:23:46.000000000 +0000 @@ -1344,7 +1344,7 @@ for (i = 0; i < ctx->num_clocks; i++) { ret = clk_prepare_enable(ctx->clocks[i]); if (ret) { - while (--i > 0) + while (--i >= 0) clk_disable_unprepare(ctx->clocks[i]); return ret; } diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_vidi.c linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_vidi.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos_drm_vidi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos_drm_vidi.c 2024-05-02 14:23:46.000000000 +0000 @@ -315,14 +315,14 @@ */ if (!ctx->raw_edid) { DRM_DEV_DEBUG_KMS(ctx->dev, "raw_edid is null.\n"); - return -EFAULT; + return 0; } edid_len = (1 + ctx->raw_edid->extensions) * EDID_LENGTH; edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL); if (!edid) { DRM_DEV_DEBUG_KMS(ctx->dev, "failed to allocate edid\n"); - return -ENOMEM; + return 0; } drm_connector_update_edid_property(connector, edid); diff -Nru linux-5.10.209/drivers/gpu/drm/exynos/exynos_hdmi.c linux-5.10.216/drivers/gpu/drm/exynos/exynos_hdmi.c --- linux-5.10.209/drivers/gpu/drm/exynos/exynos_hdmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/exynos/exynos_hdmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -878,11 +878,11 @@ int ret; if (!hdata->ddc_adpt) - return -ENODEV; + return 0; edid = drm_get_edid(connector, hdata->ddc_adpt); if (!edid) - return -ENODEV; + return 0; hdata->dvi_mode = !drm_detect_hdmi_monitor(edid); DRM_DEV_DEBUG_KMS(hdata->dev, "%s : width[%d] x height[%d]\n", diff -Nru linux-5.10.209/drivers/gpu/drm/i915/gt/intel_engine_pm.c linux-5.10.216/drivers/gpu/drm/i915/gt/intel_engine_pm.c --- linux-5.10.209/drivers/gpu/drm/i915/gt/intel_engine_pm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/i915/gt/intel_engine_pm.c 2024-05-02 14:23:46.000000000 +0000 @@ -250,9 +250,6 @@ intel_engine_park_heartbeat(engine); intel_breadcrumbs_park(engine->breadcrumbs); - /* Must be reset upon idling, or we may miss the busy wakeup. */ - GEM_BUG_ON(engine->execlists.queue_priority_hint != INT_MIN); - if (engine->park) engine->park(engine); diff -Nru linux-5.10.209/drivers/gpu/drm/i915/gt/intel_lrc.c linux-5.10.216/drivers/gpu/drm/i915/gt/intel_lrc.c --- linux-5.10.209/drivers/gpu/drm/i915/gt/intel_lrc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/i915/gt/intel_lrc.c 2024-05-02 14:23:46.000000000 +0000 @@ -5032,6 +5032,9 @@ { cancel_timer(&engine->execlists.timer); cancel_timer(&engine->execlists.preempt); + + /* Reset upon idling, or we may delay the busy wakeup. */ + WRITE_ONCE(engine->execlists.queue_priority_hint, INT_MIN); } void intel_execlists_set_default_submission(struct intel_engine_cs *engine) diff -Nru linux-5.10.209/drivers/gpu/drm/imx/parallel-display.c linux-5.10.216/drivers/gpu/drm/imx/parallel-display.c --- linux-5.10.209/drivers/gpu/drm/imx/parallel-display.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/imx/parallel-display.c 2024-05-02 14:23:46.000000000 +0000 @@ -65,14 +65,14 @@ int ret; if (!mode) - return -EINVAL; + return 0; ret = of_get_drm_display_mode(np, &imxpd->mode, &imxpd->bus_flags, OF_USE_NATIVE_MODE); if (ret) { drm_mode_destroy(connector->dev, mode); - return ret; + return 0; } drm_mode_copy(mode, &imxpd->mode); diff -Nru linux-5.10.209/drivers/gpu/drm/lima/lima_gem.c linux-5.10.216/drivers/gpu/drm/lima/lima_gem.c --- linux-5.10.209/drivers/gpu/drm/lima/lima_gem.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/lima/lima_gem.c 2024-05-02 14:23:46.000000000 +0000 @@ -74,29 +74,34 @@ } else { bo->base.sgt = kmalloc(sizeof(*bo->base.sgt), GFP_KERNEL); if (!bo->base.sgt) { - sg_free_table(&sgt); - return -ENOMEM; + ret = -ENOMEM; + goto err_out0; } } ret = dma_map_sgtable(dev, &sgt, DMA_BIDIRECTIONAL, 0); - if (ret) { - sg_free_table(&sgt); - kfree(bo->base.sgt); - bo->base.sgt = NULL; - return ret; - } + if (ret) + goto err_out1; *bo->base.sgt = sgt; if (vm) { ret = lima_vm_map_bo(vm, bo, old_size >> PAGE_SHIFT); if (ret) - return ret; + goto err_out2; } bo->heap_size = new_size; return 0; + +err_out2: + dma_unmap_sgtable(dev, &sgt, DMA_BIDIRECTIONAL, 0); +err_out1: + kfree(bo->base.sgt); + bo->base.sgt = NULL; +err_out0: + sg_free_table(&sgt); + return ret; } int lima_gem_create_handle(struct drm_device *dev, struct drm_file *file, diff -Nru linux-5.10.209/drivers/gpu/drm/mediatek/mtk_drm_crtc.c linux-5.10.216/drivers/gpu/drm/mediatek/mtk_drm_crtc.c --- linux-5.10.209/drivers/gpu/drm/mediatek/mtk_drm_crtc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/mediatek/mtk_drm_crtc.c 2024-05-02 14:23:46.000000000 +0000 @@ -84,11 +84,13 @@ struct drm_crtc *crtc = &mtk_crtc->base; unsigned long flags; - spin_lock_irqsave(&crtc->dev->event_lock, flags); - drm_crtc_send_vblank_event(crtc, mtk_crtc->event); - drm_crtc_vblank_put(crtc); - mtk_crtc->event = NULL; - spin_unlock_irqrestore(&crtc->dev->event_lock, flags); + if (mtk_crtc->event) { + spin_lock_irqsave(&crtc->dev->event_lock, flags); + drm_crtc_send_vblank_event(crtc, mtk_crtc->event); + drm_crtc_vblank_put(crtc); + mtk_crtc->event = NULL; + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); + } } static void mtk_drm_finish_page_flip(struct mtk_drm_crtc *mtk_crtc) diff -Nru linux-5.10.209/drivers/gpu/drm/mediatek/mtk_dsi.c linux-5.10.216/drivers/gpu/drm/mediatek/mtk_dsi.c --- linux-5.10.209/drivers/gpu/drm/mediatek/mtk_dsi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/mediatek/mtk_dsi.c 2024-05-02 14:23:46.000000000 +0000 @@ -68,8 +68,8 @@ #define DSI_PS_WC 0x3fff #define DSI_PS_SEL (3 << 16) #define PACKED_PS_16BIT_RGB565 (0 << 16) -#define LOOSELY_PS_18BIT_RGB666 (1 << 16) -#define PACKED_PS_18BIT_RGB666 (2 << 16) +#define PACKED_PS_18BIT_RGB666 (1 << 16) +#define LOOSELY_PS_24BIT_RGB666 (2 << 16) #define PACKED_PS_24BIT_RGB888 (3 << 16) #define DSI_VSA_NL 0x20 @@ -365,10 +365,10 @@ ps_bpp_mode |= PACKED_PS_24BIT_RGB888; break; case MIPI_DSI_FMT_RGB666: - ps_bpp_mode |= PACKED_PS_18BIT_RGB666; + ps_bpp_mode |= LOOSELY_PS_24BIT_RGB666; break; case MIPI_DSI_FMT_RGB666_PACKED: - ps_bpp_mode |= LOOSELY_PS_18BIT_RGB666; + ps_bpp_mode |= PACKED_PS_18BIT_RGB666; break; case MIPI_DSI_FMT_RGB565: ps_bpp_mode |= PACKED_PS_16BIT_RGB565; @@ -419,7 +419,7 @@ dsi_tmp_buf_bpp = 3; break; case MIPI_DSI_FMT_RGB666: - tmp_reg = LOOSELY_PS_18BIT_RGB666; + tmp_reg = LOOSELY_PS_24BIT_RGB666; dsi_tmp_buf_bpp = 3; break; case MIPI_DSI_FMT_RGB666_PACKED: diff -Nru linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c --- linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c 2024-05-02 14:23:46.000000000 +0000 @@ -45,6 +45,9 @@ (p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \ ##__VA_ARGS__) +#define DPU_ERROR_ENC_RATELIMITED(e, fmt, ...) DPU_ERROR_RATELIMITED("enc%d " fmt,\ + (e) ? (e)->base.base.id : -1, ##__VA_ARGS__) + /* * Two to anticipate panels that can do cmd/vid dynamic switching * plan is to create all possible physical encoder types, and switch between @@ -2135,7 +2138,7 @@ return; } - DPU_ERROR_ENC(dpu_enc, "frame done timeout\n"); + DPU_ERROR_ENC_RATELIMITED(dpu_enc, "frame done timeout\n"); event = DPU_ENCODER_FRAME_EVENT_ERROR; trace_dpu_enc_frame_done_timeout(DRMID(drm_enc), event); diff -Nru linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c --- linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c 2024-05-02 14:23:46.000000000 +0000 @@ -265,12 +265,14 @@ mode.htotal >>= 1; mode.hsync_start >>= 1; mode.hsync_end >>= 1; + mode.hskew >>= 1; DPU_DEBUG_VIDENC(phys_enc, - "split_role %d, halve horizontal %d %d %d %d\n", + "split_role %d, halve horizontal %d %d %d %d %d\n", phys_enc->split_role, mode.hdisplay, mode.htotal, - mode.hsync_start, mode.hsync_end); + mode.hsync_start, mode.hsync_end, + mode.hskew); } drm_mode_to_intf_timing_params(phys_enc, &mode, &timing_params); diff -Nru linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h --- linux-5.10.209/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h 2024-05-02 14:23:46.000000000 +0000 @@ -52,6 +52,7 @@ } while (0) #define DPU_ERROR(fmt, ...) pr_err("[dpu error]" fmt, ##__VA_ARGS__) +#define DPU_ERROR_RATELIMITED(fmt, ...) pr_err_ratelimited("[dpu error]" fmt, ##__VA_ARGS__) /** * ktime_compare_safe - compare two ktime structures diff -Nru linux-5.10.209/drivers/gpu/drm/msm/dp/dp_link.c linux-5.10.216/drivers/gpu/drm/msm/dp/dp_link.c --- linux-5.10.209/drivers/gpu/drm/msm/dp/dp_link.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/dp/dp_link.c 2024-05-02 14:23:46.000000000 +0000 @@ -7,6 +7,7 @@ #include +#include "dp_reg.h" #include "dp_link.h" #include "dp_panel.h" @@ -1078,7 +1079,7 @@ int dp_link_get_colorimetry_config(struct dp_link *dp_link) { - u32 cc; + u32 cc = DP_MISC0_COLORIMERY_CFG_LEGACY_RGB; struct dp_link_private *link; if (!dp_link) { @@ -1092,10 +1093,11 @@ * Unless a video pattern CTS test is ongoing, use RGB_VESA * Only RGB_VESA and RGB_CEA supported for now */ - if (dp_link_is_video_pattern_requested(link)) - cc = link->dp_link.test_video.test_dyn_range; - else - cc = DP_TEST_DYNAMIC_RANGE_VESA; + if (dp_link_is_video_pattern_requested(link)) { + if (link->dp_link.test_video.test_dyn_range & + DP_TEST_DYNAMIC_RANGE_CEA) + cc = DP_MISC0_COLORIMERY_CFG_CEA_RGB; + } return cc; } diff -Nru linux-5.10.209/drivers/gpu/drm/msm/dp/dp_reg.h linux-5.10.216/drivers/gpu/drm/msm/dp/dp_reg.h --- linux-5.10.209/drivers/gpu/drm/msm/dp/dp_reg.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/dp/dp_reg.h 2024-05-02 14:23:46.000000000 +0000 @@ -129,6 +129,9 @@ #define DP_MISC0_COLORIMETRY_CFG_SHIFT (0x00000001) #define DP_MISC0_TEST_BITS_DEPTH_SHIFT (0x00000005) +#define DP_MISC0_COLORIMERY_CFG_LEGACY_RGB (0) +#define DP_MISC0_COLORIMERY_CFG_CEA_RGB (0x04) + #define REG_DP_VALID_BOUNDARY (0x00000030) #define REG_DP_VALID_BOUNDARY_2 (0x00000034) diff -Nru linux-5.10.209/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c linux-5.10.216/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c --- linux-5.10.209/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c 2024-05-02 14:23:46.000000000 +0000 @@ -710,6 +710,10 @@ goto fail; } + ret = devm_pm_runtime_enable(&pdev->dev); + if (ret) + return ret; + /* PLL init will call into clk_register which requires * register access, so we need to enable power and ahb clock. */ diff -Nru linux-5.10.209/drivers/gpu/drm/nouveau/nouveau_bios.c linux-5.10.216/drivers/gpu/drm/nouveau/nouveau_bios.c --- linux-5.10.209/drivers/gpu/drm/nouveau/nouveau_bios.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/nouveau/nouveau_bios.c 2024-05-02 14:23:46.000000000 +0000 @@ -23,6 +23,7 @@ */ #include "nouveau_drv.h" +#include "nouveau_bios.h" #include "nouveau_reg.h" #include "dispnv04/hw.h" #include "nouveau_encoder.h" @@ -1672,7 +1673,7 @@ */ if (nv_match_device(dev, 0x0201, 0x1462, 0x8851)) { if (*conn == 0xf2005014 && *conf == 0xffffffff) { - fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 1, 1, 1); + fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 1, 1, DCB_OUTPUT_B); return false; } } @@ -1758,26 +1759,26 @@ #ifdef __powerpc__ /* Apple iMac G4 NV17 */ if (of_machine_is_compatible("PowerMac4,5")) { - fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 0, all_heads, 1); - fabricate_dcb_output(dcb, DCB_OUTPUT_ANALOG, 1, all_heads, 2); + fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, 0, all_heads, DCB_OUTPUT_B); + fabricate_dcb_output(dcb, DCB_OUTPUT_ANALOG, 1, all_heads, DCB_OUTPUT_C); return; } #endif /* Make up some sane defaults */ fabricate_dcb_output(dcb, DCB_OUTPUT_ANALOG, - bios->legacy.i2c_indices.crt, 1, 1); + bios->legacy.i2c_indices.crt, 1, DCB_OUTPUT_B); if (nv04_tv_identify(dev, bios->legacy.i2c_indices.tv) >= 0) fabricate_dcb_output(dcb, DCB_OUTPUT_TV, bios->legacy.i2c_indices.tv, - all_heads, 0); + all_heads, DCB_OUTPUT_A); else if (bios->tmds.output0_script_ptr || bios->tmds.output1_script_ptr) fabricate_dcb_output(dcb, DCB_OUTPUT_TMDS, bios->legacy.i2c_indices.panel, - all_heads, 1); + all_heads, DCB_OUTPUT_B); } static int diff -Nru linux-5.10.209/drivers/gpu/drm/nouveau/nouveau_vmm.c linux-5.10.216/drivers/gpu/drm/nouveau/nouveau_vmm.c --- linux-5.10.209/drivers/gpu/drm/nouveau/nouveau_vmm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/nouveau/nouveau_vmm.c 2024-05-02 14:23:46.000000000 +0000 @@ -108,6 +108,9 @@ } else { ret = nvif_vmm_get(&vmm->vmm, PTES, false, mem->mem.page, 0, mem->mem.size, &tmp); + if (ret) + goto done; + vma->addr = tmp.addr; } diff -Nru linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c --- linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c 2024-05-02 14:23:46.000000000 +0000 @@ -154,11 +154,17 @@ return (void *)fw; } +static void +shadow_fw_release(void *fw) +{ + release_firmware(fw); +} + static const struct nvbios_source shadow_fw = { .name = "firmware", .init = shadow_fw_init, - .fini = (void(*)(void *))release_firmware, + .fini = shadow_fw_release, .read = shadow_fw_read, .rw = false, }; diff -Nru linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c --- linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c 2024-05-02 14:23:46.000000000 +0000 @@ -66,11 +66,16 @@ return ERR_PTR(-EINVAL); } +static void of_fini(void *p) +{ + kfree(p); +} + const struct nvbios_source nvbios_of = { .name = "OpenFirmware", .init = of_init, - .fini = (void(*)(void *))kfree, + .fini = of_fini, .read = of_read, .size = of_size, .rw = false, diff -Nru linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c --- linux-5.10.209/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c 2024-05-02 14:23:46.000000000 +0000 @@ -221,8 +221,11 @@ void __iomem *map = NULL; /* Already mapped? */ - if (refcount_inc_not_zero(&iobj->maps)) + if (refcount_inc_not_zero(&iobj->maps)) { + /* read barrier match the wmb on refcount set */ + smp_rmb(); return iobj->map; + } /* Take the lock, and re-check that another thread hasn't * already mapped the object in the meantime. @@ -249,6 +252,8 @@ iobj->base.memory.ptrs = &nv50_instobj_fast; else iobj->base.memory.ptrs = &nv50_instobj_slow; + /* barrier to ensure the ptrs are written before refcount is set */ + smp_wmb(); refcount_set(&iobj->maps, 1); } diff -Nru linux-5.10.209/drivers/gpu/drm/panel/panel-simple.c linux-5.10.216/drivers/gpu/drm/panel/panel-simple.c --- linux-5.10.209/drivers/gpu/drm/panel/panel-simple.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/panel/panel-simple.c 2024-05-02 14:23:46.000000000 +0000 @@ -3635,6 +3635,7 @@ }, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, .connector_type = DRM_MODE_CONNECTOR_LVDS, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, }; static const struct panel_desc tianma_tm070jvhg33 = { @@ -3647,6 +3648,7 @@ }, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, .connector_type = DRM_MODE_CONNECTOR_LVDS, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, }; static const struct display_timing tianma_tm070rvhg71_timing = { diff -Nru linux-5.10.209/drivers/gpu/drm/panel/panel-visionox-rm69299.c linux-5.10.216/drivers/gpu/drm/panel/panel-visionox-rm69299.c --- linux-5.10.209/drivers/gpu/drm/panel/panel-visionox-rm69299.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/panel/panel-visionox-rm69299.c 2024-05-02 14:23:46.000000000 +0000 @@ -261,8 +261,6 @@ struct visionox_rm69299 *ctx = mipi_dsi_get_drvdata(dsi); mipi_dsi_detach(ctx->dsi); - mipi_dsi_device_unregister(ctx->dsi); - drm_panel_remove(&ctx->panel); return 0; } diff -Nru linux-5.10.209/drivers/gpu/drm/radeon/ni.c linux-5.10.216/drivers/gpu/drm/radeon/ni.c --- linux-5.10.209/drivers/gpu/drm/radeon/ni.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/radeon/ni.c 2024-05-02 14:23:46.000000000 +0000 @@ -826,7 +826,7 @@ err = 0; } else if (rdev->smc_fw->size != smc_req_size) { pr_err("ni_mc: Bogus length %zu in firmware \"%s\"\n", - rdev->mc_fw->size, fw_name); + rdev->smc_fw->size, fw_name); err = -EINVAL; } } diff -Nru linux-5.10.209/drivers/gpu/drm/rockchip/inno_hdmi.c linux-5.10.216/drivers/gpu/drm/rockchip/inno_hdmi.c --- linux-5.10.209/drivers/gpu/drm/rockchip/inno_hdmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/rockchip/inno_hdmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -402,7 +402,7 @@ hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_L, value & 0xFF); hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_H, (value >> 8) & 0xFF); - value = mode->hsync_start - mode->hdisplay; + value = mode->htotal - mode->hsync_start; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_L, value & 0xFF); hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_H, (value >> 8) & 0xFF); @@ -417,7 +417,7 @@ value = mode->vtotal - mode->vdisplay; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VBLANK, value & 0xFF); - value = mode->vsync_start - mode->vdisplay; + value = mode->vtotal - mode->vsync_start; hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDELAY, value & 0xFF); value = mode->vsync_end - mode->vsync_start; diff -Nru linux-5.10.209/drivers/gpu/drm/rockchip/rockchip_lvds.c linux-5.10.216/drivers/gpu/drm/rockchip/rockchip_lvds.c --- linux-5.10.209/drivers/gpu/drm/rockchip/rockchip_lvds.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/rockchip/rockchip_lvds.c 2024-05-02 14:23:46.000000000 +0000 @@ -572,8 +572,7 @@ ret = -EINVAL; goto err_put_port; } else if (ret) { - DRM_DEV_ERROR(dev, "failed to find panel and bridge node\n"); - ret = -EPROBE_DEFER; + dev_err_probe(dev, ret, "failed to find panel and bridge node\n"); goto err_put_port; } if (lvds->panel) diff -Nru linux-5.10.209/drivers/gpu/drm/tegra/dsi.c linux-5.10.216/drivers/gpu/drm/tegra/dsi.c --- linux-5.10.209/drivers/gpu/drm/tegra/dsi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/tegra/dsi.c 2024-05-02 14:23:46.000000000 +0000 @@ -1534,9 +1534,11 @@ np = of_parse_phandle(dsi->dev->of_node, "nvidia,ganged-mode", 0); if (np) { struct platform_device *gangster = of_find_device_by_node(np); + of_node_put(np); + if (!gangster) + return -EPROBE_DEFER; dsi->slave = platform_get_drvdata(gangster); - of_node_put(np); if (!dsi->slave) { put_device(&gangster->dev); @@ -1584,48 +1586,58 @@ if (!pdev->dev.pm_domain) { dsi->rst = devm_reset_control_get(&pdev->dev, "dsi"); - if (IS_ERR(dsi->rst)) - return PTR_ERR(dsi->rst); + if (IS_ERR(dsi->rst)) { + err = PTR_ERR(dsi->rst); + goto remove; + } } dsi->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(dsi->clk)) { - dev_err(&pdev->dev, "cannot get DSI clock\n"); - return PTR_ERR(dsi->clk); + err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk), + "cannot get DSI clock\n"); + goto remove; } dsi->clk_lp = devm_clk_get(&pdev->dev, "lp"); if (IS_ERR(dsi->clk_lp)) { - dev_err(&pdev->dev, "cannot get low-power clock\n"); - return PTR_ERR(dsi->clk_lp); + err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_lp), + "cannot get low-power clock\n"); + goto remove; } dsi->clk_parent = devm_clk_get(&pdev->dev, "parent"); if (IS_ERR(dsi->clk_parent)) { - dev_err(&pdev->dev, "cannot get parent clock\n"); - return PTR_ERR(dsi->clk_parent); + err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_parent), + "cannot get parent clock\n"); + goto remove; } dsi->vdd = devm_regulator_get(&pdev->dev, "avdd-dsi-csi"); if (IS_ERR(dsi->vdd)) { - dev_err(&pdev->dev, "cannot get VDD supply\n"); - return PTR_ERR(dsi->vdd); + err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->vdd), + "cannot get VDD supply\n"); + goto remove; } err = tegra_dsi_setup_clocks(dsi); if (err < 0) { dev_err(&pdev->dev, "cannot setup clocks\n"); - return err; + goto remove; } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); dsi->regs = devm_ioremap_resource(&pdev->dev, regs); - if (IS_ERR(dsi->regs)) - return PTR_ERR(dsi->regs); + if (IS_ERR(dsi->regs)) { + err = PTR_ERR(dsi->regs); + goto remove; + } dsi->mipi = tegra_mipi_request(&pdev->dev, pdev->dev.of_node); - if (IS_ERR(dsi->mipi)) - return PTR_ERR(dsi->mipi); + if (IS_ERR(dsi->mipi)) { + err = PTR_ERR(dsi->mipi); + goto remove; + } dsi->host.ops = &tegra_dsi_host_ops; dsi->host.dev = &pdev->dev; @@ -1653,9 +1665,12 @@ return 0; unregister: + pm_runtime_disable(&pdev->dev); mipi_dsi_host_unregister(&dsi->host); mipi_free: tegra_mipi_free(dsi->mipi); +remove: + tegra_output_remove(&dsi->output); return err; } diff -Nru linux-5.10.209/drivers/gpu/drm/tegra/fb.c linux-5.10.216/drivers/gpu/drm/tegra/fb.c --- linux-5.10.209/drivers/gpu/drm/tegra/fb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/tegra/fb.c 2024-05-02 14:23:46.000000000 +0000 @@ -155,6 +155,7 @@ if (gem->size < size) { err = -EINVAL; + drm_gem_object_put(gem); goto unreference; } diff -Nru linux-5.10.209/drivers/gpu/drm/tegra/output.c linux-5.10.216/drivers/gpu/drm/tegra/output.c --- linux-5.10.209/drivers/gpu/drm/tegra/output.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/tegra/output.c 2024-05-02 14:23:46.000000000 +0000 @@ -139,8 +139,10 @@ GPIOD_IN, "HDMI hotplug detect"); if (IS_ERR(output->hpd_gpio)) { - if (PTR_ERR(output->hpd_gpio) != -ENOENT) - return PTR_ERR(output->hpd_gpio); + if (PTR_ERR(output->hpd_gpio) != -ENOENT) { + err = PTR_ERR(output->hpd_gpio); + goto put_i2c; + } output->hpd_gpio = NULL; } @@ -149,7 +151,7 @@ err = gpiod_to_irq(output->hpd_gpio); if (err < 0) { dev_err(output->dev, "gpiod_to_irq(): %d\n", err); - return err; + goto put_i2c; } output->hpd_irq = err; @@ -162,7 +164,7 @@ if (err < 0) { dev_err(output->dev, "failed to request IRQ#%u: %d\n", output->hpd_irq, err); - return err; + goto put_i2c; } output->connector.polled = DRM_CONNECTOR_POLL_HPD; @@ -176,6 +178,12 @@ } return 0; + +put_i2c: + if (output->ddc) + i2c_put_adapter(output->ddc); + + return err; } void tegra_output_remove(struct tegra_output *output) diff -Nru linux-5.10.209/drivers/gpu/drm/tidss/tidss_crtc.c linux-5.10.216/drivers/gpu/drm/tidss/tidss_crtc.c --- linux-5.10.209/drivers/gpu/drm/tidss/tidss_crtc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/tidss/tidss_crtc.c 2024-05-02 14:23:46.000000000 +0000 @@ -168,13 +168,13 @@ struct tidss_device *tidss = to_tidss(ddev); unsigned long flags; - dev_dbg(ddev->dev, - "%s: %s enabled %d, needs modeset %d, event %p\n", __func__, - crtc->name, drm_atomic_crtc_needs_modeset(crtc->state), - crtc->state->enable, crtc->state->event); + dev_dbg(ddev->dev, "%s: %s is %sactive, %s modeset, event %p\n", + __func__, crtc->name, crtc->state->active ? "" : "not ", + drm_atomic_crtc_needs_modeset(crtc->state) ? "needs" : "doesn't need", + crtc->state->event); /* There is nothing to do if CRTC is not going to be enabled. */ - if (!crtc->state->enable) + if (!crtc->state->active) return; /* diff -Nru linux-5.10.209/drivers/gpu/drm/tidss/tidss_plane.c linux-5.10.216/drivers/gpu/drm/tidss/tidss_plane.c --- linux-5.10.209/drivers/gpu/drm/tidss/tidss_plane.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/tidss/tidss_plane.c 2024-05-02 14:23:46.000000000 +0000 @@ -202,7 +202,7 @@ drm_plane_helper_add(&tplane->plane, &tidss_plane_helper_funcs); - drm_plane_create_zpos_property(&tplane->plane, hw_plane_id, 0, + drm_plane_create_zpos_property(&tplane->plane, tidss->num_planes, 0, num_planes - 1); ret = drm_plane_create_color_properties(&tplane->plane, diff -Nru linux-5.10.209/drivers/gpu/drm/ttm/ttm_memory.c linux-5.10.216/drivers/gpu/drm/ttm/ttm_memory.c --- linux-5.10.209/drivers/gpu/drm/ttm/ttm_memory.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/ttm/ttm_memory.c 2024-05-02 14:23:46.000000000 +0000 @@ -431,8 +431,10 @@ si_meminfo(&si); + spin_lock(&glob->lock); /* set it as 0 by default to keep original behavior of OOM */ glob->lower_mem_limit = 0; + spin_unlock(&glob->lock); ret = ttm_mem_init_kernel_zone(glob, &si); if (unlikely(ret != 0)) diff -Nru linux-5.10.209/drivers/gpu/drm/vc4/vc4_hdmi.c linux-5.10.216/drivers/gpu/drm/vc4/vc4_hdmi.c --- linux-5.10.209/drivers/gpu/drm/vc4/vc4_hdmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vc4/vc4_hdmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -197,7 +197,7 @@ edid = drm_get_edid(connector, vc4_hdmi->ddc); cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid); if (!edid) - return -ENODEV; + return 0; vc4_encoder->hdmi_monitor = drm_detect_hdmi_monitor(edid); diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_binding.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_binding.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_binding.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_binding.c 2024-05-02 14:23:46.000000000 +0000 @@ -713,7 +713,7 @@ * without checking which bindings actually need to be emitted * * @cbs: Pointer to the context's struct vmw_ctx_binding_state - * @bi: Pointer to where the binding info array is stored in @cbs + * @biv: Pointer to where the binding info array is stored in @cbs * @max_num: Maximum number of entries in the @bi array. * * Scans the @bi array for bindings and builds a buffer of view id data. @@ -723,11 +723,9 @@ * contains the command data. */ static void vmw_collect_view_ids(struct vmw_ctx_binding_state *cbs, - const struct vmw_ctx_bindinfo *bi, + const struct vmw_ctx_bindinfo_view *biv, u32 max_num) { - const struct vmw_ctx_bindinfo_view *biv = - container_of(bi, struct vmw_ctx_bindinfo_view, bi); unsigned long i; cbs->bind_cmd_count = 0; @@ -835,7 +833,7 @@ */ static int vmw_emit_set_rt(struct vmw_ctx_binding_state *cbs) { - const struct vmw_ctx_bindinfo *loc = &cbs->render_targets[0].bi; + const struct vmw_ctx_bindinfo_view *loc = &cbs->render_targets[0]; struct { SVGA3dCmdHeader header; SVGA3dCmdDXSetRenderTargets body; @@ -871,7 +869,7 @@ * without checking which bindings actually need to be emitted * * @cbs: Pointer to the context's struct vmw_ctx_binding_state - * @bi: Pointer to where the binding info array is stored in @cbs + * @biso: Pointer to where the binding info array is stored in @cbs * @max_num: Maximum number of entries in the @bi array. * * Scans the @bi array for bindings and builds a buffer of SVGA3dSoTarget data. @@ -881,11 +879,9 @@ * contains the command data. */ static void vmw_collect_so_targets(struct vmw_ctx_binding_state *cbs, - const struct vmw_ctx_bindinfo *bi, + const struct vmw_ctx_bindinfo_so_target *biso, u32 max_num) { - const struct vmw_ctx_bindinfo_so_target *biso = - container_of(bi, struct vmw_ctx_bindinfo_so_target, bi); unsigned long i; SVGA3dSoTarget *so_buffer = (SVGA3dSoTarget *) cbs->bind_cmd_buffer; @@ -916,7 +912,7 @@ */ static int vmw_emit_set_so_target(struct vmw_ctx_binding_state *cbs) { - const struct vmw_ctx_bindinfo *loc = &cbs->so_targets[0].bi; + const struct vmw_ctx_bindinfo_so_target *loc = &cbs->so_targets[0]; struct { SVGA3dCmdHeader header; SVGA3dCmdDXSetSOTargets body; @@ -1063,7 +1059,7 @@ static int vmw_emit_set_uav(struct vmw_ctx_binding_state *cbs) { - const struct vmw_ctx_bindinfo *loc = &cbs->ua_views[0].views[0].bi; + const struct vmw_ctx_bindinfo_view *loc = &cbs->ua_views[0].views[0]; struct { SVGA3dCmdHeader header; SVGA3dCmdDXSetUAViews body; @@ -1093,7 +1089,7 @@ static int vmw_emit_set_cs_uav(struct vmw_ctx_binding_state *cbs) { - const struct vmw_ctx_bindinfo *loc = &cbs->ua_views[1].views[0].bi; + const struct vmw_ctx_bindinfo_view *loc = &cbs->ua_views[1].views[0]; struct { SVGA3dCmdHeader header; SVGA3dCmdDXSetCSUAViews body; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c 2024-05-02 14:23:46.000000000 +0000 @@ -459,9 +459,9 @@ int ret = 0; /* Buffer objects need to be either pinned or reserved: */ - if (!(dst->mem.placement & TTM_PL_FLAG_NO_EVICT)) + if (!(dst->pin_count)) dma_resv_assert_held(dst->base.resv); - if (!(src->mem.placement & TTM_PL_FLAG_NO_EVICT)) + if (!(src->pin_count)) dma_resv_assert_held(src->base.resv); if (!ttm_tt_is_populated(dst->ttm)) { diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c 2024-05-02 14:23:46.000000000 +0000 @@ -106,7 +106,7 @@ if (unlikely(ret != 0)) goto err; - if (buf->pin_count > 0) + if (buf->base.pin_count > 0) ret = ttm_bo_mem_compat(placement, &bo->mem, &new_flags) == true ? 0 : -EINVAL; else @@ -155,7 +155,7 @@ if (unlikely(ret != 0)) goto err; - if (buf->pin_count > 0) { + if (buf->base.pin_count > 0) { ret = ttm_bo_mem_compat(&vmw_vram_gmr_placement, &bo->mem, &new_flags) == true ? 0 : -EINVAL; goto out_unreserve; @@ -246,12 +246,12 @@ if (bo->mem.mem_type == TTM_PL_VRAM && bo->mem.start < bo->num_pages && bo->mem.start > 0 && - buf->pin_count == 0) { + buf->base.pin_count == 0) { ctx.interruptible = false; (void) ttm_bo_validate(bo, &vmw_sys_placement, &ctx); } - if (buf->pin_count > 0) + if (buf->base.pin_count > 0) ret = ttm_bo_mem_compat(&placement, &bo->mem, &new_flags) == true ? 0 : -EINVAL; else @@ -343,23 +343,13 @@ dma_resv_assert_held(bo->base.resv); - if (pin) { - if (vbo->pin_count++ > 0) - return; - } else { - WARN_ON(vbo->pin_count <= 0); - if (--vbo->pin_count > 0) - return; - } + if (pin == !!bo->pin_count) + return; pl.fpfn = 0; pl.lpfn = 0; pl.mem_type = bo->mem.mem_type; pl.flags = bo->mem.placement; - if (pin) - pl.flags |= TTM_PL_FLAG_NO_EVICT; - else - pl.flags &= ~TTM_PL_FLAG_NO_EVICT; memset(&placement, 0, sizeof(placement)); placement.num_placement = 1; @@ -368,8 +358,12 @@ ret = ttm_bo_validate(bo, &placement, &ctx); BUG_ON(ret != 0 || bo->mem.mem_type != old_mem_type); -} + if (pin) + ttm_bo_pin(bo); + else + ttm_bo_unpin(bo); +} /** * vmw_bo_map_and_cache - Map a buffer object and cache the map @@ -487,6 +481,49 @@ ttm_prime_object_kfree(vmw_user_bo, prime); } +/** + * vmw_bo_create_kernel - Create a pinned BO for internal kernel use. + * + * @dev_priv: Pointer to the device private struct + * @size: size of the BO we need + * @placement: where to put it + * @p_bo: resulting BO + * + * Creates and pin a simple BO for in kernel use. + */ +int vmw_bo_create_kernel(struct vmw_private *dev_priv, unsigned long size, + struct ttm_placement *placement, + struct ttm_buffer_object **p_bo) +{ + unsigned npages = PAGE_ALIGN(size) >> PAGE_SHIFT; + struct ttm_operation_ctx ctx = { false, false }; + struct ttm_buffer_object *bo; + size_t acc_size; + int ret; + + bo = kzalloc(sizeof(*bo), GFP_KERNEL); + if (unlikely(!bo)) + return -ENOMEM; + + acc_size = ttm_round_pot(sizeof(*bo)); + acc_size += ttm_round_pot(npages * sizeof(void *)); + acc_size += ttm_round_pot(sizeof(struct ttm_tt)); + ret = ttm_bo_init_reserved(&dev_priv->bdev, bo, size, + ttm_bo_type_device, placement, 0, + &ctx, acc_size, NULL, NULL, NULL); + if (unlikely(ret)) + goto error_free; + + ttm_bo_pin(bo); + ttm_bo_unreserve(bo); + *p_bo = bo; + + return 0; + +error_free: + kfree(bo); + return ret; +} /** * vmw_bo_init - Initialize a vmw buffer object @@ -496,6 +533,7 @@ * @size: Buffer object size in bytes. * @placement: Initial placement. * @interruptible: Whether waits should be performed interruptible. + * @pin: If the BO should be created pinned at a fixed location. * @bo_free: The buffer object destructor. * Returns: Zero on success, negative error code on error. * @@ -504,9 +542,10 @@ int vmw_bo_init(struct vmw_private *dev_priv, struct vmw_buffer_object *vmw_bo, size_t size, struct ttm_placement *placement, - bool interruptible, + bool interruptible, bool pin, void (*bo_free)(struct ttm_buffer_object *bo)) { + struct ttm_operation_ctx ctx = { interruptible, false }; struct ttm_bo_device *bdev = &dev_priv->bdev; size_t acc_size; int ret; @@ -520,11 +559,16 @@ vmw_bo->base.priority = 3; vmw_bo->res_tree = RB_ROOT; - ret = ttm_bo_init(bdev, &vmw_bo->base, size, - ttm_bo_type_device, placement, - 0, interruptible, acc_size, - NULL, NULL, bo_free); - return ret; + ret = ttm_bo_init_reserved(bdev, &vmw_bo->base, size, + ttm_bo_type_device, placement, + 0, &ctx, acc_size, NULL, NULL, bo_free); + if (unlikely(ret)) + return ret; + + if (pin) + ttm_bo_pin(&vmw_bo->base); + ttm_bo_unreserve(&vmw_bo->base); + return 0; } @@ -613,7 +657,7 @@ ret = vmw_bo_init(dev_priv, &user_bo->vbo, size, (dev_priv->has_mob) ? &vmw_sys_placement : - &vmw_vram_sys_placement, true, + &vmw_vram_sys_placement, true, false, &vmw_user_bo_destroy); if (unlikely(ret != 0)) return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c 2024-05-02 14:23:46.000000000 +0000 @@ -514,7 +514,7 @@ struct vmw_cmdbuf_man *man = container_of(work, struct vmw_cmdbuf_man, work); struct vmw_cmdbuf_header *entry, *next; - uint32_t dummy; + uint32_t dummy = 0; bool send_fence = false; struct list_head restart_head[SVGA_CB_CONTEXT_MAX]; int i; @@ -1245,9 +1245,9 @@ !dev_priv->has_mob) return -ENOMEM; - ret = ttm_bo_create(&dev_priv->bdev, size, ttm_bo_type_device, - &vmw_mob_ne_placement, 0, false, - &man->cmd_space); + ret = vmw_bo_create_kernel(dev_priv, size, + &vmw_mob_placement, + &man->cmd_space); if (ret) return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c 2024-05-02 14:23:46.000000000 +0000 @@ -168,8 +168,8 @@ vmw_cmdbuf_res_free(entry->man, entry); break; case VMW_CMDBUF_RES_DEL: - ret = drm_ht_insert_item(&entry->man->resources, - &entry->hash); + ret = drm_ht_insert_item(&entry->man->resources, &entry->hash); + BUG_ON(ret); list_del(&entry->head); list_add_tail(&entry->head, &entry->man->list); entry->state = VMW_CMDBUF_RES_COMMITTED; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c 2024-05-02 14:23:46.000000000 +0000 @@ -410,8 +410,8 @@ if (!buf) return -ENOMEM; - ret = vmw_bo_init(dev_priv, buf, new_size, &vmw_mob_ne_placement, - true, vmw_bo_bo_free); + ret = vmw_bo_init(dev_priv, buf, new_size, &vmw_mob_placement, + true, true, vmw_bo_bo_free); if (ret) { DRM_ERROR("Failed initializing new cotable MOB.\n"); return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 2024-05-02 14:23:46.000000000 +0000 @@ -372,7 +372,7 @@ return -ENOMEM; ret = vmw_bo_init(dev_priv, vbo, PAGE_SIZE, - &vmw_sys_ne_placement, false, + &vmw_sys_placement, false, true, &vmw_bo_bo_free); if (unlikely(ret != 0)) return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h 2024-05-02 14:23:46.000000000 +0000 @@ -99,7 +99,6 @@ * struct vmw_buffer_object - TTM buffer object with vmwgfx additions * @base: The TTM buffer object * @res_tree: RB tree of resources using this buffer object as a backing MOB - * @pin_count: pin depth * @cpu_writers: Number of synccpu write grabs. Protected by reservation when * increased. May be decreased without reservation. * @dx_query_ctx: DX context if this buffer object is used as a DX query MOB @@ -110,7 +109,6 @@ struct vmw_buffer_object { struct ttm_buffer_object base; struct rb_root res_tree; - s32 pin_count; atomic_t cpu_writers; /* Not ref-counted. Protected by binding_mutex */ struct vmw_resource *dx_query_ctx; @@ -845,10 +843,14 @@ SVGAGuestPtr *ptr); extern void vmw_bo_pin_reserved(struct vmw_buffer_object *bo, bool pin); extern void vmw_bo_bo_free(struct ttm_buffer_object *bo); +extern int vmw_bo_create_kernel(struct vmw_private *dev_priv, + unsigned long size, + struct ttm_placement *placement, + struct ttm_buffer_object **p_bo); extern int vmw_bo_init(struct vmw_private *dev_priv, struct vmw_buffer_object *vmw_bo, size_t size, struct ttm_placement *placement, - bool interruptible, + bool interruptible, bool pin, void (*bo_free)(struct ttm_buffer_object *bo)); extern int vmw_user_bo_verify_access(struct ttm_buffer_object *bo, struct ttm_object_file *tfile); @@ -1005,16 +1007,13 @@ extern const size_t vmw_tt_size; extern struct ttm_placement vmw_vram_placement; -extern struct ttm_placement vmw_vram_ne_placement; extern struct ttm_placement vmw_vram_sys_placement; extern struct ttm_placement vmw_vram_gmr_placement; extern struct ttm_placement vmw_vram_gmr_ne_placement; extern struct ttm_placement vmw_sys_placement; -extern struct ttm_placement vmw_sys_ne_placement; extern struct ttm_placement vmw_evictable_placement; extern struct ttm_placement vmw_srf_placement; extern struct ttm_placement vmw_mob_placement; -extern struct ttm_placement vmw_mob_ne_placement; extern struct ttm_placement vmw_nonfixed_placement; extern struct ttm_bo_driver vmw_bo_driver; extern const struct vmw_sg_table * diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 2024-05-02 14:23:46.000000000 +0000 @@ -467,7 +467,7 @@ vmw_res_type(ctx) == vmw_res_dx_context) { for (i = 0; i < cotable_max; ++i) { res = vmw_context_cotable(ctx, i); - if (IS_ERR(res)) + if (IS_ERR_OR_NULL(res)) continue; ret = vmw_execbuf_res_noctx_val_add(sw_context, res, @@ -1272,6 +1272,8 @@ return -EINVAL; cotable_res = vmw_context_cotable(ctx_node->ctx, SVGA_COTABLE_DXQUERY); + if (IS_ERR_OR_NULL(cotable_res)) + return cotable_res ? PTR_ERR(cotable_res) : -EINVAL; ret = vmw_cotable_notify(cotable_res, cmd->body.queryId); return ret; @@ -2450,6 +2452,8 @@ return ret; res = vmw_context_cotable(ctx_node->ctx, vmw_view_cotables[view_type]); + if (IS_ERR_OR_NULL(res)) + return res ? PTR_ERR(res) : -EINVAL; ret = vmw_cotable_notify(res, cmd->defined_id); if (unlikely(ret != 0)) return ret; @@ -2535,6 +2539,8 @@ so_type = vmw_so_cmd_to_type(header->id); res = vmw_context_cotable(ctx_node->ctx, vmw_so_cotables[so_type]); + if (IS_ERR_OR_NULL(res)) + return res ? PTR_ERR(res) : -EINVAL; cmd = container_of(header, typeof(*cmd), header); ret = vmw_cotable_notify(res, cmd->defined_id); @@ -2653,6 +2659,8 @@ return -EINVAL; res = vmw_context_cotable(ctx_node->ctx, SVGA_COTABLE_DXSHADER); + if (IS_ERR_OR_NULL(res)) + return res ? PTR_ERR(res) : -EINVAL; ret = vmw_cotable_notify(res, cmd->body.shaderId); if (ret) return ret; @@ -2974,6 +2982,8 @@ } res = vmw_context_cotable(ctx_node->ctx, SVGA_COTABLE_STREAMOUTPUT); + if (IS_ERR_OR_NULL(res)) + return res ? PTR_ERR(res) : -EINVAL; ret = vmw_cotable_notify(res, cmd->body.soid); if (ret) return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c 2024-05-02 14:23:46.000000000 +0000 @@ -406,7 +406,7 @@ ret = vmw_bo_init(vmw_priv, vmw_bo, size, &vmw_sys_placement, - false, + false, false, &vmw_bo_bo_free); if (unlikely(ret != 0)) goto err_unlock; /* init frees the buffer on failure */ diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c 2024-05-02 14:23:46.000000000 +0000 @@ -494,11 +494,13 @@ { unsigned long num_pt_pages = 0; struct ttm_buffer_object *bo = mob->pt_bo; - struct vmw_piter save_pt_iter; + struct vmw_piter save_pt_iter = {0}; struct vmw_piter pt_iter; const struct vmw_sg_table *vsgt; int ret; + BUG_ON(num_data_pages == 0); + ret = ttm_bo_reserve(bo, false, true, NULL); BUG_ON(ret != 0); diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c 2024-05-02 14:23:46.000000000 +0000 @@ -154,6 +154,7 @@ /* HB port can't access encrypted memory. */ if (hb && !mem_encrypt_active()) { unsigned long bp = channel->cookie_high; + u32 channel_id = (channel->channel_id << 16); si = (uintptr_t) msg; di = channel->cookie_low; @@ -161,7 +162,7 @@ VMW_PORT_HB_OUT( (MESSAGE_STATUS_SUCCESS << 16) | VMW_PORT_CMD_HB_MSG, msg_len, si, di, - VMWARE_HYPERVISOR_HB | (channel->channel_id << 16) | + VMWARE_HYPERVISOR_HB | channel_id | VMWARE_HYPERVISOR_OUT, VMW_HYPERVISOR_MAGIC, bp, eax, ebx, ecx, edx, si, di); @@ -209,6 +210,7 @@ /* HB port can't access encrypted memory */ if (hb && !mem_encrypt_active()) { unsigned long bp = channel->cookie_low; + u32 channel_id = (channel->channel_id << 16); si = channel->cookie_high; di = (uintptr_t) reply; @@ -216,7 +218,7 @@ VMW_PORT_HB_IN( (MESSAGE_STATUS_SUCCESS << 16) | VMW_PORT_CMD_HB_MSG, reply_len, si, di, - VMWARE_HYPERVISOR_HB | (channel->channel_id << 16), + VMWARE_HYPERVISOR_HB | channel_id, VMW_HYPERVISOR_MAGIC, bp, eax, ebx, ecx, edx, si, di); diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c 2024-05-02 14:23:46.000000000 +0000 @@ -114,6 +114,7 @@ container_of(kref, struct vmw_resource, kref); struct vmw_private *dev_priv = res->dev_priv; int id; + int ret; struct idr *idr = &dev_priv->res_idr[res->func->res_type]; spin_lock(&dev_priv->resource_lock); @@ -122,7 +123,8 @@ if (res->backup) { struct ttm_buffer_object *bo = &res->backup->base; - ttm_bo_reserve(bo, false, false, NULL); + ret = ttm_bo_reserve(bo, false, false, NULL); + BUG_ON(ret); if (vmw_resource_mob_attached(res) && res->func->unbind != NULL) { struct ttm_validate_buffer val_buf; @@ -370,7 +372,7 @@ ret = vmw_bo_init(res->dev_priv, backup, res->backup_size, res->func->backup_placement, - interruptible, + interruptible, false, &vmw_bo_bo_free); if (unlikely(ret != 0)) goto out_no_bo; @@ -1001,8 +1003,10 @@ if (res->backup) { vbo = res->backup; - ttm_bo_reserve(&vbo->base, interruptible, false, NULL); - if (!vbo->pin_count) { + ret = ttm_bo_reserve(&vbo->base, interruptible, false, NULL); + if (ret) + goto out_no_validate; + if (!vbo->base.pin_count) { ret = ttm_bo_validate (&vbo->base, res->func->backup_placement, diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c 2024-05-02 14:23:46.000000000 +0000 @@ -451,8 +451,8 @@ */ vmw_overlay_pause_all(dev_priv); ret = vmw_bo_init(dev_priv, vps->bo, size, - &vmw_vram_ne_placement, - false, &vmw_bo_bo_free); + &vmw_vram_placement, + false, true, &vmw_bo_bo_free); vmw_overlay_resume_all(dev_priv); if (ret) { vps->bo = NULL; /* vmw_bo_init frees on error */ diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c 2024-05-02 14:23:46.000000000 +0000 @@ -978,8 +978,8 @@ if (unlikely(!buf)) return -ENOMEM; - ret = vmw_bo_init(dev_priv, buf, size, &vmw_sys_ne_placement, - true, vmw_bo_bo_free); + ret = vmw_bo_init(dev_priv, buf, size, &vmw_sys_placement, + true, true, vmw_bo_bo_free); if (unlikely(ret != 0)) goto out; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_so.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_so.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_so.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_so.c 2024-05-02 14:23:46.000000000 +0000 @@ -538,7 +538,8 @@ [vmw_so_ds] = SVGA_COTABLE_DEPTHSTENCIL, [vmw_so_rs] = SVGA_COTABLE_RASTERIZERSTATE, [vmw_so_ss] = SVGA_COTABLE_SAMPLER, - [vmw_so_so] = SVGA_COTABLE_STREAMOUTPUT + [vmw_so_so] = SVGA_COTABLE_STREAMOUTPUT, + [vmw_so_max]= SVGA_COTABLE_MAX }; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c 2024-05-02 14:23:46.000000000 +0000 @@ -37,13 +37,6 @@ .flags = TTM_PL_FLAG_CACHED }; -static const struct ttm_place vram_ne_placement_flags = { - .fpfn = 0, - .lpfn = 0, - .mem_type = TTM_PL_VRAM, - .flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT -}; - static const struct ttm_place sys_placement_flags = { .fpfn = 0, .lpfn = 0, @@ -51,13 +44,6 @@ .flags = TTM_PL_FLAG_CACHED }; -static const struct ttm_place sys_ne_placement_flags = { - .fpfn = 0, - .lpfn = 0, - .mem_type = TTM_PL_SYSTEM, - .flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT -}; - static const struct ttm_place gmr_placement_flags = { .fpfn = 0, .lpfn = 0, @@ -79,13 +65,6 @@ .flags = TTM_PL_FLAG_CACHED }; -static const struct ttm_place mob_ne_placement_flags = { - .fpfn = 0, - .lpfn = 0, - .mem_type = VMW_PL_MOB, - .flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT -}; - struct ttm_placement vmw_vram_placement = { .num_placement = 1, .placement = &vram_placement_flags, @@ -158,13 +137,6 @@ .busy_placement = &sys_placement_flags }; -struct ttm_placement vmw_vram_ne_placement = { - .num_placement = 1, - .placement = &vram_ne_placement_flags, - .num_busy_placement = 1, - .busy_placement = &vram_ne_placement_flags -}; - struct ttm_placement vmw_sys_placement = { .num_placement = 1, .placement = &sys_placement_flags, @@ -172,13 +144,6 @@ .busy_placement = &sys_placement_flags }; -struct ttm_placement vmw_sys_ne_placement = { - .num_placement = 1, - .placement = &sys_ne_placement_flags, - .num_busy_placement = 1, - .busy_placement = &sys_ne_placement_flags -}; - static const struct ttm_place evictable_placement_flags[] = { { .fpfn = 0, @@ -243,13 +208,6 @@ .busy_placement = &mob_placement_flags }; -struct ttm_placement vmw_mob_ne_placement = { - .num_placement = 1, - .num_busy_placement = 1, - .placement = &mob_ne_placement_flags, - .busy_placement = &mob_ne_placement_flags -}; - struct ttm_placement vmw_nonfixed_placement = { .num_placement = 3, .placement = nonfixed_placement_flags, @@ -817,11 +775,9 @@ struct ttm_buffer_object *bo; int ret; - ret = ttm_bo_create(&dev_priv->bdev, bo_size, - ttm_bo_type_device, - &vmw_sys_ne_placement, - 0, false, &bo); - + ret = vmw_bo_create_kernel(dev_priv, bo_size, + &vmw_sys_placement, + &bo); if (unlikely(ret != 0)) return ret; diff -Nru linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c --- linux-5.10.209/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c 2024-05-02 14:23:46.000000000 +0000 @@ -540,7 +540,7 @@ if (atomic_read(&vbo->cpu_writers)) return -EBUSY; - if (vbo->pin_count > 0) + if (vbo->base.pin_count > 0) return 0; if (validate_as_mob) @@ -585,13 +585,13 @@ container_of(entry->base.bo, typeof(*vbo), base); if (entry->cpu_blit) { - struct ttm_operation_ctx ctx = { + struct ttm_operation_ctx ttm_ctx = { .interruptible = intr, .no_wait_gpu = false }; ret = ttm_bo_validate(entry->base.bo, - &vmw_nonfixed_placement, &ctx); + &vmw_nonfixed_placement, &ttm_ctx); } else { ret = vmw_validation_bo_validate_single (entry->base.bo, intr, entry->as_mob); diff -Nru linux-5.10.209/drivers/hid/hid-apple.c linux-5.10.216/drivers/hid/hid-apple.c --- linux-5.10.209/drivers/hid/hid-apple.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/hid-apple.c 2024-05-02 14:23:46.000000000 +0000 @@ -70,6 +70,28 @@ u8 flags; }; +static const struct apple_key_translation apple2021_fn_keys[] = { + { KEY_BACKSPACE, KEY_DELETE }, + { KEY_ENTER, KEY_INSERT }, + { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, + { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY }, + { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY }, + { KEY_F4, KEY_SEARCH, APPLE_FLAG_FKEY }, + { KEY_F5, KEY_MICMUTE, APPLE_FLAG_FKEY }, + { KEY_F6, KEY_SLEEP, APPLE_FLAG_FKEY }, + { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY }, + { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY }, + { KEY_F9, KEY_NEXTSONG, APPLE_FLAG_FKEY }, + { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY }, + { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY }, + { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY }, + { KEY_UP, KEY_PAGEUP }, + { KEY_DOWN, KEY_PAGEDOWN }, + { KEY_LEFT, KEY_HOME }, + { KEY_RIGHT, KEY_END }, + { } +}; + static const struct apple_key_translation macbookair_fn_keys[] = { { KEY_BACKSPACE, KEY_DELETE }, { KEY_ENTER, KEY_INSERT }, @@ -204,7 +226,9 @@ } if (fnmode) { - if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI && + if (hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) + table = apple2021_fn_keys; + else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI && hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) table = macbookair_fn_keys; else if (hid->product < 0x21d || hid->product >= 0x300) @@ -363,6 +387,9 @@ for (trans = apple_iso_keyboard; trans->from; trans++) set_bit(trans->to, input->keybit); + for (trans = apple2021_fn_keys; trans->from; trans++) + set_bit(trans->to, input->keybit); + if (swap_fn_leftctrl) { for (trans = swapped_fn_leftctrl_keys; trans->from; trans++) set_bit(trans->to, input->keybit); @@ -624,6 +651,10 @@ .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY), .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021), + .driver_data = APPLE_HAS_FN }, + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021), + .driver_data = APPLE_HAS_FN }, { } }; diff -Nru linux-5.10.209/drivers/hid/hid-ids.h linux-5.10.216/drivers/hid/hid-ids.h --- linux-5.10.209/drivers/hid/hid-ids.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/hid-ids.h 2024-05-02 14:23:46.000000000 +0000 @@ -173,6 +173,7 @@ #define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241 #define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242 #define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243 +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c #define USB_VENDOR_ID_ASUS 0x0486 #define USB_DEVICE_ID_ASUS_T91MT 0x0185 diff -Nru linux-5.10.209/drivers/hid/hid-lenovo.c linux-5.10.216/drivers/hid/hid-lenovo.c --- linux-5.10.209/drivers/hid/hid-lenovo.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/hid-lenovo.c 2024-05-02 14:23:46.000000000 +0000 @@ -53,10 +53,10 @@ /* 0: Up * 1: Down (undecided) * 2: Scrolling - * 3: Patched firmware, disable workaround */ u8 middlebutton_state; bool fn_lock; + bool middleclick_workaround_cptkbd; }; #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c)) @@ -418,6 +418,36 @@ return count; } +static ssize_t attr_middleclick_workaround_show_cptkbd(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct hid_device *hdev = to_hid_device(dev); + struct lenovo_drvdata *cptkbd_data = hid_get_drvdata(hdev); + + return snprintf(buf, PAGE_SIZE, "%u\n", + cptkbd_data->middleclick_workaround_cptkbd); +} + +static ssize_t attr_middleclick_workaround_store_cptkbd(struct device *dev, + struct device_attribute *attr, + const char *buf, + size_t count) +{ + struct hid_device *hdev = to_hid_device(dev); + struct lenovo_drvdata *cptkbd_data = hid_get_drvdata(hdev); + int value; + + if (kstrtoint(buf, 10, &value)) + return -EINVAL; + if (value < 0 || value > 1) + return -EINVAL; + + cptkbd_data->middleclick_workaround_cptkbd = !!value; + + return count; +} + static struct device_attribute dev_attr_fn_lock = __ATTR(fn_lock, S_IWUSR | S_IRUGO, @@ -429,10 +459,16 @@ attr_sensitivity_show_cptkbd, attr_sensitivity_store_cptkbd); +static struct device_attribute dev_attr_middleclick_workaround_cptkbd = + __ATTR(middleclick_workaround, S_IWUSR | S_IRUGO, + attr_middleclick_workaround_show_cptkbd, + attr_middleclick_workaround_store_cptkbd); + static struct attribute *lenovo_attributes_cptkbd[] = { &dev_attr_fn_lock.attr, &dev_attr_sensitivity_cptkbd.attr, + &dev_attr_middleclick_workaround_cptkbd.attr, NULL }; @@ -483,23 +519,7 @@ { struct lenovo_drvdata *cptkbd_data = hid_get_drvdata(hdev); - if (cptkbd_data->middlebutton_state != 3) { - /* REL_X and REL_Y events during middle button pressed - * are only possible on patched, bug-free firmware - * so set middlebutton_state to 3 - * to never apply workaround anymore - */ - if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD && - cptkbd_data->middlebutton_state == 1 && - usage->type == EV_REL && - (usage->code == REL_X || usage->code == REL_Y)) { - cptkbd_data->middlebutton_state = 3; - /* send middle button press which was hold before */ - input_event(field->hidinput->input, - EV_KEY, BTN_MIDDLE, 1); - input_sync(field->hidinput->input); - } - + if (cptkbd_data->middleclick_workaround_cptkbd) { /* "wheel" scroll events */ if (usage->type == EV_REL && (usage->code == REL_WHEEL || usage->code == REL_HWHEEL)) { @@ -976,6 +996,7 @@ cptkbd_data->middlebutton_state = 0; cptkbd_data->fn_lock = true; cptkbd_data->sensitivity = 0x05; + cptkbd_data->middleclick_workaround_cptkbd = true; lenovo_features_set_cptkbd(hdev); ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_cptkbd); diff -Nru linux-5.10.209/drivers/hid/hid-multitouch.c linux-5.10.216/drivers/hid/hid-multitouch.c --- linux-5.10.209/drivers/hid/hid-multitouch.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/hid-multitouch.c 2024-05-02 14:23:46.000000000 +0000 @@ -2069,6 +2069,10 @@ { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_SYNAPTICS, 0xcddc) }, + + { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xce08) }, { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, diff -Nru linux-5.10.209/drivers/hid/hid-quirks.c linux-5.10.216/drivers/hid/hid-quirks.c --- linux-5.10.209/drivers/hid/hid-quirks.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/hid-quirks.c 2024-05-02 14:23:46.000000000 +0000 @@ -309,6 +309,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) }, #endif #if IS_ENABLED(CONFIG_HID_APPLEIR) { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) }, diff -Nru linux-5.10.209/drivers/hid/i2c-hid/i2c-hid-core.c linux-5.10.216/drivers/hid/i2c-hid/i2c-hid-core.c --- linux-5.10.209/drivers/hid/i2c-hid/i2c-hid-core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/i2c-hid/i2c-hid-core.c 2024-05-02 14:23:46.000000000 +0000 @@ -56,7 +56,6 @@ /* flags */ #define I2C_HID_STARTED 0 #define I2C_HID_RESET_PENDING 1 -#define I2C_HID_READ_PENDING 2 #define I2C_HID_PWR_ON 0x00 #define I2C_HID_PWR_SLEEP 0x01 @@ -256,7 +255,6 @@ msg[1].len = data_len; msg[1].buf = buf_recv; msg_num = 2; - set_bit(I2C_HID_READ_PENDING, &ihid->flags); } if (wait) @@ -264,9 +262,6 @@ ret = i2c_transfer(client->adapter, msg, msg_num); - if (data_len > 0) - clear_bit(I2C_HID_READ_PENDING, &ihid->flags); - if (ret != msg_num) return ret < 0 ? ret : -EIO; @@ -538,9 +533,6 @@ { struct i2c_hid *ihid = dev_id; - if (test_bit(I2C_HID_READ_PENDING, &ihid->flags)) - return IRQ_HANDLED; - i2c_hid_get_input(ihid); return IRQ_HANDLED; diff -Nru linux-5.10.209/drivers/hid/wacom_sys.c linux-5.10.216/drivers/hid/wacom_sys.c --- linux-5.10.209/drivers/hid/wacom_sys.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/wacom_sys.c 2024-05-02 14:23:46.000000000 +0000 @@ -2088,7 +2088,7 @@ return 0; } -static int wacom_register_inputs(struct wacom *wacom) +static int wacom_setup_inputs(struct wacom *wacom) { struct input_dev *pen_input_dev, *touch_input_dev, *pad_input_dev; struct wacom_wac *wacom_wac = &(wacom->wacom_wac); @@ -2107,10 +2107,6 @@ input_free_device(pen_input_dev); wacom_wac->pen_input = NULL; pen_input_dev = NULL; - } else { - error = input_register_device(pen_input_dev); - if (error) - goto fail; } error = wacom_setup_touch_input_capabilities(touch_input_dev, wacom_wac); @@ -2119,10 +2115,6 @@ input_free_device(touch_input_dev); wacom_wac->touch_input = NULL; touch_input_dev = NULL; - } else { - error = input_register_device(touch_input_dev); - if (error) - goto fail; } error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac); @@ -2131,7 +2123,34 @@ input_free_device(pad_input_dev); wacom_wac->pad_input = NULL; pad_input_dev = NULL; - } else { + } + + return 0; +} + +static int wacom_register_inputs(struct wacom *wacom) +{ + struct input_dev *pen_input_dev, *touch_input_dev, *pad_input_dev; + struct wacom_wac *wacom_wac = &(wacom->wacom_wac); + int error = 0; + + pen_input_dev = wacom_wac->pen_input; + touch_input_dev = wacom_wac->touch_input; + pad_input_dev = wacom_wac->pad_input; + + if (pen_input_dev) { + error = input_register_device(pen_input_dev); + if (error) + goto fail; + } + + if (touch_input_dev) { + error = input_register_device(touch_input_dev); + if (error) + goto fail; + } + + if (pad_input_dev) { error = input_register_device(pad_input_dev); if (error) goto fail; @@ -2381,6 +2400,20 @@ goto fail; } + error = wacom_setup_inputs(wacom); + if (error) + goto fail; + + if (features->type == HID_GENERIC) + connect_mask |= HID_CONNECT_DRIVER; + + /* Regular HID work starts now */ + error = hid_hw_start(hdev, connect_mask); + if (error) { + hid_err(hdev, "hw start failed\n"); + goto fail; + } + error = wacom_register_inputs(wacom); if (error) goto fail; @@ -2395,16 +2428,6 @@ goto fail; } - if (features->type == HID_GENERIC) - connect_mask |= HID_CONNECT_DRIVER; - - /* Regular HID work starts now */ - error = hid_hw_start(hdev, connect_mask); - if (error) { - hid_err(hdev, "hw start failed\n"); - goto fail; - } - if (!wireless) { /* Note that if query fails it is not a hard failure */ wacom_query_tablet_data(wacom); diff -Nru linux-5.10.209/drivers/hid/wacom_wac.c linux-5.10.216/drivers/hid/wacom_wac.c --- linux-5.10.209/drivers/hid/wacom_wac.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hid/wacom_wac.c 2024-05-02 14:23:46.000000000 +0000 @@ -2540,7 +2540,14 @@ wacom_wac->hid_data.tipswitch); input_report_key(input, wacom_wac->tool[0], sense); if (wacom_wac->serial[0]) { - input_event(input, EV_MSC, MSC_SERIAL, wacom_wac->serial[0]); + /* + * xf86-input-wacom does not accept a serial number + * of '0'. Report the low 32 bits if possible, but + * if they are zero, report the upper ones instead. + */ + __u32 serial_lo = wacom_wac->serial[0] & 0xFFFFFFFFu; + __u32 serial_hi = wacom_wac->serial[0] >> 32; + input_event(input, EV_MSC, MSC_SERIAL, (int)(serial_lo ? serial_lo : serial_hi)); input_report_abs(input, ABS_MISC, sense ? id : 0); } diff -Nru linux-5.10.209/drivers/hv/channel.c linux-5.10.216/drivers/hv/channel.c --- linux-5.10.209/drivers/hv/channel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hv/channel.c 2024-05-02 14:23:46.000000000 +0000 @@ -503,6 +503,70 @@ } EXPORT_SYMBOL_GPL(vmbus_establish_gpadl); +/** + * request_arr_init - Allocates memory for the requestor array. Each slot + * keeps track of the next available slot in the array. Initially, each + * slot points to the next one (as in a Linked List). The last slot + * does not point to anything, so its value is U64_MAX by default. + * @size The size of the array + */ +static u64 *request_arr_init(u32 size) +{ + int i; + u64 *req_arr; + + req_arr = kcalloc(size, sizeof(u64), GFP_KERNEL); + if (!req_arr) + return NULL; + + for (i = 0; i < size - 1; i++) + req_arr[i] = i + 1; + + /* Last slot (no more available slots) */ + req_arr[i] = U64_MAX; + + return req_arr; +} + +/* + * vmbus_alloc_requestor - Initializes @rqstor's fields. + * Index 0 is the first free slot + * @size: Size of the requestor array + */ +static int vmbus_alloc_requestor(struct vmbus_requestor *rqstor, u32 size) +{ + u64 *rqst_arr; + unsigned long *bitmap; + + rqst_arr = request_arr_init(size); + if (!rqst_arr) + return -ENOMEM; + + bitmap = bitmap_zalloc(size, GFP_KERNEL); + if (!bitmap) { + kfree(rqst_arr); + return -ENOMEM; + } + + rqstor->req_arr = rqst_arr; + rqstor->req_bitmap = bitmap; + rqstor->size = size; + rqstor->next_request_id = 0; + spin_lock_init(&rqstor->req_lock); + + return 0; +} + +/* + * vmbus_free_requestor - Frees memory allocated for @rqstor + * @rqstor: Pointer to the requestor struct + */ +static void vmbus_free_requestor(struct vmbus_requestor *rqstor) +{ + kfree(rqstor->req_arr); + bitmap_free(rqstor->req_bitmap); +} + static int __vmbus_open(struct vmbus_channel *newchannel, void *userdata, u32 userdatalen, void (*onchannelcallback)(void *context), void *context) @@ -523,6 +587,12 @@ if (newchannel->state != CHANNEL_OPEN_STATE) return -EINVAL; + /* Create and init requestor */ + if (newchannel->rqstor_size) { + if (vmbus_alloc_requestor(&newchannel->requestor, newchannel->rqstor_size)) + return -ENOMEM; + } + newchannel->state = CHANNEL_OPENING_STATE; newchannel->onchannel_callback = onchannelcallback; newchannel->channel_callback_context = context; @@ -626,6 +696,7 @@ error_clean_ring: hv_ringbuffer_cleanup(&newchannel->outbound); hv_ringbuffer_cleanup(&newchannel->inbound); + vmbus_free_requestor(&newchannel->requestor); newchannel->state = CHANNEL_OPEN_STATE; return err; } @@ -808,6 +879,9 @@ channel->ringbuffer_gpadlhandle = 0; } + if (!ret) + vmbus_free_requestor(&channel->requestor); + return ret; } @@ -888,7 +962,7 @@ /* in 8-bytes granularity */ desc.offset8 = sizeof(struct vmpacket_descriptor) >> 3; desc.len8 = (u16)(packetlen_aligned >> 3); - desc.trans_id = requestid; + desc.trans_id = VMBUS_RQST_ERROR; /* will be updated in hv_ringbuffer_write() */ bufferlist[0].iov_base = &desc; bufferlist[0].iov_len = sizeof(struct vmpacket_descriptor); @@ -897,7 +971,7 @@ bufferlist[2].iov_base = &aligned_data; bufferlist[2].iov_len = (packetlen_aligned - packetlen); - return hv_ringbuffer_write(channel, bufferlist, num_vecs); + return hv_ringbuffer_write(channel, bufferlist, num_vecs, requestid); } EXPORT_SYMBOL(vmbus_sendpacket); @@ -939,7 +1013,7 @@ desc.flags = VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED; desc.dataoffset8 = descsize >> 3; /* in 8-bytes granularity */ desc.length8 = (u16)(packetlen_aligned >> 3); - desc.transactionid = requestid; + desc.transactionid = VMBUS_RQST_ERROR; /* will be updated in hv_ringbuffer_write() */ desc.reserved = 0; desc.rangecount = pagecount; @@ -956,7 +1030,7 @@ bufferlist[2].iov_base = &aligned_data; bufferlist[2].iov_len = (packetlen_aligned - packetlen); - return hv_ringbuffer_write(channel, bufferlist, 3); + return hv_ringbuffer_write(channel, bufferlist, 3, requestid); } EXPORT_SYMBOL_GPL(vmbus_sendpacket_pagebuffer); @@ -983,7 +1057,7 @@ desc->flags = VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED; desc->dataoffset8 = desc_size >> 3; /* in 8-bytes granularity */ desc->length8 = (u16)(packetlen_aligned >> 3); - desc->transactionid = requestid; + desc->transactionid = VMBUS_RQST_ERROR; /* will be updated in hv_ringbuffer_write() */ desc->reserved = 0; desc->rangecount = 1; @@ -994,7 +1068,7 @@ bufferlist[2].iov_base = &aligned_data; bufferlist[2].iov_len = (packetlen_aligned - packetlen); - return hv_ringbuffer_write(channel, bufferlist, 3); + return hv_ringbuffer_write(channel, bufferlist, 3, requestid); } EXPORT_SYMBOL_GPL(vmbus_sendpacket_mpb_desc); @@ -1042,3 +1116,91 @@ buffer_actual_len, requestid, true); } EXPORT_SYMBOL_GPL(vmbus_recvpacket_raw); + +/* + * vmbus_next_request_id - Returns a new request id. It is also + * the index at which the guest memory address is stored. + * Uses a spin lock to avoid race conditions. + * @rqstor: Pointer to the requestor struct + * @rqst_add: Guest memory address to be stored in the array + */ +u64 vmbus_next_request_id(struct vmbus_requestor *rqstor, u64 rqst_addr) +{ + unsigned long flags; + u64 current_id; + const struct vmbus_channel *channel = + container_of(rqstor, const struct vmbus_channel, requestor); + + /* Check rqstor has been initialized */ + if (!channel->rqstor_size) + return VMBUS_NO_RQSTOR; + + spin_lock_irqsave(&rqstor->req_lock, flags); + current_id = rqstor->next_request_id; + + /* Requestor array is full */ + if (current_id >= rqstor->size) { + spin_unlock_irqrestore(&rqstor->req_lock, flags); + return VMBUS_RQST_ERROR; + } + + rqstor->next_request_id = rqstor->req_arr[current_id]; + rqstor->req_arr[current_id] = rqst_addr; + + /* The already held spin lock provides atomicity */ + bitmap_set(rqstor->req_bitmap, current_id, 1); + + spin_unlock_irqrestore(&rqstor->req_lock, flags); + + /* + * Cannot return an ID of 0, which is reserved for an unsolicited + * message from Hyper-V. + */ + return current_id + 1; +} +EXPORT_SYMBOL_GPL(vmbus_next_request_id); + +/* + * vmbus_request_addr - Returns the memory address stored at @trans_id + * in @rqstor. Uses a spin lock to avoid race conditions. + * @rqstor: Pointer to the requestor struct + * @trans_id: Request id sent back from Hyper-V. Becomes the requestor's + * next request id. + */ +u64 vmbus_request_addr(struct vmbus_requestor *rqstor, u64 trans_id) +{ + unsigned long flags; + u64 req_addr; + const struct vmbus_channel *channel = + container_of(rqstor, const struct vmbus_channel, requestor); + + /* Check rqstor has been initialized */ + if (!channel->rqstor_size) + return VMBUS_NO_RQSTOR; + + /* Hyper-V can send an unsolicited message with ID of 0 */ + if (!trans_id) + return trans_id; + + spin_lock_irqsave(&rqstor->req_lock, flags); + + /* Data corresponding to trans_id is stored at trans_id - 1 */ + trans_id--; + + /* Invalid trans_id */ + if (trans_id >= rqstor->size || !test_bit(trans_id, rqstor->req_bitmap)) { + spin_unlock_irqrestore(&rqstor->req_lock, flags); + return VMBUS_RQST_ERROR; + } + + req_addr = rqstor->req_arr[trans_id]; + rqstor->req_arr[trans_id] = rqstor->next_request_id; + rqstor->next_request_id = trans_id; + + /* The already held spin lock provides atomicity */ + bitmap_clear(rqstor->req_bitmap, trans_id, 1); + + spin_unlock_irqrestore(&rqstor->req_lock, flags); + return req_addr; +} +EXPORT_SYMBOL_GPL(vmbus_request_addr); diff -Nru linux-5.10.209/drivers/hv/hyperv_vmbus.h linux-5.10.216/drivers/hv/hyperv_vmbus.h --- linux-5.10.209/drivers/hv/hyperv_vmbus.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hv/hyperv_vmbus.h 2024-05-02 14:23:46.000000000 +0000 @@ -180,7 +180,8 @@ void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info); int hv_ringbuffer_write(struct vmbus_channel *channel, - const struct kvec *kv_list, u32 kv_count); + const struct kvec *kv_list, u32 kv_count, + u64 requestid); int hv_ringbuffer_read(struct vmbus_channel *channel, void *buffer, u32 buflen, u32 *buffer_actual_len, diff -Nru linux-5.10.209/drivers/hv/ring_buffer.c linux-5.10.216/drivers/hv/ring_buffer.c --- linux-5.10.209/drivers/hv/ring_buffer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hv/ring_buffer.c 2024-05-02 14:23:46.000000000 +0000 @@ -261,7 +261,8 @@ /* Write to the ring buffer. */ int hv_ringbuffer_write(struct vmbus_channel *channel, - const struct kvec *kv_list, u32 kv_count) + const struct kvec *kv_list, u32 kv_count, + u64 requestid) { int i; u32 bytes_avail_towrite; @@ -271,6 +272,8 @@ u64 prev_indices; unsigned long flags; struct hv_ring_buffer_info *outring_info = &channel->outbound; + struct vmpacket_descriptor *desc = kv_list[0].iov_base; + u64 rqst_id = VMBUS_NO_RQSTOR; if (channel->rescind) return -ENODEV; @@ -313,6 +316,22 @@ kv_list[i].iov_len); } + /* + * Allocate the request ID after the data has been copied into the + * ring buffer. Once this request ID is allocated, the completion + * path could find the data and free it. + */ + + if (desc->flags == VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED) { + rqst_id = vmbus_next_request_id(&channel->requestor, requestid); + if (rqst_id == VMBUS_RQST_ERROR) { + spin_unlock_irqrestore(&outring_info->ring_lock, flags); + return -EAGAIN; + } + } + desc = hv_get_ring_buffer(outring_info) + old_write; + desc->trans_id = (rqst_id == VMBUS_NO_RQSTOR) ? requestid : rqst_id; + /* Set previous packet start */ prev_indices = hv_get_ring_bufferindices(outring_info); @@ -332,8 +351,13 @@ hv_signal_on_write(old_write, channel); - if (channel->rescind) + if (channel->rescind) { + if (rqst_id != VMBUS_NO_RQSTOR) { + /* Reclaim request ID to avoid leak of IDs */ + vmbus_request_addr(&channel->requestor, rqst_id); + } return -ENODEV; + } return 0; } diff -Nru linux-5.10.209/drivers/hwmon/amc6821.c linux-5.10.216/drivers/hwmon/amc6821.c --- linux-5.10.209/drivers/hwmon/amc6821.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hwmon/amc6821.c 2024-05-02 14:23:46.000000000 +0000 @@ -934,10 +934,21 @@ MODULE_DEVICE_TABLE(i2c, amc6821_id); +static const struct of_device_id __maybe_unused amc6821_of_match[] = { + { + .compatible = "ti,amc6821", + .data = (void *)amc6821, + }, + { } +}; + +MODULE_DEVICE_TABLE(of, amc6821_of_match); + static struct i2c_driver amc6821_driver = { .class = I2C_CLASS_HWMON, .driver = { .name = "amc6821", + .of_match_table = of_match_ptr(amc6821_of_match), }, .probe_new = amc6821_probe, .id_table = amc6821_id, diff -Nru linux-5.10.209/drivers/hwmon/aspeed-pwm-tacho.c linux-5.10.216/drivers/hwmon/aspeed-pwm-tacho.c --- linux-5.10.209/drivers/hwmon/aspeed-pwm-tacho.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hwmon/aspeed-pwm-tacho.c 2024-05-02 14:23:46.000000000 +0000 @@ -194,6 +194,8 @@ u8 fan_tach_ch_source[16]; struct aspeed_cooling_device *cdev[8]; const struct attribute_group *groups[3]; + /* protects access to shared ASPEED_PTCR_RESULT */ + struct mutex tach_lock; }; enum type { TYPEM, TYPEN, TYPEO }; @@ -528,6 +530,8 @@ u8 fan_tach_ch_source, type, mode, both; int ret; + mutex_lock(&priv->tach_lock); + regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0); regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0x1 << fan_tach_ch); @@ -545,6 +549,8 @@ ASPEED_RPM_STATUS_SLEEP_USEC, usec); + mutex_unlock(&priv->tach_lock); + /* return -ETIMEDOUT if we didn't get an answer. */ if (ret) return ret; @@ -904,6 +910,7 @@ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; + mutex_init(&priv->tach_lock); priv->regmap = devm_regmap_init(dev, NULL, (__force void *)regs, &aspeed_pwm_tacho_regmap_config); if (IS_ERR(priv->regmap)) diff -Nru linux-5.10.209/drivers/hwmon/coretemp.c linux-5.10.216/drivers/hwmon/coretemp.c --- linux-5.10.209/drivers/hwmon/coretemp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/hwmon/coretemp.c 2024-05-02 14:23:46.000000000 +0000 @@ -40,7 +40,7 @@ #define PKG_SYSFS_ATTR_NO 1 /* Sysfs attribute for package temp */ #define BASE_SYSFS_ATTR_NO 2 /* Sysfs Base attr no for coretemp */ -#define NUM_REAL_CORES 128 /* Number of Real cores per cpu */ +#define NUM_REAL_CORES 512 /* Number of Real cores per cpu */ #define CORETEMP_NAME_LENGTH 28 /* String Length of attrs */ #define MAX_CORE_ATTRS 4 /* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1) @@ -380,7 +380,7 @@ } static int create_core_attrs(struct temp_data *tdata, struct device *dev, - int attr_no) + int index) { int i; static ssize_t (*const rd_ptr[TOTAL_ATTRS]) (struct device *dev, @@ -392,13 +392,20 @@ }; for (i = 0; i < tdata->attr_size; i++) { + /* + * We map the attr number to core id of the CPU + * The attr number is always core id + 2 + * The Pkgtemp will always show up as temp1_*, if available + */ + int attr_no = tdata->is_pkg_data ? 1 : tdata->cpu_core_id + 2; + snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH, "temp%d_%s", attr_no, suffixes[i]); sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr); tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i]; tdata->sd_attrs[i].dev_attr.attr.mode = 0444; tdata->sd_attrs[i].dev_attr.show = rd_ptr[i]; - tdata->sd_attrs[i].index = attr_no; + tdata->sd_attrs[i].index = index; tdata->attrs[i] = &tdata->sd_attrs[i].dev_attr.attr; } tdata->attr_group.attrs = tdata->attrs; @@ -456,27 +463,22 @@ struct platform_data *pdata = platform_get_drvdata(pdev); struct cpuinfo_x86 *c = &cpu_data(cpu); u32 eax, edx; - int err, index, attr_no; + int err, index; /* - * Find attr number for sysfs: - * We map the attr number to core id of the CPU - * The attr number is always core id + 2 - * The Pkgtemp will always show up as temp1_*, if available + * Get the index of tdata in pdata->core_data[] + * tdata for package: pdata->core_data[1] + * tdata for core: pdata->core_data[2] .. pdata->core_data[NUM_REAL_CORES + 1] */ if (pkg_flag) { - attr_no = PKG_SYSFS_ATTR_NO; + index = PKG_SYSFS_ATTR_NO; } else { - index = ida_alloc(&pdata->ida, GFP_KERNEL); + index = ida_alloc_max(&pdata->ida, NUM_REAL_CORES - 1, GFP_KERNEL); if (index < 0) return index; - pdata->cpu_map[index] = topology_core_id(cpu); - attr_no = index + BASE_SYSFS_ATTR_NO; - } - if (attr_no > MAX_CORE_DATA - 1) { - err = -ERANGE; - goto ida_free; + pdata->cpu_map[index] = topology_core_id(cpu); + index += BASE_SYSFS_ATTR_NO; } tdata = init_temp_data(cpu, pkg_flag); @@ -508,20 +510,20 @@ } } - pdata->core_data[attr_no] = tdata; + pdata->core_data[index] = tdata; /* Create sysfs interfaces */ - err = create_core_attrs(tdata, pdata->hwmon_dev, attr_no); + err = create_core_attrs(tdata, pdata->hwmon_dev, index); if (err) goto exit_free; return 0; exit_free: - pdata->core_data[attr_no] = NULL; + pdata->core_data[index] = NULL; kfree(tdata); ida_free: if (!pkg_flag) - ida_free(&pdata->ida, index); + ida_free(&pdata->ida, index - BASE_SYSFS_ATTR_NO); return err; } diff -Nru linux-5.10.209/drivers/i2c/busses/i2c-i801.c linux-5.10.216/drivers/i2c/busses/i2c-i801.c --- linux-5.10.209/drivers/i2c/busses/i2c-i801.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/i2c/busses/i2c-i801.c 2024-05-02 14:23:46.000000000 +0000 @@ -540,12 +540,13 @@ return -EOPNOTSUPP; } - inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */ + /* Set block buffer mode */ + outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv)); - /* Use 32-byte buffer to process this transaction */ if (read_write == I2C_SMBUS_WRITE) { len = data->block[0]; outb_p(len, SMBHSTDAT0(priv)); + inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */ for (i = 0; i < len; i++) outb_p(data->block[i+1], SMBBLKDAT(priv)); } @@ -561,6 +562,7 @@ return -EPROTO; data->block[0] = len; + inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */ for (i = 0; i < len; i++) data->block[i + 1] = inb_p(SMBBLKDAT(priv)); } @@ -780,14 +782,6 @@ return i801_check_post(priv, status); } -static int i801_set_block_buffer_mode(struct i801_priv *priv) -{ - outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv)); - if ((inb_p(SMBAUXCTL(priv)) & SMBAUXCTL_E32B) == 0) - return -EIO; - return 0; -} - /* Block transaction function */ static int i801_block_transaction(struct i801_priv *priv, union i2c_smbus_data *data, char read_write, @@ -817,9 +811,8 @@ /* Experience has shown that the block buffer can only be used for SMBus (not I2C) block transactions, even though the datasheet doesn't mention this limitation. */ - if ((priv->features & FEATURE_BLOCK_BUFFER) - && command != I2C_SMBUS_I2C_BLOCK_DATA - && i801_set_block_buffer_mode(priv) == 0) + if ((priv->features & FEATURE_BLOCK_BUFFER) && + command != I2C_SMBUS_I2C_BLOCK_DATA) result = i801_block_transaction_by_block(priv, data, read_write, command, hwpec); diff -Nru linux-5.10.209/drivers/i2c/i2c-core-base.c linux-5.10.216/drivers/i2c/i2c-core-base.c --- linux-5.10.209/drivers/i2c/i2c-core-base.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/i2c/i2c-core-base.c 2024-05-02 14:23:46.000000000 +0000 @@ -2013,13 +2013,18 @@ * Returns negative errno, else the number of messages executed. * * Adapter lock must be held when calling this function. No debug logging - * takes place. adap->algo->master_xfer existence isn't checked. + * takes place. */ int __i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) { unsigned long orig_jiffies; int ret, try; + if (!adap->algo->master_xfer) { + dev_dbg(&adap->dev, "I2C level transfers not supported\n"); + return -EOPNOTSUPP; + } + if (WARN_ON(!msgs || num < 1)) return -EINVAL; @@ -2086,11 +2091,6 @@ { int ret; - if (!adap->algo->master_xfer) { - dev_dbg(&adap->dev, "I2C level transfers not supported\n"); - return -EOPNOTSUPP; - } - /* REVISIT the fault reporting model here is weak: * * - When we get an error after receiving N bytes from a slave, diff -Nru linux-5.10.209/drivers/i3c/master/i3c-master-cdns.c linux-5.10.216/drivers/i3c/master/i3c-master-cdns.c --- linux-5.10.209/drivers/i3c/master/i3c-master-cdns.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/i3c/master/i3c-master-cdns.c 2024-05-02 14:23:46.000000000 +0000 @@ -77,7 +77,8 @@ #define PRESCL_CTRL0 0x14 #define PRESCL_CTRL0_I2C(x) ((x) << 16) #define PRESCL_CTRL0_I3C(x) (x) -#define PRESCL_CTRL0_MAX GENMASK(9, 0) +#define PRESCL_CTRL0_I3C_MAX GENMASK(9, 0) +#define PRESCL_CTRL0_I2C_MAX GENMASK(15, 0) #define PRESCL_CTRL1 0x18 #define PRESCL_CTRL1_PP_LOW_MASK GENMASK(15, 8) @@ -1234,7 +1235,7 @@ return -EINVAL; pres = DIV_ROUND_UP(sysclk_rate, (bus->scl_rate.i3c * 4)) - 1; - if (pres > PRESCL_CTRL0_MAX) + if (pres > PRESCL_CTRL0_I3C_MAX) return -ERANGE; bus->scl_rate.i3c = sysclk_rate / ((pres + 1) * 4); @@ -1247,7 +1248,7 @@ max_i2cfreq = bus->scl_rate.i2c; pres = (sysclk_rate / (max_i2cfreq * 5)) - 1; - if (pres > PRESCL_CTRL0_MAX) + if (pres > PRESCL_CTRL0_I2C_MAX) return -ERANGE; bus->scl_rate.i2c = sysclk_rate / ((pres + 1) * 5); diff -Nru linux-5.10.209/drivers/iio/accel/Kconfig linux-5.10.216/drivers/iio/accel/Kconfig --- linux-5.10.209/drivers/iio/accel/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iio/accel/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -128,10 +128,12 @@ config BMA400_I2C tristate + select REGMAP_I2C depends on BMA400 config BMA400_SPI tristate + select REGMAP_SPI depends on BMA400 config BMC150_ACCEL diff -Nru linux-5.10.209/drivers/iio/adc/ad7091r-base.c linux-5.10.216/drivers/iio/adc/ad7091r-base.c --- linux-5.10.209/drivers/iio/adc/ad7091r-base.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iio/adc/ad7091r-base.c 2024-05-02 14:23:46.000000000 +0000 @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -28,6 +29,7 @@ #define AD7091R_REG_RESULT_CONV_RESULT(x) ((x) & 0xfff) /* AD7091R_REG_CONF */ +#define AD7091R_REG_CONF_ALERT_EN BIT(4) #define AD7091R_REG_CONF_AUTO BIT(8) #define AD7091R_REG_CONF_CMD BIT(10) @@ -49,6 +51,27 @@ struct mutex lock; /*lock to prevent concurent reads */ }; +const struct iio_event_spec ad7091r_events[] = { + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_RISING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_FALLING, + .mask_separate = BIT(IIO_EV_INFO_VALUE) | + BIT(IIO_EV_INFO_ENABLE), + }, + { + .type = IIO_EV_TYPE_THRESH, + .dir = IIO_EV_DIR_EITHER, + .mask_separate = BIT(IIO_EV_INFO_HYSTERESIS), + }, +}; +EXPORT_SYMBOL_NS_GPL(ad7091r_events, IIO_AD7091R); + static int ad7091r_set_mode(struct ad7091r_state *st, enum ad7091r_mode mode) { int ret, conf; @@ -168,8 +191,142 @@ return ret; } +static int ad7091r_read_event_config(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir) +{ + struct ad7091r_state *st = iio_priv(indio_dev); + int val, ret; + + switch (dir) { + case IIO_EV_DIR_RISING: + ret = regmap_read(st->map, + AD7091R_REG_CH_HIGH_LIMIT(chan->channel), + &val); + if (ret) + return ret; + return val != AD7091R_HIGH_LIMIT; + case IIO_EV_DIR_FALLING: + ret = regmap_read(st->map, + AD7091R_REG_CH_LOW_LIMIT(chan->channel), + &val); + if (ret) + return ret; + return val != AD7091R_LOW_LIMIT; + default: + return -EINVAL; + } +} + +static int ad7091r_write_event_config(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, int state) +{ + struct ad7091r_state *st = iio_priv(indio_dev); + + if (state) { + return regmap_set_bits(st->map, AD7091R_REG_CONF, + AD7091R_REG_CONF_ALERT_EN); + } else { + /* + * Set thresholds either to 0 or to 2^12 - 1 as appropriate to + * prevent alerts and thus disable event generation. + */ + switch (dir) { + case IIO_EV_DIR_RISING: + return regmap_write(st->map, + AD7091R_REG_CH_HIGH_LIMIT(chan->channel), + AD7091R_HIGH_LIMIT); + case IIO_EV_DIR_FALLING: + return regmap_write(st->map, + AD7091R_REG_CH_LOW_LIMIT(chan->channel), + AD7091R_LOW_LIMIT); + default: + return -EINVAL; + } + } +} + +static int ad7091r_read_event_value(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, int *val, int *val2) +{ + struct ad7091r_state *st = iio_priv(indio_dev); + int ret; + + switch (info) { + case IIO_EV_INFO_VALUE: + switch (dir) { + case IIO_EV_DIR_RISING: + ret = regmap_read(st->map, + AD7091R_REG_CH_HIGH_LIMIT(chan->channel), + val); + if (ret) + return ret; + return IIO_VAL_INT; + case IIO_EV_DIR_FALLING: + ret = regmap_read(st->map, + AD7091R_REG_CH_LOW_LIMIT(chan->channel), + val); + if (ret) + return ret; + return IIO_VAL_INT; + default: + return -EINVAL; + } + case IIO_EV_INFO_HYSTERESIS: + ret = regmap_read(st->map, + AD7091R_REG_CH_HYSTERESIS(chan->channel), + val); + if (ret) + return ret; + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + +static int ad7091r_write_event_value(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, int val, int val2) +{ + struct ad7091r_state *st = iio_priv(indio_dev); + + switch (info) { + case IIO_EV_INFO_VALUE: + switch (dir) { + case IIO_EV_DIR_RISING: + return regmap_write(st->map, + AD7091R_REG_CH_HIGH_LIMIT(chan->channel), + val); + case IIO_EV_DIR_FALLING: + return regmap_write(st->map, + AD7091R_REG_CH_LOW_LIMIT(chan->channel), + val); + default: + return -EINVAL; + } + case IIO_EV_INFO_HYSTERESIS: + return regmap_write(st->map, + AD7091R_REG_CH_HYSTERESIS(chan->channel), + val); + default: + return -EINVAL; + } +} + static const struct iio_info ad7091r_info = { .read_raw = ad7091r_read_raw, + .read_event_config = &ad7091r_read_event_config, + .write_event_config = &ad7091r_write_event_config, + .read_event_value = &ad7091r_read_event_value, + .write_event_value = &ad7091r_write_event_value, }; static irqreturn_t ad7091r_event_handler(int irq, void *private) @@ -232,6 +389,11 @@ iio_dev->channels = chip_info->channels; if (irq) { + ret = regmap_update_bits(st->map, AD7091R_REG_CONF, + AD7091R_REG_CONF_ALERT_EN, BIT(4)); + if (ret) + return ret; + ret = devm_request_threaded_irq(dev, irq, NULL, ad7091r_event_handler, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, name, iio_dev); @@ -243,7 +405,14 @@ if (IS_ERR(st->vref)) { if (PTR_ERR(st->vref) == -EPROBE_DEFER) return -EPROBE_DEFER; + st->vref = NULL; + /* Enable internal vref */ + ret = regmap_set_bits(st->map, AD7091R_REG_CONF, + AD7091R_REG_CONF_INT_VREF); + if (ret) + return dev_err_probe(st->dev, ret, + "Error on enable internal reference\n"); } else { ret = regulator_enable(st->vref); if (ret) @@ -260,7 +429,7 @@ return devm_iio_device_register(dev, iio_dev); } -EXPORT_SYMBOL_GPL(ad7091r_probe); +EXPORT_SYMBOL_NS_GPL(ad7091r_probe, IIO_AD7091R); static bool ad7091r_writeable_reg(struct device *dev, unsigned int reg) { @@ -290,7 +459,7 @@ .writeable_reg = ad7091r_writeable_reg, .volatile_reg = ad7091r_volatile_reg, }; -EXPORT_SYMBOL_GPL(ad7091r_regmap_config); +EXPORT_SYMBOL_NS_GPL(ad7091r_regmap_config, IIO_AD7091R); MODULE_AUTHOR("Beniamin Bia "); MODULE_DESCRIPTION("Analog Devices AD7091Rx multi-channel converters"); diff -Nru linux-5.10.209/drivers/iio/adc/ad7091r-base.h linux-5.10.216/drivers/iio/adc/ad7091r-base.h --- linux-5.10.209/drivers/iio/adc/ad7091r-base.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iio/adc/ad7091r-base.h 2024-05-02 14:23:46.000000000 +0000 @@ -8,6 +8,12 @@ #ifndef __DRIVERS_IIO_ADC_AD7091R_BASE_H__ #define __DRIVERS_IIO_ADC_AD7091R_BASE_H__ +#define AD7091R_REG_CONF_INT_VREF BIT(0) + +/* AD7091R_REG_CH_LIMIT */ +#define AD7091R_HIGH_LIMIT 0xFFF +#define AD7091R_LOW_LIMIT 0x0 + struct device; struct ad7091r_state; @@ -17,6 +23,8 @@ unsigned int vref_mV; }; +extern const struct iio_event_spec ad7091r_events[3]; + extern const struct regmap_config ad7091r_regmap_config; int ad7091r_probe(struct device *dev, const char *name, diff -Nru linux-5.10.209/drivers/iio/adc/ad7091r5.c linux-5.10.216/drivers/iio/adc/ad7091r5.c --- linux-5.10.209/drivers/iio/adc/ad7091r5.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iio/adc/ad7091r5.c 2024-05-02 14:23:46.000000000 +0000 @@ -12,26 +12,6 @@ #include "ad7091r-base.h" -static const struct iio_event_spec ad7091r5_events[] = { - { - .type = IIO_EV_TYPE_THRESH, - .dir = IIO_EV_DIR_RISING, - .mask_separate = BIT(IIO_EV_INFO_VALUE) | - BIT(IIO_EV_INFO_ENABLE), - }, - { - .type = IIO_EV_TYPE_THRESH, - .dir = IIO_EV_DIR_FALLING, - .mask_separate = BIT(IIO_EV_INFO_VALUE) | - BIT(IIO_EV_INFO_ENABLE), - }, - { - .type = IIO_EV_TYPE_THRESH, - .dir = IIO_EV_DIR_EITHER, - .mask_separate = BIT(IIO_EV_INFO_HYSTERESIS), - }, -}; - #define AD7091R_CHANNEL(idx, bits, ev, num_ev) { \ .type = IIO_VOLTAGE, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ @@ -44,10 +24,10 @@ .scan_type.realbits = bits, \ } static const struct iio_chan_spec ad7091r5_channels_irq[] = { - AD7091R_CHANNEL(0, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)), - AD7091R_CHANNEL(1, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)), - AD7091R_CHANNEL(2, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)), - AD7091R_CHANNEL(3, 12, ad7091r5_events, ARRAY_SIZE(ad7091r5_events)), + AD7091R_CHANNEL(0, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)), + AD7091R_CHANNEL(1, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)), + AD7091R_CHANNEL(2, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)), + AD7091R_CHANNEL(3, 12, ad7091r_events, ARRAY_SIZE(ad7091r_events)), }; static const struct iio_chan_spec ad7091r5_channels_noirq[] = { @@ -111,3 +91,4 @@ MODULE_AUTHOR("Beniamin Bia "); MODULE_DESCRIPTION("Analog Devices AD7091R5 multi-channel ADC driver"); MODULE_LICENSE("GPL v2"); +MODULE_IMPORT_NS(IIO_AD7091R); diff -Nru linux-5.10.209/drivers/iio/magnetometer/rm3100-core.c linux-5.10.216/drivers/iio/magnetometer/rm3100-core.c --- linux-5.10.209/drivers/iio/magnetometer/rm3100-core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iio/magnetometer/rm3100-core.c 2024-05-02 14:23:46.000000000 +0000 @@ -538,6 +538,7 @@ struct rm3100_data *data; unsigned int tmp; int ret; + int samp_rate_index; indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); if (!indio_dev) @@ -596,9 +597,14 @@ ret = regmap_read(regmap, RM3100_REG_TMRC, &tmp); if (ret < 0) return ret; + + samp_rate_index = tmp - RM3100_TMRC_OFFSET; + if (samp_rate_index < 0 || samp_rate_index >= RM3100_SAMP_NUM) { + dev_err(dev, "The value read from RM3100_REG_TMRC is invalid!\n"); + return -EINVAL; + } /* Initializing max wait time, which is double conversion time. */ - data->conversion_time = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][2] - * 2; + data->conversion_time = rm3100_samp_rates[samp_rate_index][2] * 2; /* Cycle count values may not be what we want. */ if ((tmp - RM3100_TMRC_OFFSET) == 0) diff -Nru linux-5.10.209/drivers/infiniband/core/cm.c linux-5.10.216/drivers/infiniband/core/cm.c --- linux-5.10.209/drivers/infiniband/core/cm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/core/cm.c 2024-05-02 14:23:46.000000000 +0000 @@ -33,6 +33,7 @@ MODULE_DESCRIPTION("InfiniBand CM"); MODULE_LICENSE("Dual BSD/GPL"); +#define CM_DESTROY_ID_WAIT_TIMEOUT 10000 /* msecs */ static const char * const ibcm_rej_reason_strs[] = { [IB_CM_REJ_NO_QP] = "no QP", [IB_CM_REJ_NO_EEC] = "no EEC", @@ -1056,13 +1057,26 @@ } } +static noinline void cm_destroy_id_wait_timeout(struct ib_cm_id *cm_id, + enum ib_cm_state old_state) +{ + struct cm_id_private *cm_id_priv; + + cm_id_priv = container_of(cm_id, struct cm_id_private, id); + pr_err("%s: cm_id=%p timed out. state %d -> %d, refcnt=%d\n", __func__, + cm_id, old_state, cm_id->state, refcount_read(&cm_id_priv->refcount)); +} + static void cm_destroy_id(struct ib_cm_id *cm_id, int err) { struct cm_id_private *cm_id_priv; + enum ib_cm_state old_state; struct cm_work *work; + int ret; cm_id_priv = container_of(cm_id, struct cm_id_private, id); spin_lock_irq(&cm_id_priv->lock); + old_state = cm_id->state; retest: switch (cm_id->state) { case IB_CM_LISTEN: @@ -1171,7 +1185,14 @@ xa_erase(&cm.local_id_table, cm_local_id(cm_id->local_id)); cm_deref_id(cm_id_priv); - wait_for_completion(&cm_id_priv->comp); + do { + ret = wait_for_completion_timeout(&cm_id_priv->comp, + msecs_to_jiffies( + CM_DESTROY_ID_WAIT_TIMEOUT)); + if (!ret) /* timeout happened */ + cm_destroy_id_wait_timeout(cm_id, old_state); + } while (!ret); + while ((work = cm_dequeue_work(cm_id_priv)) != NULL) cm_free_work(work); diff -Nru linux-5.10.209/drivers/infiniband/core/device.c linux-5.10.216/drivers/infiniband/core/device.c --- linux-5.10.209/drivers/infiniband/core/device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/core/device.c 2024-05-02 14:23:46.000000000 +0000 @@ -1686,7 +1686,7 @@ { int ret; - down_write(&clients_rwsem); + lockdep_assert_held(&clients_rwsem); /* * The add/remove callbacks must be called in FIFO/LIFO order. To * achieve this we assign client_ids so they are sorted in @@ -1695,14 +1695,11 @@ client->client_id = highest_client_id; ret = xa_insert(&clients, client->client_id, client, GFP_KERNEL); if (ret) - goto out; + return ret; highest_client_id++; xa_set_mark(&clients, client->client_id, CLIENT_REGISTERED); - -out: - up_write(&clients_rwsem); - return ret; + return 0; } static void remove_client_id(struct ib_client *client) @@ -1732,25 +1729,35 @@ { struct ib_device *device; unsigned long index; + bool need_unreg = false; int ret; refcount_set(&client->uses, 1); init_completion(&client->uses_zero); + + /* + * The devices_rwsem is held in write mode to ensure that a racing + * ib_register_device() sees a consisent view of clients and devices. + */ + down_write(&devices_rwsem); + down_write(&clients_rwsem); ret = assign_client_id(client); if (ret) - return ret; + goto out; - down_read(&devices_rwsem); + need_unreg = true; xa_for_each_marked (&devices, index, device, DEVICE_REGISTERED) { ret = add_client_context(device, client); - if (ret) { - up_read(&devices_rwsem); - ib_unregister_client(client); - return ret; - } + if (ret) + goto out; } - up_read(&devices_rwsem); - return 0; + ret = 0; +out: + up_write(&clients_rwsem); + up_write(&devices_rwsem); + if (need_unreg && ret) + ib_unregister_client(client); + return ret; } EXPORT_SYMBOL(ib_register_client); diff -Nru linux-5.10.209/drivers/infiniband/hw/bnxt_re/ib_verbs.c linux-5.10.216/drivers/infiniband/hw/bnxt_re/ib_verbs.c --- linux-5.10.209/drivers/infiniband/hw/bnxt_re/ib_verbs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/bnxt_re/ib_verbs.c 2024-05-02 14:23:46.000000000 +0000 @@ -1711,7 +1711,7 @@ switch (srq_attr_mask) { case IB_SRQ_MAX_WR: /* SRQ resize is not supported */ - break; + return -EINVAL; case IB_SRQ_LIMIT: /* Change the SRQ threshold */ if (srq_attr->srq_limit > srq->qplib_srq.max_wqe) @@ -1726,13 +1726,12 @@ /* On success, update the shadow */ srq->srq_limit = srq_attr->srq_limit; /* No need to Build and send response back to udata */ - break; + return 0; default: ibdev_err(&rdev->ibdev, "Unsupported srq_attr_mask 0x%x", srq_attr_mask); return -EINVAL; } - return 0; } int bnxt_re_query_srq(struct ib_srq *ib_srq, struct ib_srq_attr *srq_attr) diff -Nru linux-5.10.209/drivers/infiniband/hw/hfi1/pio.c linux-5.10.216/drivers/infiniband/hw/hfi1/pio.c --- linux-5.10.209/drivers/infiniband/hw/hfi1/pio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/hfi1/pio.c 2024-05-02 14:23:46.000000000 +0000 @@ -2131,7 +2131,7 @@ "Unable to allocate credit return DMA range for NUMA %d\n", i); ret = -ENOMEM; - goto done; + goto free_cr_base; } } set_dev_node(&dd->pcidev->dev, dd->node); @@ -2139,6 +2139,10 @@ ret = 0; done: return ret; + +free_cr_base: + free_credit_return(dd); + goto done; } void free_credit_return(struct hfi1_devdata *dd) diff -Nru linux-5.10.209/drivers/infiniband/hw/hfi1/sdma.c linux-5.10.216/drivers/infiniband/hw/hfi1/sdma.c --- linux-5.10.209/drivers/infiniband/hw/hfi1/sdma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/hfi1/sdma.c 2024-05-02 14:23:46.000000000 +0000 @@ -3200,7 +3200,7 @@ { int rval = 0; - if ((unlikely(tx->num_desc + 1 == tx->desc_limit))) { + if ((unlikely(tx->num_desc == tx->desc_limit))) { rval = _extend_sdma_tx_descs(dd, tx); if (rval) { __sdma_txclean(dd, tx); diff -Nru linux-5.10.209/drivers/infiniband/hw/mlx5/devx.c linux-5.10.216/drivers/infiniband/hw/mlx5/devx.c --- linux-5.10.209/drivers/infiniband/hw/mlx5/devx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/mlx5/devx.c 2024-05-02 14:23:46.000000000 +0000 @@ -2780,7 +2780,7 @@ MLX5_IB_METHOD_DEVX_OBJ_MODIFY, UVERBS_ATTR_IDR(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE, UVERBS_IDR_ANY_OBJECT, - UVERBS_ACCESS_WRITE, + UVERBS_ACCESS_READ, UA_MANDATORY), UVERBS_ATTR_PTR_IN( MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, diff -Nru linux-5.10.209/drivers/infiniband/hw/mlx5/mad.c linux-5.10.216/drivers/infiniband/hw/mlx5/mad.c --- linux-5.10.209/drivers/infiniband/hw/mlx5/mad.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/mlx5/mad.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,7 +166,8 @@ mdev = dev->mdev; mdev_port_num = 1; } - if (MLX5_CAP_GEN(dev->mdev, num_ports) == 1) { + if (MLX5_CAP_GEN(dev->mdev, num_ports) == 1 && + !mlx5_core_mp_enabled(mdev)) { /* set local port to one for Function-Per-Port HCA. */ mdev = dev->mdev; mdev_port_num = 1; diff -Nru linux-5.10.209/drivers/infiniband/hw/mlx5/wr.c linux-5.10.216/drivers/infiniband/hw/mlx5/wr.c --- linux-5.10.209/drivers/infiniband/hw/mlx5/wr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/mlx5/wr.c 2024-05-02 14:23:46.000000000 +0000 @@ -128,7 +128,7 @@ */ copysz = min_t(u64, *cur_edge - (void *)eseg->inline_hdr.start, left); - memcpy(eseg->inline_hdr.start, pdata, copysz); + memcpy(eseg->inline_hdr.data, pdata, copysz); stride = ALIGN(sizeof(struct mlx5_wqe_eth_seg) - sizeof(eseg->inline_hdr.start) + copysz, 16); *size += stride / 16; diff -Nru linux-5.10.209/drivers/infiniband/hw/qedr/verbs.c linux-5.10.216/drivers/infiniband/hw/qedr/verbs.c --- linux-5.10.209/drivers/infiniband/hw/qedr/verbs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/hw/qedr/verbs.c 2024-05-02 14:23:46.000000000 +0000 @@ -1865,8 +1865,17 @@ /* RQ - read access only (0) */ rc = qedr_init_user_queue(udata, dev, &qp->urq, ureq.rq_addr, ureq.rq_len, true, 0, alloc_and_init); - if (rc) + if (rc) { + ib_umem_release(qp->usq.umem); + qp->usq.umem = NULL; + if (rdma_protocol_roce(&dev->ibdev, 1)) { + qedr_free_pbl(dev, &qp->usq.pbl_info, + qp->usq.pbl_tbl); + } else { + kfree(qp->usq.pbl_tbl); + } return rc; + } } memset(&in_params, 0, sizeof(in_params)); diff -Nru linux-5.10.209/drivers/infiniband/sw/rxe/rxe.c linux-5.10.216/drivers/infiniband/sw/rxe/rxe.c --- linux-5.10.209/drivers/infiniband/sw/rxe/rxe.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/sw/rxe/rxe.c 2024-05-02 14:23:46.000000000 +0000 @@ -35,6 +35,8 @@ if (rxe->tfm) crypto_free_shash(rxe->tfm); + + mutex_destroy(&rxe->usdev_lock); } /* initialize rxe device parameters */ diff -Nru linux-5.10.209/drivers/infiniband/ulp/ipoib/ipoib_multicast.c linux-5.10.216/drivers/infiniband/ulp/ipoib/ipoib_multicast.c --- linux-5.10.209/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2024-05-02 14:23:46.000000000 +0000 @@ -542,21 +542,18 @@ /* SM supports sendonly-fullmember, otherwise fallback to full-member */ rec.join_state = SENDONLY_FULLMEMBER_JOIN; } - spin_unlock_irq(&priv->lock); multicast = ib_sa_join_multicast(&ipoib_sa_client, priv->ca, priv->port, - &rec, comp_mask, GFP_KERNEL, + &rec, comp_mask, GFP_ATOMIC, ipoib_mcast_join_complete, mcast); - spin_lock_irq(&priv->lock); if (IS_ERR(multicast)) { ret = PTR_ERR(multicast); ipoib_warn(priv, "ib_sa_join_multicast failed, status %d\n", ret); /* Requeue this join task with a backoff delay */ __ipoib_mcast_schedule_join_thread(priv, mcast, 1); clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags); - spin_unlock_irq(&priv->lock); complete(&mcast->done); - spin_lock_irq(&priv->lock); + return ret; } return 0; } diff -Nru linux-5.10.209/drivers/infiniband/ulp/srpt/ib_srpt.c linux-5.10.216/drivers/infiniband/ulp/srpt/ib_srpt.c --- linux-5.10.209/drivers/infiniband/ulp/srpt/ib_srpt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/infiniband/ulp/srpt/ib_srpt.c 2024-05-02 14:23:46.000000000 +0000 @@ -79,12 +79,16 @@ MODULE_PARM_DESC(srpt_srq_size, "Shared receive queue (SRQ) size."); +static int srpt_set_u64_x(const char *buffer, const struct kernel_param *kp) +{ + return kstrtou64(buffer, 16, (u64 *)kp->arg); +} static int srpt_get_u64_x(char *buffer, const struct kernel_param *kp) { return sprintf(buffer, "0x%016llx\n", *(u64 *)kp->arg); } -module_param_call(srpt_service_guid, NULL, srpt_get_u64_x, &srpt_service_guid, - 0444); +module_param_call(srpt_service_guid, srpt_set_u64_x, srpt_get_u64_x, + &srpt_service_guid, 0444); MODULE_PARM_DESC(srpt_service_guid, "Using this value for ioc_guid, id_ext, and cm_listen_id instead of using the node_guid of the first HCA."); @@ -210,10 +214,12 @@ /** * srpt_qp_event - QP event callback function * @event: Description of the event that occurred. - * @ch: SRPT RDMA channel. + * @ptr: SRPT RDMA channel. */ -static void srpt_qp_event(struct ib_event *event, struct srpt_rdma_ch *ch) +static void srpt_qp_event(struct ib_event *event, void *ptr) { + struct srpt_rdma_ch *ch = ptr; + pr_debug("QP event %d on ch=%p sess_name=%s-%d state=%s\n", event->event, ch, ch->sess_name, ch->qp->qp_num, get_ch_state_name(ch->state)); @@ -1803,8 +1809,7 @@ ch->cq_size = ch->rq_size + sq_size; qp_init->qp_context = (void *)ch; - qp_init->event_handler - = (void(*)(struct ib_event *, void*))srpt_qp_event; + qp_init->event_handler = srpt_qp_event; qp_init->send_cq = ch->cq; qp_init->recv_cq = ch->cq; qp_init->sq_sig_type = IB_SIGNAL_REQ_WR; @@ -3200,7 +3205,6 @@ INIT_IB_EVENT_HANDLER(&sdev->event_handler, sdev->device, srpt_event_handler); - ib_register_event_handler(&sdev->event_handler); for (i = 1; i <= sdev->device->phys_port_cnt; i++) { sport = &sdev->port[i - 1]; @@ -3223,6 +3227,7 @@ } } + ib_register_event_handler(&sdev->event_handler); spin_lock(&srpt_dev_lock); list_add_tail(&sdev->list, &srpt_dev_list); spin_unlock(&srpt_dev_lock); @@ -3233,7 +3238,6 @@ err_port: srpt_unregister_mad_agent(sdev, i); - ib_unregister_event_handler(&sdev->event_handler); err_cm: if (sdev->cm_id) ib_destroy_cm_id(sdev->cm_id); diff -Nru linux-5.10.209/drivers/input/keyboard/atkbd.c linux-5.10.216/drivers/input/keyboard/atkbd.c --- linux-5.10.209/drivers/input/keyboard/atkbd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/input/keyboard/atkbd.c 2024-05-02 14:23:46.000000000 +0000 @@ -802,7 +802,6 @@ { struct ps2dev *ps2dev = &atkbd->ps2dev; unsigned char param[2]; - bool skip_getid; /* * Some systems, where the bit-twiddling when testing the io-lines of the @@ -816,6 +815,11 @@ "keyboard reset failed on %s\n", ps2dev->serio->phys); + if (atkbd_skip_getid(atkbd)) { + atkbd->id = 0xab83; + return 0; + } + /* * Then we check the keyboard ID. We should get 0xab83 under normal conditions. * Some keyboards report different values, but the first byte is always 0xab or @@ -824,18 +828,17 @@ */ param[0] = param[1] = 0xa5; /* initialize with invalid values */ - skip_getid = atkbd_skip_getid(atkbd); - if (skip_getid || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) { + if (ps2_command(ps2dev, param, ATKBD_CMD_GETID)) { /* - * If the get ID command was skipped or failed, we check if we can at least set + * If the get ID command failed, we check if we can at least set * the LEDs on the keyboard. This should work on every keyboard out there. * It also turns the LEDs off, which we want anyway. */ param[0] = 0; if (ps2_command(ps2dev, param, ATKBD_CMD_SETLEDS)) return -1; - atkbd->id = skip_getid ? 0xab83 : 0xabba; + atkbd->id = 0xabba; return 0; } diff -Nru linux-5.10.209/drivers/input/keyboard/gpio_keys_polled.c linux-5.10.216/drivers/input/keyboard/gpio_keys_polled.c --- linux-5.10.209/drivers/input/keyboard/gpio_keys_polled.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/input/keyboard/gpio_keys_polled.c 2024-05-02 14:23:46.000000000 +0000 @@ -319,12 +319,10 @@ error = devm_gpio_request_one(dev, button->gpio, flags, button->desc ? : DRV_NAME); - if (error) { - dev_err(dev, - "unable to claim gpio %u, err=%d\n", - button->gpio, error); - return error; - } + if (error) + return dev_err_probe(dev, error, + "unable to claim gpio %u\n", + button->gpio); bdata->gpiod = gpio_to_desc(button->gpio); if (!bdata->gpiod) { diff -Nru linux-5.10.209/drivers/input/rmi4/rmi_driver.c linux-5.10.216/drivers/input/rmi4/rmi_driver.c --- linux-5.10.209/drivers/input/rmi4/rmi_driver.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/input/rmi4/rmi_driver.c 2024-05-02 14:23:46.000000000 +0000 @@ -1196,7 +1196,11 @@ } rmi_driver_set_input_params(rmi_dev, data->input); data->input->phys = devm_kasprintf(dev, GFP_KERNEL, - "%s/input0", dev_name(dev)); + "%s/input0", dev_name(dev)); + if (!data->input->phys) { + retval = -ENOMEM; + goto err; + } } retval = rmi_init_functions(data); diff -Nru linux-5.10.209/drivers/input/serio/i8042-acpipnpio.h linux-5.10.216/drivers/input/serio/i8042-acpipnpio.h --- linux-5.10.209/drivers/input/serio/i8042-acpipnpio.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/input/serio/i8042-acpipnpio.h 2024-05-02 14:23:46.000000000 +0000 @@ -626,6 +626,14 @@ .driver_data = (void *)(SERIO_QUIRK_NOAUX) }, { + /* Fujitsu Lifebook U728 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK U728"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOAUX) + }, + { /* Gigabyte M912 */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), @@ -1181,6 +1189,12 @@ }, { .matches = { + DMI_MATCH(DMI_BOARD_NAME, "NS5x_7xPU"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOAUX) + }, + { + .matches = { DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"), }, .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | diff -Nru linux-5.10.209/drivers/iommu/amd/init.c linux-5.10.216/drivers/iommu/amd/init.c --- linux-5.10.209/drivers/iommu/amd/init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iommu/amd/init.c 2024-05-02 14:23:46.000000000 +0000 @@ -1827,6 +1827,9 @@ /* Prevent binding other PCI device drivers to IOMMU devices */ iommu->dev->match_driver = false; + /* ACPI _PRT won't have an IRQ for IOMMU */ + iommu->dev->irq_managed = 1; + pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET, &iommu->cap); diff -Nru linux-5.10.209/drivers/iommu/intel/pasid.c linux-5.10.216/drivers/iommu/intel/pasid.c --- linux-5.10.209/drivers/iommu/intel/pasid.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iommu/intel/pasid.c 2024-05-02 14:23:46.000000000 +0000 @@ -489,6 +489,9 @@ if (!info || !info->ats_enabled) return; + if (pci_dev_is_disconnected(to_pci_dev(dev))) + return; + sid = info->bus << 8 | info->devfn; qdep = info->ats_qdep; pfsid = info->pfsid; diff -Nru linux-5.10.209/drivers/iommu/intel/svm.c linux-5.10.216/drivers/iommu/intel/svm.c --- linux-5.10.209/drivers/iommu/intel/svm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/iommu/intel/svm.c 2024-05-02 14:23:46.000000000 +0000 @@ -33,7 +33,7 @@ struct page *pages; int irq, ret; - pages = alloc_pages(GFP_KERNEL | __GFP_ZERO, PRQ_ORDER); + pages = alloc_pages_node(iommu->node, GFP_KERNEL | __GFP_ZERO, PRQ_ORDER); if (!pages) { pr_warn("IOMMU: %s: Failed to allocate page request queue\n", iommu->name); diff -Nru linux-5.10.209/drivers/irqchip/irq-brcmstb-l2.c linux-5.10.216/drivers/irqchip/irq-brcmstb-l2.c --- linux-5.10.209/drivers/irqchip/irq-brcmstb-l2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/irqchip/irq-brcmstb-l2.c 2024-05-02 14:23:46.000000000 +0000 @@ -2,7 +2,7 @@ /* * Generic Broadcom Set Top Box Level 2 Interrupt controller driver * - * Copyright (C) 2014-2017 Broadcom + * Copyright (C) 2014-2024 Broadcom */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt @@ -113,6 +113,9 @@ generic_handle_irq(irq_linear_revmap(b->domain, irq)); } while (status); out: + /* Don't ack parent before all device writes are done */ + wmb(); + chained_irq_exit(chip, desc); } diff -Nru linux-5.10.209/drivers/irqchip/irq-gic-v3-its.c linux-5.10.216/drivers/irqchip/irq-gic-v3-its.c --- linux-5.10.209/drivers/irqchip/irq-gic-v3-its.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/irqchip/irq-gic-v3-its.c 2024-05-02 14:23:46.000000000 +0000 @@ -3782,8 +3782,9 @@ bool force) { struct its_vpe *vpe = irq_data_get_irq_chip_data(d); - int from, cpu = cpumask_first(mask_val); + struct cpumask common, *table_mask; unsigned long flags; + int from, cpu; /* * Changing affinity is mega expensive, so let's be as lazy as @@ -3799,19 +3800,22 @@ * taken on any vLPI handling path that evaluates vpe->col_idx. */ from = vpe_to_cpuid_lock(vpe, &flags); - if (from == cpu) - goto out; - - vpe->col_idx = cpu; + table_mask = gic_data_rdist_cpu(from)->vpe_table_mask; /* - * GICv4.1 allows us to skip VMOVP if moving to a cpu whose RD - * is sharing its VPE table with the current one. + * If we are offered another CPU in the same GICv4.1 ITS + * affinity, pick this one. Otherwise, any CPU will do. */ - if (gic_data_rdist_cpu(cpu)->vpe_table_mask && - cpumask_test_cpu(from, gic_data_rdist_cpu(cpu)->vpe_table_mask)) + if (table_mask && cpumask_and(&common, mask_val, table_mask)) + cpu = cpumask_test_cpu(from, &common) ? from : cpumask_first(&common); + else + cpu = cpumask_first(mask_val); + + if (from == cpu) goto out; + vpe->col_idx = cpu; + its_send_vmovp(vpe); its_vpe_db_proxy_move(vpe, from, cpu); @@ -4504,13 +4508,8 @@ set_bit(i, bitmap); } - if (err) { - if (i > 0) - its_vpe_irq_domain_free(domain, virq, i); - - its_lpi_free(bitmap, base, nr_ids); - its_free_prop_table(vprop_page); - } + if (err) + its_vpe_irq_domain_free(domain, virq, i); return err; } diff -Nru linux-5.10.209/drivers/irqchip/irq-mips-gic.c linux-5.10.216/drivers/irqchip/irq-mips-gic.c --- linux-5.10.209/drivers/irqchip/irq-mips-gic.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/irqchip/irq-mips-gic.c 2024-05-02 14:23:46.000000000 +0000 @@ -398,6 +398,8 @@ unsigned int intr = local_intrs[i]; struct gic_all_vpes_chip_data *cd; + if (!gic_local_irq_is_routable(intr)) + continue; cd = &gic_all_vpes_chip_data[intr]; write_gic_vl_map(mips_gic_vx_map_reg(intr), cd->map); if (cd->mask) diff -Nru linux-5.10.209/drivers/leds/leds-aw2013.c linux-5.10.216/drivers/leds/leds-aw2013.c --- linux-5.10.209/drivers/leds/leds-aw2013.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/leds/leds-aw2013.c 2024-05-02 14:23:46.000000000 +0000 @@ -397,6 +397,7 @@ regulator_disable(chip->vcc_regulator); error: + mutex_unlock(&chip->mutex); mutex_destroy(&chip->mutex); return ret; } diff -Nru linux-5.10.209/drivers/leds/leds-sgm3140.c linux-5.10.216/drivers/leds/leds-sgm3140.c --- linux-5.10.209/drivers/leds/leds-sgm3140.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/leds/leds-sgm3140.c 2024-05-02 14:23:46.000000000 +0000 @@ -114,8 +114,11 @@ "failed to enable regulator: %d\n", ret); return ret; } + gpiod_set_value_cansleep(priv->flash_gpio, 0); gpiod_set_value_cansleep(priv->enable_gpio, 1); } else { + del_timer_sync(&priv->powerdown_timer); + gpiod_set_value_cansleep(priv->flash_gpio, 0); gpiod_set_value_cansleep(priv->enable_gpio, 0); ret = regulator_disable(priv->vin_regulator); if (ret) { diff -Nru linux-5.10.209/drivers/leds/trigger/ledtrig-panic.c linux-5.10.216/drivers/leds/trigger/ledtrig-panic.c --- linux-5.10.209/drivers/leds/trigger/ledtrig-panic.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/leds/trigger/ledtrig-panic.c 2024-05-02 14:23:46.000000000 +0000 @@ -63,10 +63,13 @@ static int __init ledtrig_panic_init(void) { + led_trigger_register_simple("panic", &trigger); + if (!trigger) + return -ENOMEM; + atomic_notifier_chain_register(&panic_notifier_list, &led_trigger_panic_nb); - led_trigger_register_simple("panic", &trigger); panic_blink = led_panic_blink; return 0; } diff -Nru linux-5.10.209/drivers/mailbox/imx-mailbox.c linux-5.10.216/drivers/mailbox/imx-mailbox.c --- linux-5.10.209/drivers/mailbox/imx-mailbox.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mailbox/imx-mailbox.c 2024-05-02 14:23:46.000000000 +0000 @@ -331,8 +331,6 @@ break; } - priv->suspend = true; - return 0; } @@ -550,8 +548,6 @@ clk_disable_unprepare(priv->clk); - priv->suspend = false; - return 0; disable_runtime_pm: @@ -614,6 +610,8 @@ if (!priv->clk) priv->xcr = imx_mu_read(priv, priv->dcfg->xCR); + priv->suspend = true; + return 0; } @@ -632,6 +630,8 @@ if (!imx_mu_read(priv, priv->dcfg->xCR) && !priv->clk) imx_mu_write(priv, priv->xcr, priv->dcfg->xCR); + priv->suspend = false; + return 0; } diff -Nru linux-5.10.209/drivers/md/dm-core.h linux-5.10.216/drivers/md/dm-core.h --- linux-5.10.209/drivers/md/dm-core.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-core.h 2024-05-02 14:23:46.000000000 +0000 @@ -19,6 +19,8 @@ #include "dm.h" #define DM_RESERVED_MAX_IOS 1024 +#define DM_MAX_TARGETS 1048576 +#define DM_MAX_TARGET_PARAMS 1024 struct dm_kobject_holder { struct kobject kobj; diff -Nru linux-5.10.209/drivers/md/dm-crypt.c linux-5.10.216/drivers/md/dm-crypt.c --- linux-5.10.209/drivers/md/dm-crypt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-crypt.c 2024-05-02 14:23:46.000000000 +0000 @@ -48,11 +48,11 @@ struct convert_context { struct completion restart; struct bio *bio_in; - struct bio *bio_out; struct bvec_iter iter_in; + struct bio *bio_out; struct bvec_iter iter_out; - u64 cc_sector; atomic_t cc_pending; + u64 cc_sector; union { struct skcipher_request *req; struct aead_request *req_aead; @@ -2064,6 +2064,12 @@ io->ctx.bio_out = clone; io->ctx.iter_out = clone->bi_iter; + if (crypt_integrity_aead(cc)) { + bio_copy_data(clone, io->base_bio); + io->ctx.bio_in = clone; + io->ctx.iter_in = clone->bi_iter; + } + sector += bio_sectors(clone); crypt_inc_pending(io); diff -Nru linux-5.10.209/drivers/md/dm-integrity.c linux-5.10.216/drivers/md/dm-integrity.c --- linux-5.10.209/drivers/md/dm-integrity.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-integrity.c 2024-05-02 14:23:46.000000000 +0000 @@ -3937,7 +3937,7 @@ } else if (sscanf(opt_string, "sectors_per_bit:%llu%c", &llval, &dummy) == 1) { log2_sectors_per_bitmap_bit = !llval ? 0 : __ilog2_u64(llval); } else if (sscanf(opt_string, "bitmap_flush_interval:%u%c", &val, &dummy) == 1) { - if (val >= (uint64_t)UINT_MAX * 1000 / HZ) { + if ((uint64_t)val >= (uint64_t)UINT_MAX * 1000 / HZ) { r = -EINVAL; ti->error = "Invalid bitmap_flush_interval argument"; goto bad; diff -Nru linux-5.10.209/drivers/md/dm-ioctl.c linux-5.10.216/drivers/md/dm-ioctl.c --- linux-5.10.209/drivers/md/dm-ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -1760,7 +1760,8 @@ if (copy_from_user(param_kernel, user, minimum_data_size)) return -EFAULT; - if (param_kernel->data_size < minimum_data_size) + if (unlikely(param_kernel->data_size < minimum_data_size) || + unlikely(param_kernel->data_size > DM_MAX_TARGETS * DM_MAX_TARGET_PARAMS)) return -EINVAL; secure_data = param_kernel->flags & DM_SECURE_DATA_FLAG; diff -Nru linux-5.10.209/drivers/md/dm-raid.c linux-5.10.216/drivers/md/dm-raid.c --- linux-5.10.209/drivers/md/dm-raid.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-raid.c 2024-05-02 14:23:46.000000000 +0000 @@ -3329,14 +3329,14 @@ struct mddev *mddev = &rs->md; /* - * If we're reshaping to add disk(s)), ti->len and + * If we're reshaping to add disk(s), ti->len and * mddev->array_sectors will differ during the process * (ti->len > mddev->array_sectors), so we have to requeue * bios with addresses > mddev->array_sectors here or * there will occur accesses past EOD of the component * data images thus erroring the raid set. */ - if (unlikely(bio_end_sector(bio) > mddev->array_sectors)) + if (unlikely(bio_has_data(bio) && bio_end_sector(bio) > mddev->array_sectors)) return DM_MAPIO_REQUEUE; md_handle_request(mddev, bio); @@ -4019,7 +4019,9 @@ * Take this opportunity to check whether any failed * devices are reachable again. */ + mddev_lock_nointr(mddev); attempt_restore_of_faulty_devices(rs); + mddev_unlock(mddev); } if (test_and_clear_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags)) { diff -Nru linux-5.10.209/drivers/md/dm-snap.c linux-5.10.216/drivers/md/dm-snap.c --- linux-5.10.209/drivers/md/dm-snap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-snap.c 2024-05-02 14:23:46.000000000 +0000 @@ -685,8 +685,10 @@ for (i = 0; i < size; i++) { slot = et->table + i; - hlist_bl_for_each_entry_safe(ex, pos, n, slot, hash_list) + hlist_bl_for_each_entry_safe(ex, pos, n, slot, hash_list) { kmem_cache_free(mem, ex); + cond_resched(); + } } vfree(et->table); diff -Nru linux-5.10.209/drivers/md/dm-table.c linux-5.10.216/drivers/md/dm-table.c --- linux-5.10.209/drivers/md/dm-table.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-table.c 2024-05-02 14:23:46.000000000 +0000 @@ -144,7 +144,12 @@ int dm_table_create(struct dm_table **result, fmode_t mode, unsigned num_targets, struct mapped_device *md) { - struct dm_table *t = kzalloc(sizeof(*t), GFP_KERNEL); + struct dm_table *t; + + if (num_targets > DM_MAX_TARGETS) + return -EOVERFLOW; + + t = kzalloc(sizeof(*t), GFP_KERNEL); if (!t) return -ENOMEM; @@ -158,7 +163,7 @@ if (!num_targets) { kfree(t); - return -ENOMEM; + return -EOVERFLOW; } if (alloc_targets(t, num_targets)) { diff -Nru linux-5.10.209/drivers/md/dm-verity.h linux-5.10.216/drivers/md/dm-verity.h --- linux-5.10.209/drivers/md/dm-verity.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm-verity.h 2024-05-02 14:23:46.000000000 +0000 @@ -74,11 +74,11 @@ /* original value of bio->bi_end_io */ bio_end_io_t *orig_bi_end_io; + struct bvec_iter iter; + sector_t block; unsigned n_blocks; - struct bvec_iter iter; - struct work_struct work; /* diff -Nru linux-5.10.209/drivers/md/dm.c linux-5.10.216/drivers/md/dm.c --- linux-5.10.209/drivers/md/dm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/dm.c 2024-05-02 14:23:46.000000000 +0000 @@ -2733,6 +2733,9 @@ static void __dm_internal_resume(struct mapped_device *md) { + int r; + struct dm_table *map; + BUG_ON(!md->internal_suspend_count); if (--md->internal_suspend_count) @@ -2741,12 +2744,23 @@ if (dm_suspended_md(md)) goto done; /* resume from nested suspend */ - /* - * NOTE: existing callers don't need to call dm_table_resume_targets - * (which may fail -- so best to avoid it for now by passing NULL map) - */ - (void) __dm_resume(md, NULL); - + map = rcu_dereference_protected(md->map, lockdep_is_held(&md->suspend_lock)); + r = __dm_resume(md, map); + if (r) { + /* + * If a preresume method of some target failed, we are in a + * tricky situation. We can't return an error to the caller. We + * can't fake success because then the "resume" and + * "postsuspend" methods would not be paired correctly, and it + * would break various targets, for example it would cause list + * corruption in the "origin" target. + * + * So, we fake normal suspend here, to make sure that the + * "resume" and "postsuspend" methods will be paired correctly. + */ + DMERR("Preresume method failed: %d", r); + set_bit(DMF_SUSPENDED, &md->flags); + } done: clear_bit(DMF_SUSPENDED_INTERNALLY, &md->flags); smp_mb__after_atomic(); diff -Nru linux-5.10.209/drivers/md/md.c linux-5.10.216/drivers/md/md.c --- linux-5.10.209/drivers/md/md.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/md/md.c 2024-05-02 14:23:46.000000000 +0000 @@ -1179,6 +1179,7 @@ struct md_rdev *refdev, int minor_version); int (*validate_super)(struct mddev *mddev, + struct md_rdev *freshest, struct md_rdev *rdev); void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev); @@ -1317,8 +1318,9 @@ /* * validate_super for 0.90.0 + * note: we are not using "freshest" for 0.9 superblock */ -static int super_90_validate(struct mddev *mddev, struct md_rdev *rdev) +static int super_90_validate(struct mddev *mddev, struct md_rdev *freshest, struct md_rdev *rdev) { mdp_disk_t *desc; mdp_super_t *sb = page_address(rdev->sb_page); @@ -1833,7 +1835,7 @@ return ret; } -static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev) +static int super_1_validate(struct mddev *mddev, struct md_rdev *freshest, struct md_rdev *rdev) { struct mdp_superblock_1 *sb = page_address(rdev->sb_page); __u64 ev1 = le64_to_cpu(sb->events); @@ -1929,13 +1931,15 @@ } } else if (mddev->pers == NULL) { /* Insist of good event counter while assembling, except for - * spares (which don't need an event count) */ - ++ev1; + * spares (which don't need an event count). + * Similar to mdadm, we allow event counter difference of 1 + * from the freshest device. + */ if (rdev->desc_nr >= 0 && rdev->desc_nr < le32_to_cpu(sb->max_dev) && (le16_to_cpu(sb->dev_roles[rdev->desc_nr]) < MD_DISK_ROLE_MAX || le16_to_cpu(sb->dev_roles[rdev->desc_nr]) == MD_DISK_ROLE_JOURNAL)) - if (ev1 < mddev->events) + if (ev1 + 1 < mddev->events) return -EINVAL; } else if (mddev->bitmap) { /* If adding to array with a bitmap, then we can accept an @@ -1956,8 +1960,38 @@ rdev->desc_nr >= le32_to_cpu(sb->max_dev)) { role = MD_DISK_ROLE_SPARE; rdev->desc_nr = -1; - } else + } else if (mddev->pers == NULL && freshest && ev1 < mddev->events) { + /* + * If we are assembling, and our event counter is smaller than the + * highest event counter, we cannot trust our superblock about the role. + * It could happen that our rdev was marked as Faulty, and all other + * superblocks were updated with +1 event counter. + * Then, before the next superblock update, which typically happens when + * remove_and_add_spares() removes the device from the array, there was + * a crash or reboot. + * If we allow current rdev without consulting the freshest superblock, + * we could cause data corruption. + * Note that in this case our event counter is smaller by 1 than the + * highest, otherwise, this rdev would not be allowed into array; + * both kernel and mdadm allow event counter difference of 1. + */ + struct mdp_superblock_1 *freshest_sb = page_address(freshest->sb_page); + u32 freshest_max_dev = le32_to_cpu(freshest_sb->max_dev); + + if (rdev->desc_nr >= freshest_max_dev) { + /* this is unexpected, better not proceed */ + pr_warn("md: %s: rdev[%pg]: desc_nr(%d) >= freshest(%pg)->sb->max_dev(%u)\n", + mdname(mddev), rdev->bdev, rdev->desc_nr, + freshest->bdev, freshest_max_dev); + return -EUCLEAN; + } + + role = le16_to_cpu(freshest_sb->dev_roles[rdev->desc_nr]); + pr_debug("md: %s: rdev[%pg]: role=%d(0x%x) according to freshest %pg\n", + mdname(mddev), rdev->bdev, role, role, freshest->bdev); + } else { role = le16_to_cpu(sb->dev_roles[rdev->desc_nr]); + } switch(role) { case MD_DISK_ROLE_SPARE: /* spare */ break; @@ -2896,7 +2930,7 @@ * and should be added immediately. */ super_types[mddev->major_version]. - validate_super(mddev, rdev); + validate_super(mddev, NULL/*freshest*/, rdev); if (add_journal) mddev_suspend(mddev); err = mddev->pers->hot_add_disk(mddev, rdev); @@ -3814,7 +3848,7 @@ } super_types[mddev->major_version]. - validate_super(mddev, freshest); + validate_super(mddev, NULL/*freshest*/, freshest); i = 0; rdev_for_each_safe(rdev, tmp, mddev) { @@ -3829,7 +3863,7 @@ } if (rdev != freshest) { if (super_types[mddev->major_version]. - validate_super(mddev, rdev)) { + validate_super(mddev, freshest, rdev)) { pr_warn("md: kicking non-fresh %s from array!\n", bdevname(rdev->bdev,b)); md_kick_rdev_from_array(rdev); @@ -6209,7 +6243,15 @@ mddev->persistent = 0; mddev->level = LEVEL_NONE; mddev->clevel[0] = 0; - mddev->flags = 0; + /* + * Don't clear MD_CLOSING, or mddev can be opened again. + * 'hold_active != 0' means mddev is still in the creation + * process and will be used later. + */ + if (mddev->hold_active) + mddev->flags = 0; + else + mddev->flags &= BIT_ULL_MASK(MD_CLOSING); mddev->sb_flags = 0; mddev->ro = 0; mddev->metadata_type[0] = 0; @@ -6817,7 +6859,7 @@ rdev->saved_raid_disk = rdev->raid_disk; } else super_types[mddev->major_version]. - validate_super(mddev, rdev); + validate_super(mddev, NULL/*freshest*/, rdev); if ((info->state & (1<raid_disk != info->raid_disk) { /* This was a hot-add request, but events doesn't @@ -7502,7 +7544,6 @@ { switch (cmd) { case ADD_NEW_DISK: - case BLKROSET: case GET_ARRAY_INFO: case GET_BITMAP_FILE: case GET_DISK_INFO: @@ -7529,8 +7570,6 @@ int err = 0; void __user *argp = (void __user *)arg; struct mddev *mddev = NULL; - int ro; - bool did_set_md_closing = false; if (!md_ioctl_valid(cmd)) return -ENOTTY; @@ -7617,7 +7656,6 @@ err = -EBUSY; goto out; } - did_set_md_closing = true; mutex_unlock(&mddev->open_mutex); sync_blockdev(bdev); } @@ -7712,35 +7750,6 @@ goto unlock; } break; - - case BLKROSET: - if (get_user(ro, (int __user *)(arg))) { - err = -EFAULT; - goto unlock; - } - err = -EINVAL; - - /* if the bdev is going readonly the value of mddev->ro - * does not matter, no writes are coming - */ - if (ro) - goto unlock; - - /* are we are already prepared for writes? */ - if (mddev->ro != 1) - goto unlock; - - /* transitioning to readauto need only happen for - * arrays that call md_write_start - */ - if (mddev->pers) { - err = restart_array(mddev); - if (err == 0) { - mddev->ro = 2; - set_disk_ro(mddev->gendisk, 0); - } - } - goto unlock; } /* @@ -7810,7 +7819,7 @@ mddev->hold_active = 0; mddev_unlock(mddev); out: - if(did_set_md_closing) + if (cmd == STOP_ARRAY_RO || (err && cmd == STOP_ARRAY)) clear_bit(MD_CLOSING, &mddev->flags); return err; } @@ -7834,6 +7843,36 @@ } #endif /* CONFIG_COMPAT */ +static int md_set_read_only(struct block_device *bdev, bool ro) +{ + struct mddev *mddev = bdev->bd_disk->private_data; + int err; + + err = mddev_lock(mddev); + if (err) + return err; + + if (!mddev->raid_disks && !mddev->external) { + err = -ENODEV; + goto out_unlock; + } + + /* + * Transitioning to read-auto need only happen for arrays that call + * md_write_start and which are not ready for writes yet. + */ + if (!ro && mddev->ro == 1 && mddev->pers) { + err = restart_array(mddev); + if (err) + goto out_unlock; + mddev->ro = 2; + } + +out_unlock: + mddev_unlock(mddev); + return err; +} + static int md_open(struct block_device *bdev, fmode_t mode) { /* @@ -7910,6 +7949,7 @@ #endif .getgeo = md_getgeo, .check_events = md_check_events, + .set_read_only = md_set_read_only, }; static int md_thread(void *arg) diff -Nru linux-5.10.209/drivers/media/cec/core/cec-adap.c linux-5.10.216/drivers/media/cec/core/cec-adap.c --- linux-5.10.209/drivers/media/cec/core/cec-adap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/cec/core/cec-adap.c 2024-05-02 14:23:46.000000000 +0000 @@ -1116,20 +1116,6 @@ if (valid_la && min_len) { /* These messages have special length requirements */ switch (cmd) { - case CEC_MSG_TIMER_STATUS: - if (msg->msg[2] & 0x10) { - switch (msg->msg[2] & 0xf) { - case CEC_OP_PROG_INFO_NOT_ENOUGH_SPACE: - case CEC_OP_PROG_INFO_MIGHT_NOT_BE_ENOUGH_SPACE: - if (msg->len < 5) - valid_la = false; - break; - } - } else if ((msg->msg[2] & 0xf) == CEC_OP_PROG_ERROR_DUPLICATE) { - if (msg->len < 5) - valid_la = false; - } - break; case CEC_MSG_RECORD_ON: switch (msg->msg[2]) { case CEC_OP_RECORD_SRC_OWN: diff -Nru linux-5.10.209/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c linux-5.10.216/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c --- linux-5.10.209/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c 2024-05-02 14:23:46.000000000 +0000 @@ -113,6 +113,7 @@ { unsigned pat; unsigned plane; + int ret = 0; tpg->max_line_width = max_w; for (pat = 0; pat < TPG_MAX_PAT_LINES; pat++) { @@ -121,14 +122,18 @@ tpg->lines[pat][plane] = vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->lines[pat][plane]) - return -ENOMEM; + if (!tpg->lines[pat][plane]) { + ret = -ENOMEM; + goto free_lines; + } if (plane == 0) continue; tpg->downsampled_lines[pat][plane] = vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->downsampled_lines[pat][plane]) - return -ENOMEM; + if (!tpg->downsampled_lines[pat][plane]) { + ret = -ENOMEM; + goto free_lines; + } } } for (plane = 0; plane < TPG_MAX_PLANES; plane++) { @@ -136,18 +141,45 @@ tpg->contrast_line[plane] = vzalloc(array_size(pixelsz, max_w)); - if (!tpg->contrast_line[plane]) - return -ENOMEM; + if (!tpg->contrast_line[plane]) { + ret = -ENOMEM; + goto free_contrast_line; + } tpg->black_line[plane] = vzalloc(array_size(pixelsz, max_w)); - if (!tpg->black_line[plane]) - return -ENOMEM; + if (!tpg->black_line[plane]) { + ret = -ENOMEM; + goto free_contrast_line; + } tpg->random_line[plane] = vzalloc(array3_size(max_w, 2, pixelsz)); - if (!tpg->random_line[plane]) - return -ENOMEM; + if (!tpg->random_line[plane]) { + ret = -ENOMEM; + goto free_contrast_line; + } } return 0; + +free_contrast_line: + for (plane = 0; plane < TPG_MAX_PLANES; plane++) { + vfree(tpg->contrast_line[plane]); + vfree(tpg->black_line[plane]); + vfree(tpg->random_line[plane]); + tpg->contrast_line[plane] = NULL; + tpg->black_line[plane] = NULL; + tpg->random_line[plane] = NULL; + } +free_lines: + for (pat = 0; pat < TPG_MAX_PAT_LINES; pat++) + for (plane = 0; plane < TPG_MAX_PLANES; plane++) { + vfree(tpg->lines[pat][plane]); + tpg->lines[pat][plane] = NULL; + if (plane == 0) + continue; + vfree(tpg->downsampled_lines[pat][plane]); + tpg->downsampled_lines[pat][plane] = NULL; + } + return ret; } EXPORT_SYMBOL_GPL(tpg_alloc); diff -Nru linux-5.10.209/drivers/media/dvb-core/dvbdev.c linux-5.10.216/drivers/media/dvb-core/dvbdev.c --- linux-5.10.209/drivers/media/dvb-core/dvbdev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/dvb-core/dvbdev.c 2024-05-02 14:23:46.000000000 +0000 @@ -504,6 +504,7 @@ dvbdevfops = kmemdup(template->fops, sizeof(*dvbdevfops), GFP_KERNEL); if (!dvbdevfops) { kfree(dvbdev); + *pdvbdev = NULL; mutex_unlock(&dvbdev_register_lock); return -ENOMEM; } @@ -512,6 +513,7 @@ if (!new_node) { kfree(dvbdevfops); kfree(dvbdev); + *pdvbdev = NULL; mutex_unlock(&dvbdev_register_lock); return -ENOMEM; } @@ -545,6 +547,7 @@ } list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev = NULL; up_write(&minor_rwsem); mutex_unlock(&dvbdev_register_lock); return -EINVAL; @@ -567,6 +570,7 @@ dvb_media_device_free(dvbdev); list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev = NULL; mutex_unlock(&dvbdev_register_lock); return ret; } @@ -585,6 +589,7 @@ dvb_media_device_free(dvbdev); list_del (&dvbdev->list_head); kfree(dvbdev); + *pdvbdev = NULL; mutex_unlock(&dvbdev_register_lock); return PTR_ERR(clsdev); } diff -Nru linux-5.10.209/drivers/media/dvb-frontends/stv0367.c linux-5.10.216/drivers/media/dvb-frontends/stv0367.c --- linux-5.10.209/drivers/media/dvb-frontends/stv0367.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/dvb-frontends/stv0367.c 2024-05-02 14:23:46.000000000 +0000 @@ -118,50 +118,32 @@ } }; -static -int stv0367_writeregs(struct stv0367_state *state, u16 reg, u8 *data, int len) +static noinline_for_stack +int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data) { - u8 buf[MAX_XFER_SIZE]; + u8 buf[3] = { MSB(reg), LSB(reg), data }; struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, - .len = len + 2 + .len = 3, }; int ret; - if (2 + len > sizeof(buf)) { - printk(KERN_WARNING - "%s: i2c wr reg=%04x: len=%d is too big!\n", - KBUILD_MODNAME, reg, len); - return -EINVAL; - } - - - buf[0] = MSB(reg); - buf[1] = LSB(reg); - memcpy(buf + 2, data, len); - if (i2cdebug) printk(KERN_DEBUG "%s: [%02x] %02x: %02x\n", __func__, - state->config->demod_address, reg, buf[2]); + state->config->demod_address, reg, data); ret = i2c_transfer(state->i2c, &msg, 1); if (ret != 1) printk(KERN_ERR "%s: i2c write error! ([%02x] %02x: %02x)\n", - __func__, state->config->demod_address, reg, buf[2]); + __func__, state->config->demod_address, reg, data); return (ret != 1) ? -EREMOTEIO : 0; } -static int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data) -{ - u8 tmp = data; /* see gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */ - - return stv0367_writeregs(state, reg, &tmp, 1); -} - -static u8 stv0367_readreg(struct stv0367_state *state, u16 reg) +static noinline_for_stack +u8 stv0367_readreg(struct stv0367_state *state, u16 reg) { u8 b0[] = { 0, 0 }; u8 b1[] = { 0 }; diff -Nru linux-5.10.209/drivers/media/i2c/tc358743.c linux-5.10.216/drivers/media/i2c/tc358743.c --- linux-5.10.209/drivers/media/i2c/tc358743.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/i2c/tc358743.c 2024-05-02 14:23:46.000000000 +0000 @@ -2108,9 +2108,6 @@ state->mbus_fmt_code = MEDIA_BUS_FMT_RGB888_1X24; sd->dev = &client->dev; - err = v4l2_async_register_subdev(sd); - if (err < 0) - goto err_hdl; mutex_init(&state->confctl_mutex); @@ -2168,6 +2165,10 @@ if (err) goto err_work_queues; + err = v4l2_async_register_subdev(sd); + if (err < 0) + goto err_work_queues; + v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name, client->addr << 1, client->adapter->name); diff -Nru linux-5.10.209/drivers/media/pci/ddbridge/ddbridge-main.c linux-5.10.216/drivers/media/pci/ddbridge/ddbridge-main.c --- linux-5.10.209/drivers/media/pci/ddbridge/ddbridge-main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/pci/ddbridge/ddbridge-main.c 2024-05-02 14:23:46.000000000 +0000 @@ -247,7 +247,7 @@ ddb_unmap(dev); pci_set_drvdata(pdev, NULL); pci_disable_device(pdev); - return -1; + return stat; } /****************************************************************************/ diff -Nru linux-5.10.209/drivers/media/pci/sta2x11/sta2x11_vip.c linux-5.10.216/drivers/media/pci/sta2x11/sta2x11_vip.c --- linux-5.10.209/drivers/media/pci/sta2x11/sta2x11_vip.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/pci/sta2x11/sta2x11_vip.c 2024-05-02 14:23:46.000000000 +0000 @@ -760,7 +760,7 @@ /** * vip_irq - interrupt routine * @irq: Number of interrupt ( not used, correct number is assumed ) - * @vip: local data structure containing all information + * @data: local data structure containing all information * * check for both frame interrupts set ( top and bottom ). * check FIFO overflow, but limit number of log messages after open. @@ -770,8 +770,9 @@ * * IRQ_HANDLED, interrupt done. */ -static irqreturn_t vip_irq(int irq, struct sta2x11_vip *vip) +static irqreturn_t vip_irq(int irq, void *data) { + struct sta2x11_vip *vip = data; unsigned int status; status = reg_read(vip, DVP_ITS); @@ -1053,9 +1054,7 @@ spin_lock_init(&vip->slock); - ret = request_irq(pdev->irq, - (irq_handler_t) vip_irq, - IRQF_SHARED, KBUILD_MODNAME, vip); + ret = request_irq(pdev->irq, vip_irq, IRQF_SHARED, KBUILD_MODNAME, vip); if (ret) { dev_err(&pdev->dev, "request_irq failed\n"); ret = -ENODEV; diff -Nru linux-5.10.209/drivers/media/pci/ttpci/av7110_av.c linux-5.10.216/drivers/media/pci/ttpci/av7110_av.c --- linux-5.10.209/drivers/media/pci/ttpci/av7110_av.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/pci/ttpci/av7110_av.c 2024-05-02 14:23:46.000000000 +0000 @@ -822,10 +822,10 @@ av7110_ipack_flush(ipack); if (buf[3] & ADAPT_FIELD) { + if (buf[4] > len - 1 - 4) + return 0; len -= buf[4] + 1; buf += buf[4] + 1; - if (!len) - return 0; } av7110_ipack_instant_repack(buf + 4, len - 4, ipack); diff -Nru linux-5.10.209/drivers/media/pci/ttpci/budget-av.c linux-5.10.216/drivers/media/pci/ttpci/budget-av.c --- linux-5.10.209/drivers/media/pci/ttpci/budget-av.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/pci/ttpci/budget-av.c 2024-05-02 14:23:46.000000000 +0000 @@ -1462,7 +1462,8 @@ budget_av->has_saa7113 = 1; err = saa7146_vv_init(dev, &vv_data); if (err != 0) { - /* fixme: proper cleanup here */ + ttpci_budget_deinit(&budget_av->budget); + kfree(budget_av); ERR("cannot init vv subsystem\n"); return err; } @@ -1471,9 +1472,10 @@ vv_data.vid_ops.vidioc_s_input = vidioc_s_input; if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TYPE_VIDEO))) { - /* fixme: proper cleanup here */ - ERR("cannot register capture v4l2 device\n"); saa7146_vv_release(dev); + ttpci_budget_deinit(&budget_av->budget); + kfree(budget_av); + ERR("cannot register capture v4l2 device\n"); return err; } diff -Nru linux-5.10.209/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c linux-5.10.216/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c --- linux-5.10.209/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -977,13 +977,13 @@ if (ret < 0) goto dec_end; - schedule_delayed_work(&jpeg->job_timeout_work, - msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC)); - mtk_jpeg_set_dec_src(ctx, &src_buf->vb2_buf, &bs); if (mtk_jpeg_set_dec_dst(ctx, &jpeg_src_buf->dec_param, &dst_buf->vb2_buf, &fb)) goto dec_end; + schedule_delayed_work(&jpeg->job_timeout_work, + msecs_to_jiffies(MTK_JPEG_HW_TIMEOUT_MSEC)); + spin_lock_irqsave(&jpeg->hw_lock, flags); mtk_jpeg_dec_reset(jpeg->reg_base); mtk_jpeg_dec_set_config(jpeg->reg_base, diff -Nru linux-5.10.209/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c linux-5.10.216/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c --- linux-5.10.209/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/mtk-mdp/mtk_mdp_vpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -26,7 +26,7 @@ vpu->inst_addr = msg->vpu_inst_addr; } -static void mtk_mdp_vpu_ipi_handler(const void *data, unsigned int len, +static void mtk_mdp_vpu_ipi_handler(void *data, unsigned int len, void *priv) { const struct mdp_ipi_comm_ack *msg = data; diff -Nru linux-5.10.209/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c linux-5.10.216/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c --- linux-5.10.209/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw_vpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -29,15 +29,7 @@ mtk_vcodec_ipi_handler handler, const char *name, void *priv) { - /* - * The handler we receive takes a void * as its first argument. We - * cannot change this because it needs to be passed down to the rproc - * subsystem when SCP is used. VPU takes a const argument, which is - * more constrained, so the conversion below is safe. - */ - ipi_handler_t handler_const = (ipi_handler_t)handler; - - return vpu_ipi_register(fw->pdev, id, handler_const, name, priv); + return vpu_ipi_register(fw->pdev, id, handler, name, priv); } static int mtk_vcodec_vpu_ipi_send(struct mtk_vcodec_fw *fw, int id, void *buf, diff -Nru linux-5.10.209/drivers/media/platform/mtk-vpu/mtk_vpu.c linux-5.10.216/drivers/media/platform/mtk-vpu/mtk_vpu.c --- linux-5.10.209/drivers/media/platform/mtk-vpu/mtk_vpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/mtk-vpu/mtk_vpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -612,7 +612,7 @@ } EXPORT_SYMBOL_GPL(vpu_load_firmware); -static void vpu_init_ipi_handler(const void *data, unsigned int len, void *priv) +static void vpu_init_ipi_handler(void *data, unsigned int len, void *priv) { struct mtk_vpu *vpu = priv; const struct vpu_run *run = data; diff -Nru linux-5.10.209/drivers/media/platform/mtk-vpu/mtk_vpu.h linux-5.10.216/drivers/media/platform/mtk-vpu/mtk_vpu.h --- linux-5.10.209/drivers/media/platform/mtk-vpu/mtk_vpu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/mtk-vpu/mtk_vpu.h 2024-05-02 14:23:46.000000000 +0000 @@ -15,7 +15,7 @@ * VPU interfaces with other blocks by share memory and interrupt. **/ -typedef void (*ipi_handler_t) (const void *data, +typedef void (*ipi_handler_t) (void *data, unsigned int len, void *priv); diff -Nru linux-5.10.209/drivers/media/platform/rockchip/rga/rga.c linux-5.10.216/drivers/media/platform/rockchip/rga/rga.c --- linux-5.10.209/drivers/media/platform/rockchip/rga/rga.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/rockchip/rga/rga.c 2024-05-02 14:23:46.000000000 +0000 @@ -187,7 +187,7 @@ static struct rga_fmt formats[] = { { .fourcc = V4L2_PIX_FMT_ARGB32, - .color_swap = RGA_COLOR_RB_SWAP, + .color_swap = RGA_COLOR_ALPHA_SWAP, .hw_format = RGA_COLOR_FMT_ABGR8888, .depth = 32, .uv_factor = 1, @@ -195,17 +195,8 @@ .x_div = 1, }, { - .fourcc = V4L2_PIX_FMT_XRGB32, - .color_swap = RGA_COLOR_RB_SWAP, - .hw_format = RGA_COLOR_FMT_XBGR8888, - .depth = 32, - .uv_factor = 1, - .y_div = 1, - .x_div = 1, - }, - { .fourcc = V4L2_PIX_FMT_ABGR32, - .color_swap = RGA_COLOR_ALPHA_SWAP, + .color_swap = RGA_COLOR_RB_SWAP, .hw_format = RGA_COLOR_FMT_ABGR8888, .depth = 32, .uv_factor = 1, @@ -214,7 +205,7 @@ }, { .fourcc = V4L2_PIX_FMT_XBGR32, - .color_swap = RGA_COLOR_ALPHA_SWAP, + .color_swap = RGA_COLOR_RB_SWAP, .hw_format = RGA_COLOR_FMT_XBGR8888, .depth = 32, .uv_factor = 1, diff -Nru linux-5.10.209/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c linux-5.10.216/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c --- linux-5.10.209/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c 2024-05-02 14:23:46.000000000 +0000 @@ -66,6 +66,7 @@ struct vb2_v4l2_buffer *src, *dst; unsigned int hstep, vstep; dma_addr_t addr; + int i; src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); @@ -160,6 +161,26 @@ deinterlace_write(dev, DEINTERLACE_CH1_HORZ_FACT, hstep); deinterlace_write(dev, DEINTERLACE_CH1_VERT_FACT, vstep); + /* neutral filter coefficients */ + deinterlace_set_bits(dev, DEINTERLACE_FRM_CTRL, + DEINTERLACE_FRM_CTRL_COEF_ACCESS); + readl_poll_timeout(dev->base + DEINTERLACE_STATUS, val, + val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40); + + for (i = 0; i < 32; i++) { + deinterlace_write(dev, DEINTERLACE_CH0_HORZ_COEF0 + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH0_VERT_COEF + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH1_HORZ_COEF0 + i * 4, + DEINTERLACE_IDENTITY_COEF); + deinterlace_write(dev, DEINTERLACE_CH1_VERT_COEF + i * 4, + DEINTERLACE_IDENTITY_COEF); + } + + deinterlace_clr_set_bits(dev, DEINTERLACE_FRM_CTRL, + DEINTERLACE_FRM_CTRL_COEF_ACCESS, 0); + deinterlace_clr_set_bits(dev, DEINTERLACE_FIELD_CTRL, DEINTERLACE_FIELD_CTRL_FIELD_CNT_MSK, DEINTERLACE_FIELD_CTRL_FIELD_CNT(ctx->field)); @@ -248,7 +269,6 @@ static void deinterlace_init(struct deinterlace_dev *dev) { u32 val; - int i; deinterlace_write(dev, DEINTERLACE_BYPASS, DEINTERLACE_BYPASS_CSC); @@ -284,27 +304,7 @@ deinterlace_clr_set_bits(dev, DEINTERLACE_CHROMA_DIFF, DEINTERLACE_CHROMA_DIFF_TH_MSK, - DEINTERLACE_CHROMA_DIFF_TH(5)); - - /* neutral filter coefficients */ - deinterlace_set_bits(dev, DEINTERLACE_FRM_CTRL, - DEINTERLACE_FRM_CTRL_COEF_ACCESS); - readl_poll_timeout(dev->base + DEINTERLACE_STATUS, val, - val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40); - - for (i = 0; i < 32; i++) { - deinterlace_write(dev, DEINTERLACE_CH0_HORZ_COEF0 + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH0_VERT_COEF + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH1_HORZ_COEF0 + i * 4, - DEINTERLACE_IDENTITY_COEF); - deinterlace_write(dev, DEINTERLACE_CH1_VERT_COEF + i * 4, - DEINTERLACE_IDENTITY_COEF); - } - - deinterlace_clr_set_bits(dev, DEINTERLACE_FRM_CTRL, - DEINTERLACE_FRM_CTRL_COEF_ACCESS, 0); + DEINTERLACE_CHROMA_DIFF_TH(31)); } static inline struct deinterlace_ctx *deinterlace_file2ctx(struct file *file) @@ -937,11 +937,18 @@ return ret; } + ret = reset_control_deassert(dev->rstc); + if (ret) { + dev_err(dev->dev, "Failed to apply reset\n"); + + goto err_exclusive_rate; + } + ret = clk_prepare_enable(dev->bus_clk); if (ret) { dev_err(dev->dev, "Failed to enable bus clock\n"); - goto err_exclusive_rate; + goto err_rst; } ret = clk_prepare_enable(dev->mod_clk); @@ -958,23 +965,16 @@ goto err_mod_clk; } - ret = reset_control_deassert(dev->rstc); - if (ret) { - dev_err(dev->dev, "Failed to apply reset\n"); - - goto err_ram_clk; - } - deinterlace_init(dev); return 0; -err_ram_clk: - clk_disable_unprepare(dev->ram_clk); err_mod_clk: clk_disable_unprepare(dev->mod_clk); err_bus_clk: clk_disable_unprepare(dev->bus_clk); +err_rst: + reset_control_assert(dev->rstc); err_exclusive_rate: clk_rate_exclusive_put(dev->mod_clk); @@ -985,11 +985,12 @@ { struct deinterlace_dev *dev = dev_get_drvdata(device); - reset_control_assert(dev->rstc); - clk_disable_unprepare(dev->ram_clk); clk_disable_unprepare(dev->mod_clk); clk_disable_unprepare(dev->bus_clk); + + reset_control_assert(dev->rstc); + clk_rate_exclusive_put(dev->mod_clk); return 0; diff -Nru linux-5.10.209/drivers/media/rc/bpf-lirc.c linux-5.10.216/drivers/media/rc/bpf-lirc.c --- linux-5.10.209/drivers/media/rc/bpf-lirc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/rc/bpf-lirc.c 2024-05-02 14:23:46.000000000 +0000 @@ -249,7 +249,7 @@ if (attr->attach_flags) return -EINVAL; - rcdev = rc_dev_get_from_fd(attr->target_fd); + rcdev = rc_dev_get_from_fd(attr->target_fd, true); if (IS_ERR(rcdev)) return PTR_ERR(rcdev); @@ -274,7 +274,7 @@ if (IS_ERR(prog)) return PTR_ERR(prog); - rcdev = rc_dev_get_from_fd(attr->target_fd); + rcdev = rc_dev_get_from_fd(attr->target_fd, true); if (IS_ERR(rcdev)) { bpf_prog_put(prog); return PTR_ERR(rcdev); @@ -299,7 +299,7 @@ if (attr->query.query_flags) return -EINVAL; - rcdev = rc_dev_get_from_fd(attr->query.target_fd); + rcdev = rc_dev_get_from_fd(attr->query.target_fd, false); if (IS_ERR(rcdev)) return PTR_ERR(rcdev); diff -Nru linux-5.10.209/drivers/media/rc/ir_toy.c linux-5.10.216/drivers/media/rc/ir_toy.c --- linux-5.10.209/drivers/media/rc/ir_toy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/rc/ir_toy.c 2024-05-02 14:23:46.000000000 +0000 @@ -324,6 +324,7 @@ sizeof(COMMAND_SMODE_EXIT), STATE_RESET); if (err) { dev_err(irtoy->dev, "exit sample mode: %d\n", err); + kfree(buf); return err; } @@ -331,6 +332,7 @@ sizeof(COMMAND_SMODE_ENTER), STATE_COMMAND); if (err) { dev_err(irtoy->dev, "enter sample mode: %d\n", err); + kfree(buf); return err; } diff -Nru linux-5.10.209/drivers/media/rc/lirc_dev.c linux-5.10.216/drivers/media/rc/lirc_dev.c --- linux-5.10.209/drivers/media/rc/lirc_dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/rc/lirc_dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -826,7 +826,7 @@ unregister_chrdev_region(lirc_base_dev, RC_DEV_MAX); } -struct rc_dev *rc_dev_get_from_fd(int fd) +struct rc_dev *rc_dev_get_from_fd(int fd, bool write) { struct fd f = fdget(fd); struct lirc_fh *fh; @@ -840,6 +840,9 @@ return ERR_PTR(-EINVAL); } + if (write && !(f.file->f_mode & FMODE_WRITE)) + return ERR_PTR(-EPERM); + fh = f.file->private_data; dev = fh->rc; diff -Nru linux-5.10.209/drivers/media/rc/rc-core-priv.h linux-5.10.216/drivers/media/rc/rc-core-priv.h --- linux-5.10.209/drivers/media/rc/rc-core-priv.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/rc/rc-core-priv.h 2024-05-02 14:23:46.000000000 +0000 @@ -325,7 +325,7 @@ void lirc_scancode_event(struct rc_dev *dev, struct lirc_scancode *lsc); int lirc_register(struct rc_dev *dev); void lirc_unregister(struct rc_dev *dev); -struct rc_dev *rc_dev_get_from_fd(int fd); +struct rc_dev *rc_dev_get_from_fd(int fd, bool write); #else static inline int lirc_dev_init(void) { return 0; } static inline void lirc_dev_exit(void) {} diff -Nru linux-5.10.209/drivers/media/tuners/xc4000.c linux-5.10.216/drivers/media/tuners/xc4000.c --- linux-5.10.209/drivers/media/tuners/xc4000.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/tuners/xc4000.c 2024-05-02 14:23:46.000000000 +0000 @@ -1517,10 +1517,10 @@ { struct xc4000_priv *priv = fe->tuner_priv; + mutex_lock(&priv->lock); *freq = priv->freq_hz + priv->freq_offset; if (debug) { - mutex_lock(&priv->lock); if ((priv->cur_fw.type & (BASE | FM | DTV6 | DTV7 | DTV78 | DTV8)) == BASE) { u16 snr = 0; @@ -1531,8 +1531,8 @@ return 0; } } - mutex_unlock(&priv->lock); } + mutex_unlock(&priv->lock); dprintk(1, "%s()\n", __func__); diff -Nru linux-5.10.209/drivers/media/usb/em28xx/em28xx-cards.c linux-5.10.216/drivers/media/usb/em28xx/em28xx-cards.c --- linux-5.10.209/drivers/media/usb/em28xx/em28xx-cards.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/em28xx/em28xx-cards.c 2024-05-02 14:23:46.000000000 +0000 @@ -4049,6 +4049,10 @@ * topology will likely change after the load of the em28xx subdrivers. */ #ifdef CONFIG_MEDIA_CONTROLLER + /* + * No need to check the return value, the device will still be + * usable without media controller API. + */ retval = media_device_register(dev->media_dev); #endif diff -Nru linux-5.10.209/drivers/media/usb/go7007/go7007-driver.c linux-5.10.216/drivers/media/usb/go7007/go7007-driver.c --- linux-5.10.209/drivers/media/usb/go7007/go7007-driver.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/go7007/go7007-driver.c 2024-05-02 14:23:46.000000000 +0000 @@ -80,7 +80,7 @@ const struct firmware *fw_entry; char fw_name[] = "go7007/go7007fw.bin"; void *bounce; - int fw_len, rv = 0; + int fw_len; u16 intr_val, intr_data; if (go->boot_fw == NULL) { @@ -109,9 +109,11 @@ go7007_read_interrupt(go, &intr_val, &intr_data) < 0 || (intr_val & ~0x1) != 0x5a5a) { v4l2_err(go, "error transferring firmware\n"); - rv = -1; + kfree(go->boot_fw); + go->boot_fw = NULL; + return -1; } - return rv; + return 0; } MODULE_FIRMWARE("go7007/go7007fw.bin"); diff -Nru linux-5.10.209/drivers/media/usb/go7007/go7007-usb.c linux-5.10.216/drivers/media/usb/go7007/go7007-usb.c --- linux-5.10.209/drivers/media/usb/go7007/go7007-usb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/go7007/go7007-usb.c 2024-05-02 14:23:46.000000000 +0000 @@ -1201,7 +1201,9 @@ u16 channel; /* read channel number from GPIO[1:0] */ - go7007_read_addr(go, 0x3c81, &channel); + if (go7007_read_addr(go, 0x3c81, &channel)) + goto allocfail; + channel &= 0x3; go->board_id = GO7007_BOARDID_ADLINK_MPG24; usb->board = board = &board_adlink_mpg24; diff -Nru linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-context.c linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-context.c --- linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-context.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-context.c 2024-05-02 14:23:46.000000000 +0000 @@ -90,8 +90,10 @@ } -static void pvr2_context_notify(struct pvr2_context *mp) +static void pvr2_context_notify(void *ptr) { + struct pvr2_context *mp = ptr; + pvr2_context_set_notify(mp,!0); } @@ -106,9 +108,7 @@ pvr2_trace(PVR2_TRACE_CTXT, "pvr2_context %p (initialize)", mp); /* Finish hardware initialization */ - if (pvr2_hdw_initialize(mp->hdw, - (void (*)(void *))pvr2_context_notify, - mp)) { + if (pvr2_hdw_initialize(mp->hdw, pvr2_context_notify, mp)) { mp->video_stream.stream = pvr2_hdw_get_video_stream(mp->hdw); /* Trigger interface initialization. By doing this @@ -267,9 +267,9 @@ void pvr2_context_disconnect(struct pvr2_context *mp) { pvr2_hdw_disconnect(mp->hdw); - mp->disconnect_flag = !0; if (!pvr2_context_shutok()) pvr2_context_notify(mp); + mp->disconnect_flag = !0; } diff -Nru linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-dvb.c linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-dvb.c --- linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-dvb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-dvb.c 2024-05-02 14:23:46.000000000 +0000 @@ -88,8 +88,10 @@ return stat; } -static void pvr2_dvb_notify(struct pvr2_dvb_adapter *adap) +static void pvr2_dvb_notify(void *ptr) { + struct pvr2_dvb_adapter *adap = ptr; + wake_up(&adap->buffer_wait_data); } @@ -149,7 +151,7 @@ } pvr2_stream_set_callback(pvr->video_stream.stream, - (pvr2_stream_callback) pvr2_dvb_notify, adap); + pvr2_dvb_notify, adap); ret = pvr2_stream_set_buffer_count(stream, PVR2_DVB_BUFFER_COUNT); if (ret < 0) return ret; diff -Nru linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c --- linux-5.10.209/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c 2024-05-02 14:23:46.000000000 +0000 @@ -1037,8 +1037,10 @@ } -static void pvr2_v4l2_notify(struct pvr2_v4l2_fh *fhp) +static void pvr2_v4l2_notify(void *ptr) { + struct pvr2_v4l2_fh *fhp = ptr; + wake_up(&fhp->wait_data); } @@ -1071,7 +1073,7 @@ hdw = fh->channel.mc_head->hdw; sp = fh->pdi->stream->stream; - pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2_notify,fh); + pvr2_stream_set_callback(sp, pvr2_v4l2_notify, fh); pvr2_hdw_set_stream_type(hdw,fh->pdi->config); if ((ret = pvr2_hdw_set_streaming(hdw,!0)) < 0) return ret; return pvr2_ioread_set_enabled(fh->rhp,!0); @@ -1202,11 +1204,6 @@ dip->minor_type = pvr2_v4l_type_video; nr_ptr = video_nr; caps |= V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_AUDIO; - if (!dip->stream) { - pr_err(KBUILD_MODNAME - ": Failed to set up pvrusb2 v4l video dev due to missing stream instance\n"); - return; - } break; case VFL_TYPE_VBI: dip->config = pvr2_config_vbi; diff -Nru linux-5.10.209/drivers/media/usb/stk1160/stk1160-video.c linux-5.10.216/drivers/media/usb/stk1160/stk1160-video.c --- linux-5.10.209/drivers/media/usb/stk1160/stk1160-video.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/usb/stk1160/stk1160-video.c 2024-05-02 14:23:46.000000000 +0000 @@ -107,8 +107,7 @@ /* * TODO: These stk1160_dbg are very spammy! - * We should 1) check why we are getting them - * and 2) add ratelimit. + * We should check why we are getting them. * * UPDATE: One of the reasons (the only one?) for getting these * is incorrect standard (mismatch between expected and configured). @@ -151,7 +150,7 @@ /* Let the bug hunt begin! sanity checks! */ if (lencopy < 0) { - stk1160_dbg("copy skipped: negative lencopy\n"); + printk_ratelimited(KERN_DEBUG "copy skipped: negative lencopy\n"); return; } diff -Nru linux-5.10.209/drivers/media/v4l2-core/v4l2-mem2mem.c linux-5.10.216/drivers/media/v4l2-core/v4l2-mem2mem.c --- linux-5.10.209/drivers/media/v4l2-core/v4l2-mem2mem.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/media/v4l2-core/v4l2-mem2mem.c 2024-05-02 14:23:46.000000000 +0000 @@ -1053,11 +1053,17 @@ entity->function = function; ret = media_entity_pads_init(entity, num_pads, pads); - if (ret) + if (ret) { + kfree(entity->name); + entity->name = NULL; return ret; + } ret = media_device_register_entity(mdev, entity); - if (ret) + if (ret) { + kfree(entity->name); + entity->name = NULL; return ret; + } return 0; } diff -Nru linux-5.10.209/drivers/mfd/Kconfig linux-5.10.216/drivers/mfd/Kconfig --- linux-5.10.209/drivers/mfd/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mfd/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -1382,6 +1382,7 @@ config MFD_TI_AM335X_TSCADC tristate "TI ADC / Touch Screen chip support" + depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST select MFD_CORE select REGMAP select REGMAP_MMIO diff -Nru linux-5.10.209/drivers/mfd/altera-sysmgr.c linux-5.10.216/drivers/mfd/altera-sysmgr.c --- linux-5.10.209/drivers/mfd/altera-sysmgr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mfd/altera-sysmgr.c 2024-05-02 14:23:46.000000000 +0000 @@ -110,7 +110,9 @@ dev = driver_find_device_by_of_node(&altr_sysmgr_driver.driver, (void *)sysmgr_np); - of_node_put(sysmgr_np); + if (property) + of_node_put(sysmgr_np); + if (!dev) return ERR_PTR(-EPROBE_DEFER); diff -Nru linux-5.10.209/drivers/mfd/syscon.c linux-5.10.216/drivers/mfd/syscon.c --- linux-5.10.209/drivers/mfd/syscon.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mfd/syscon.c 2024-05-02 14:23:46.000000000 +0000 @@ -224,7 +224,9 @@ return ERR_PTR(-ENODEV); regmap = syscon_node_to_regmap(syscon_np); - of_node_put(syscon_np); + + if (property) + of_node_put(syscon_np); return regmap; } diff -Nru linux-5.10.209/drivers/misc/fastrpc.c linux-5.10.216/drivers/misc/fastrpc.c --- linux-5.10.209/drivers/misc/fastrpc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/misc/fastrpc.c 2024-05-02 14:23:46.000000000 +0000 @@ -1592,7 +1592,7 @@ int i; spin_lock_irqsave(&cctx->lock, flags); - for (i = 1; i < FASTRPC_MAX_SESSIONS; i++) { + for (i = 0; i < FASTRPC_MAX_SESSIONS; i++) { if (cctx->session[i].sid == sess->sid) { cctx->session[i].valid = false; cctx->sesscount--; diff -Nru linux-5.10.209/drivers/misc/mei/hw-me-regs.h linux-5.10.216/drivers/misc/mei/hw-me-regs.h --- linux-5.10.209/drivers/misc/mei/hw-me-regs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/misc/mei/hw-me-regs.h 2024-05-02 14:23:46.000000000 +0000 @@ -112,6 +112,8 @@ #define MEI_DEV_ID_RPL_S 0x7A68 /* Raptor Lake Point S */ #define MEI_DEV_ID_MTL_M 0x7E70 /* Meteor Lake Point M */ +#define MEI_DEV_ID_ARL_S 0x7F68 /* Arrow Lake Point S */ +#define MEI_DEV_ID_ARL_H 0x7770 /* Arrow Lake Point H */ /* * MEI HW Section diff -Nru linux-5.10.209/drivers/misc/mei/pci-me.c linux-5.10.216/drivers/misc/mei/pci-me.c --- linux-5.10.209/drivers/misc/mei/pci-me.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/misc/mei/pci-me.c 2024-05-02 14:23:46.000000000 +0000 @@ -115,9 +115,11 @@ {MEI_PCI_DEVICE(MEI_DEV_ID_ADP_P, MEI_ME_PCH15_CFG)}, {MEI_PCI_DEVICE(MEI_DEV_ID_ADP_N, MEI_ME_PCH15_CFG)}, - {MEI_PCI_DEVICE(MEI_DEV_ID_RPL_S, MEI_ME_PCH15_CFG)}, + {MEI_PCI_DEVICE(MEI_DEV_ID_RPL_S, MEI_ME_PCH15_SPS_CFG)}, {MEI_PCI_DEVICE(MEI_DEV_ID_MTL_M, MEI_ME_PCH15_CFG)}, + {MEI_PCI_DEVICE(MEI_DEV_ID_ARL_S, MEI_ME_PCH15_CFG)}, + {MEI_PCI_DEVICE(MEI_DEV_ID_ARL_H, MEI_ME_PCH15_CFG)}, /* required last entry */ {0, } diff -Nru linux-5.10.209/drivers/misc/vmw_vmci/vmci_datagram.c linux-5.10.216/drivers/misc/vmw_vmci/vmci_datagram.c --- linux-5.10.209/drivers/misc/vmw_vmci/vmci_datagram.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/misc/vmw_vmci/vmci_datagram.c 2024-05-02 14:23:46.000000000 +0000 @@ -234,7 +234,8 @@ dg_info->in_dg_host_queue = true; dg_info->entry = dst_entry; - memcpy(&dg_info->msg, dg, dg_size); + dg_info->msg = *dg; + memcpy(&dg_info->msg_payload, dg + 1, dg->payload_size); INIT_WORK(&dg_info->work, dg_delayed_dispatch); schedule_work(&dg_info->work); @@ -377,7 +378,8 @@ dg_info->in_dg_host_queue = false; dg_info->entry = dst_entry; - memcpy(&dg_info->msg, dg, VMCI_DG_SIZE(dg)); + dg_info->msg = *dg; + memcpy(&dg_info->msg_payload, dg + 1, dg->payload_size); INIT_WORK(&dg_info->work, dg_delayed_dispatch); schedule_work(&dg_info->work); diff -Nru linux-5.10.209/drivers/mmc/core/block.c linux-5.10.216/drivers/mmc/core/block.c --- linux-5.10.209/drivers/mmc/core/block.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/core/block.c 2024-05-02 14:23:46.000000000 +0000 @@ -346,6 +346,10 @@ struct mmc_ioc_cmd ic; unsigned char *buf; u64 buf_bytes; + unsigned int flags; +#define MMC_BLK_IOC_DROP BIT(0) /* drop this mrq */ +#define MMC_BLK_IOC_SBC BIT(1) /* use mrq.sbc */ + struct mmc_rpmb_data *rpmb; }; @@ -355,7 +359,7 @@ struct mmc_blk_ioc_data *idata; int err; - idata = kmalloc(sizeof(*idata), GFP_KERNEL); + idata = kzalloc(sizeof(*idata), GFP_KERNEL); if (!idata) { err = -ENOMEM; goto out; @@ -447,7 +451,7 @@ } static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md, - struct mmc_blk_ioc_data *idata) + struct mmc_blk_ioc_data **idatas, int i) { struct mmc_command cmd = {}, sbc = {}; struct mmc_data data = {}; @@ -455,10 +459,18 @@ struct scatterlist sg; int err; unsigned int target_part; + struct mmc_blk_ioc_data *idata = idatas[i]; + struct mmc_blk_ioc_data *prev_idata = NULL; if (!card || !md || !idata) return -EINVAL; + if (idata->flags & MMC_BLK_IOC_DROP) + return 0; + + if (idata->flags & MMC_BLK_IOC_SBC && i > 0) + prev_idata = idatas[i - 1]; + /* * The RPMB accesses comes in from the character device, so we * need to target these explicitly. Else we just target the @@ -525,7 +537,7 @@ return err; } - if (idata->rpmb) { + if (idata->rpmb || prev_idata) { sbc.opcode = MMC_SET_BLOCK_COUNT; /* * We don't do any blockcount validation because the max size @@ -533,6 +545,8 @@ * 'Reliable Write' bit here. */ sbc.arg = data.blocks | (idata->ic.write_flag & BIT(31)); + if (prev_idata) + sbc.arg = prev_idata->ic.arg; sbc.flags = MMC_RSP_R1 | MMC_CMD_AC; mrq.sbc = &sbc; } @@ -544,6 +558,15 @@ mmc_wait_for_req(card->host, &mrq); memcpy(&idata->ic.response, cmd.resp, sizeof(cmd.resp)); + if (prev_idata) { + memcpy(&prev_idata->ic.response, sbc.resp, sizeof(sbc.resp)); + if (sbc.error) { + dev_err(mmc_dev(card->host), "%s: sbc error %d\n", + __func__, sbc.error); + return sbc.error; + } + } + if (cmd.error) { dev_err(mmc_dev(card->host), "%s: cmd error %d\n", __func__, cmd.error); @@ -800,10 +823,11 @@ static int mmc_blk_part_switch_pre(struct mmc_card *card, unsigned int part_type) { - const unsigned int mask = EXT_CSD_PART_CONFIG_ACC_RPMB; + const unsigned int mask = EXT_CSD_PART_CONFIG_ACC_MASK; + const unsigned int rpmb = EXT_CSD_PART_CONFIG_ACC_RPMB; int ret = 0; - if ((part_type & mask) == mask) { + if ((part_type & mask) == rpmb) { if (card->ext_csd.cmdq_en) { ret = mmc_cmdq_disable(card); if (ret) @@ -818,10 +842,11 @@ static int mmc_blk_part_switch_post(struct mmc_card *card, unsigned int part_type) { - const unsigned int mask = EXT_CSD_PART_CONFIG_ACC_RPMB; + const unsigned int mask = EXT_CSD_PART_CONFIG_ACC_MASK; + const unsigned int rpmb = EXT_CSD_PART_CONFIG_ACC_RPMB; int ret = 0; - if ((part_type & mask) == mask) { + if ((part_type & mask) == rpmb) { mmc_retune_unpause(card->host); if (card->reenable_cmdq && !card->ext_csd.cmdq_en) ret = mmc_cmdq_enable(card); @@ -985,6 +1010,20 @@ md->reset_done &= ~type; } +static void mmc_blk_check_sbc(struct mmc_queue_req *mq_rq) +{ + struct mmc_blk_ioc_data **idata = mq_rq->drv_op_data; + int i; + + for (i = 1; i < mq_rq->ioc_count; i++) { + if (idata[i - 1]->ic.opcode == MMC_SET_BLOCK_COUNT && + mmc_op_multi(idata[i]->ic.opcode)) { + idata[i - 1]->flags |= MMC_BLK_IOC_DROP; + idata[i]->flags |= MMC_BLK_IOC_SBC; + } + } +} + /* * The non-block commands come back from the block layer after it queued it and * processed it with all other requests and then they get issued in this @@ -1012,11 +1051,14 @@ if (ret) break; } + + mmc_blk_check_sbc(mq_rq); + fallthrough; case MMC_DRV_OP_IOCTL_RPMB: idata = mq_rq->drv_op_data; for (i = 0, ret = 0; i < mq_rq->ioc_count; i++) { - ret = __mmc_blk_ioctl_cmd(card, md, idata[i]); + ret = __mmc_blk_ioctl_cmd(card, md, idata, i); if (ret) break; } diff -Nru linux-5.10.209/drivers/mmc/core/mmc.c linux-5.10.216/drivers/mmc/core/mmc.c --- linux-5.10.209/drivers/mmc/core/mmc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/core/mmc.c 2024-05-02 14:23:46.000000000 +0000 @@ -997,10 +997,12 @@ static unsigned ext_csd_bits[] = { EXT_CSD_BUS_WIDTH_8, EXT_CSD_BUS_WIDTH_4, + EXT_CSD_BUS_WIDTH_1, }; static unsigned bus_widths[] = { MMC_BUS_WIDTH_8, MMC_BUS_WIDTH_4, + MMC_BUS_WIDTH_1, }; struct mmc_host *host = card->host; unsigned idx, bus_width = 0; diff -Nru linux-5.10.209/drivers/mmc/core/slot-gpio.c linux-5.10.216/drivers/mmc/core/slot-gpio.c --- linux-5.10.209/drivers/mmc/core/slot-gpio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/core/slot-gpio.c 2024-05-02 14:23:46.000000000 +0000 @@ -62,11 +62,15 @@ int mmc_gpio_get_ro(struct mmc_host *host) { struct mmc_gpio *ctx = host->slot.handler_priv; + int cansleep; if (!ctx || !ctx->ro_gpio) return -ENOSYS; - return gpiod_get_value_cansleep(ctx->ro_gpio); + cansleep = gpiod_cansleep(ctx->ro_gpio); + return cansleep ? + gpiod_get_value_cansleep(ctx->ro_gpio) : + gpiod_get_value(ctx->ro_gpio); } EXPORT_SYMBOL(mmc_gpio_get_ro); diff -Nru linux-5.10.209/drivers/mmc/host/mmc_spi.c linux-5.10.216/drivers/mmc/host/mmc_spi.c --- linux-5.10.209/drivers/mmc/host/mmc_spi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/host/mmc_spi.c 2024-05-02 14:23:46.000000000 +0000 @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include @@ -119,19 +119,14 @@ struct spi_transfer status; struct spi_message readback; - /* underlying DMA-aware controller, or null */ - struct device *dma_dev; - /* buffer used for commands and for message "overhead" */ struct scratch *data; - dma_addr_t data_dma; /* Specs say to write ones most of the time, even when the card * has no need to read its input data; and many cards won't care. * This is our source of those ones. */ void *ones; - dma_addr_t ones_dma; }; @@ -147,11 +142,8 @@ return spi_setup(host->spi); } -static int -mmc_spi_readbytes(struct mmc_spi_host *host, unsigned len) +static int mmc_spi_readbytes(struct mmc_spi_host *host, unsigned int len) { - int status; - if (len > sizeof(*host->data)) { WARN_ON(1); return -EIO; @@ -159,19 +151,7 @@ host->status.len = len; - if (host->dma_dev) - dma_sync_single_for_device(host->dma_dev, - host->data_dma, sizeof(*host->data), - DMA_FROM_DEVICE); - - status = spi_sync_locked(host->spi, &host->readback); - - if (host->dma_dev) - dma_sync_single_for_cpu(host->dma_dev, - host->data_dma, sizeof(*host->data), - DMA_FROM_DEVICE); - - return status; + return spi_sync_locked(host->spi, &host->readback); } static int mmc_spi_skip(struct mmc_spi_host *host, unsigned long timeout, @@ -513,23 +493,11 @@ t = &host->t; memset(t, 0, sizeof(*t)); t->tx_buf = t->rx_buf = data->status; - t->tx_dma = t->rx_dma = host->data_dma; t->len = cp - data->status; t->cs_change = 1; spi_message_add_tail(t, &host->m); - if (host->dma_dev) { - host->m.is_dma_mapped = 1; - dma_sync_single_for_device(host->dma_dev, - host->data_dma, sizeof(*host->data), - DMA_BIDIRECTIONAL); - } status = spi_sync_locked(host->spi, &host->m); - - if (host->dma_dev) - dma_sync_single_for_cpu(host->dma_dev, - host->data_dma, sizeof(*host->data), - DMA_BIDIRECTIONAL); if (status < 0) { dev_dbg(&host->spi->dev, " ... write returned %d\n", status); cmd->error = status; @@ -547,9 +515,6 @@ * We always provide TX data for data and CRC. The MMC/SD protocol * requires us to write ones; but Linux defaults to writing zeroes; * so we explicitly initialize it to all ones on RX paths. - * - * We also handle DMA mapping, so the underlying SPI controller does - * not need to (re)do it for each message. */ static void mmc_spi_setup_data_message( @@ -559,11 +524,8 @@ { struct spi_transfer *t; struct scratch *scratch = host->data; - dma_addr_t dma = host->data_dma; spi_message_init(&host->m); - if (dma) - host->m.is_dma_mapped = 1; /* for reads, readblock() skips 0xff bytes before finding * the token; for writes, this transfer issues that token. @@ -577,8 +539,6 @@ else scratch->data_token = SPI_TOKEN_SINGLE; t->tx_buf = &scratch->data_token; - if (dma) - t->tx_dma = dma + offsetof(struct scratch, data_token); spi_message_add_tail(t, &host->m); } @@ -588,7 +548,6 @@ t = &host->t; memset(t, 0, sizeof(*t)); t->tx_buf = host->ones; - t->tx_dma = host->ones_dma; /* length and actual buffer info are written later */ spi_message_add_tail(t, &host->m); @@ -598,14 +557,9 @@ if (direction == DMA_TO_DEVICE) { /* the actual CRC may get written later */ t->tx_buf = &scratch->crc_val; - if (dma) - t->tx_dma = dma + offsetof(struct scratch, crc_val); } else { t->tx_buf = host->ones; - t->tx_dma = host->ones_dma; t->rx_buf = &scratch->crc_val; - if (dma) - t->rx_dma = dma + offsetof(struct scratch, crc_val); } spi_message_add_tail(t, &host->m); @@ -628,10 +582,7 @@ memset(t, 0, sizeof(*t)); t->len = (direction == DMA_TO_DEVICE) ? sizeof(scratch->status) : 1; t->tx_buf = host->ones; - t->tx_dma = host->ones_dma; t->rx_buf = scratch->status; - if (dma) - t->rx_dma = dma + offsetof(struct scratch, status); t->cs_change = 1; spi_message_add_tail(t, &host->m); } @@ -660,23 +611,13 @@ if (host->mmc->use_spi_crc) scratch->crc_val = cpu_to_be16(crc_itu_t(0, t->tx_buf, t->len)); - if (host->dma_dev) - dma_sync_single_for_device(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); status = spi_sync_locked(spi, &host->m); - if (status != 0) { dev_dbg(&spi->dev, "write error (%d)\n", status); return status; } - if (host->dma_dev) - dma_sync_single_for_cpu(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); - /* * Get the transmission data-response reply. It must follow * immediately after the data block we transferred. This reply @@ -725,8 +666,6 @@ } t->tx_buf += t->len; - if (host->dma_dev) - t->tx_dma += t->len; /* Return when not busy. If we didn't collect that status yet, * we'll need some more I/O. @@ -790,30 +729,12 @@ } leftover = status << 1; - if (host->dma_dev) { - dma_sync_single_for_device(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); - dma_sync_single_for_device(host->dma_dev, - t->rx_dma, t->len, - DMA_FROM_DEVICE); - } - status = spi_sync_locked(spi, &host->m); if (status < 0) { dev_dbg(&spi->dev, "read error %d\n", status); return status; } - if (host->dma_dev) { - dma_sync_single_for_cpu(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); - dma_sync_single_for_cpu(host->dma_dev, - t->rx_dma, t->len, - DMA_FROM_DEVICE); - } - if (bitshift) { /* Walk through the data and the crc and do * all the magic to get byte-aligned data. @@ -848,8 +769,6 @@ } t->rx_buf += t->len; - if (host->dma_dev) - t->rx_dma += t->len; return 0; } @@ -864,7 +783,6 @@ struct mmc_data *data, u32 blk_size) { struct spi_device *spi = host->spi; - struct device *dma_dev = host->dma_dev; struct spi_transfer *t; enum dma_data_direction direction; struct scatterlist *sg; @@ -891,31 +809,8 @@ */ for_each_sg(data->sg, sg, data->sg_len, n_sg) { int status = 0; - dma_addr_t dma_addr = 0; void *kmap_addr; unsigned length = sg->length; - enum dma_data_direction dir = direction; - - /* set up dma mapping for controller drivers that might - * use DMA ... though they may fall back to PIO - */ - if (dma_dev) { - /* never invalidate whole *shared* pages ... */ - if ((sg->offset != 0 || length != PAGE_SIZE) - && dir == DMA_FROM_DEVICE) - dir = DMA_BIDIRECTIONAL; - - dma_addr = dma_map_page(dma_dev, sg_page(sg), 0, - PAGE_SIZE, dir); - if (dma_mapping_error(dma_dev, dma_addr)) { - data->error = -EFAULT; - break; - } - if (direction == DMA_TO_DEVICE) - t->tx_dma = dma_addr + sg->offset; - else - t->rx_dma = dma_addr + sg->offset; - } /* allow pio too; we don't allow highmem */ kmap_addr = kmap(sg_page(sg)); @@ -951,8 +846,6 @@ if (direction == DMA_FROM_DEVICE) flush_kernel_dcache_page(sg_page(sg)); kunmap(sg_page(sg)); - if (dma_dev) - dma_unmap_page(dma_dev, dma_addr, PAGE_SIZE, dir); if (status < 0) { data->error = status; @@ -989,21 +882,9 @@ scratch->status[0] = SPI_TOKEN_STOP_TRAN; host->early_status.tx_buf = host->early_status.rx_buf; - host->early_status.tx_dma = host->early_status.rx_dma; host->early_status.len = statlen; - if (host->dma_dev) - dma_sync_single_for_device(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); - tmp = spi_sync_locked(spi, &host->m); - - if (host->dma_dev) - dma_sync_single_for_cpu(host->dma_dev, - host->data_dma, sizeof(*scratch), - DMA_BIDIRECTIONAL); - if (tmp < 0) { if (!data->error) data->error = tmp; @@ -1278,52 +1159,6 @@ return IRQ_HANDLED; } -#ifdef CONFIG_HAS_DMA -static int mmc_spi_dma_alloc(struct mmc_spi_host *host) -{ - struct spi_device *spi = host->spi; - struct device *dev; - - if (!spi->master->dev.parent->dma_mask) - return 0; - - dev = spi->master->dev.parent; - - host->ones_dma = dma_map_single(dev, host->ones, MMC_SPI_BLOCKSIZE, - DMA_TO_DEVICE); - if (dma_mapping_error(dev, host->ones_dma)) - return -ENOMEM; - - host->data_dma = dma_map_single(dev, host->data, sizeof(*host->data), - DMA_BIDIRECTIONAL); - if (dma_mapping_error(dev, host->data_dma)) { - dma_unmap_single(dev, host->ones_dma, MMC_SPI_BLOCKSIZE, - DMA_TO_DEVICE); - return -ENOMEM; - } - - dma_sync_single_for_cpu(dev, host->data_dma, sizeof(*host->data), - DMA_BIDIRECTIONAL); - - host->dma_dev = dev; - return 0; -} - -static void mmc_spi_dma_free(struct mmc_spi_host *host) -{ - if (!host->dma_dev) - return; - - dma_unmap_single(host->dma_dev, host->ones_dma, MMC_SPI_BLOCKSIZE, - DMA_TO_DEVICE); - dma_unmap_single(host->dma_dev, host->data_dma, sizeof(*host->data), - DMA_BIDIRECTIONAL); -} -#else -static inline int mmc_spi_dma_alloc(struct mmc_spi_host *host) { return 0; } -static inline void mmc_spi_dma_free(struct mmc_spi_host *host) {} -#endif - static int mmc_spi_probe(struct spi_device *spi) { void *ones; @@ -1415,24 +1250,17 @@ dev_set_drvdata(&spi->dev, mmc); - /* preallocate dma buffers */ + /* Preallocate buffers */ host->data = kmalloc(sizeof(*host->data), GFP_KERNEL); if (!host->data) goto fail_nobuf1; - status = mmc_spi_dma_alloc(host); - if (status) - goto fail_dma; - /* setup message for status/busy readback */ spi_message_init(&host->readback); - host->readback.is_dma_mapped = (host->dma_dev != NULL); spi_message_add_tail(&host->status, &host->readback); host->status.tx_buf = host->ones; - host->status.tx_dma = host->ones_dma; host->status.rx_buf = &host->data->status; - host->status.rx_dma = host->data_dma + offsetof(struct scratch, status); host->status.cs_change = 1; /* register card detect irq */ @@ -1477,9 +1305,8 @@ if (!status) has_ro = true; - dev_info(&spi->dev, "SD/MMC host %s%s%s%s%s\n", + dev_info(&spi->dev, "SD/MMC host %s%s%s%s\n", dev_name(&mmc->class_dev), - host->dma_dev ? "" : ", no DMA", has_ro ? "" : ", no WP", (host->pdata && host->pdata->setpower) ? "" : ", no poweroff", @@ -1490,8 +1317,6 @@ fail_gpiod_request: mmc_remove_host(mmc); fail_glue_init: - mmc_spi_dma_free(host); -fail_dma: kfree(host->data); fail_nobuf1: mmc_free_host(mmc); @@ -1513,7 +1338,6 @@ mmc_remove_host(mmc); - mmc_spi_dma_free(host); kfree(host->data); kfree(host->ones); diff -Nru linux-5.10.209/drivers/mmc/host/mmci_stm32_sdmmc.c linux-5.10.216/drivers/mmc/host/mmci_stm32_sdmmc.c --- linux-5.10.209/drivers/mmc/host/mmci_stm32_sdmmc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/host/mmci_stm32_sdmmc.c 2024-05-02 14:23:46.000000000 +0000 @@ -43,6 +43,9 @@ struct sdmmc_idma { dma_addr_t sg_dma; void *sg_cpu; + dma_addr_t bounce_dma_addr; + void *bounce_buf; + bool use_bounce_buffer; }; struct sdmmc_dlyb { @@ -54,6 +57,8 @@ static int sdmmc_idma_validate_data(struct mmci_host *host, struct mmc_data *data) { + struct sdmmc_idma *idma = host->dma_priv; + struct device *dev = mmc_dev(host->mmc); struct scatterlist *sg; int i; @@ -61,41 +66,69 @@ * idma has constraints on idmabase & idmasize for each element * excepted the last element which has no constraint on idmasize */ + idma->use_bounce_buffer = false; for_each_sg(data->sg, sg, data->sg_len - 1, i) { if (!IS_ALIGNED(sg->offset, sizeof(u32)) || !IS_ALIGNED(sg->length, SDMMC_IDMA_BURST)) { - dev_err(mmc_dev(host->mmc), + dev_dbg(mmc_dev(host->mmc), "unaligned scatterlist: ofst:%x length:%d\n", data->sg->offset, data->sg->length); - return -EINVAL; + goto use_bounce_buffer; } } if (!IS_ALIGNED(sg->offset, sizeof(u32))) { - dev_err(mmc_dev(host->mmc), + dev_dbg(mmc_dev(host->mmc), "unaligned last scatterlist: ofst:%x length:%d\n", data->sg->offset, data->sg->length); - return -EINVAL; + goto use_bounce_buffer; + } + + return 0; + +use_bounce_buffer: + if (!idma->bounce_buf) { + idma->bounce_buf = dmam_alloc_coherent(dev, + host->mmc->max_req_size, + &idma->bounce_dma_addr, + GFP_KERNEL); + if (!idma->bounce_buf) { + dev_err(dev, "Unable to map allocate DMA bounce buffer.\n"); + return -ENOMEM; + } } + idma->use_bounce_buffer = true; + return 0; } static int _sdmmc_idma_prep_data(struct mmci_host *host, struct mmc_data *data) { - int n_elem; + struct sdmmc_idma *idma = host->dma_priv; - n_elem = dma_map_sg(mmc_dev(host->mmc), - data->sg, - data->sg_len, - mmc_get_dma_dir(data)); + if (idma->use_bounce_buffer) { + if (data->flags & MMC_DATA_WRITE) { + unsigned int xfer_bytes = data->blksz * data->blocks; + + sg_copy_to_buffer(data->sg, data->sg_len, + idma->bounce_buf, xfer_bytes); + dma_wmb(); + } + } else { + int n_elem; - if (!n_elem) { - dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); - return -EINVAL; - } + n_elem = dma_map_sg(mmc_dev(host->mmc), + data->sg, + data->sg_len, + mmc_get_dma_dir(data)); + if (!n_elem) { + dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); + return -EINVAL; + } + } return 0; } @@ -112,8 +145,19 @@ static void sdmmc_idma_unprep_data(struct mmci_host *host, struct mmc_data *data, int err) { - dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, - mmc_get_dma_dir(data)); + struct sdmmc_idma *idma = host->dma_priv; + + if (idma->use_bounce_buffer) { + if (data->flags & MMC_DATA_READ) { + unsigned int xfer_bytes = data->blksz * data->blocks; + + sg_copy_from_buffer(data->sg, data->sg_len, + idma->bounce_buf, xfer_bytes); + } + } else { + dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, + mmc_get_dma_dir(data)); + } } static int sdmmc_idma_setup(struct mmci_host *host) @@ -137,6 +181,8 @@ host->mmc->max_segs = SDMMC_LLI_BUF_LEN / sizeof(struct sdmmc_lli_desc); host->mmc->max_seg_size = host->variant->stm32_idmabsize_mask; + + host->mmc->max_req_size = SZ_1M; } else { host->mmc->max_segs = 1; host->mmc->max_seg_size = host->mmc->max_req_size; @@ -154,8 +200,18 @@ struct scatterlist *sg; int i; - if (!host->variant->dma_lli || data->sg_len == 1) { - writel_relaxed(sg_dma_address(data->sg), + host->dma_in_progress = true; + + if (!host->variant->dma_lli || data->sg_len == 1 || + idma->use_bounce_buffer) { + u32 dma_addr; + + if (idma->use_bounce_buffer) + dma_addr = idma->bounce_dma_addr; + else + dma_addr = sg_dma_address(data->sg); + + writel_relaxed(dma_addr, host->base + MMCI_STM32_IDMABASE0R); writel_relaxed(MMCI_STM32_IDMAEN, host->base + MMCI_STM32_IDMACTRLR); @@ -184,9 +240,30 @@ return 0; } +static void sdmmc_idma_error(struct mmci_host *host) +{ + struct mmc_data *data = host->data; + struct sdmmc_idma *idma = host->dma_priv; + + if (!dma_inprogress(host)) + return; + + writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR); + host->dma_in_progress = false; + data->host_cookie = 0; + + if (!idma->use_bounce_buffer) + dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, + mmc_get_dma_dir(data)); +} + static void sdmmc_idma_finalize(struct mmci_host *host, struct mmc_data *data) { + if (!dma_inprogress(host)) + return; + writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR); + host->dma_in_progress = false; if (!data->host_cookie) sdmmc_idma_unprep_data(host, data, 0); @@ -512,6 +589,7 @@ .dma_setup = sdmmc_idma_setup, .dma_start = sdmmc_idma_start, .dma_finalize = sdmmc_idma_finalize, + .dma_error = sdmmc_idma_error, .set_clkreg = mmci_sdmmc_set_clkreg, .set_pwrreg = mmci_sdmmc_set_pwrreg, .busy_complete = sdmmc_busy_complete, diff -Nru linux-5.10.209/drivers/mmc/host/sdhci-xenon-phy.c linux-5.10.216/drivers/mmc/host/sdhci-xenon-phy.c --- linux-5.10.209/drivers/mmc/host/sdhci-xenon-phy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/host/sdhci-xenon-phy.c 2024-05-02 14:23:46.000000000 +0000 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "sdhci-pltfm.h" @@ -109,6 +110,8 @@ #define XENON_EMMC_PHY_LOGIC_TIMING_ADJUST (XENON_EMMC_PHY_REG_BASE + 0x18) #define XENON_LOGIC_TIMING_VALUE 0x00AA8977 +#define XENON_MAX_PHY_TIMEOUT_LOOPS 100 + /* * List offset of PHY registers and some special register values * in eMMC PHY 5.0 or eMMC PHY 5.1 @@ -216,6 +219,19 @@ return 0; } +static int xenon_check_stability_internal_clk(struct sdhci_host *host) +{ + u32 reg; + int err; + + err = read_poll_timeout(sdhci_readw, reg, reg & SDHCI_CLOCK_INT_STABLE, + 1100, 20000, false, host, SDHCI_CLOCK_CONTROL); + if (err) + dev_err(mmc_dev(host->mmc), "phy_init: Internal clock never stabilized.\n"); + + return err; +} + /* * eMMC 5.0/5.1 PHY init/re-init. * eMMC PHY init should be executed after: @@ -232,6 +248,11 @@ struct xenon_priv *priv = sdhci_pltfm_priv(pltfm_host); struct xenon_emmc_phy_regs *phy_regs = priv->emmc_phy_regs; + int ret = xenon_check_stability_internal_clk(host); + + if (ret) + return ret; + reg = sdhci_readl(host, phy_regs->timing_adj); reg |= XENON_PHY_INITIALIZAION; sdhci_writel(host, reg, phy_regs->timing_adj); @@ -259,18 +280,27 @@ /* get the wait time */ wait /= clock; wait++; - /* wait for host eMMC PHY init completes */ - udelay(wait); - reg = sdhci_readl(host, phy_regs->timing_adj); - reg &= XENON_PHY_INITIALIZAION; - if (reg) { + /* + * AC5X spec says bit must be polled until zero. + * We see cases in which timeout can take longer + * than the standard calculation on AC5X, which is + * expected following the spec comment above. + * According to the spec, we must wait as long as + * it takes for that bit to toggle on AC5X. + * Cap that with 100 delay loops so we won't get + * stuck here forever: + */ + + ret = read_poll_timeout(sdhci_readl, reg, + !(reg & XENON_PHY_INITIALIZAION), + wait, XENON_MAX_PHY_TIMEOUT_LOOPS * wait, + false, host, phy_regs->timing_adj); + if (ret) dev_err(mmc_dev(host->mmc), "eMMC PHY init cannot complete after %d us\n", - wait); - return -ETIMEDOUT; - } + wait * XENON_MAX_PHY_TIMEOUT_LOOPS); - return 0; + return ret; } #define ARMADA_3700_SOC_PAD_1_8V 0x1 diff -Nru linux-5.10.209/drivers/mmc/host/tmio_mmc_core.c linux-5.10.216/drivers/mmc/host/tmio_mmc_core.c --- linux-5.10.209/drivers/mmc/host/tmio_mmc_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/host/tmio_mmc_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -216,6 +216,8 @@ else mrq->cmd->error = -ETIMEDOUT; + /* No new calls yet, but disallow concurrent tmio_mmc_done_work() */ + host->mrq = ERR_PTR(-EBUSY); host->cmd = NULL; host->data = NULL; diff -Nru linux-5.10.209/drivers/mmc/host/wmt-sdmmc.c linux-5.10.216/drivers/mmc/host/wmt-sdmmc.c --- linux-5.10.209/drivers/mmc/host/wmt-sdmmc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mmc/host/wmt-sdmmc.c 2024-05-02 14:23:46.000000000 +0000 @@ -889,7 +889,6 @@ { struct mmc_host *mmc; struct wmt_mci_priv *priv; - struct resource *res; u32 reg_tmp; mmc = platform_get_drvdata(pdev); @@ -917,9 +916,6 @@ clk_disable_unprepare(priv->clk_sdmmc); clk_put(priv->clk_sdmmc); - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - release_mem_region(res->start, resource_size(res)); - mmc_free_host(mmc); dev_info(&pdev->dev, "WMT MCI device removed\n"); diff -Nru linux-5.10.209/drivers/mtd/maps/physmap-core.c linux-5.10.216/drivers/mtd/maps/physmap-core.c --- linux-5.10.209/drivers/mtd/maps/physmap-core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/maps/physmap-core.c 2024-05-02 14:23:46.000000000 +0000 @@ -528,7 +528,7 @@ if (!info->maps[i].phys) info->maps[i].phys = res->start; - info->win_order = get_bitmask_order(resource_size(res)) - 1; + info->win_order = fls64(resource_size(res)) - 1; info->maps[i].size = BIT(info->win_order + (info->gpios ? info->gpios->ndescs : 0)); diff -Nru linux-5.10.209/drivers/mtd/nand/raw/diskonchip.c linux-5.10.216/drivers/mtd/nand/raw/diskonchip.c --- linux-5.10.209/drivers/mtd/nand/raw/diskonchip.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/nand/raw/diskonchip.c 2024-05-02 14:23:46.000000000 +0000 @@ -53,7 +53,7 @@ 0xe8000, 0xea000, 0xec000, 0xee000, #endif #endif - 0xffffffff }; +}; static struct mtd_info *doclist = NULL; @@ -1552,7 +1552,7 @@ if (ret < 0) return ret; } else { - for (i = 0; (doc_locations[i] != 0xffffffff); i++) { + for (i = 0; i < ARRAY_SIZE(doc_locations); i++) { doc_probe(doc_locations[i]); } } diff -Nru linux-5.10.209/drivers/mtd/nand/raw/lpc32xx_mlc.c linux-5.10.216/drivers/mtd/nand/raw/lpc32xx_mlc.c --- linux-5.10.209/drivers/mtd/nand/raw/lpc32xx_mlc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/nand/raw/lpc32xx_mlc.c 2024-05-02 14:23:46.000000000 +0000 @@ -304,8 +304,9 @@ return 0; } -static irqreturn_t lpc3xxx_nand_irq(int irq, struct lpc32xx_nand_host *host) +static irqreturn_t lpc3xxx_nand_irq(int irq, void *data) { + struct lpc32xx_nand_host *host = data; uint8_t sr; /* Clear interrupt flag by reading status */ @@ -780,7 +781,7 @@ goto release_dma_chan; } - if (request_irq(host->irq, (irq_handler_t)&lpc3xxx_nand_irq, + if (request_irq(host->irq, &lpc3xxx_nand_irq, IRQF_TRIGGER_HIGH, DRV_NAME, host)) { dev_err(&pdev->dev, "Error requesting NAND IRQ\n"); res = -ENXIO; diff -Nru linux-5.10.209/drivers/mtd/nand/raw/meson_nand.c linux-5.10.216/drivers/mtd/nand/raw/meson_nand.c --- linux-5.10.209/drivers/mtd/nand/raw/meson_nand.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/nand/raw/meson_nand.c 2024-05-02 14:23:46.000000000 +0000 @@ -59,7 +59,7 @@ #define CMDRWGEN(cmd_dir, ran, bch, short_mode, page_size, pages) \ ( \ (cmd_dir) | \ - ((ran) << 19) | \ + (ran) | \ ((bch) << 14) | \ ((short_mode) << 13) | \ (((page_size) & 0x7f) << 6) | \ diff -Nru linux-5.10.209/drivers/mtd/nand/spi/gigadevice.c linux-5.10.216/drivers/mtd/nand/spi/gigadevice.c --- linux-5.10.209/drivers/mtd/nand/spi/gigadevice.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/nand/spi/gigadevice.c 2024-05-02 14:23:46.000000000 +0000 @@ -13,7 +13,10 @@ #define GD5FXGQ4XA_STATUS_ECC_1_7_BITFLIPS (1 << 4) #define GD5FXGQ4XA_STATUS_ECC_8_BITFLIPS (3 << 4) -#define GD5FXGQ4UEXXG_REG_STATUS2 0xf0 +#define GD5FXGQ5XE_STATUS_ECC_1_4_BITFLIPS (1 << 4) +#define GD5FXGQ5XE_STATUS_ECC_4_BITFLIPS (3 << 4) + +#define GD5FXGQXXEXXG_REG_STATUS2 0xf0 #define GD5FXGQ4UXFXXG_STATUS_ECC_MASK (7 << 4) #define GD5FXGQ4UXFXXG_STATUS_ECC_NO_BITFLIPS (0 << 4) @@ -36,6 +39,14 @@ SPINAND_PAGE_READ_FROM_CACHE_OP_3A(true, 0, 1, NULL, 0), SPINAND_PAGE_READ_FROM_CACHE_OP_3A(false, 0, 0, NULL, 0)); +static SPINAND_OP_VARIANTS(read_cache_variants_1gq5, + SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0), + SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0), + SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0), + SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0), + SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0), + SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0)); + static SPINAND_OP_VARIANTS(write_cache_variants, SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), SPINAND_PROG_LOAD(true, 0, NULL, 0)); @@ -102,7 +113,7 @@ return -EINVAL; } -static int gd5fxgq4_variant2_ooblayout_ecc(struct mtd_info *mtd, int section, +static int gd5fxgqx_variant2_ooblayout_ecc(struct mtd_info *mtd, int section, struct mtd_oob_region *region) { if (section) @@ -114,7 +125,7 @@ return 0; } -static int gd5fxgq4_variant2_ooblayout_free(struct mtd_info *mtd, int section, +static int gd5fxgqx_variant2_ooblayout_free(struct mtd_info *mtd, int section, struct mtd_oob_region *region) { if (section) @@ -127,9 +138,10 @@ return 0; } -static const struct mtd_ooblayout_ops gd5fxgq4_variant2_ooblayout = { - .ecc = gd5fxgq4_variant2_ooblayout_ecc, - .free = gd5fxgq4_variant2_ooblayout_free, +/* Valid for Q4/Q5 and Q6 (untested) devices */ +static const struct mtd_ooblayout_ops gd5fxgqx_variant2_ooblayout = { + .ecc = gd5fxgqx_variant2_ooblayout_ecc, + .free = gd5fxgqx_variant2_ooblayout_free, }; static int gd5fxgq4xc_ooblayout_256_ecc(struct mtd_info *mtd, int section, @@ -165,8 +177,8 @@ u8 status) { u8 status2; - struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQ4UEXXG_REG_STATUS2, - &status2); + struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQXXEXXG_REG_STATUS2, + spinand->scratchbuf); int ret; switch (status & STATUS_ECC_MASK) { @@ -187,6 +199,7 @@ * report the maximum of 4 in this case */ /* bits sorted this way (3...0): ECCS1,ECCS0,ECCSE1,ECCSE0 */ + status2 = *(spinand->scratchbuf); return ((status & STATUS_ECC_MASK) >> 2) | ((status2 & STATUS_ECC_MASK) >> 4); @@ -203,6 +216,44 @@ return -EINVAL; } +static int gd5fxgq5xexxg_ecc_get_status(struct spinand_device *spinand, + u8 status) +{ + u8 status2; + struct spi_mem_op op = SPINAND_GET_FEATURE_OP(GD5FXGQXXEXXG_REG_STATUS2, + spinand->scratchbuf); + int ret; + + switch (status & STATUS_ECC_MASK) { + case STATUS_ECC_NO_BITFLIPS: + return 0; + + case GD5FXGQ5XE_STATUS_ECC_1_4_BITFLIPS: + /* + * Read status2 register to determine a more fine grained + * bit error status + */ + ret = spi_mem_exec_op(spinand->spimem, &op); + if (ret) + return ret; + + /* + * 1 ... 4 bits are flipped (and corrected) + */ + /* bits sorted this way (1...0): ECCSE1, ECCSE0 */ + status2 = *(spinand->scratchbuf); + return ((status2 & STATUS_ECC_MASK) >> 4) + 1; + + case STATUS_ECC_UNCOR_ERROR: + return -EBADMSG; + + default: + break; + } + + return -EINVAL; +} + static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand, u8 status) { @@ -282,7 +333,7 @@ &write_cache_variants, &update_cache_variants), SPINAND_HAS_QE_BIT, - SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout, + SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq4uexxg_ecc_get_status)), SPINAND_INFO("GD5F1GQ4UFxxG", SPINAND_ID(SPINAND_READID_METHOD_OPCODE, 0xb1, 0x48), @@ -292,8 +343,18 @@ &write_cache_variants, &update_cache_variants), SPINAND_HAS_QE_BIT, - SPINAND_ECCINFO(&gd5fxgq4_variant2_ooblayout, + SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, gd5fxgq4ufxxg_ecc_get_status)), + SPINAND_INFO("GD5F1GQ5UExxG", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x51), + NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), + NAND_ECCREQ(4, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout, + gd5fxgq5xexxg_ecc_get_status)), }; static const struct spinand_manufacturer_ops gigadevice_spinand_manuf_ops = { diff -Nru linux-5.10.209/drivers/mtd/nand/spi/macronix.c linux-5.10.216/drivers/mtd/nand/spi/macronix.c --- linux-5.10.209/drivers/mtd/nand/spi/macronix.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/nand/spi/macronix.c 2024-05-02 14:23:46.000000000 +0000 @@ -119,6 +119,26 @@ &update_cache_variants), SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), + SPINAND_INFO("MX35LF2GE4AD", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26), + NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + 0, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), + SPINAND_INFO("MX35LF4GE4AD", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37), + NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + 0, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX31LF1GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), diff -Nru linux-5.10.209/drivers/mtd/ubi/fastmap.c linux-5.10.216/drivers/mtd/ubi/fastmap.c --- linux-5.10.209/drivers/mtd/ubi/fastmap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/ubi/fastmap.c 2024-05-02 14:23:46.000000000 +0000 @@ -86,9 +86,10 @@ sizeof(struct ubi_fm_scan_pool) + sizeof(struct ubi_fm_scan_pool) + (ubi->peb_count * sizeof(struct ubi_fm_ec)) + - (sizeof(struct ubi_fm_eba) + - (ubi->peb_count * sizeof(__be32))) + - sizeof(struct ubi_fm_volhdr) * UBI_MAX_VOLUMES; + ((sizeof(struct ubi_fm_eba) + + sizeof(struct ubi_fm_volhdr)) * + (UBI_MAX_VOLUMES + UBI_INT_VOL_COUNT)) + + (ubi->peb_count * sizeof(__be32)); return roundup(size, ubi->leb_size); } diff -Nru linux-5.10.209/drivers/mtd/ubi/vtbl.c linux-5.10.216/drivers/mtd/ubi/vtbl.c --- linux-5.10.209/drivers/mtd/ubi/vtbl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/mtd/ubi/vtbl.c 2024-05-02 14:23:46.000000000 +0000 @@ -791,6 +791,12 @@ * The number of supported volumes is limited by the eraseblock size * and by the UBI_MAX_VOLUMES constant. */ + + if (ubi->leb_size < UBI_VTBL_RECORD_SIZE) { + ubi_err(ubi, "LEB size too small for a volume record"); + return -EINVAL; + } + ubi->vtbl_slots = ubi->leb_size / UBI_VTBL_RECORD_SIZE; if (ubi->vtbl_slots > UBI_MAX_VOLUMES) ubi->vtbl_slots = UBI_MAX_VOLUMES; diff -Nru linux-5.10.209/drivers/net/bonding/bond_alb.c linux-5.10.216/drivers/net/bonding/bond_alb.c --- linux-5.10.209/drivers/net/bonding/bond_alb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/bonding/bond_alb.c 2024-05-02 14:23:46.000000000 +0000 @@ -971,7 +971,8 @@ if (netif_is_macvlan(upper) && !strict_match) { tags = bond_verify_device_path(bond->dev, upper, 0); if (IS_ERR_OR_NULL(tags)) - BUG(); + return -ENOMEM; + alb_send_lp_vid(slave, upper->dev_addr, tags[0].vlan_proto, tags[0].vlan_id); kfree(tags); diff -Nru linux-5.10.209/drivers/net/dsa/mt7530.c linux-5.10.216/drivers/net/dsa/mt7530.c --- linux-5.10.209/drivers/net/dsa/mt7530.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/dsa/mt7530.c 2024-05-02 14:23:46.000000000 +0000 @@ -1581,11 +1581,11 @@ */ if (priv->mcm) { reset_control_assert(priv->rstc); - usleep_range(1000, 1100); + usleep_range(5000, 5100); reset_control_deassert(priv->rstc); } else { gpiod_set_value_cansleep(priv->reset, 0); - usleep_range(1000, 1100); + usleep_range(5000, 5100); gpiod_set_value_cansleep(priv->reset, 1); } @@ -1704,11 +1704,11 @@ */ if (priv->mcm) { reset_control_assert(priv->rstc); - usleep_range(1000, 1100); + usleep_range(5000, 5100); reset_control_deassert(priv->rstc); } else { gpiod_set_value_cansleep(priv->reset, 0); - usleep_range(1000, 1100); + usleep_range(5000, 5100); gpiod_set_value_cansleep(priv->reset, 1); } diff -Nru linux-5.10.209/drivers/net/dsa/mv88e6xxx/chip.h linux-5.10.216/drivers/net/dsa/mv88e6xxx/chip.h --- linux-5.10.209/drivers/net/dsa/mv88e6xxx/chip.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/dsa/mv88e6xxx/chip.h 2024-05-02 14:23:46.000000000 +0000 @@ -536,8 +536,8 @@ int (*serdes_get_sset_count)(struct mv88e6xxx_chip *chip, int port); int (*serdes_get_strings)(struct mv88e6xxx_chip *chip, int port, uint8_t *data); - int (*serdes_get_stats)(struct mv88e6xxx_chip *chip, int port, - uint64_t *data); + size_t (*serdes_get_stats)(struct mv88e6xxx_chip *chip, int port, + uint64_t *data); /* SERDES registers for ethtool */ int (*serdes_get_regs_len)(struct mv88e6xxx_chip *chip, int port); diff -Nru linux-5.10.209/drivers/net/dsa/mv88e6xxx/serdes.c linux-5.10.216/drivers/net/dsa/mv88e6xxx/serdes.c --- linux-5.10.209/drivers/net/dsa/mv88e6xxx/serdes.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/dsa/mv88e6xxx/serdes.c 2024-05-02 14:23:46.000000000 +0000 @@ -314,8 +314,8 @@ return val; } -int mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, - uint64_t *data) +size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, + uint64_t *data) { struct mv88e6xxx_port *mv88e6xxx_port = &chip->ports[port]; struct mv88e6352_serdes_hw_stat *stat; @@ -631,8 +631,8 @@ return reg[0] | ((u64)reg[1] << 16) | ((u64)reg[2] << 32); } -int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, - uint64_t *data) +size_t mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, + uint64_t *data) { struct mv88e6390_serdes_hw_stat *stat; int lane; diff -Nru linux-5.10.209/drivers/net/dsa/mv88e6xxx/serdes.h linux-5.10.216/drivers/net/dsa/mv88e6xxx/serdes.h --- linux-5.10.209/drivers/net/dsa/mv88e6xxx/serdes.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/dsa/mv88e6xxx/serdes.h 2024-05-02 14:23:46.000000000 +0000 @@ -116,13 +116,13 @@ int mv88e6352_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port); int mv88e6352_serdes_get_strings(struct mv88e6xxx_chip *chip, int port, uint8_t *data); -int mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, - uint64_t *data); +size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, + uint64_t *data); int mv88e6390_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port); int mv88e6390_serdes_get_strings(struct mv88e6xxx_chip *chip, int port, uint8_t *data); -int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, - uint64_t *data); +size_t mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, + uint64_t *data); int mv88e6352_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port); void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p); diff -Nru linux-5.10.209/drivers/net/ethernet/amazon/ena/ena_com.c linux-5.10.216/drivers/net/ethernet/amazon/ena/ena_com.c --- linux-5.10.209/drivers/net/ethernet/amazon/ena/ena_com.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/amazon/ena/ena_com.c 2024-05-02 14:23:46.000000000 +0000 @@ -352,7 +352,7 @@ ENA_COM_BOUNCE_BUFFER_CNTRL_CNT; io_sq->bounce_buf_ctrl.next_to_use = 0; - size = io_sq->bounce_buf_ctrl.buffer_size * + size = (size_t)io_sq->bounce_buf_ctrl.buffer_size * io_sq->bounce_buf_ctrl.buffers_num; dev_node = dev_to_node(ena_dev->dmadev); diff -Nru linux-5.10.209/drivers/net/ethernet/amazon/ena/ena_netdev.c linux-5.10.216/drivers/net/ethernet/amazon/ena/ena_netdev.c --- linux-5.10.209/drivers/net/ethernet/amazon/ena/ena_netdev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/amazon/ena/ena_netdev.c 2024-05-02 14:23:46.000000000 +0000 @@ -1105,8 +1105,11 @@ static void ena_free_tx_bufs(struct ena_ring *tx_ring) { bool print_once = true; + bool is_xdp_ring; u32 i; + is_xdp_ring = ENA_IS_XDP_INDEX(tx_ring->adapter, tx_ring->qid); + for (i = 0; i < tx_ring->ring_size; i++) { struct ena_tx_buffer *tx_info = &tx_ring->tx_buffer_info[i]; @@ -1126,10 +1129,15 @@ ena_unmap_tx_buff(tx_ring, tx_info); - dev_kfree_skb_any(tx_info->skb); + if (is_xdp_ring) + xdp_return_frame(tx_info->xdpf); + else + dev_kfree_skb_any(tx_info->skb); } - netdev_tx_reset_queue(netdev_get_tx_queue(tx_ring->netdev, - tx_ring->qid)); + + if (!is_xdp_ring) + netdev_tx_reset_queue(netdev_get_tx_queue(tx_ring->netdev, + tx_ring->qid)); } static void ena_free_all_tx_bufs(struct ena_adapter *adapter) @@ -3057,22 +3065,6 @@ return NETDEV_TX_OK; } -static u16 ena_select_queue(struct net_device *dev, struct sk_buff *skb, - struct net_device *sb_dev) -{ - u16 qid; - /* we suspect that this is good for in--kernel network services that - * want to loop incoming skb rx to tx in normal user generated traffic, - * most probably we will not get to this - */ - if (skb_rx_queue_recorded(skb)) - qid = skb_get_rx_queue(skb); - else - qid = netdev_pick_tx(dev, skb, NULL); - - return qid; -} - static void ena_config_host_info(struct ena_com_dev *ena_dev, struct pci_dev *pdev) { struct device *dev = &pdev->dev; @@ -3242,7 +3234,6 @@ .ndo_open = ena_open, .ndo_stop = ena_close, .ndo_start_xmit = ena_start_xmit, - .ndo_select_queue = ena_select_queue, .ndo_get_stats64 = ena_get_stats64, .ndo_tx_timeout = ena_tx_timeout, .ndo_change_mtu = ena_change_mtu, @@ -3689,10 +3680,11 @@ { struct ena_ring *tx_ring; struct ena_ring *rx_ring; - int i, budget, rc; + int qid, budget, rc; int io_queue_count; io_queue_count = adapter->xdp_num_queues + adapter->num_io_queues; + /* Make sure the driver doesn't turn the device in other process */ smp_rmb(); @@ -3705,27 +3697,29 @@ if (adapter->missing_tx_completion_to == ENA_HW_HINTS_NO_TIMEOUT) return; - budget = ENA_MONITORED_TX_QUEUES; + budget = min_t(u32, io_queue_count, ENA_MONITORED_TX_QUEUES); - for (i = adapter->last_monitored_tx_qid; i < io_queue_count; i++) { - tx_ring = &adapter->tx_ring[i]; - rx_ring = &adapter->rx_ring[i]; + qid = adapter->last_monitored_tx_qid; + + while (budget) { + qid = (qid + 1) % io_queue_count; + + tx_ring = &adapter->tx_ring[qid]; + rx_ring = &adapter->rx_ring[qid]; rc = check_missing_comp_in_tx_queue(adapter, tx_ring); if (unlikely(rc)) return; - rc = !ENA_IS_XDP_INDEX(adapter, i) ? + rc = !ENA_IS_XDP_INDEX(adapter, qid) ? check_for_rx_interrupt_queue(adapter, rx_ring) : 0; if (unlikely(rc)) return; budget--; - if (!budget) - break; } - adapter->last_monitored_tx_qid = i % io_queue_count; + adapter->last_monitored_tx_qid = qid; } /* trigger napi schedule after 2 consecutive detections */ diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/b44.c linux-5.10.216/drivers/net/ethernet/broadcom/b44.c --- linux-5.10.209/drivers/net/ethernet/broadcom/b44.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/b44.c 2024-05-02 14:23:46.000000000 +0000 @@ -2027,12 +2027,14 @@ bp->flags |= B44_FLAG_TX_PAUSE; else bp->flags &= ~B44_FLAG_TX_PAUSE; - if (bp->flags & B44_FLAG_PAUSE_AUTO) { - b44_halt(bp); - b44_init_rings(bp); - b44_init_hw(bp, B44_FULL_RESET); - } else { - __b44_set_flow_ctrl(bp, bp->flags); + if (netif_running(dev)) { + if (bp->flags & B44_FLAG_PAUSE_AUTO) { + b44_halt(bp); + b44_init_rings(bp); + b44_init_hw(bp, B44_FULL_RESET); + } else { + __b44_set_flow_ctrl(bp, bp->flags); + } } spin_unlock_irq(&bp->lock); diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h linux-5.10.216/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h --- linux-5.10.209/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h 2024-05-02 14:23:46.000000000 +0000 @@ -1002,9 +1002,6 @@ static inline void bnx2x_free_rx_mem_pool(struct bnx2x *bp, struct bnx2x_alloc_pool *pool) { - if (!pool->page) - return; - put_page(pool->page); pool->page = NULL; @@ -1015,6 +1012,9 @@ { int i; + if (!fp->page_pool.page) + return; + if (fp->mode == TPA_MODE_DISABLED) return; diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/bnxt/bnxt.c linux-5.10.216/drivers/net/ethernet/broadcom/bnxt/bnxt.c --- linux-5.10.209/drivers/net/ethernet/broadcom/bnxt/bnxt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/bnxt/bnxt.c 2024-05-02 14:23:46.000000000 +0000 @@ -11331,6 +11331,11 @@ bp->fw_cap = 0; rc = bnxt_hwrm_ver_get(bp); + /* FW may be unresponsive after FLR. FLR must complete within 100 msec + * so wait before continuing with recovery. + */ + if (rc) + msleep(100); bnxt_try_map_fw_health_reg(bp); if (rc) { if (bp->fw_health && bp->fw_health->status_reliable) { diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmgenet.c linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmgenet.c --- linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmgenet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmgenet.c 2024-05-02 14:23:46.000000000 +0000 @@ -1244,7 +1244,8 @@ } } -static void bcmgenet_eee_enable_set(struct net_device *dev, bool enable) +void bcmgenet_eee_enable_set(struct net_device *dev, bool enable, + bool tx_lpi_enabled) { struct bcmgenet_priv *priv = netdev_priv(dev); u32 off = priv->hw_params->tbuf_offset + TBUF_ENERGY_CTRL; @@ -1264,7 +1265,7 @@ /* Enable EEE and switch to a 27Mhz clock automatically */ reg = bcmgenet_readl(priv->base + off); - if (enable) + if (tx_lpi_enabled) reg |= TBUF_EEE_EN | TBUF_PM_EN; else reg &= ~(TBUF_EEE_EN | TBUF_PM_EN); @@ -1285,6 +1286,7 @@ priv->eee.eee_enabled = enable; priv->eee.eee_active = enable; + priv->eee.tx_lpi_enabled = tx_lpi_enabled; } static int bcmgenet_get_eee(struct net_device *dev, struct ethtool_eee *e) @@ -1300,6 +1302,7 @@ e->eee_enabled = p->eee_enabled; e->eee_active = p->eee_active; + e->tx_lpi_enabled = p->tx_lpi_enabled; e->tx_lpi_timer = bcmgenet_umac_readl(priv, UMAC_EEE_LPI_TIMER); return phy_ethtool_get_eee(dev->phydev, e); @@ -1309,7 +1312,6 @@ { struct bcmgenet_priv *priv = netdev_priv(dev); struct ethtool_eee *p = &priv->eee; - int ret = 0; if (GENET_IS_V1(priv)) return -EOPNOTSUPP; @@ -1320,16 +1322,11 @@ p->eee_enabled = e->eee_enabled; if (!p->eee_enabled) { - bcmgenet_eee_enable_set(dev, false); + bcmgenet_eee_enable_set(dev, false, false); } else { - ret = phy_init_eee(dev->phydev, 0); - if (ret) { - netif_err(priv, hw, dev, "EEE initialization failed\n"); - return ret; - } - + p->eee_active = phy_init_eee(dev->phydev, false) >= 0; bcmgenet_umac_writel(priv, e->tx_lpi_timer, UMAC_EEE_LPI_TIMER); - bcmgenet_eee_enable_set(dev, true); + bcmgenet_eee_enable_set(dev, p->eee_active, e->tx_lpi_enabled); } return phy_ethtool_set_eee(dev->phydev, e); @@ -4217,9 +4214,6 @@ if (!device_may_wakeup(d)) phy_resume(dev->phydev); - if (priv->eee.eee_enabled) - bcmgenet_eee_enable_set(dev, true); - bcmgenet_netif_start(dev); netif_device_attach(dev); diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmgenet.h linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmgenet.h --- linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmgenet.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmgenet.h 2024-05-02 14:23:46.000000000 +0000 @@ -756,4 +756,7 @@ void bcmgenet_wol_power_up_cfg(struct bcmgenet_priv *priv, enum bcmgenet_power_mode mode); +void bcmgenet_eee_enable_set(struct net_device *dev, bool enable, + bool tx_lpi_enabled); + #endif /* __BCMGENET_H__ */ diff -Nru linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmmii.c linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmmii.c --- linux-5.10.209/drivers/net/ethernet/broadcom/genet/bcmmii.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/broadcom/genet/bcmmii.c 2024-05-02 14:23:46.000000000 +0000 @@ -25,6 +25,7 @@ #include "bcmgenet.h" + /* setup netdev link state when PHY link status change and * update UMAC and RGMII block when link up */ @@ -102,6 +103,11 @@ reg |= CMD_TX_EN | CMD_RX_EN; } bcmgenet_umac_writel(priv, reg, UMAC_CMD); + + priv->eee.eee_active = phy_init_eee(phydev, 0) >= 0; + bcmgenet_eee_enable_set(dev, + priv->eee.eee_enabled && priv->eee.eee_active, + priv->eee.tx_lpi_enabled); } else { /* done if nothing has changed */ if (!status_changed) diff -Nru linux-5.10.209/drivers/net/ethernet/freescale/fec_main.c linux-5.10.216/drivers/net/ethernet/freescale/fec_main.c --- linux-5.10.209/drivers/net/ethernet/freescale/fec_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/freescale/fec_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1766,6 +1766,7 @@ /* if any of the above changed restart the FEC */ if (status_change) { + netif_stop_queue(ndev); napi_disable(&fep->napi); netif_tx_lock_bh(ndev); fec_restart(ndev); @@ -1775,6 +1776,7 @@ } } else { if (fep->link) { + netif_stop_queue(ndev); napi_disable(&fep->napi); netif_tx_lock_bh(ndev); fec_stop(ndev); diff -Nru linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c --- linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -2723,7 +2723,10 @@ int ret; hdev->support_sfp_query = true; - hdev->hw.mac.duplex = HCLGE_MAC_FULL; + + if (!test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state)) + hdev->hw.mac.duplex = HCLGE_MAC_FULL; + ret = hclge_cfg_mac_speed_dup_hw(hdev, hdev->hw.mac.speed, hdev->hw.mac.duplex); if (ret) diff -Nru linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h --- linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h 2024-05-02 14:23:46.000000000 +0000 @@ -24,7 +24,7 @@ __field(u8, code) __field(u8, subcode) __string(pciname, pci_name(hdev->pdev)) - __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) + __string(devname, hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_GET_MBX_LEN) ), @@ -33,7 +33,7 @@ __entry->code = req->msg.code; __entry->subcode = req->msg.subcode; __assign_str(pciname, pci_name(hdev->pdev)); - __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); + __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_vf_to_pf_cmd)); ), @@ -56,7 +56,7 @@ __field(u8, vfid) __field(u16, code) __string(pciname, pci_name(hdev->pdev)) - __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) + __string(devname, hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_SEND_MBX_LEN) ), @@ -64,7 +64,7 @@ __entry->vfid = req->dest_vfid; __entry->code = req->msg.code; __assign_str(pciname, pci_name(hdev->pdev)); - __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); + __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_pf_to_vf_cmd)); ), diff -Nru linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h --- linux-5.10.209/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h 2024-05-02 14:23:46.000000000 +0000 @@ -23,7 +23,7 @@ __field(u8, vfid) __field(u16, code) __string(pciname, pci_name(hdev->pdev)) - __string(devname, &hdev->nic.kinfo.netdev->name) + __string(devname, hdev->nic.kinfo.netdev->name) __array(u32, mbx_data, VF_GET_MBX_LEN) ), @@ -31,7 +31,7 @@ __entry->vfid = req->dest_vfid; __entry->code = req->msg.code; __assign_str(pciname, pci_name(hdev->pdev)); - __assign_str(devname, &hdev->nic.kinfo.netdev->name); + __assign_str(devname, hdev->nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_pf_to_vf_cmd)); ), @@ -55,7 +55,7 @@ __field(u8, code) __field(u8, subcode) __string(pciname, pci_name(hdev->pdev)) - __string(devname, &hdev->nic.kinfo.netdev->name) + __string(devname, hdev->nic.kinfo.netdev->name) __array(u32, mbx_data, VF_SEND_MBX_LEN) ), @@ -64,7 +64,7 @@ __entry->code = req->msg.code; __entry->subcode = req->msg.subcode; __assign_str(pciname, pci_name(hdev->pdev)); - __assign_str(devname, &hdev->nic.kinfo.netdev->name); + __assign_str(devname, hdev->nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_vf_to_pf_cmd)); ), diff -Nru linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_main.c linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_main.c --- linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1230,8 +1230,11 @@ int bkt; int cnt = 0; - hash_for_each_safe(vsi->mac_filter_hash, bkt, h, f, hlist) - ++cnt; + hash_for_each_safe(vsi->mac_filter_hash, bkt, h, f, hlist) { + if (f->state == I40E_FILTER_NEW || + f->state == I40E_FILTER_ACTIVE) + ++cnt; + } return cnt; } @@ -5153,7 +5156,7 @@ { int v, ret = 0; - for (v = 0; v < pf->hw.func_caps.num_vsis; v++) { + for (v = 0; v < pf->num_alloc_vsi; v++) { if (pf->vsi[v]) { ret = i40e_vsi_wait_queues_disabled(pf->vsi[v]); if (ret) @@ -12944,9 +12947,9 @@ return err; i40e_queue_pair_disable_irq(vsi, queue_pair); + i40e_queue_pair_toggle_napi(vsi, queue_pair, false /* off */); err = i40e_queue_pair_toggle_rings(vsi, queue_pair, false /* off */); i40e_clean_rx_ring(vsi->rx_rings[queue_pair]); - i40e_queue_pair_toggle_napi(vsi, queue_pair, false /* off */); i40e_queue_pair_clean_rings(vsi, queue_pair); i40e_queue_pair_reset_stats(vsi, queue_pair); @@ -15485,8 +15488,8 @@ val = (rd32(&pf->hw, I40E_PRTGL_SAH) & I40E_PRTGL_SAH_MFS_MASK) >> I40E_PRTGL_SAH_MFS_SHIFT; if (val < MAX_FRAME_SIZE_DEFAULT) - dev_warn(&pdev->dev, "MFS for port %x has been set below the default: %x\n", - pf->hw.port, val); + dev_warn(&pdev->dev, "MFS for port %x (%d) has been set below the default (%d)\n", + pf->hw.port, val, MAX_FRAME_SIZE_DEFAULT); /* Add a filter to drop all Flow control frames from any VSI from being * transmitted. By doing so we stop a malicious VF from sending out @@ -16020,7 +16023,7 @@ * since we need to be able to guarantee forward progress even under * memory pressure. */ - i40e_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, i40e_driver_name); + i40e_wq = alloc_workqueue("%s", 0, 0, i40e_driver_name); if (!i40e_wq) { pr_err("%s: Failed to create workqueue\n", i40e_driver_name); return -ENOMEM; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c --- linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c 2024-05-02 14:23:46.000000000 +0000 @@ -1573,8 +1573,8 @@ { struct i40e_hw *hw = &pf->hw; struct i40e_vf *vf; - int i, v; u32 reg; + int i; /* If we don't have any VFs, then there is nothing to reset */ if (!pf->num_alloc_vfs) @@ -1585,11 +1585,10 @@ return false; /* Begin reset on all VFs at once */ - for (v = 0; v < pf->num_alloc_vfs; v++) { - vf = &pf->vf[v]; + for (vf = &pf->vf[0]; vf < &pf->vf[pf->num_alloc_vfs]; ++vf) { /* If VF is being reset no need to trigger reset again */ if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) - i40e_trigger_vf_reset(&pf->vf[v], flr); + i40e_trigger_vf_reset(vf, flr); } /* HW requires some time to make sure it can flush the FIFO for a VF @@ -1598,14 +1597,13 @@ * the VFs using a simple iterator that increments once that VF has * finished resetting. */ - for (i = 0, v = 0; i < 10 && v < pf->num_alloc_vfs; i++) { + for (i = 0, vf = &pf->vf[0]; i < 10 && vf < &pf->vf[pf->num_alloc_vfs]; ++i) { usleep_range(10000, 20000); /* Check each VF in sequence, beginning with the VF to fail * the previous check. */ - while (v < pf->num_alloc_vfs) { - vf = &pf->vf[v]; + while (vf < &pf->vf[pf->num_alloc_vfs]) { if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) { reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); if (!(reg & I40E_VPGEN_VFRSTAT_VFRD_MASK)) @@ -1615,7 +1613,7 @@ /* If the current VF has finished resetting, move on * to the next VF in sequence. */ - v++; + ++vf; } } @@ -1625,39 +1623,39 @@ /* Display a warning if at least one VF didn't manage to reset in * time, but continue on with the operation. */ - if (v < pf->num_alloc_vfs) + if (vf < &pf->vf[pf->num_alloc_vfs]) dev_err(&pf->pdev->dev, "VF reset check timeout on VF %d\n", - pf->vf[v].vf_id); + vf->vf_id); usleep_range(10000, 20000); /* Begin disabling all the rings associated with VFs, but do not wait * between each VF. */ - for (v = 0; v < pf->num_alloc_vfs; v++) { + for (vf = &pf->vf[0]; vf < &pf->vf[pf->num_alloc_vfs]; ++vf) { /* On initial reset, we don't have any queues to disable */ - if (pf->vf[v].lan_vsi_idx == 0) + if (vf->lan_vsi_idx == 0) continue; /* If VF is reset in another thread just continue */ if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) continue; - i40e_vsi_stop_rings_no_wait(pf->vsi[pf->vf[v].lan_vsi_idx]); + i40e_vsi_stop_rings_no_wait(pf->vsi[vf->lan_vsi_idx]); } /* Now that we've notified HW to disable all of the VF rings, wait * until they finish. */ - for (v = 0; v < pf->num_alloc_vfs; v++) { + for (vf = &pf->vf[0]; vf < &pf->vf[pf->num_alloc_vfs]; ++vf) { /* On initial reset, we don't have any queues to disable */ - if (pf->vf[v].lan_vsi_idx == 0) + if (vf->lan_vsi_idx == 0) continue; /* If VF is reset in another thread just continue */ if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) continue; - i40e_vsi_wait_queues_disabled(pf->vsi[pf->vf[v].lan_vsi_idx]); + i40e_vsi_wait_queues_disabled(pf->vsi[vf->lan_vsi_idx]); } /* Hw may need up to 50ms to finish disabling the RX queues. We @@ -1666,12 +1664,12 @@ mdelay(50); /* Finish the reset on each VF */ - for (v = 0; v < pf->num_alloc_vfs; v++) { + for (vf = &pf->vf[0]; vf < &pf->vf[pf->num_alloc_vfs]; ++vf) { /* If VF is reset in another thread just continue */ if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) continue; - i40e_cleanup_reset_vf(&pf->vf[v]); + i40e_cleanup_reset_vf(vf); } i40e_flush(hw); @@ -2545,6 +2543,14 @@ i40e_status aq_ret = 0; int i; + if (vf->is_disabled_from_host) { + aq_ret = -EPERM; + dev_info(&pf->pdev->dev, + "Admin has disabled VF %d, will not enable queues\n", + vf->vf_id); + goto error_param; + } + if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) { aq_ret = I40E_ERR_PARAM; goto error_param; @@ -4587,9 +4593,12 @@ struct i40e_pf *pf = np->vsi->back; struct virtchnl_pf_event pfe; struct i40e_hw *hw = &pf->hw; + struct i40e_vsi *vsi; + unsigned long q_map; struct i40e_vf *vf; int abs_vf_id; int ret = 0; + int tmp; if (test_and_set_bit(__I40E_VIRTCHNL_OP_PENDING, pf->state)) { dev_warn(&pf->pdev->dev, "Unable to configure VFs, other operation is pending.\n"); @@ -4612,6 +4621,9 @@ switch (link) { case IFLA_VF_LINK_STATE_AUTO: vf->link_forced = false; + vf->is_disabled_from_host = false; + /* reset needed to reinit VF resources */ + i40e_vc_reset_vf(vf, true); pfe.event_data.link_event.link_status = pf->hw.phy.link_info.link_info & I40E_AQ_LINK_UP; pfe.event_data.link_event.link_speed = @@ -4621,6 +4633,9 @@ case IFLA_VF_LINK_STATE_ENABLE: vf->link_forced = true; vf->link_up = true; + vf->is_disabled_from_host = false; + /* reset needed to reinit VF resources */ + i40e_vc_reset_vf(vf, true); pfe.event_data.link_event.link_status = true; pfe.event_data.link_event.link_speed = VIRTCHNL_LINK_SPEED_40GB; break; @@ -4629,6 +4644,21 @@ vf->link_up = false; pfe.event_data.link_event.link_status = false; pfe.event_data.link_event.link_speed = 0; + + vsi = pf->vsi[vf->lan_vsi_idx]; + q_map = BIT(vsi->num_queue_pairs) - 1; + + vf->is_disabled_from_host = true; + + /* Try to stop both Tx&Rx rings even if one of the calls fails + * to ensure we stop the rings even in case of errors. + * If any of them returns with an error then the first + * error that occurred will be returned. + */ + tmp = i40e_ctrl_vf_tx_rings(vsi, q_map, false); + ret = i40e_ctrl_vf_rx_rings(vsi, q_map, false); + + ret = tmp ? tmp : ret; break; default: ret = -EINVAL; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h --- linux-5.10.209/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h 2024-05-02 14:23:46.000000000 +0000 @@ -98,6 +98,7 @@ bool link_forced; bool link_up; /* only valid if VF link is forced */ bool spoofchk; + bool is_disabled_from_host; /* PF ctrl of VF enable/disable */ u16 num_vlan; /* ADq related variables */ diff -Nru linux-5.10.209/drivers/net/ethernet/intel/iavf/iavf_main.c linux-5.10.216/drivers/net/ethernet/intel/iavf/iavf_main.c --- linux-5.10.209/drivers/net/ethernet/intel/iavf/iavf_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/iavf/iavf_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -2643,6 +2643,34 @@ } /** + * iavf_is_tc_config_same - Compare the mqprio TC config with the + * TC config already configured on this adapter. + * @adapter: board private structure + * @mqprio_qopt: TC config received from kernel. + * + * This function compares the TC config received from the kernel + * with the config already configured on the adapter. + * + * Return: True if configuration is same, false otherwise. + **/ +static bool iavf_is_tc_config_same(struct iavf_adapter *adapter, + struct tc_mqprio_qopt *mqprio_qopt) +{ + struct virtchnl_channel_info *ch = &adapter->ch_config.ch_info[0]; + int i; + + if (adapter->num_tc != mqprio_qopt->num_tc) + return false; + + for (i = 0; i < adapter->num_tc; i++) { + if (ch[i].count != mqprio_qopt->count[i] || + ch[i].offset != mqprio_qopt->offset[i]) + return false; + } + return true; +} + +/** * __iavf_setup_tc - configure multiple traffic classes * @netdev: network interface device structure * @type_data: tc offload data @@ -2698,7 +2726,7 @@ if (ret) return ret; /* Return if same TC config is requested */ - if (adapter->num_tc == num_tc) + if (iavf_is_tc_config_same(adapter, &mqprio_qopt->qopt)) return 0; adapter->num_tc = num_tc; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ice/ice_main.c linux-5.10.216/drivers/net/ethernet/intel/ice/ice_main.c --- linux-5.10.209/drivers/net/ethernet/intel/ice/ice_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ice/ice_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -6546,6 +6546,8 @@ pf_sw = pf->first_sw; /* find the attribute in the netlink message */ br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); + if (!br_spec) + return -EINVAL; nla_for_each_nested(attr, br_spec, rem) { __u16 mode; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/igb/igb_main.c linux-5.10.216/drivers/net/ethernet/intel/igb/igb_main.c --- linux-5.10.209/drivers/net/ethernet/intel/igb/igb_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/igb/igb_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -6762,77 +6762,75 @@ } } +static void igb_perout(struct igb_adapter *adapter, int tsintr_tt) +{ + int pin = ptp_find_pin(adapter->ptp_clock, PTP_PF_PEROUT, tsintr_tt); + struct e1000_hw *hw = &adapter->hw; + struct timespec64 ts; + u32 tsauxc; + + if (pin < 0 || pin >= IGB_N_PEROUT) + return; + + spin_lock(&adapter->tmreg_lock); + ts = timespec64_add(adapter->perout[pin].start, + adapter->perout[pin].period); + /* u32 conversion of tv_sec is safe until y2106 */ + wr32((tsintr_tt == 1) ? E1000_TRGTTIML1 : E1000_TRGTTIML0, ts.tv_nsec); + wr32((tsintr_tt == 1) ? E1000_TRGTTIMH1 : E1000_TRGTTIMH0, (u32)ts.tv_sec); + tsauxc = rd32(E1000_TSAUXC); + tsauxc |= TSAUXC_EN_TT0; + wr32(E1000_TSAUXC, tsauxc); + adapter->perout[pin].start = ts; + spin_unlock(&adapter->tmreg_lock); +} + +static void igb_extts(struct igb_adapter *adapter, int tsintr_tt) +{ + int pin = ptp_find_pin(adapter->ptp_clock, PTP_PF_EXTTS, tsintr_tt); + struct e1000_hw *hw = &adapter->hw; + struct ptp_clock_event event; + u32 sec, nsec; + + if (pin < 0 || pin >= IGB_N_EXTTS) + return; + + nsec = rd32((tsintr_tt == 1) ? E1000_AUXSTMPL1 : E1000_AUXSTMPL0); + sec = rd32((tsintr_tt == 1) ? E1000_AUXSTMPH1 : E1000_AUXSTMPH0); + event.type = PTP_CLOCK_EXTTS; + event.index = tsintr_tt; + event.timestamp = sec * 1000000000ULL + nsec; + ptp_clock_event(adapter->ptp_clock, &event); +} + static void igb_tsync_interrupt(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; + u32 tsicr = rd32(E1000_TSICR); struct ptp_clock_event event; - struct timespec64 ts; - u32 ack = 0, tsauxc, sec, nsec, tsicr = rd32(E1000_TSICR); if (tsicr & TSINTR_SYS_WRAP) { event.type = PTP_CLOCK_PPS; if (adapter->ptp_caps.pps) ptp_clock_event(adapter->ptp_clock, &event); - ack |= TSINTR_SYS_WRAP; } if (tsicr & E1000_TSICR_TXTS) { /* retrieve hardware timestamp */ schedule_work(&adapter->ptp_tx_work); - ack |= E1000_TSICR_TXTS; } - if (tsicr & TSINTR_TT0) { - spin_lock(&adapter->tmreg_lock); - ts = timespec64_add(adapter->perout[0].start, - adapter->perout[0].period); - /* u32 conversion of tv_sec is safe until y2106 */ - wr32(E1000_TRGTTIML0, ts.tv_nsec); - wr32(E1000_TRGTTIMH0, (u32)ts.tv_sec); - tsauxc = rd32(E1000_TSAUXC); - tsauxc |= TSAUXC_EN_TT0; - wr32(E1000_TSAUXC, tsauxc); - adapter->perout[0].start = ts; - spin_unlock(&adapter->tmreg_lock); - ack |= TSINTR_TT0; - } + if (tsicr & TSINTR_TT0) + igb_perout(adapter, 0); - if (tsicr & TSINTR_TT1) { - spin_lock(&adapter->tmreg_lock); - ts = timespec64_add(adapter->perout[1].start, - adapter->perout[1].period); - wr32(E1000_TRGTTIML1, ts.tv_nsec); - wr32(E1000_TRGTTIMH1, (u32)ts.tv_sec); - tsauxc = rd32(E1000_TSAUXC); - tsauxc |= TSAUXC_EN_TT1; - wr32(E1000_TSAUXC, tsauxc); - adapter->perout[1].start = ts; - spin_unlock(&adapter->tmreg_lock); - ack |= TSINTR_TT1; - } + if (tsicr & TSINTR_TT1) + igb_perout(adapter, 1); - if (tsicr & TSINTR_AUTT0) { - nsec = rd32(E1000_AUXSTMPL0); - sec = rd32(E1000_AUXSTMPH0); - event.type = PTP_CLOCK_EXTTS; - event.index = 0; - event.timestamp = sec * 1000000000ULL + nsec; - ptp_clock_event(adapter->ptp_clock, &event); - ack |= TSINTR_AUTT0; - } - - if (tsicr & TSINTR_AUTT1) { - nsec = rd32(E1000_AUXSTMPL1); - sec = rd32(E1000_AUXSTMPH1); - event.type = PTP_CLOCK_EXTTS; - event.index = 1; - event.timestamp = sec * 1000000000ULL + nsec; - ptp_clock_event(adapter->ptp_clock, &event); - ack |= TSINTR_AUTT1; - } + if (tsicr & TSINTR_AUTT0) + igb_extts(adapter, 0); - /* acknowledge the interrupts */ - wr32(E1000_TSICR, ack); + if (tsicr & TSINTR_AUTT1) + igb_extts(adapter, 1); } static irqreturn_t igb_msix_other(int irq, void *data) diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c 2024-05-02 14:23:46.000000000 +0000 @@ -123,14 +123,14 @@ if (ret_val) return ret_val; if (hw->phy.sfp_type == ixgbe_sfp_type_unknown) - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; /* Check to see if SFP+ module is supported */ ret_val = ixgbe_get_sfp_init_sequence_offsets(hw, &list_offset, &data_offset); if (ret_val) - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; break; default: break; @@ -213,7 +213,7 @@ break; default: - return IXGBE_ERR_LINK_SETUP; + return -EIO; } return 0; @@ -283,7 +283,7 @@ /* Validate the water mark configuration */ if (!hw->fc.pause_time) - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; /* Low water mark of zero causes XOFF floods */ for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { @@ -292,7 +292,7 @@ if (!hw->fc.low_water[i] || hw->fc.low_water[i] >= hw->fc.high_water[i]) { hw_dbg(hw, "Invalid water mark configuration\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } } } @@ -369,7 +369,7 @@ break; default: hw_dbg(hw, "Flow control param set incorrectly\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } /* Set 802.3x based flow control settings. */ @@ -438,7 +438,7 @@ msleep(100); } if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) { - status = IXGBE_ERR_AUTONEG_NOT_COMPLETE; + status = -EIO; hw_dbg(hw, "Autonegotiation did not complete.\n"); } } @@ -478,7 +478,7 @@ if (timeout == IXGBE_VALIDATE_LINK_READY_TIMEOUT) { hw_dbg(hw, "Link was indicated but link is down\n"); - return IXGBE_ERR_LINK_SETUP; + return -EIO; } return 0; @@ -594,7 +594,7 @@ speed &= link_capabilities; if (speed == IXGBE_LINK_SPEED_UNKNOWN) - return IXGBE_ERR_LINK_SETUP; + return -EINVAL; /* Set KX4/KX support according to speed requested */ else if (link_mode == IXGBE_AUTOC_LMS_KX4_AN || @@ -701,9 +701,9 @@ /* Init PHY and function pointers, perform SFP setup */ phy_status = hw->phy.ops.init(hw); - if (phy_status == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (phy_status == -EOPNOTSUPP) return phy_status; - if (phy_status == IXGBE_ERR_SFP_NOT_PRESENT) + if (phy_status == -ENOENT) goto mac_reset_top; hw->phy.ops.reset(hw); @@ -727,7 +727,7 @@ udelay(1); } if (ctrl & IXGBE_CTRL_RST) { - status = IXGBE_ERR_RESET_FAILED; + status = -EIO; hw_dbg(hw, "Reset polling failed to complete.\n"); } @@ -789,7 +789,7 @@ /* Make sure we are using a valid rar index range */ if (rar >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", rar); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar)); @@ -814,7 +814,7 @@ /* Make sure we are using a valid rar index range */ if (rar >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", rar); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar)); @@ -845,7 +845,7 @@ u32 vftabyte; if (vlan > 4095) - return IXGBE_ERR_PARAM; + return -EINVAL; /* Determine 32-bit word position in array */ regindex = (vlan >> 5) & 0x7F; /* upper seven bits */ @@ -964,7 +964,7 @@ gssr = IXGBE_GSSR_PHY0_SM; if (hw->mac.ops.acquire_swfw_sync(hw, gssr) != 0) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; if (hw->phy.type == ixgbe_phy_nl) { /* @@ -993,7 +993,7 @@ if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) { hw_dbg(hw, "EEPROM read did not pass.\n"); - status = IXGBE_ERR_SFP_NOT_PRESENT; + status = -ENOENT; goto out; } @@ -1003,7 +1003,7 @@ *eeprom_data = (u8)(sfp_data >> 8); } else { - status = IXGBE_ERR_PHY; + status = -EIO; } out: diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c 2024-05-02 14:23:46.000000000 +0000 @@ -117,7 +117,7 @@ ret_val = hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM); if (ret_val) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; if (hw->eeprom.ops.read(hw, ++data_offset, &data_value)) goto setup_sfp_err; @@ -144,7 +144,7 @@ if (ret_val) { hw_dbg(hw, " sfp module setup not complete\n"); - return IXGBE_ERR_SFP_SETUP_NOT_COMPLETE; + return -EIO; } } @@ -159,7 +159,7 @@ usleep_range(hw->eeprom.semaphore_delay * 1000, hw->eeprom.semaphore_delay * 2000); hw_err(hw, "eeprom read at offset %d failed\n", data_offset); - return IXGBE_ERR_SFP_SETUP_NOT_COMPLETE; + return -EIO; } /** @@ -184,7 +184,7 @@ ret_val = hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM); if (ret_val) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; *locked = true; } @@ -219,7 +219,7 @@ ret_val = hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM); if (ret_val) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; locked = true; } @@ -400,7 +400,7 @@ break; default: - return IXGBE_ERR_LINK_SETUP; + return -EIO; } if (hw->phy.multispeed_fiber) { @@ -541,7 +541,7 @@ msleep(100); } if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) { - status = IXGBE_ERR_AUTONEG_NOT_COMPLETE; + status = -EIO; hw_dbg(hw, "Autoneg did not complete.\n"); } } @@ -794,7 +794,7 @@ speed &= link_capabilities; if (speed == IXGBE_LINK_SPEED_UNKNOWN) - return IXGBE_ERR_LINK_SETUP; + return -EINVAL; /* Use stored value (EEPROM defaults) of AUTOC to find KR/KX4 support*/ if (hw->mac.orig_link_settings_stored) @@ -861,8 +861,7 @@ msleep(100); } if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) { - status = - IXGBE_ERR_AUTONEG_NOT_COMPLETE; + status = -EIO; hw_dbg(hw, "Autoneg did not complete.\n"); } } @@ -927,7 +926,7 @@ /* Identify PHY and related function pointers */ status = hw->phy.ops.init(hw); - if (status == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (status == -EOPNOTSUPP) return status; /* Setup SFP module if there is one present. */ @@ -936,7 +935,7 @@ hw->phy.sfp_setup_needed = false; } - if (status == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (status == -EOPNOTSUPP) return status; /* Reset PHY */ @@ -974,7 +973,7 @@ } if (ctrl & IXGBE_CTRL_RST_MASK) { - status = IXGBE_ERR_RESET_FAILED; + status = -EIO; hw_dbg(hw, "Reset polling failed to complete.\n"); } @@ -1093,7 +1092,7 @@ udelay(10); } - return IXGBE_ERR_FDIR_CMD_INCOMPLETE; + return -EIO; } /** @@ -1155,7 +1154,7 @@ } if (i >= IXGBE_FDIR_INIT_DONE_POLL) { hw_dbg(hw, "Flow Director Signature poll time exceeded!\n"); - return IXGBE_ERR_FDIR_REINIT_FAILED; + return -EIO; } /* Clear FDIR statistics registers (read to clear) */ @@ -1387,7 +1386,7 @@ break; default: hw_dbg(hw, " Error on flow type input\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } /* configure FDIRCMD register */ @@ -1546,7 +1545,7 @@ break; default: hw_dbg(hw, " Error on vm pool mask\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } switch (input_mask->formatted.flow_type & IXGBE_ATR_L4TYPE_MASK) { @@ -1555,13 +1554,13 @@ if (input_mask->formatted.dst_port || input_mask->formatted.src_port) { hw_dbg(hw, " Error on src/dst port mask\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } case IXGBE_ATR_L4TYPE_MASK: break; default: hw_dbg(hw, " Error on flow type mask\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } switch (ntohs(input_mask->formatted.vlan_id) & 0xEFFF) { @@ -1582,7 +1581,7 @@ break; default: hw_dbg(hw, " Error on VLAN mask\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } switch ((__force u16)input_mask->formatted.flex_bytes & 0xFFFF) { @@ -1594,7 +1593,7 @@ break; default: hw_dbg(hw, " Error on flexible byte mask\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } /* Now mask VM pool and destination IPv6 - bits 5 and 2 */ @@ -1823,7 +1822,7 @@ /* Return error if SFP module has been detected but is not supported */ if (hw->phy.type == ixgbe_phy_sfp_unsupported) - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; return status; } @@ -1862,13 +1861,13 @@ * Verifies that installed the firmware version is 0.6 or higher * for SFI devices. All 82599 SFI devices should have version 0.6 or higher. * - * Returns IXGBE_ERR_EEPROM_VERSION if the FW is not present or - * if the FW version is not supported. + * Return: -EACCES if the FW is not present or if the FW version is + * not supported. **/ static s32 ixgbe_verify_fw_version_82599(struct ixgbe_hw *hw) { - s32 status = IXGBE_ERR_EEPROM_VERSION; u16 fw_offset, fw_ptp_cfg_offset; + s32 status = -EACCES; u16 offset; u16 fw_version = 0; @@ -1882,7 +1881,7 @@ goto fw_version_err; if (fw_offset == 0 || fw_offset == 0xFFFF) - return IXGBE_ERR_EEPROM_VERSION; + return -EACCES; /* get the offset to the Pass Through Patch Configuration block */ offset = fw_offset + IXGBE_FW_PASSTHROUGH_PATCH_CONFIG_PTR; @@ -1890,7 +1889,7 @@ goto fw_version_err; if (fw_ptp_cfg_offset == 0 || fw_ptp_cfg_offset == 0xFFFF) - return IXGBE_ERR_EEPROM_VERSION; + return -EACCES; /* get the firmware version */ offset = fw_ptp_cfg_offset + IXGBE_FW_PATCH_VERSION_4; @@ -1904,7 +1903,7 @@ fw_version_err: hw_err(hw, "eeprom read at offset %d failed\n", offset); - return IXGBE_ERR_EEPROM_VERSION; + return -EACCES; } /** @@ -2037,7 +2036,7 @@ if (!(anlp1_reg & IXGBE_ANLP1_AN_STATE_MASK)) { hw_dbg(hw, "auto negotiation not completed\n"); - ret_val = IXGBE_ERR_RESET_FAILED; + ret_val = -EIO; goto reset_pipeline_out; } @@ -2086,7 +2085,7 @@ if (!timeout) { hw_dbg(hw, "Driver can't access resource, acquiring I2C bus timeout.\n"); - status = IXGBE_ERR_I2C; + status = -EIO; goto release_i2c_access; } } @@ -2140,7 +2139,7 @@ if (!timeout) { hw_dbg(hw, "Driver can't access resource, acquiring I2C bus timeout.\n"); - status = IXGBE_ERR_I2C; + status = -EIO; goto release_i2c_access; } } diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c 2024-05-02 14:23:46.000000000 +0000 @@ -30,7 +30,7 @@ u16 words, u16 *data); static s32 ixgbe_detect_eeprom_page_size_generic(struct ixgbe_hw *hw, u16 offset); -static s32 ixgbe_disable_pcie_master(struct ixgbe_hw *hw); +static s32 ixgbe_disable_pcie_primary(struct ixgbe_hw *hw); /* Base table for registers values that change by MAC */ const u32 ixgbe_mvals_8259X[IXGBE_MVALS_IDX_LIMIT] = { @@ -123,7 +123,7 @@ */ if (hw->fc.strict_ieee && hw->fc.requested_mode == ixgbe_fc_rx_pause) { hw_dbg(hw, "ixgbe_fc_rx_pause not valid in strict IEEE mode\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } /* @@ -214,7 +214,7 @@ break; default: hw_dbg(hw, "Flow control param set incorrectly\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } if (hw->mac.type != ixgbe_mac_X540) { @@ -499,7 +499,7 @@ if (pba_num == NULL) { hw_dbg(hw, "PBA string buffer was null\n"); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } ret_val = hw->eeprom.ops.read(hw, IXGBE_PBANUM0_PTR, &data); @@ -525,7 +525,7 @@ /* we will need 11 characters to store the PBA */ if (pba_num_size < 11) { hw_dbg(hw, "PBA string buffer too small\n"); - return IXGBE_ERR_NO_SPACE; + return -ENOSPC; } /* extract hex string from data and pba_ptr */ @@ -562,13 +562,13 @@ if (length == 0xFFFF || length == 0) { hw_dbg(hw, "NVM PBA number section invalid length\n"); - return IXGBE_ERR_PBA_SECTION; + return -EIO; } /* check if pba_num buffer is big enough */ if (pba_num_size < (((u32)length * 2) - 1)) { hw_dbg(hw, "PBA string buffer too small\n"); - return IXGBE_ERR_NO_SPACE; + return -ENOSPC; } /* trim pba length from start of string */ @@ -745,10 +745,10 @@ usleep_range(1000, 2000); /* - * Prevent the PCI-E bus from from hanging by disabling PCI-E master + * Prevent the PCI-E bus from hanging by disabling PCI-E primary * access and verify no pending requests */ - return ixgbe_disable_pcie_master(hw); + return ixgbe_disable_pcie_primary(hw); } /** @@ -804,7 +804,7 @@ u32 led_reg = IXGBE_READ_REG(hw, IXGBE_LEDCTL); if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; /* To turn on the LED, set mode to ON. */ led_reg &= ~IXGBE_LED_MODE_MASK(index); @@ -825,7 +825,7 @@ u32 led_reg = IXGBE_READ_REG(hw, IXGBE_LEDCTL); if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; /* To turn off the LED, set mode to OFF. */ led_reg &= ~IXGBE_LED_MODE_MASK(index); @@ -903,11 +903,8 @@ hw->eeprom.ops.init_params(hw); - if (words == 0) - return IXGBE_ERR_INVALID_ARGUMENT; - - if (offset + words > hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + if (words == 0 || (offset + words > hw->eeprom.word_size)) + return -EINVAL; /* * The EEPROM page size cannot be queried from the chip. We do lazy @@ -961,7 +958,7 @@ if (ixgbe_ready_eeprom(hw) != 0) { ixgbe_release_eeprom(hw); - return IXGBE_ERR_EEPROM; + return -EIO; } for (i = 0; i < words; i++) { @@ -1027,7 +1024,7 @@ hw->eeprom.ops.init_params(hw); if (offset >= hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + return -EINVAL; return ixgbe_write_eeprom_buffer_bit_bang(hw, offset, 1, &data); } @@ -1049,11 +1046,8 @@ hw->eeprom.ops.init_params(hw); - if (words == 0) - return IXGBE_ERR_INVALID_ARGUMENT; - - if (offset + words > hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + if (words == 0 || (offset + words > hw->eeprom.word_size)) + return -EINVAL; /* * We cannot hold synchronization semaphores for too long @@ -1098,7 +1092,7 @@ if (ixgbe_ready_eeprom(hw) != 0) { ixgbe_release_eeprom(hw); - return IXGBE_ERR_EEPROM; + return -EIO; } for (i = 0; i < words; i++) { @@ -1141,7 +1135,7 @@ hw->eeprom.ops.init_params(hw); if (offset >= hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + return -EINVAL; return ixgbe_read_eeprom_buffer_bit_bang(hw, offset, 1, data); } @@ -1164,11 +1158,8 @@ hw->eeprom.ops.init_params(hw); - if (words == 0) - return IXGBE_ERR_INVALID_ARGUMENT; - - if (offset >= hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + if (words == 0 || offset >= hw->eeprom.word_size) + return -EINVAL; for (i = 0; i < words; i++) { eerd = ((offset + i) << IXGBE_EEPROM_RW_ADDR_SHIFT) | @@ -1261,11 +1252,8 @@ hw->eeprom.ops.init_params(hw); - if (words == 0) - return IXGBE_ERR_INVALID_ARGUMENT; - - if (offset >= hw->eeprom.word_size) - return IXGBE_ERR_EEPROM; + if (words == 0 || offset >= hw->eeprom.word_size) + return -EINVAL; for (i = 0; i < words; i++) { eewr = ((offset + i) << IXGBE_EEPROM_RW_ADDR_SHIFT) | @@ -1327,7 +1315,7 @@ } udelay(5); } - return IXGBE_ERR_EEPROM; + return -EIO; } /** @@ -1343,7 +1331,7 @@ u32 i; if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM) != 0) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; eec = IXGBE_READ_REG(hw, IXGBE_EEC(hw)); @@ -1365,7 +1353,7 @@ hw_dbg(hw, "Could not acquire EEPROM grant\n"); hw->mac.ops.release_swfw_sync(hw, IXGBE_GSSR_EEP_SM); - return IXGBE_ERR_EEPROM; + return -EIO; } /* Setup EEPROM for Read/Write */ @@ -1418,7 +1406,7 @@ swsm = IXGBE_READ_REG(hw, IXGBE_SWSM(hw)); if (swsm & IXGBE_SWSM_SMBI) { hw_dbg(hw, "Software semaphore SMBI between device drivers not granted.\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } } @@ -1446,7 +1434,7 @@ if (i >= timeout) { hw_dbg(hw, "SWESMBI Software EEPROM semaphore not granted.\n"); ixgbe_release_eeprom_semaphore(hw); - return IXGBE_ERR_EEPROM; + return -EIO; } return 0; @@ -1502,7 +1490,7 @@ */ if (i >= IXGBE_EEPROM_MAX_RETRY_SPI) { hw_dbg(hw, "SPI EEPROM Status error\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } return 0; @@ -1714,7 +1702,7 @@ for (i = IXGBE_PCIE_ANALOG_PTR; i < IXGBE_FW_PTR; i++) { if (hw->eeprom.ops.read(hw, i, &pointer)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } /* If the pointer seems invalid */ @@ -1723,7 +1711,7 @@ if (hw->eeprom.ops.read(hw, pointer, &length)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } if (length == 0xFFFF || length == 0) @@ -1732,7 +1720,7 @@ for (j = pointer + 1; j <= pointer + length; j++) { if (hw->eeprom.ops.read(hw, j, &word)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } checksum += word; } @@ -1785,7 +1773,7 @@ * calculated checksum */ if (read_checksum != checksum) - status = IXGBE_ERR_EEPROM_CHECKSUM; + status = -EIO; /* If the user cares, return the calculated checksum */ if (checksum_val) @@ -1844,7 +1832,7 @@ /* Make sure we are using a valid rar index range */ if (index >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", index); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } /* setup VMDq pool selection before this RAR gets enabled */ @@ -1896,7 +1884,7 @@ /* Make sure we are using a valid rar index range */ if (index >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", index); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } /* @@ -2145,7 +2133,7 @@ /* Validate the water mark configuration. */ if (!hw->fc.pause_time) - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; /* Low water mark of zero causes XOFF floods */ for (i = 0; i < MAX_TRAFFIC_CLASS; i++) { @@ -2154,7 +2142,7 @@ if (!hw->fc.low_water[i] || hw->fc.low_water[i] >= hw->fc.high_water[i]) { hw_dbg(hw, "Invalid water mark configuration\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } } } @@ -2211,7 +2199,7 @@ break; default: hw_dbg(hw, "Flow control param set incorrectly\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } /* Set 802.3x based flow control settings. */ @@ -2268,7 +2256,7 @@ u32 adv_sym, u32 adv_asm, u32 lp_sym, u32 lp_asm) { if ((!(adv_reg)) || (!(lp_reg))) - return IXGBE_ERR_FC_NOT_NEGOTIATED; + return -EINVAL; if ((adv_reg & adv_sym) && (lp_reg & lp_sym)) { /* @@ -2320,7 +2308,7 @@ linkstat = IXGBE_READ_REG(hw, IXGBE_PCS1GLSTA); if ((!!(linkstat & IXGBE_PCS1GLSTA_AN_COMPLETE) == 0) || (!!(linkstat & IXGBE_PCS1GLSTA_AN_TIMED_OUT) == 1)) - return IXGBE_ERR_FC_NOT_NEGOTIATED; + return -EIO; pcs_anadv_reg = IXGBE_READ_REG(hw, IXGBE_PCS1GANA); pcs_lpab_reg = IXGBE_READ_REG(hw, IXGBE_PCS1GANLP); @@ -2352,12 +2340,12 @@ */ links = IXGBE_READ_REG(hw, IXGBE_LINKS); if ((links & IXGBE_LINKS_KX_AN_COMP) == 0) - return IXGBE_ERR_FC_NOT_NEGOTIATED; + return -EIO; if (hw->mac.type == ixgbe_mac_82599EB) { links2 = IXGBE_READ_REG(hw, IXGBE_LINKS2); if ((links2 & IXGBE_LINKS2_AN_SUPPORTED) == 0) - return IXGBE_ERR_FC_NOT_NEGOTIATED; + return -EIO; } /* * Read the 10g AN autoc and LP ability registers and resolve @@ -2406,8 +2394,8 @@ **/ void ixgbe_fc_autoneg(struct ixgbe_hw *hw) { - s32 ret_val = IXGBE_ERR_FC_NOT_NEGOTIATED; ixgbe_link_speed speed; + s32 ret_val = -EIO; bool link_up; /* @@ -2505,15 +2493,15 @@ } /** - * ixgbe_disable_pcie_master - Disable PCI-express master access + * ixgbe_disable_pcie_primary - Disable PCI-express primary access * @hw: pointer to hardware structure * - * Disables PCI-Express master access and verifies there are no pending - * requests. IXGBE_ERR_MASTER_REQUESTS_PENDING is returned if master disable - * bit hasn't caused the master requests to be disabled, else 0 - * is returned signifying master requests disabled. + * Disables PCI-Express primary access and verifies there are no pending + * requests. -EALREADY is returned if primary disable + * bit hasn't caused the primary requests to be disabled, else 0 + * is returned signifying primary requests disabled. **/ -static s32 ixgbe_disable_pcie_master(struct ixgbe_hw *hw) +static s32 ixgbe_disable_pcie_primary(struct ixgbe_hw *hw) { u32 i, poll; u16 value; @@ -2522,23 +2510,23 @@ IXGBE_WRITE_REG(hw, IXGBE_CTRL, IXGBE_CTRL_GIO_DIS); /* Poll for bit to read as set */ - for (i = 0; i < IXGBE_PCI_MASTER_DISABLE_TIMEOUT; i++) { + for (i = 0; i < IXGBE_PCI_PRIMARY_DISABLE_TIMEOUT; i++) { if (IXGBE_READ_REG(hw, IXGBE_CTRL) & IXGBE_CTRL_GIO_DIS) break; usleep_range(100, 120); } - if (i >= IXGBE_PCI_MASTER_DISABLE_TIMEOUT) { + if (i >= IXGBE_PCI_PRIMARY_DISABLE_TIMEOUT) { hw_dbg(hw, "GIO disable did not set - requesting resets\n"); goto gio_disable_fail; } - /* Exit if master requests are blocked */ + /* Exit if primary requests are blocked */ if (!(IXGBE_READ_REG(hw, IXGBE_STATUS) & IXGBE_STATUS_GIO) || ixgbe_removed(hw->hw_addr)) return 0; - /* Poll for master request bit to clear */ - for (i = 0; i < IXGBE_PCI_MASTER_DISABLE_TIMEOUT; i++) { + /* Poll for primary request bit to clear */ + for (i = 0; i < IXGBE_PCI_PRIMARY_DISABLE_TIMEOUT; i++) { udelay(100); if (!(IXGBE_READ_REG(hw, IXGBE_STATUS) & IXGBE_STATUS_GIO)) return 0; @@ -2546,13 +2534,13 @@ /* * Two consecutive resets are required via CTRL.RST per datasheet - * 5.2.5.3.2 Master Disable. We set a flag to inform the reset routine - * of this need. The first reset prevents new master requests from + * 5.2.5.3.2 Primary Disable. We set a flag to inform the reset routine + * of this need. The first reset prevents new primary requests from * being issued by our device. We then must wait 1usec or more for any * remaining completions from the PCIe bus to trickle in, and then reset * again to clear out any effects they may have had on our device. */ - hw_dbg(hw, "GIO Master Disable bit didn't clear - requesting resets\n"); + hw_dbg(hw, "GIO Primary Disable bit didn't clear - requesting resets\n"); gio_disable_fail: hw->mac.flags |= IXGBE_FLAGS_DOUBLE_RESET_REQUIRED; @@ -2574,7 +2562,7 @@ } hw_dbg(hw, "PCIe transaction pending bit also did not clear.\n"); - return IXGBE_ERR_MASTER_REQUESTS_PENDING; + return -EALREADY; } /** @@ -2599,7 +2587,7 @@ * SW_FW_SYNC bits (not just NVM) */ if (ixgbe_get_eeprom_semaphore(hw)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; gssr = IXGBE_READ_REG(hw, IXGBE_GSSR); if (!(gssr & (fwmask | swmask))) { @@ -2619,7 +2607,7 @@ ixgbe_release_swfw_sync(hw, gssr & (fwmask | swmask)); usleep_range(5000, 10000); - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } /** @@ -2756,7 +2744,7 @@ s32 ret_val; if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; /* * Link must be up to auto-blink the LEDs; @@ -2802,7 +2790,7 @@ s32 ret_val; if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; ret_val = hw->mac.ops.prot_autoc_read(hw, &locked, &autoc_reg); if (ret_val) @@ -2962,7 +2950,7 @@ /* Make sure we are using a valid rar index range */ if (rar >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", rar); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } mpsar_lo = IXGBE_READ_REG(hw, IXGBE_MPSAR_LO(rar)); @@ -3013,7 +3001,7 @@ /* Make sure we are using a valid rar index range */ if (rar >= rar_entries) { hw_dbg(hw, "RAR index %d is out of range.\n", rar); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } if (vmdq < 32) { @@ -3090,7 +3078,7 @@ * will simply bypass the VLVF if there are no entries present in the * VLVF that contain our VLAN */ - first_empty_slot = vlvf_bypass ? IXGBE_ERR_NO_SPACE : 0; + first_empty_slot = vlvf_bypass ? -ENOSPC : 0; /* add VLAN enable bit for comparison */ vlan |= IXGBE_VLVF_VIEN; @@ -3114,7 +3102,7 @@ if (!first_empty_slot) hw_dbg(hw, "No space in VLVF.\n"); - return first_empty_slot ? : IXGBE_ERR_NO_SPACE; + return first_empty_slot ? : -ENOSPC; } /** @@ -3134,7 +3122,7 @@ s32 vlvf_index; if ((vlan > 4095) || (vind > 63)) - return IXGBE_ERR_PARAM; + return -EINVAL; /* * this is a 2 part operation - first the VFTA, then the @@ -3595,7 +3583,8 @@ * * Communicates with the manageability block. On success return 0 * else returns semaphore error when encountering an error acquiring - * semaphore or IXGBE_ERR_HOST_INTERFACE_COMMAND when command fails. + * semaphore, -EINVAL when incorrect parameters passed or -EIO when + * command fails. * * This function assumes that the IXGBE_GSSR_SW_MNG_SM semaphore is held * by the caller. @@ -3608,7 +3597,7 @@ if (!length || length > IXGBE_HI_MAX_BLOCK_BYTE_LENGTH) { hw_dbg(hw, "Buffer length failure buffersize-%d.\n", length); - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EINVAL; } /* Set bit 9 of FWSTS clearing FW reset indication */ @@ -3619,13 +3608,13 @@ hicr = IXGBE_READ_REG(hw, IXGBE_HICR); if (!(hicr & IXGBE_HICR_EN)) { hw_dbg(hw, "IXGBE_HOST_EN bit disabled.\n"); - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EIO; } /* Calculate length in DWORDs. We must be DWORD aligned */ if (length % sizeof(u32)) { hw_dbg(hw, "Buffer length failure, not aligned to dword"); - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; } dword_len = length >> 2; @@ -3650,7 +3639,7 @@ /* Check command successful completion. */ if ((timeout && i == timeout) || !(IXGBE_READ_REG(hw, IXGBE_HICR) & IXGBE_HICR_SV)) - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EIO; return 0; } @@ -3670,7 +3659,7 @@ * in these cases. * * Communicates with the manageability block. On success return 0 - * else return IXGBE_ERR_HOST_INTERFACE_COMMAND. + * else return -EIO or -EINVAL. **/ s32 ixgbe_host_interface_command(struct ixgbe_hw *hw, void *buffer, u32 length, u32 timeout, @@ -3687,7 +3676,7 @@ if (!length || length > IXGBE_HI_MAX_BLOCK_BYTE_LENGTH) { hw_dbg(hw, "Buffer length failure buffersize-%d.\n", length); - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EINVAL; } /* Take management host interface semaphore */ status = hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_SW_MNG_SM); @@ -3717,7 +3706,7 @@ if (length < round_up(buf_len, 4) + hdr_size) { hw_dbg(hw, "Buffer not large enough for reply message.\n"); - status = IXGBE_ERR_HOST_INTERFACE_COMMAND; + status = -EIO; goto rel_out; } @@ -3748,8 +3737,8 @@ * * Sends driver version number to firmware through the manageability * block. On success return 0 - * else returns IXGBE_ERR_SWFW_SYNC when encountering an error acquiring - * semaphore or IXGBE_ERR_HOST_INTERFACE_COMMAND when command fails. + * else returns -EBUSY when encountering an error acquiring + * semaphore or -EIO when command fails. **/ s32 ixgbe_set_fw_drv_ver_generic(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build, u8 sub, __always_unused u16 len, @@ -3785,7 +3774,7 @@ FW_CEM_RESP_STATUS_SUCCESS) ret_val = 0; else - ret_val = IXGBE_ERR_HOST_INTERFACE_COMMAND; + ret_val = -EIO; break; } @@ -3883,14 +3872,14 @@ return status; if ((*ets_offset == 0x0000) || (*ets_offset == 0xFFFF)) - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; status = hw->eeprom.ops.read(hw, *ets_offset, ets_cfg); if (status) return status; if ((*ets_cfg & IXGBE_ETS_TYPE_MASK) != IXGBE_ETS_TYPE_EMC_SHIFTED) - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; return 0; } @@ -3913,7 +3902,7 @@ /* Only support thermal sensors attached to physical port 0 */ if ((IXGBE_READ_REG(hw, IXGBE_STATUS) & IXGBE_STATUS_LAN_ID_1)) - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; status = ixgbe_get_ets_data(hw, &ets_cfg, &ets_offset); if (status) @@ -3973,7 +3962,7 @@ /* Only support thermal sensors attached to physical port 0 */ if ((IXGBE_READ_REG(hw, IXGBE_STATUS) & IXGBE_STATUS_LAN_ID_1)) - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; status = ixgbe_get_ets_data(hw, &ets_cfg, &ets_offset); if (status) diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 2024-05-02 14:23:46.000000000 +0000 @@ -3346,7 +3346,7 @@ { struct ixgbe_adapter *adapter = netdev_priv(dev); struct ixgbe_hw *hw = &adapter->hw; - s32 status = IXGBE_ERR_PHY_ADDR_INVALID; + s32 status = -EFAULT; u8 databyte = 0xFF; int i = 0; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c 2024-05-02 14:23:46.000000000 +0000 @@ -909,7 +909,13 @@ goto err_out; } - xs = kzalloc(sizeof(*xs), GFP_KERNEL); + algo = xfrm_aead_get_byname(aes_gcm_name, IXGBE_IPSEC_AUTH_BITS, 1); + if (unlikely(!algo)) { + err = -ENOENT; + goto err_out; + } + + xs = kzalloc(sizeof(*xs), GFP_ATOMIC); if (unlikely(!xs)) { err = -ENOMEM; goto err_out; @@ -925,14 +931,8 @@ memcpy(&xs->id.daddr.a4, sam->addr, sizeof(xs->id.daddr.a4)); xs->xso.dev = adapter->netdev; - algo = xfrm_aead_get_byname(aes_gcm_name, IXGBE_IPSEC_AUTH_BITS, 1); - if (unlikely(!algo)) { - err = -ENOENT; - goto err_xs; - } - aead_len = sizeof(*xs->aead) + IXGBE_IPSEC_KEY_BITS / 8; - xs->aead = kzalloc(aead_len, GFP_KERNEL); + xs->aead = kzalloc(aead_len, GFP_ATOMIC); if (unlikely(!xs->aead)) { err = -ENOMEM; goto err_xs; diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -2766,7 +2766,6 @@ { struct ixgbe_hw *hw = &adapter->hw; u32 eicr = adapter->interrupt_event; - s32 rc; if (test_bit(__IXGBE_DOWN, &adapter->state)) return; @@ -2800,14 +2799,13 @@ } /* Check if this is not due to overtemp */ - if (hw->phy.ops.check_overtemp(hw) != IXGBE_ERR_OVERTEMP) + if (!hw->phy.ops.check_overtemp(hw)) return; break; case IXGBE_DEV_ID_X550EM_A_1G_T: case IXGBE_DEV_ID_X550EM_A_1G_T_L: - rc = hw->phy.ops.check_overtemp(hw); - if (rc != IXGBE_ERR_OVERTEMP) + if (!hw->phy.ops.check_overtemp(hw)) return; break; default: @@ -2951,8 +2949,8 @@ static inline void ixgbe_irq_enable_queues(struct ixgbe_adapter *adapter, u64 qmask) { - u32 mask; struct ixgbe_hw *hw = &adapter->hw; + u32 mask; switch (hw->mac.type) { case ixgbe_mac_82598EB: @@ -5520,7 +5518,7 @@ { u32 speed; bool autoneg, link_up = false; - int ret = IXGBE_ERR_LINK_SETUP; + int ret = -EIO; if (hw->mac.ops.check_link) ret = hw->mac.ops.check_link(hw, &speed, &link_up, false); @@ -5946,13 +5944,13 @@ err = hw->mac.ops.init_hw(hw); switch (err) { case 0: - case IXGBE_ERR_SFP_NOT_PRESENT: - case IXGBE_ERR_SFP_NOT_SUPPORTED: + case -ENOENT: + case -EOPNOTSUPP: break; - case IXGBE_ERR_MASTER_REQUESTS_PENDING: - e_dev_err("master disable timed out\n"); + case -EALREADY: + e_dev_err("primary disable timed out\n"); break; - case IXGBE_ERR_EEPROM_VERSION: + case -EACCES: /* We are running on a pre-production device, log a warning */ e_dev_warn("This device is a pre-production adapter/LOM. " "Please be aware there may be issues associated with " @@ -7735,10 +7733,10 @@ adapter->sfp_poll_time = jiffies + IXGBE_SFP_POLL_JIFFIES - 1; err = hw->phy.ops.identify_sfp(hw); - if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (err == -EOPNOTSUPP) goto sfp_out; - if (err == IXGBE_ERR_SFP_NOT_PRESENT) { + if (err == -ENOENT) { /* If no cable is present, then we need to reset * the next time we find a good cable. */ adapter->flags2 |= IXGBE_FLAG2_SFP_NEEDS_RESET; @@ -7764,7 +7762,7 @@ else err = hw->mac.ops.setup_sfp(hw); - if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (err == -EOPNOTSUPP) goto sfp_out; adapter->flags |= IXGBE_FLAG_NEED_LINK_CONFIG; @@ -7773,8 +7771,8 @@ sfp_out: clear_bit(__IXGBE_IN_SFP_INIT, &adapter->state); - if ((err == IXGBE_ERR_SFP_NOT_SUPPORTED) && - (adapter->netdev->reg_state == NETREG_REGISTERED)) { + if (err == -EOPNOTSUPP && + adapter->netdev->reg_state == NETREG_REGISTERED) { e_dev_err("failed to initialize because an unsupported " "SFP+ module type was detected.\n"); e_dev_err("Reload the driver after installing a " @@ -7844,7 +7842,7 @@ static void ixgbe_phy_interrupt_subtask(struct ixgbe_adapter *adapter) { struct ixgbe_hw *hw = &adapter->hw; - u32 status; + bool overtemp; if (!(adapter->flags2 & IXGBE_FLAG2_PHY_INTERRUPT)) return; @@ -7854,11 +7852,9 @@ if (!hw->phy.ops.handle_lasi) return; - status = hw->phy.ops.handle_lasi(&adapter->hw); - if (status != IXGBE_ERR_OVERTEMP) - return; - - e_crit(drv, "%s\n", ixgbe_overheat_msg); + hw->phy.ops.handle_lasi(&adapter->hw, &overtemp); + if (overtemp) + e_crit(drv, "%s\n", ixgbe_overheat_msg); } static void ixgbe_reset_subtask(struct ixgbe_adapter *adapter) @@ -10399,6 +10395,44 @@ } /** + * ixgbe_irq_disable_single - Disable single IRQ vector + * @adapter: adapter structure + * @ring: ring index + **/ +static void ixgbe_irq_disable_single(struct ixgbe_adapter *adapter, u32 ring) +{ + struct ixgbe_hw *hw = &adapter->hw; + u64 qmask = BIT_ULL(ring); + u32 mask; + + switch (adapter->hw.mac.type) { + case ixgbe_mac_82598EB: + mask = qmask & IXGBE_EIMC_RTX_QUEUE; + IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, mask); + break; + case ixgbe_mac_82599EB: + case ixgbe_mac_X540: + case ixgbe_mac_X550: + case ixgbe_mac_X550EM_x: + case ixgbe_mac_x550em_a: + mask = (qmask & 0xFFFFFFFF); + if (mask) + IXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(0), mask); + mask = (qmask >> 32); + if (mask) + IXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(1), mask); + break; + default: + break; + } + IXGBE_WRITE_FLUSH(&adapter->hw); + if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) + synchronize_irq(adapter->msix_entries[ring].vector); + else + synchronize_irq(adapter->pdev->irq); +} + +/** * ixgbe_txrx_ring_disable - Disable Rx/Tx/XDP Tx rings * @adapter: adapter structure * @ring: ring index @@ -10414,6 +10448,11 @@ tx_ring = adapter->tx_ring[ring]; xdp_ring = adapter->xdp_ring[ring]; + ixgbe_irq_disable_single(adapter, ring); + + /* Rx/Tx/XDP Tx share the same napi context. */ + napi_disable(&rx_ring->q_vector->napi); + ixgbe_disable_txr(adapter, tx_ring); if (xdp_ring) ixgbe_disable_txr(adapter, xdp_ring); @@ -10422,9 +10461,6 @@ if (xdp_ring) synchronize_rcu(); - /* Rx/Tx/XDP Tx share the same napi context. */ - napi_disable(&rx_ring->q_vector->napi); - ixgbe_clean_tx_ring(tx_ring); if (xdp_ring) ixgbe_clean_tx_ring(xdp_ring); @@ -10452,9 +10488,6 @@ tx_ring = adapter->tx_ring[ring]; xdp_ring = adapter->xdp_ring[ring]; - /* Rx/Tx/XDP Tx share the same napi context. */ - napi_enable(&rx_ring->q_vector->napi); - ixgbe_configure_tx_ring(adapter, tx_ring); if (xdp_ring) ixgbe_configure_tx_ring(adapter, xdp_ring); @@ -10463,6 +10496,11 @@ clear_bit(__IXGBE_TX_DISABLED, &tx_ring->state); if (xdp_ring) clear_bit(__IXGBE_TX_DISABLED, &xdp_ring->state); + + /* Rx/Tx/XDP Tx share the same napi context. */ + napi_enable(&rx_ring->q_vector->napi); + ixgbe_irq_enable_queues(adapter, BIT_ULL(ring)); + IXGBE_WRITE_FLUSH(&adapter->hw); } /** @@ -10796,9 +10834,9 @@ err = hw->mac.ops.reset_hw(hw); hw->phy.reset_if_overtemp = false; ixgbe_set_eee_capable(adapter); - if (err == IXGBE_ERR_SFP_NOT_PRESENT) { + if (err == -ENOENT) { err = 0; - } else if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) { + } else if (err == -EOPNOTSUPP) { e_dev_err("failed to load because an unsupported SFP+ or QSFP module type was detected.\n"); e_dev_err("Reload the driver after installing a supported module.\n"); goto err_sw_init; @@ -11015,7 +11053,7 @@ /* reset the hardware with the new settings */ err = hw->mac.ops.start_hw(hw); - if (err == IXGBE_ERR_EEPROM_VERSION) { + if (err == -EACCES) { /* We are running on a pre-production device, log a warning */ e_dev_warn("This device is a pre-production adapter/LOM. " "Please be aware there may be issues associated " diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c 2024-05-02 14:23:46.000000000 +0000 @@ -24,7 +24,7 @@ size = mbx->size; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; return mbx->ops->read(hw, msg, size, mbx_id); } @@ -43,10 +43,10 @@ struct ixgbe_mbx_info *mbx = &hw->mbx; if (size > mbx->size) - return IXGBE_ERR_MBX; + return -EINVAL; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; return mbx->ops->write(hw, msg, size, mbx_id); } @@ -63,7 +63,7 @@ struct ixgbe_mbx_info *mbx = &hw->mbx; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; return mbx->ops->check_for_msg(hw, mbx_id); } @@ -80,7 +80,7 @@ struct ixgbe_mbx_info *mbx = &hw->mbx; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; return mbx->ops->check_for_ack(hw, mbx_id); } @@ -97,7 +97,7 @@ struct ixgbe_mbx_info *mbx = &hw->mbx; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; return mbx->ops->check_for_rst(hw, mbx_id); } @@ -115,12 +115,12 @@ int countdown = mbx->timeout; if (!countdown || !mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; while (mbx->ops->check_for_msg(hw, mbx_id)) { countdown--; if (!countdown) - return IXGBE_ERR_MBX; + return -EIO; udelay(mbx->usec_delay); } @@ -140,12 +140,12 @@ int countdown = mbx->timeout; if (!countdown || !mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; while (mbx->ops->check_for_ack(hw, mbx_id)) { countdown--; if (!countdown) - return IXGBE_ERR_MBX; + return -EIO; udelay(mbx->usec_delay); } @@ -169,7 +169,7 @@ s32 ret_val; if (!mbx->ops) - return IXGBE_ERR_MBX; + return -EIO; ret_val = ixgbe_poll_for_msg(hw, mbx_id); if (ret_val) @@ -197,7 +197,7 @@ /* exit if either we can't write or there isn't a defined timeout */ if (!mbx->ops || !mbx->timeout) - return IXGBE_ERR_MBX; + return -EIO; /* send msg */ ret_val = mbx->ops->write(hw, msg, size, mbx_id); @@ -217,7 +217,7 @@ return 0; } - return IXGBE_ERR_MBX; + return -EIO; } /** @@ -238,7 +238,7 @@ return 0; } - return IXGBE_ERR_MBX; + return -EIO; } /** @@ -259,7 +259,7 @@ return 0; } - return IXGBE_ERR_MBX; + return -EIO; } /** @@ -295,7 +295,7 @@ return 0; } - return IXGBE_ERR_MBX; + return -EIO; } /** @@ -317,7 +317,7 @@ if (p2v_mailbox & IXGBE_PFMAILBOX_PFU) return 0; - return IXGBE_ERR_MBX; + return -EIO; } /** diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h 2024-05-02 14:23:46.000000000 +0000 @@ -7,7 +7,6 @@ #include "ixgbe_type.h" #define IXGBE_VFMAILBOX_SIZE 16 /* 16 32 bit words - 64 bytes */ -#define IXGBE_ERR_MBX -100 #define IXGBE_VFMAILBOX 0x002FC #define IXGBE_VFMBMEM 0x00200 diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c 2024-05-02 14:23:46.000000000 +0000 @@ -102,7 +102,7 @@ csum = ~csum; do { if (lock && hw->mac.ops.acquire_swfw_sync(hw, swfw_mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; ixgbe_i2c_start(hw); /* Device Address and write indication */ if (ixgbe_out_i2c_byte_ack(hw, addr)) @@ -150,7 +150,7 @@ hw_dbg(hw, "I2C byte read combined error.\n"); } while (retry < max_retry); - return IXGBE_ERR_I2C; + return -EIO; } /** @@ -179,7 +179,7 @@ csum = ~csum; do { if (lock && hw->mac.ops.acquire_swfw_sync(hw, swfw_mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; ixgbe_i2c_start(hw); /* Device Address and write indication */ if (ixgbe_out_i2c_byte_ack(hw, addr)) @@ -215,7 +215,7 @@ hw_dbg(hw, "I2C byte write combined error.\n"); } while (retry < max_retry); - return IXGBE_ERR_I2C; + return -EIO; } /** @@ -262,8 +262,8 @@ **/ s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw) { + u32 status = -EFAULT; u32 phy_addr; - u32 status = IXGBE_ERR_PHY_ADDR_INVALID; if (!hw->phy.phy_semaphore_mask) { if (hw->bus.lan_id) @@ -282,7 +282,7 @@ if (ixgbe_probe_phy(hw, phy_addr)) return 0; else - return IXGBE_ERR_PHY_ADDR_INVALID; + return -EFAULT; } for (phy_addr = 0; phy_addr < IXGBE_MAX_PHY_ADDR; phy_addr++) { @@ -405,8 +405,7 @@ return status; /* Don't reset PHY if it's shut down due to overtemp. */ - if (!hw->phy.reset_if_overtemp && - (IXGBE_ERR_OVERTEMP == hw->phy.ops.check_overtemp(hw))) + if (!hw->phy.reset_if_overtemp && hw->phy.ops.check_overtemp(hw)) return 0; /* Blocked by MNG FW so bail */ @@ -454,7 +453,7 @@ if (ctrl & MDIO_CTRL1_RESET) { hw_dbg(hw, "PHY reset polling failed to complete.\n"); - return IXGBE_ERR_RESET_FAILED; + return -EIO; } return 0; @@ -496,7 +495,7 @@ if ((command & IXGBE_MSCA_MDI_COMMAND) != 0) { hw_dbg(hw, "PHY address command did not complete.\n"); - return IXGBE_ERR_PHY; + return -EIO; } /* Address cycle complete, setup and write the read @@ -523,7 +522,7 @@ if ((command & IXGBE_MSCA_MDI_COMMAND) != 0) { hw_dbg(hw, "PHY read command didn't complete\n"); - return IXGBE_ERR_PHY; + return -EIO; } /* Read operation is complete. Get the data @@ -555,7 +554,7 @@ phy_data); hw->mac.ops.release_swfw_sync(hw, gssr); } else { - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } return status; @@ -600,7 +599,7 @@ if ((command & IXGBE_MSCA_MDI_COMMAND) != 0) { hw_dbg(hw, "PHY address cmd didn't complete\n"); - return IXGBE_ERR_PHY; + return -EIO; } /* @@ -628,7 +627,7 @@ if ((command & IXGBE_MSCA_MDI_COMMAND) != 0) { hw_dbg(hw, "PHY write cmd didn't complete\n"); - return IXGBE_ERR_PHY; + return -EIO; } return 0; @@ -653,7 +652,7 @@ phy_data); hw->mac.ops.release_swfw_sync(hw, gssr); } else { - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } return status; @@ -1299,7 +1298,7 @@ if ((phy_data & MDIO_CTRL1_RESET) != 0) { hw_dbg(hw, "PHY reset did not complete.\n"); - return IXGBE_ERR_PHY; + return -EIO; } /* Get init offsets */ @@ -1356,12 +1355,12 @@ hw_dbg(hw, "SOL\n"); } else { hw_dbg(hw, "Bad control value\n"); - return IXGBE_ERR_PHY; + return -EIO; } break; default: hw_dbg(hw, "Bad control type\n"); - return IXGBE_ERR_PHY; + return -EIO; } } @@ -1369,7 +1368,7 @@ err_eeprom: hw_err(hw, "eeprom read at offset %d failed\n", data_offset); - return IXGBE_ERR_PHY; + return -EIO; } /** @@ -1387,10 +1386,10 @@ return ixgbe_identify_qsfp_module_generic(hw); default: hw->phy.sfp_type = ixgbe_sfp_type_not_present; - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } /** @@ -1415,7 +1414,7 @@ if (hw->mac.ops.get_media_type(hw) != ixgbe_media_type_fiber) { hw->phy.sfp_type = ixgbe_sfp_type_not_present; - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } /* LAN ID is needed for sfp_type determination */ @@ -1430,7 +1429,7 @@ if (identifier != IXGBE_SFF_IDENTIFIER_SFP) { hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } status = hw->phy.ops.read_i2c_eeprom(hw, IXGBE_SFF_1GBE_COMP_CODES, @@ -1621,7 +1620,7 @@ hw->phy.sfp_type == ixgbe_sfp_type_1g_sx_core0 || hw->phy.sfp_type == ixgbe_sfp_type_1g_sx_core1)) { hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } /* Anything else 82598-based is supported */ @@ -1645,7 +1644,7 @@ } hw_dbg(hw, "SFP+ module not supported\n"); hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } return 0; @@ -1655,7 +1654,7 @@ hw->phy.id = 0; hw->phy.type = ixgbe_phy_unknown; } - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } /** @@ -1682,7 +1681,7 @@ if (hw->mac.ops.get_media_type(hw) != ixgbe_media_type_fiber_qsfp) { hw->phy.sfp_type = ixgbe_sfp_type_not_present; - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } /* LAN ID is needed for sfp_type determination */ @@ -1696,7 +1695,7 @@ if (identifier != IXGBE_SFF_IDENTIFIER_QSFP_PLUS) { hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } hw->phy.id = identifier; @@ -1764,7 +1763,7 @@ } else { /* unsupported module type */ hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } } @@ -1824,7 +1823,7 @@ } hw_dbg(hw, "QSFP module not supported\n"); hw->phy.type = ixgbe_phy_sfp_unsupported; - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } return 0; } @@ -1835,7 +1834,7 @@ hw->phy.id = 0; hw->phy.type = ixgbe_phy_unknown; - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; } /** @@ -1855,14 +1854,14 @@ u16 sfp_type = hw->phy.sfp_type; if (hw->phy.sfp_type == ixgbe_sfp_type_unknown) - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; if (hw->phy.sfp_type == ixgbe_sfp_type_not_present) - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; if ((hw->device_id == IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM) && (hw->phy.sfp_type == ixgbe_sfp_type_da_cu)) - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; /* * Limiting active cables and 1G Phys must be initialized as @@ -1883,11 +1882,11 @@ if (hw->eeprom.ops.read(hw, IXGBE_PHY_INIT_OFFSET_NL, list_offset)) { hw_err(hw, "eeprom read at %d failed\n", IXGBE_PHY_INIT_OFFSET_NL); - return IXGBE_ERR_SFP_NO_INIT_SEQ_PRESENT; + return -EIO; } if ((!*list_offset) || (*list_offset == 0xFFFF)) - return IXGBE_ERR_SFP_NO_INIT_SEQ_PRESENT; + return -EIO; /* Shift offset to first ID word */ (*list_offset)++; @@ -1906,7 +1905,7 @@ goto err_phy; if ((!*data_offset) || (*data_offset == 0xFFFF)) { hw_dbg(hw, "SFP+ module not supported\n"); - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } else { break; } @@ -1919,14 +1918,14 @@ if (sfp_id == IXGBE_PHY_INIT_END_NL) { hw_dbg(hw, "No matching SFP+ module found\n"); - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } return 0; err_phy: hw_err(hw, "eeprom read at offset %d failed\n", *list_offset); - return IXGBE_ERR_PHY; + return -EIO; } /** @@ -2021,7 +2020,7 @@ do { if (lock && hw->mac.ops.acquire_swfw_sync(hw, swfw_mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; ixgbe_i2c_start(hw); @@ -2137,7 +2136,7 @@ u32 swfw_mask = hw->phy.phy_semaphore_mask; if (lock && hw->mac.ops.acquire_swfw_sync(hw, swfw_mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; do { ixgbe_i2c_start(hw); @@ -2379,7 +2378,7 @@ if (ack == 1) { hw_dbg(hw, "I2C ack was not received.\n"); - status = IXGBE_ERR_I2C; + status = -EIO; } ixgbe_lower_i2c_clk(hw, &i2cctl); @@ -2451,7 +2450,7 @@ udelay(IXGBE_I2C_T_LOW); } else { hw_dbg(hw, "I2C data was not set to %X\n", data); - return IXGBE_ERR_I2C; + return -EIO; } return 0; @@ -2547,7 +2546,7 @@ *i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL(hw)); if (data != ixgbe_get_i2c_data(hw, i2cctl)) { hw_dbg(hw, "Error - I2C data was not set to %X.\n", data); - return IXGBE_ERR_I2C; + return -EIO; } return 0; @@ -2617,22 +2616,24 @@ * @hw: pointer to hardware structure * * Checks if the LASI temp alarm status was triggered due to overtemp + * + * Return true when an overtemp event detected, otherwise false. **/ -s32 ixgbe_tn_check_overtemp(struct ixgbe_hw *hw) +bool ixgbe_tn_check_overtemp(struct ixgbe_hw *hw) { u16 phy_data = 0; + u32 status; if (hw->device_id != IXGBE_DEV_ID_82599_T3_LOM) - return 0; + return false; /* Check that the LASI temp alarm status was triggered */ - hw->phy.ops.read_reg(hw, IXGBE_TN_LASI_STATUS_REG, - MDIO_MMD_PMAPMD, &phy_data); - - if (!(phy_data & IXGBE_TN_LASI_STATUS_TEMP_ALARM)) - return 0; + status = hw->phy.ops.read_reg(hw, IXGBE_TN_LASI_STATUS_REG, + MDIO_MMD_PMAPMD, &phy_data); + if (status) + return false; - return IXGBE_ERR_OVERTEMP; + return !!(phy_data & IXGBE_TN_LASI_STATUS_TEMP_ALARM); } /** ixgbe_set_copper_phy_power - Control power for copper phy diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h 2024-05-02 14:23:46.000000000 +0000 @@ -155,7 +155,7 @@ s32 ixgbe_get_sfp_init_sequence_offsets(struct ixgbe_hw *hw, u16 *list_offset, u16 *data_offset); -s32 ixgbe_tn_check_overtemp(struct ixgbe_hw *hw); +bool ixgbe_tn_check_overtemp(struct ixgbe_hw *hw); s32 ixgbe_read_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data); s32 ixgbe_read_i2c_byte_generic_unlocked(struct ixgbe_hw *hw, u8 byte_offset, diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c 2024-05-02 14:23:46.000000000 +0000 @@ -1279,7 +1279,7 @@ break; default: e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]); - retval = IXGBE_ERR_MBX; + retval = -EIO; break; } diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h 2024-05-02 14:23:46.000000000 +0000 @@ -1247,7 +1247,7 @@ #define IXGBE_PSRTYPE_RQPL_SHIFT 29 /* CTRL Bit Masks */ -#define IXGBE_CTRL_GIO_DIS 0x00000004 /* Global IO Master Disable bit */ +#define IXGBE_CTRL_GIO_DIS 0x00000004 /* Global IO Primary Disable bit */ #define IXGBE_CTRL_LNK_RST 0x00000008 /* Link Reset. Resets everything. */ #define IXGBE_CTRL_RST 0x04000000 /* Reset (SW) */ #define IXGBE_CTRL_RST_MASK (IXGBE_CTRL_LNK_RST | IXGBE_CTRL_RST) @@ -1810,7 +1810,7 @@ /* STATUS Bit Masks */ #define IXGBE_STATUS_LAN_ID 0x0000000C /* LAN ID */ #define IXGBE_STATUS_LAN_ID_SHIFT 2 /* LAN ID Shift*/ -#define IXGBE_STATUS_GIO 0x00080000 /* GIO Master Enable Status */ +#define IXGBE_STATUS_GIO 0x00080000 /* GIO Primary Enable Status */ #define IXGBE_STATUS_LAN_ID_0 0x00000000 /* LAN ID 0 */ #define IXGBE_STATUS_LAN_ID_1 0x00000004 /* LAN ID 1 */ @@ -2192,8 +2192,8 @@ #define IXGBE_PCIDEVCTRL2_4_8s 0xd #define IXGBE_PCIDEVCTRL2_17_34s 0xe -/* Number of 100 microseconds we wait for PCI Express master disable */ -#define IXGBE_PCI_MASTER_DISABLE_TIMEOUT 800 +/* Number of 100 microseconds we wait for PCI Express primary disable */ +#define IXGBE_PCI_PRIMARY_DISABLE_TIMEOUT 800 /* RAH */ #define IXGBE_RAH_VIND_MASK 0x003C0000 @@ -3505,10 +3505,10 @@ s32 (*read_i2c_sff8472)(struct ixgbe_hw *, u8 , u8 *); s32 (*read_i2c_eeprom)(struct ixgbe_hw *, u8 , u8 *); s32 (*write_i2c_eeprom)(struct ixgbe_hw *, u8, u8); - s32 (*check_overtemp)(struct ixgbe_hw *); + bool (*check_overtemp)(struct ixgbe_hw *); s32 (*set_phy_power)(struct ixgbe_hw *, bool on); s32 (*enter_lplu)(struct ixgbe_hw *); - s32 (*handle_lasi)(struct ixgbe_hw *hw); + s32 (*handle_lasi)(struct ixgbe_hw *hw, bool *); s32 (*read_i2c_byte_unlocked)(struct ixgbe_hw *, u8 offset, u8 addr, u8 *value); s32 (*write_i2c_byte_unlocked)(struct ixgbe_hw *, u8 offset, u8 addr, @@ -3661,45 +3661,6 @@ const u32 *mvals; }; - -/* Error Codes */ -#define IXGBE_ERR_EEPROM -1 -#define IXGBE_ERR_EEPROM_CHECKSUM -2 -#define IXGBE_ERR_PHY -3 -#define IXGBE_ERR_CONFIG -4 -#define IXGBE_ERR_PARAM -5 -#define IXGBE_ERR_MAC_TYPE -6 -#define IXGBE_ERR_UNKNOWN_PHY -7 -#define IXGBE_ERR_LINK_SETUP -8 -#define IXGBE_ERR_ADAPTER_STOPPED -9 -#define IXGBE_ERR_INVALID_MAC_ADDR -10 -#define IXGBE_ERR_DEVICE_NOT_SUPPORTED -11 -#define IXGBE_ERR_MASTER_REQUESTS_PENDING -12 -#define IXGBE_ERR_INVALID_LINK_SETTINGS -13 -#define IXGBE_ERR_AUTONEG_NOT_COMPLETE -14 -#define IXGBE_ERR_RESET_FAILED -15 -#define IXGBE_ERR_SWFW_SYNC -16 -#define IXGBE_ERR_PHY_ADDR_INVALID -17 -#define IXGBE_ERR_I2C -18 -#define IXGBE_ERR_SFP_NOT_SUPPORTED -19 -#define IXGBE_ERR_SFP_NOT_PRESENT -20 -#define IXGBE_ERR_SFP_NO_INIT_SEQ_PRESENT -21 -#define IXGBE_ERR_NO_SAN_ADDR_PTR -22 -#define IXGBE_ERR_FDIR_REINIT_FAILED -23 -#define IXGBE_ERR_EEPROM_VERSION -24 -#define IXGBE_ERR_NO_SPACE -25 -#define IXGBE_ERR_OVERTEMP -26 -#define IXGBE_ERR_FC_NOT_NEGOTIATED -27 -#define IXGBE_ERR_FC_NOT_SUPPORTED -28 -#define IXGBE_ERR_SFP_SETUP_NOT_COMPLETE -30 -#define IXGBE_ERR_PBA_SECTION -31 -#define IXGBE_ERR_INVALID_ARGUMENT -32 -#define IXGBE_ERR_HOST_INTERFACE_COMMAND -33 -#define IXGBE_ERR_FDIR_CMD_INCOMPLETE -38 -#define IXGBE_ERR_FW_RESP_INVALID -39 -#define IXGBE_ERR_TOKEN_RETRY -40 -#define IXGBE_NOT_IMPLEMENTED 0x7FFFFFFF - #define IXGBE_FUSES0_GROUP(_i) (0x11158 + ((_i) * 4)) #define IXGBE_FUSES0_300MHZ BIT(5) #define IXGBE_FUSES0_REV_MASK (3u << 6) diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c 2024-05-02 14:23:46.000000000 +0000 @@ -84,7 +84,7 @@ status = hw->mac.ops.acquire_swfw_sync(hw, swfw_mask); if (status) { hw_dbg(hw, "semaphore failed with %d", status); - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } ctrl = IXGBE_CTRL_RST; @@ -103,7 +103,7 @@ } if (ctrl & IXGBE_CTRL_RST_MASK) { - status = IXGBE_ERR_RESET_FAILED; + status = -EIO; hw_dbg(hw, "Reset polling failed to complete.\n"); } msleep(100); @@ -220,7 +220,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = ixgbe_read_eerd_generic(hw, offset, data); @@ -243,7 +243,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = ixgbe_read_eerd_buffer_generic(hw, offset, words, data); @@ -264,7 +264,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = ixgbe_write_eewr_generic(hw, offset, data); @@ -287,7 +287,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = ixgbe_write_eewr_buffer_generic(hw, offset, words, data); @@ -324,7 +324,7 @@ for (i = 0; i < checksum_last_word; i++) { if (ixgbe_read_eerd_generic(hw, i, &word)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } checksum += word; } @@ -349,7 +349,7 @@ if (ixgbe_read_eerd_generic(hw, pointer, &length)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } /* Skip pointer section if length is invalid. */ @@ -360,7 +360,7 @@ for (j = pointer + 1; j <= pointer + length; j++) { if (ixgbe_read_eerd_generic(hw, j, &word)) { hw_dbg(hw, "EEPROM read failed\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } checksum += word; } @@ -397,7 +397,7 @@ } if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = hw->eeprom.ops.calc_checksum(hw); if (status < 0) @@ -418,7 +418,7 @@ */ if (read_checksum != checksum) { hw_dbg(hw, "Invalid EEPROM checksum"); - status = IXGBE_ERR_EEPROM_CHECKSUM; + status = -EIO; } /* If the user cares, return the calculated checksum */ @@ -455,7 +455,7 @@ } if (hw->mac.ops.acquire_swfw_sync(hw, IXGBE_GSSR_EEP_SM)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = hw->eeprom.ops.calc_checksum(hw); if (status < 0) @@ -490,7 +490,7 @@ s32 status; status = ixgbe_poll_flash_update_done_X540(hw); - if (status == IXGBE_ERR_EEPROM) { + if (status == -EIO) { hw_dbg(hw, "Flash update time out\n"); return status; } @@ -540,7 +540,7 @@ return 0; udelay(5); } - return IXGBE_ERR_EEPROM; + return -EIO; } /** @@ -575,7 +575,7 @@ * SW_FW_SYNC bits (not just NVM) */ if (ixgbe_get_swfw_sync_semaphore(hw)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; swfw_sync = IXGBE_READ_REG(hw, IXGBE_SWFW_SYNC(hw)); if (!(swfw_sync & (fwmask | swmask | hwmask))) { @@ -599,7 +599,7 @@ * bits in the SW_FW_SYNC register. */ if (ixgbe_get_swfw_sync_semaphore(hw)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; swfw_sync = IXGBE_READ_REG(hw, IXGBE_SWFW_SYNC(hw)); if (swfw_sync & (fwmask | hwmask)) { swfw_sync |= swmask; @@ -622,11 +622,11 @@ rmask |= IXGBE_GSSR_I2C_MASK; ixgbe_release_swfw_sync_X540(hw, rmask); ixgbe_release_swfw_sync_semaphore(hw); - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } ixgbe_release_swfw_sync_semaphore(hw); - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } /** @@ -680,7 +680,7 @@ if (i == timeout) { hw_dbg(hw, "Software semaphore SMBI between device drivers not granted.\n"); - return IXGBE_ERR_EEPROM; + return -EIO; } /* Now get the semaphore between SW/FW through the REGSMP bit */ @@ -697,7 +697,7 @@ */ hw_dbg(hw, "REGSMP Software NVM semaphore not granted\n"); ixgbe_release_swfw_sync_semaphore(hw); - return IXGBE_ERR_EEPROM; + return -EIO; } /** @@ -768,7 +768,7 @@ bool link_up; if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; /* Link should be up in order for the blink bit in the LED control * register to work. Force link and speed in the MAC if link is down. @@ -804,7 +804,7 @@ u32 ledctl_reg; if (index > 3) - return IXGBE_ERR_PARAM; + return -EINVAL; /* Restore the LED to its default value. */ ledctl_reg = IXGBE_READ_REG(hw, IXGBE_LEDCTL); diff -Nru linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c --- linux-5.10.209/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c 2024-05-02 14:23:46.000000000 +0000 @@ -206,13 +206,13 @@ } if (retry == IXGBE_CS4227_RETRIES) { hw_err(hw, "CS4227 reset did not complete\n"); - return IXGBE_ERR_PHY; + return -EIO; } status = ixgbe_read_cs4227(hw, IXGBE_CS4227_EEPROM_STATUS, &value); if (status || !(value & IXGBE_CS4227_EEPROM_LOAD_OK)) { hw_err(hw, "CS4227 EEPROM did not load successfully\n"); - return IXGBE_ERR_PHY; + return -EIO; } return 0; @@ -350,13 +350,13 @@ static s32 ixgbe_read_phy_reg_x550em(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u16 *phy_data) { - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; } static s32 ixgbe_write_phy_reg_x550em(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type, u16 phy_data) { - return IXGBE_NOT_IMPLEMENTED; + return -EOPNOTSUPP; } /** @@ -463,7 +463,7 @@ --retries; } while (retries > 0); - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EIO; } static const struct { @@ -511,7 +511,7 @@ hw->phy.id |= phy_id_lo & IXGBE_PHY_REVISION_MASK; hw->phy.revision = phy_id_lo & ~IXGBE_PHY_REVISION_MASK; if (!hw->phy.id || hw->phy.id == IXGBE_PHY_REVISION_MASK) - return IXGBE_ERR_PHY_ADDR_INVALID; + return -EFAULT; hw->phy.autoneg_advertised = hw->phy.speeds_supported; hw->phy.eee_speeds_supported = IXGBE_LINK_SPEED_100_FULL | @@ -568,7 +568,7 @@ if (hw->fc.strict_ieee && hw->fc.requested_mode == ixgbe_fc_rx_pause) { hw_err(hw, "rx_pause not valid in strict IEEE mode\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } switch (hw->fc.requested_mode) { @@ -600,8 +600,10 @@ rc = ixgbe_fw_phy_activity(hw, FW_PHY_ACT_SETUP_LINK, &setup); if (rc) return rc; + if (setup[0] == FW_PHY_ACT_SETUP_LINK_RSP_DOWN) - return IXGBE_ERR_OVERTEMP; + return -EIO; + return 0; } @@ -675,7 +677,7 @@ *ctrl = command; if (i == IXGBE_MDIO_COMMAND_TIMEOUT) { hw_dbg(hw, "IOSF wait timed out\n"); - return IXGBE_ERR_PHY; + return -EIO; } return 0; @@ -715,7 +717,8 @@ error = (command & IXGBE_SB_IOSF_CTRL_CMPL_ERR_MASK) >> IXGBE_SB_IOSF_CTRL_CMPL_ERR_SHIFT; hw_dbg(hw, "Failed to read, error %x\n", error); - return IXGBE_ERR_PHY; + ret = -EIO; + goto out; } if (!ret) @@ -750,9 +753,9 @@ if (token_cmd.hdr.cmd_or_resp.ret_status == FW_PHY_TOKEN_OK) return 0; if (token_cmd.hdr.cmd_or_resp.ret_status != FW_PHY_TOKEN_RETRY) - return IXGBE_ERR_FW_RESP_INVALID; + return -EIO; - return IXGBE_ERR_TOKEN_RETRY; + return -EAGAIN; } /** @@ -778,7 +781,7 @@ return status; if (token_cmd.hdr.cmd_or_resp.ret_status == FW_PHY_TOKEN_OK) return 0; - return IXGBE_ERR_FW_RESP_INVALID; + return -EIO; } /** @@ -942,7 +945,7 @@ local_buffer = buf; } else { if (buffer_size < ptr) - return IXGBE_ERR_PARAM; + return -EINVAL; local_buffer = &buffer[ptr]; } @@ -960,7 +963,7 @@ } if (buffer && ((u32)start + (u32)length > buffer_size)) - return IXGBE_ERR_PARAM; + return -EINVAL; for (i = start; length; i++, length--) { if (i == bufsz && !buffer) { @@ -1012,7 +1015,7 @@ local_buffer = eeprom_ptrs; } else { if (buffer_size < IXGBE_EEPROM_LAST_WORD) - return IXGBE_ERR_PARAM; + return -EINVAL; local_buffer = buffer; } @@ -1148,7 +1151,7 @@ * calculated checksum */ if (read_checksum != checksum) { - status = IXGBE_ERR_EEPROM_CHECKSUM; + status = -EIO; hw_dbg(hw, "Invalid EEPROM checksum"); } @@ -1203,7 +1206,7 @@ hw->mac.ops.release_swfw_sync(hw, IXGBE_GSSR_EEP_SM); } else { hw_dbg(hw, "write ee hostif failed to get semaphore"); - status = IXGBE_ERR_SWFW_SYNC; + status = -EBUSY; } return status; @@ -1415,7 +1418,7 @@ error = (command & IXGBE_SB_IOSF_CTRL_CMPL_ERR_MASK) >> IXGBE_SB_IOSF_CTRL_CMPL_ERR_SHIFT; hw_dbg(hw, "Failed to write, error %x\n", error); - return IXGBE_ERR_PHY; + return -EIO; } out: @@ -1558,7 +1561,7 @@ /* iXFI is only supported with X552 */ if (mac->type != ixgbe_mac_X550EM_x) - return IXGBE_ERR_LINK_SETUP; + return -EIO; /* Disable AN and force speed to 10G Serial. */ status = ixgbe_read_iosf_sb_reg_x550(hw, @@ -1580,7 +1583,7 @@ break; default: /* Other link speeds are not supported by internal KR PHY. */ - return IXGBE_ERR_LINK_SETUP; + return -EINVAL; } status = ixgbe_write_iosf_sb_reg_x550(hw, @@ -1611,7 +1614,7 @@ { switch (hw->phy.sfp_type) { case ixgbe_sfp_type_not_present: - return IXGBE_ERR_SFP_NOT_PRESENT; + return -ENOENT; case ixgbe_sfp_type_da_cu_core0: case ixgbe_sfp_type_da_cu_core1: *linear = true; @@ -1630,7 +1633,7 @@ case ixgbe_sfp_type_1g_cu_core0: case ixgbe_sfp_type_1g_cu_core1: default: - return IXGBE_ERR_SFP_NOT_SUPPORTED; + return -EOPNOTSUPP; } return 0; @@ -1660,7 +1663,7 @@ * there is no reason to configure CS4227 and SFP not present error is * not accepted in the setup MAC link flow. */ - if (status == IXGBE_ERR_SFP_NOT_PRESENT) + if (status == -ENOENT) return 0; if (status) @@ -1718,7 +1721,7 @@ break; default: /* Other link speeds are not supported by internal PHY. */ - return IXGBE_ERR_LINK_SETUP; + return -EINVAL; } status = mac->ops.write_iosf_sb_reg(hw, @@ -1753,7 +1756,7 @@ /* If no SFP module present, then return success. Return success since * SFP not present error is not excepted in the setup MAC link flow. */ - if (ret_val == IXGBE_ERR_SFP_NOT_PRESENT) + if (ret_val == -ENOENT) return 0; if (ret_val) @@ -1803,7 +1806,7 @@ /* If no SFP module present, then return success. Return success since * SFP not present error is not excepted in the setup MAC link flow. */ - if (ret_val == IXGBE_ERR_SFP_NOT_PRESENT) + if (ret_val == -ENOENT) return 0; if (ret_val) @@ -1813,7 +1816,7 @@ ixgbe_setup_kr_speed_x550em(hw, speed); if (hw->phy.mdio.prtad == MDIO_PRTAD_NONE) - return IXGBE_ERR_PHY_ADDR_INVALID; + return -EFAULT; /* Get external PHY SKU id */ ret_val = hw->phy.ops.read_reg(hw, IXGBE_CS4227_EFUSE_PDF_SKU, @@ -1912,7 +1915,7 @@ u16 i, autoneg_status; if (hw->mac.ops.get_media_type(hw) != ixgbe_media_type_copper) - return IXGBE_ERR_CONFIG; + return -EIO; status = ixgbe_check_mac_link_generic(hw, speed, link_up, link_up_wait_to_complete); @@ -2095,9 +2098,9 @@ */ static void ixgbe_fc_autoneg_sgmii_x550em_a(struct ixgbe_hw *hw) { - s32 status = IXGBE_ERR_FC_NOT_NEGOTIATED; u32 info[FW_PHY_ACT_DATA_COUNT] = { 0 }; ixgbe_link_speed speed; + s32 status = -EIO; bool link_up; /* AN should have completed when the cable was plugged in. @@ -2115,7 +2118,7 @@ /* Check if auto-negotiation has completed */ status = ixgbe_fw_phy_activity(hw, FW_PHY_ACT_GET_LINK_INFO, &info); if (status || !(info[0] & FW_PHY_ACT_GET_LINK_INFO_AN_COMPLETE)) { - status = IXGBE_ERR_FC_NOT_NEGOTIATED; + status = -EIO; goto out; } @@ -2319,18 +2322,18 @@ * @hw: pointer to hardware structure * @lsc: pointer to boolean flag which indicates whether external Base T * PHY interrupt is lsc + * @is_overtemp: indicate whether an overtemp event encountered * * Determime if external Base T PHY interrupt cause is high temperature * failure alarm or link status change. - * - * Return IXGBE_ERR_OVERTEMP if interrupt is high temperature - * failure alarm, else return PHY access status. **/ -static s32 ixgbe_get_lasi_ext_t_x550em(struct ixgbe_hw *hw, bool *lsc) +static s32 ixgbe_get_lasi_ext_t_x550em(struct ixgbe_hw *hw, bool *lsc, + bool *is_overtemp) { u32 status; u16 reg; + *is_overtemp = false; *lsc = false; /* Vendor alarm triggered */ @@ -2362,7 +2365,8 @@ if (reg & IXGBE_MDIO_GLOBAL_ALM_1_HI_TMP_FAIL) { /* power down the PHY in case the PHY FW didn't already */ ixgbe_set_copper_phy_power(hw, false); - return IXGBE_ERR_OVERTEMP; + *is_overtemp = true; + return -EIO; } if (reg & IXGBE_MDIO_GLOBAL_ALM_1_DEV_FAULT) { /* device fault alarm triggered */ @@ -2376,7 +2380,8 @@ if (reg == IXGBE_MDIO_GLOBAL_FAULT_MSG_HI_TMP) { /* power down the PHY in case the PHY FW didn't */ ixgbe_set_copper_phy_power(hw, false); - return IXGBE_ERR_OVERTEMP; + *is_overtemp = true; + return -EIO; } } @@ -2412,12 +2417,12 @@ **/ static s32 ixgbe_enable_lasi_ext_t_x550em(struct ixgbe_hw *hw) { + bool lsc, overtemp; u32 status; u16 reg; - bool lsc; /* Clear interrupt flags */ - status = ixgbe_get_lasi_ext_t_x550em(hw, &lsc); + status = ixgbe_get_lasi_ext_t_x550em(hw, &lsc, &overtemp); /* Enable link status change alarm */ @@ -2496,21 +2501,20 @@ /** * ixgbe_handle_lasi_ext_t_x550em - Handle external Base T PHY interrupt * @hw: pointer to hardware structure + * @is_overtemp: indicate whether an overtemp event encountered * * Handle external Base T PHY interrupt. If high temperature * failure alarm then return error, else if link status change * then setup internal/external PHY link - * - * Return IXGBE_ERR_OVERTEMP if interrupt is high temperature - * failure alarm, else return PHY access status. **/ -static s32 ixgbe_handle_lasi_ext_t_x550em(struct ixgbe_hw *hw) +static s32 ixgbe_handle_lasi_ext_t_x550em(struct ixgbe_hw *hw, + bool *is_overtemp) { struct ixgbe_phy_info *phy = &hw->phy; bool lsc; u32 status; - status = ixgbe_get_lasi_ext_t_x550em(hw, &lsc); + status = ixgbe_get_lasi_ext_t_x550em(hw, &lsc, is_overtemp); if (status) return status; @@ -2642,7 +2646,7 @@ u16 speed; if (hw->mac.ops.get_media_type(hw) != ixgbe_media_type_copper) - return IXGBE_ERR_CONFIG; + return -EIO; if (!(hw->mac.type == ixgbe_mac_X550EM_x && !(hw->phy.nw_mng_if_sel & IXGBE_NW_MNG_IF_SEL_INT_PHY_MODE))) { @@ -2685,7 +2689,7 @@ break; default: /* Internal PHY does not support anything else */ - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } return ixgbe_setup_ixfi_x550em(hw, &force_speed); @@ -2717,7 +2721,7 @@ u16 phy_data; if (led_idx >= IXGBE_X557_MAX_LED_INDEX) - return IXGBE_ERR_PARAM; + return -EINVAL; /* To turn on the LED, set mode to ON. */ hw->phy.ops.read_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx, @@ -2739,7 +2743,7 @@ u16 phy_data; if (led_idx >= IXGBE_X557_MAX_LED_INDEX) - return IXGBE_ERR_PARAM; + return -EINVAL; /* To turn on the LED, set mode to ON. */ hw->phy.ops.read_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx, @@ -2763,8 +2767,9 @@ * * Sends driver version number to firmware through the manageability * block. On success return 0 - * else returns IXGBE_ERR_SWFW_SYNC when encountering an error acquiring - * semaphore or IXGBE_ERR_HOST_INTERFACE_COMMAND when command fails. + * else returns -EBUSY when encountering an error acquiring + * semaphore, -EIO when command fails or -ENIVAL when incorrect + * params passed. **/ static s32 ixgbe_set_fw_drv_ver_x550(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build, u8 sub, u16 len, @@ -2775,7 +2780,7 @@ int i; if (!len || !driver_ver || (len > sizeof(fw_cmd.driver_string))) - return IXGBE_ERR_INVALID_ARGUMENT; + return -EINVAL; fw_cmd.hdr.cmd = FW_CEM_CMD_DRIVER_INFO; fw_cmd.hdr.buf_len = FW_CEM_CMD_DRIVER_INFO_LEN + len; @@ -2800,7 +2805,7 @@ if (fw_cmd.hdr.cmd_or_resp.ret_status != FW_CEM_RESP_STATUS_SUCCESS) - return IXGBE_ERR_HOST_INTERFACE_COMMAND; + return -EIO; return 0; } @@ -2857,7 +2862,7 @@ /* Validate the requested mode */ if (hw->fc.strict_ieee && hw->fc.requested_mode == ixgbe_fc_rx_pause) { hw_err(hw, "ixgbe_fc_rx_pause not valid in strict IEEE mode\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } /* 10gig parts do not have a word in the EEPROM to determine the @@ -2892,7 +2897,7 @@ break; default: hw_err(hw, "Flow control param set incorrectly\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } switch (hw->device_id) { @@ -2936,8 +2941,8 @@ static void ixgbe_fc_autoneg_backplane_x550em_a(struct ixgbe_hw *hw) { u32 link_s1, lp_an_page_low, an_cntl_1; - s32 status = IXGBE_ERR_FC_NOT_NEGOTIATED; ixgbe_link_speed speed; + s32 status = -EIO; bool link_up; /* AN should have completed when the cable was plugged in. @@ -2963,7 +2968,7 @@ if (status || (link_s1 & IXGBE_KRM_LINK_S1_MAC_AN_COMPLETE) == 0) { hw_dbg(hw, "Auto-Negotiation did not complete\n"); - status = IXGBE_ERR_FC_NOT_NEGOTIATED; + status = -EIO; goto out; } @@ -3137,21 +3142,23 @@ /** * ixgbe_check_overtemp_fw - Check firmware-controlled PHYs for overtemp * @hw: pointer to hardware structure + * + * Return true when an overtemp event detected, otherwise false. */ -static s32 ixgbe_check_overtemp_fw(struct ixgbe_hw *hw) +static bool ixgbe_check_overtemp_fw(struct ixgbe_hw *hw) { u32 store[FW_PHY_ACT_DATA_COUNT] = { 0 }; s32 rc; rc = ixgbe_fw_phy_activity(hw, FW_PHY_ACT_GET_LINK_INFO, &store); if (rc) - return rc; + return false; if (store[0] & FW_PHY_ACT_GET_LINK_INFO_TEMP) { ixgbe_shutdown_fw_phy(hw); - return IXGBE_ERR_OVERTEMP; + return true; } - return 0; + return false; } /** @@ -3201,8 +3208,7 @@ /* Identify the PHY or SFP module */ ret_val = phy->ops.identify(hw); - if (ret_val == IXGBE_ERR_SFP_NOT_SUPPORTED || - ret_val == IXGBE_ERR_PHY_ADDR_INVALID) + if (ret_val == -EOPNOTSUPP || ret_val == -EFAULT) return ret_val; /* Setup function pointers based on detected hardware */ @@ -3410,8 +3416,7 @@ /* PHY ops must be identified and initialized prior to reset */ status = hw->phy.ops.init(hw); - if (status == IXGBE_ERR_SFP_NOT_SUPPORTED || - status == IXGBE_ERR_PHY_ADDR_INVALID) + if (status == -EOPNOTSUPP || status == -EFAULT) return status; /* start the external PHY */ @@ -3427,7 +3432,7 @@ hw->phy.sfp_setup_needed = false; } - if (status == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (status == -EOPNOTSUPP) return status; /* Reset PHY */ @@ -3451,7 +3456,7 @@ status = hw->mac.ops.acquire_swfw_sync(hw, swfw_mask); if (status) { hw_dbg(hw, "semaphore failed with %d", status); - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; } ctrl |= IXGBE_READ_REG(hw, IXGBE_CTRL); @@ -3469,7 +3474,7 @@ } if (ctrl & IXGBE_CTRL_RST_MASK) { - status = IXGBE_ERR_RESET_FAILED; + status = -EIO; hw_dbg(hw, "Reset polling failed to complete.\n"); } @@ -3565,7 +3570,7 @@ /* Validate the requested mode */ if (hw->fc.strict_ieee && hw->fc.requested_mode == ixgbe_fc_rx_pause) { hw_err(hw, "ixgbe_fc_rx_pause not valid in strict IEEE mode\n"); - return IXGBE_ERR_INVALID_LINK_SETTINGS; + return -EINVAL; } if (hw->fc.requested_mode == ixgbe_fc_default) @@ -3622,7 +3627,7 @@ break; default: hw_err(hw, "Flow control param set incorrectly\n"); - return IXGBE_ERR_CONFIG; + return -EIO; } status = hw->mac.ops.write_iosf_sb_reg(hw, @@ -3718,7 +3723,7 @@ return 0; if (hmask) ixgbe_release_swfw_sync_X540(hw, hmask); - if (status != IXGBE_ERR_TOKEN_RETRY) + if (status != -EAGAIN) return status; msleep(FW_PHY_TOKEN_DELAY); } @@ -3762,7 +3767,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = hw->phy.ops.read_reg_mdi(hw, reg_addr, device_type, phy_data); @@ -3788,7 +3793,7 @@ s32 status; if (hw->mac.ops.acquire_swfw_sync(hw, mask)) - return IXGBE_ERR_SWFW_SYNC; + return -EBUSY; status = ixgbe_write_phy_reg_mdi(hw, reg_addr, device_type, phy_data); hw->mac.ops.release_swfw_sync(hw, mask); diff -Nru linux-5.10.209/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c linux-5.10.216/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c --- linux-5.10.209/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -581,12 +581,38 @@ return err; } +/* Cleanup pool before actual initialization in the OS */ +static void mvpp2_bm_pool_cleanup(struct mvpp2 *priv, int pool_id) +{ + unsigned int thread = mvpp2_cpu_to_thread(priv, get_cpu()); + u32 val; + int i; + + /* Drain the BM from all possible residues left by firmware */ + for (i = 0; i < MVPP2_BM_POOL_SIZE_MAX; i++) + mvpp2_thread_read(priv, thread, MVPP2_BM_PHY_ALLOC_REG(pool_id)); + + put_cpu(); + + /* Stop the BM pool */ + val = mvpp2_read(priv, MVPP2_BM_POOL_CTRL_REG(pool_id)); + val |= MVPP2_BM_STOP_MASK; + mvpp2_write(priv, MVPP2_BM_POOL_CTRL_REG(pool_id), val); +} + static int mvpp2_bm_init(struct device *dev, struct mvpp2 *priv) { enum dma_data_direction dma_dir = DMA_FROM_DEVICE; int i, err, poolnum = MVPP2_BM_POOLS_NUM; struct mvpp2_port *port; + if (priv->percpu_pools) + poolnum = mvpp2_get_nrxqs(priv) * 2; + + /* Clean up the pool state in case it contains stale state */ + for (i = 0; i < poolnum; i++) + mvpp2_bm_pool_cleanup(priv, i); + if (priv->percpu_pools) { for (i = 0; i < priv->port_count; i++) { port = priv->port_list[i]; @@ -596,7 +622,6 @@ } } - poolnum = mvpp2_get_nrxqs(priv) * 2; for (i = 0; i < poolnum; i++) { /* the pool in use */ int pn = i / (poolnum / 2); diff -Nru linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/cgx.c linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/cgx.c --- linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/cgx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/cgx.c 2024-05-02 14:23:46.000000000 +0000 @@ -403,6 +403,11 @@ if (!cgx || lmac_id >= cgx->lmac_count) return -ENODEV; + cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); + cfg &= ~CGX_GMP_GMI_RXX_FRM_CTL_CTL_BCK; + cfg |= rx_pause ? CGX_GMP_GMI_RXX_FRM_CTL_CTL_BCK : 0x0; + cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); + cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); cfg &= ~CGX_SMUX_RX_FRM_CTL_CTL_BCK; cfg |= rx_pause ? CGX_SMUX_RX_FRM_CTL_CTL_BCK : 0x0; @@ -714,7 +719,7 @@ /* Release thread waiting for completion */ lmac->cmd_pend = false; - wake_up_interruptible(&lmac->wq_cmd_cmplt); + wake_up(&lmac->wq_cmd_cmplt); break; case CGX_EVT_ASYNC: if (cgx_event_is_linkevent(event)) diff -Nru linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/rvu.c linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/rvu.c --- linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/rvu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/rvu.c 2024-05-02 14:23:46.000000000 +0000 @@ -1969,10 +1969,9 @@ } } -static irqreturn_t rvu_mbox_intr_handler(int irq, void *rvu_irq) +static irqreturn_t rvu_mbox_pf_intr_handler(int irq, void *rvu_irq) { struct rvu *rvu = (struct rvu *)rvu_irq; - int vfs = rvu->vfs; u64 intr; intr = rvu_read64(rvu, BLKADDR_RVUM, RVU_AF_PFAF_MBOX_INT); @@ -1986,6 +1985,18 @@ rvu_queue_work(&rvu->afpf_wq_info, 0, rvu->hw->total_pfs, intr); + return IRQ_HANDLED; +} + +static irqreturn_t rvu_mbox_intr_handler(int irq, void *rvu_irq) +{ + struct rvu *rvu = (struct rvu *)rvu_irq; + int vfs = rvu->vfs; + u64 intr; + + /* Sync with mbox memory region */ + rmb(); + /* Handle VF interrupts */ if (vfs > 64) { intr = rvupf_read64(rvu, RVU_PF_VFPF_MBOX_INTX(1)); @@ -2300,7 +2311,7 @@ /* Register mailbox interrupt handler */ sprintf(&rvu->irq_name[RVU_AF_INT_VEC_MBOX * NAME_SIZE], "RVUAF Mbox"); ret = request_irq(pci_irq_vector(rvu->pdev, RVU_AF_INT_VEC_MBOX), - rvu_mbox_intr_handler, 0, + rvu_mbox_pf_intr_handler, 0, &rvu->irq_name[RVU_AF_INT_VEC_MBOX * NAME_SIZE], rvu); if (ret) { dev_err(rvu->dev, diff -Nru linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c --- linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c 2024-05-02 14:23:46.000000000 +0000 @@ -3146,18 +3146,18 @@ */ rvu_write64(rvu, blkaddr, NIX_AF_CFG, rvu_read64(rvu, blkaddr, NIX_AF_CFG) | 0x40ULL); + } - /* Set chan/link to backpressure TL3 instead of TL2 */ - rvu_write64(rvu, blkaddr, NIX_AF_PSE_CHANNEL_LEVEL, 0x01); + /* Set chan/link to backpressure TL3 instead of TL2 */ + rvu_write64(rvu, blkaddr, NIX_AF_PSE_CHANNEL_LEVEL, 0x01); - /* Disable SQ manager's sticky mode operation (set TM6 = 0) - * This sticky mode is known to cause SQ stalls when multiple - * SQs are mapped to same SMQ and transmitting pkts at a time. - */ - cfg = rvu_read64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS); - cfg &= ~BIT_ULL(15); - rvu_write64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS, cfg); - } + /* Disable SQ manager's sticky mode operation (set TM6 = 0) + * This sticky mode is known to cause SQ stalls when multiple + * SQs are mapped to same SMQ and transmitting pkts at a time. + */ + cfg = rvu_read64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS); + cfg &= ~BIT_ULL(15); + rvu_write64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS, cfg); ltdefs = rvu->kpu.lt_def; /* Calibrate X2P bus to check if CGX/LBK links are fine */ diff -Nru linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c --- linux-5.10.209/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c 2024-05-02 14:23:46.000000000 +0000 @@ -1598,7 +1598,7 @@ * mcam entries are enabled to receive the packets. Hence disable the * packet I/O. */ - if (err == EIO) + if (err == -EIO) goto err_disable_rxtx; else if (err) goto err_tx_stop_queues; diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/cmd.c linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/cmd.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/cmd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/cmd.c 2024-05-02 14:23:46.000000000 +0000 @@ -114,15 +114,18 @@ return token; } -static int cmd_alloc_index(struct mlx5_cmd *cmd) +static int cmd_alloc_index(struct mlx5_cmd *cmd, struct mlx5_cmd_work_ent *ent) { unsigned long flags; int ret; spin_lock_irqsave(&cmd->alloc_lock, flags); ret = find_first_bit(&cmd->bitmask, cmd->max_reg_cmds); - if (ret < cmd->max_reg_cmds) + if (ret < cmd->max_reg_cmds) { clear_bit(ret, &cmd->bitmask); + ent->idx = ret; + cmd->ent_arr[ent->idx] = ent; + } spin_unlock_irqrestore(&cmd->alloc_lock, flags); return ret < cmd->max_reg_cmds ? ret : -ENOMEM; @@ -912,7 +915,7 @@ sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem; down(sem); if (!ent->page_queue) { - alloc_ret = cmd_alloc_index(cmd); + alloc_ret = cmd_alloc_index(cmd, ent); if (alloc_ret < 0) { mlx5_core_err_rl(dev, "failed to allocate command entry\n"); if (ent->callback) { @@ -927,15 +930,14 @@ up(sem); return; } - ent->idx = alloc_ret; } else { ent->idx = cmd->max_reg_cmds; spin_lock_irqsave(&cmd->alloc_lock, flags); clear_bit(ent->idx, &cmd->bitmask); + cmd->ent_arr[ent->idx] = ent; spin_unlock_irqrestore(&cmd->alloc_lock, flags); } - cmd->ent_arr[ent->idx] = ent; lay = get_inst(cmd, ent->idx); ent->lay = lay; memset(lay, 0, sizeof(*lay)); diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -208,11 +208,13 @@ ft->g = kcalloc(MLX5E_ARFS_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); - in = kvzalloc(inlen, GFP_KERNEL); - if (!in || !ft->g) { - kfree(ft->g); - kvfree(in); + if (!ft->g) return -ENOMEM; + + in = kvzalloc(inlen, GFP_KERNEL); + if (!in) { + err = -ENOMEM; + goto err_free_g; } mc = MLX5_ADDR_OF(create_flow_group_in, in, match_criteria); @@ -232,7 +234,7 @@ break; default: err = -EINVAL; - goto out; + goto err_free_in; } switch (type) { @@ -254,7 +256,7 @@ break; default: err = -EINVAL; - goto out; + goto err_free_in; } MLX5_SET_CFG(in, match_criteria_enable, MLX5_MATCH_OUTER_HEADERS); @@ -263,7 +265,7 @@ MLX5_SET_CFG(in, end_flow_index, ix - 1); ft->g[ft->num_groups] = mlx5_create_flow_group(ft->t, in); if (IS_ERR(ft->g[ft->num_groups])) - goto err; + goto err_clean_group; ft->num_groups++; memset(in, 0, inlen); @@ -272,18 +274,20 @@ MLX5_SET_CFG(in, end_flow_index, ix - 1); ft->g[ft->num_groups] = mlx5_create_flow_group(ft->t, in); if (IS_ERR(ft->g[ft->num_groups])) - goto err; + goto err_clean_group; ft->num_groups++; kvfree(in); return 0; -err: +err_clean_group: err = PTR_ERR(ft->g[ft->num_groups]); ft->g[ft->num_groups] = NULL; -out: +err_free_in: kvfree(in); - +err_free_g: + kfree(ft->g); + ft->g = NULL; return err; } diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1675,8 +1675,9 @@ } trace_mlx5_fs_set_fte(fte, false); + /* Link newly added rules into the tree. */ for (i = 0; i < handle->num_rules; i++) { - if (refcount_read(&handle->rule[i]->node.refcount) == 1) { + if (!handle->rule[i]->node.parent) { tree_add_node(&handle->rule[i]->node, &fte->node); trace_mlx5_fs_add_rule(handle->rule[i]); } diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c 2024-05-02 14:23:46.000000000 +0000 @@ -667,6 +667,7 @@ switch (action_type) { case DR_ACTION_TYP_DROP: attr.final_icm_addr = nic_dmn->drop_icm_addr; + attr.hit_gvmi = nic_dmn->drop_icm_addr >> 48; break; case DR_ACTION_TYP_FT: dest_action = action; diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlxsw/core.c linux-5.10.216/drivers/net/ethernet/mellanox/mlxsw/core.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlxsw/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlxsw/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -697,7 +697,7 @@ static const struct mlxsw_listener mlxsw_emad_rx_listener = MLXSW_RXL(mlxsw_emad_rx_listener_func, ETHEMAD, TRAP_TO_CPU, false, - EMAD, DISCARD); + EMAD, FORWARD); static int mlxsw_emad_init(struct mlxsw_core *mlxsw_core) { diff -Nru linux-5.10.209/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c linux-5.10.216/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c --- linux-5.10.209/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c 2024-05-02 14:23:46.000000000 +0000 @@ -713,7 +713,9 @@ rehash.dw.work); int credits = MLXSW_SP_ACL_TCAM_VREGION_REHASH_CREDITS; + mutex_lock(&vregion->lock); mlxsw_sp_acl_tcam_vregion_rehash(vregion->mlxsw_sp, vregion, &credits); + mutex_unlock(&vregion->lock); if (credits < 0) /* Rehash gone out of credits so it was interrupted. * Schedule the work as soon as possible to continue. @@ -724,6 +726,17 @@ } static void +mlxsw_sp_acl_tcam_rehash_ctx_vchunk_reset(struct mlxsw_sp_acl_tcam_rehash_ctx *ctx) +{ + /* The entry markers are relative to the current chunk and therefore + * needs to be reset together with the chunk marker. + */ + ctx->current_vchunk = NULL; + ctx->start_ventry = NULL; + ctx->stop_ventry = NULL; +} + +static void mlxsw_sp_acl_tcam_rehash_ctx_vchunk_changed(struct mlxsw_sp_acl_tcam_vchunk *vchunk) { struct mlxsw_sp_acl_tcam_vregion *vregion = vchunk->vregion; @@ -745,7 +758,7 @@ * the current chunk pointer to make sure all chunks * are properly migrated. */ - vregion->rehash.ctx.current_vchunk = NULL; + mlxsw_sp_acl_tcam_rehash_ctx_vchunk_reset(&vregion->rehash.ctx); } static struct mlxsw_sp_acl_tcam_vregion * @@ -818,10 +831,14 @@ struct mlxsw_sp_acl_tcam *tcam = vregion->tcam; if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) { + struct mlxsw_sp_acl_tcam_rehash_ctx *ctx = &vregion->rehash.ctx; + mutex_lock(&tcam->lock); list_del(&vregion->tlist); mutex_unlock(&tcam->lock); - cancel_delayed_work_sync(&vregion->rehash.dw); + if (cancel_delayed_work_sync(&vregion->rehash.dw) && + ctx->hints_priv) + ops->region_rehash_hints_put(ctx->hints_priv); } mlxsw_sp_acl_tcam_vgroup_vregion_detach(mlxsw_sp, vregion); if (vregion->region2) @@ -1187,8 +1204,14 @@ struct mlxsw_sp_acl_tcam_ventry *ventry, bool *activity) { - return mlxsw_sp_acl_tcam_entry_activity_get(mlxsw_sp, - ventry->entry, activity); + struct mlxsw_sp_acl_tcam_vregion *vregion = ventry->vchunk->vregion; + int err; + + mutex_lock(&vregion->lock); + err = mlxsw_sp_acl_tcam_entry_activity_get(mlxsw_sp, ventry->entry, + activity); + mutex_unlock(&vregion->lock); + return err; } static int @@ -1222,6 +1245,8 @@ { struct mlxsw_sp_acl_tcam_chunk *new_chunk; + WARN_ON(vchunk->chunk2); + new_chunk = mlxsw_sp_acl_tcam_chunk_create(mlxsw_sp, vchunk, region); if (IS_ERR(new_chunk)) return PTR_ERR(new_chunk); @@ -1240,7 +1265,7 @@ { mlxsw_sp_acl_tcam_chunk_destroy(mlxsw_sp, vchunk->chunk2); vchunk->chunk2 = NULL; - ctx->current_vchunk = NULL; + mlxsw_sp_acl_tcam_rehash_ctx_vchunk_reset(ctx); } static int @@ -1263,6 +1288,9 @@ return 0; } + if (list_empty(&vchunk->ventry_list)) + goto out; + /* If the migration got interrupted, we have the ventry to start from * stored in context. */ @@ -1272,6 +1300,8 @@ ventry = list_first_entry(&vchunk->ventry_list, typeof(*ventry), list); + WARN_ON(ventry->vchunk != vchunk); + list_for_each_entry_from(ventry, &vchunk->ventry_list, list) { /* During rollback, once we reach the ventry that failed * to migrate, we are done. @@ -1312,6 +1342,7 @@ } } +out: mlxsw_sp_acl_tcam_vchunk_migrate_end(mlxsw_sp, vchunk, ctx); return 0; } @@ -1325,6 +1356,9 @@ struct mlxsw_sp_acl_tcam_vchunk *vchunk; int err; + if (list_empty(&vregion->vchunk_list)) + return 0; + /* If the migration got interrupted, we have the vchunk * we are working on stored in context. */ @@ -1353,16 +1387,17 @@ int err, err2; trace_mlxsw_sp_acl_tcam_vregion_migrate(mlxsw_sp, vregion); - mutex_lock(&vregion->lock); err = mlxsw_sp_acl_tcam_vchunk_migrate_all(mlxsw_sp, vregion, ctx, credits); if (err) { + if (ctx->this_is_rollback) + return err; /* In case migration was not successful, we need to swap * so the original region pointer is assigned again * to vregion->region. */ swap(vregion->region, vregion->region2); - ctx->current_vchunk = NULL; + mlxsw_sp_acl_tcam_rehash_ctx_vchunk_reset(ctx); ctx->this_is_rollback = true; err2 = mlxsw_sp_acl_tcam_vchunk_migrate_all(mlxsw_sp, vregion, ctx, credits); @@ -1373,7 +1408,6 @@ /* Let the rollback to be continued later on. */ } } - mutex_unlock(&vregion->lock); trace_mlxsw_sp_acl_tcam_vregion_migrate_end(mlxsw_sp, vregion); return err; } @@ -1422,6 +1456,7 @@ ctx->hints_priv = hints_priv; ctx->this_is_rollback = false; + mlxsw_sp_acl_tcam_rehash_ctx_vchunk_reset(ctx); return 0; @@ -1474,7 +1509,8 @@ err = mlxsw_sp_acl_tcam_vregion_migrate(mlxsw_sp, vregion, ctx, credits); if (err) { - dev_err(mlxsw_sp->bus_info->dev, "Failed to migrate vregion\n"); + dev_err_ratelimited(mlxsw_sp->bus_info->dev, "Failed to migrate vregion\n"); + return; } if (*credits >= 0) diff -Nru linux-5.10.209/drivers/net/ethernet/microchip/lan743x_ethtool.c linux-5.10.216/drivers/net/ethernet/microchip/lan743x_ethtool.c --- linux-5.10.209/drivers/net/ethernet/microchip/lan743x_ethtool.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/microchip/lan743x_ethtool.c 2024-05-02 14:23:46.000000000 +0000 @@ -780,7 +780,9 @@ wol->supported = 0; wol->wolopts = 0; - phy_ethtool_get_wol(netdev->phydev, wol); + + if (netdev->phydev) + phy_ethtool_get_wol(netdev->phydev, wol); wol->supported |= WAKE_BCAST | WAKE_UCAST | WAKE_MCAST | WAKE_MAGIC | WAKE_PHY | WAKE_ARP; @@ -809,9 +811,8 @@ device_set_wakeup_enable(&adapter->pdev->dev, (bool)wol->wolopts); - phy_ethtool_set_wol(netdev->phydev, wol); - - return 0; + return netdev->phydev ? phy_ethtool_set_wol(netdev->phydev, wol) + : -ENETDOWN; } #endif /* CONFIG_PM */ diff -Nru linux-5.10.209/drivers/net/ethernet/neterion/vxge/vxge-config.c linux-5.10.216/drivers/net/ethernet/neterion/vxge/vxge-config.c --- linux-5.10.209/drivers/net/ethernet/neterion/vxge/vxge-config.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/neterion/vxge/vxge-config.c 2024-05-02 14:23:46.000000000 +0000 @@ -1121,7 +1121,7 @@ list_for_each_safe(p, n, &blockpool->free_entry_list) { list_del(&((struct __vxge_hw_blockpool_entry *)p)->item); - kfree((void *)p); + kfree(p); } return; diff -Nru linux-5.10.209/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c linux-5.10.216/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c --- linux-5.10.209/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c 2024-05-02 14:23:46.000000000 +0000 @@ -308,6 +308,11 @@ acti_netdevs = kmalloc_array(entry->slave_cnt, sizeof(*acti_netdevs), GFP_KERNEL); + if (!acti_netdevs) { + schedule_delayed_work(&lag->work, + NFP_FL_LAG_DELAY); + continue; + } /* Include sanity check in the loop. It may be that a bond has * changed between processing the last notification and the diff -Nru linux-5.10.209/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c linux-5.10.216/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c --- linux-5.10.209/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 2024-05-02 14:23:46.000000000 +0000 @@ -927,7 +927,7 @@ u16 nfp_mac_idx = 0; entry = nfp_tunnel_lookup_offloaded_macs(app, netdev->dev_addr); - if (entry && nfp_tunnel_is_mac_idx_global(entry->index)) { + if (entry && (nfp_tunnel_is_mac_idx_global(entry->index) || netif_is_lag_port(netdev))) { if (entry->bridge_count || !nfp_flower_is_supported_bridge(netdev)) { nfp_tunnel_offloaded_macs_inc_ref_and_link(entry, diff -Nru linux-5.10.209/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c linux-5.10.216/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c --- linux-5.10.209/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c 2024-05-02 14:23:46.000000000 +0000 @@ -542,11 +542,13 @@ const u32 barcfg_msix_general = NFP_PCIE_BAR_PCIE2CPP_MapType( NFP_PCIE_BAR_PCIE2CPP_MapType_GENERAL) | - NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT; + NFP_PCIE_BAR_PCIE2CPP_LengthSelect( + NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT); const u32 barcfg_msix_xpb = NFP_PCIE_BAR_PCIE2CPP_MapType( NFP_PCIE_BAR_PCIE2CPP_MapType_BULK) | - NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT | + NFP_PCIE_BAR_PCIE2CPP_LengthSelect( + NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT) | NFP_PCIE_BAR_PCIE2CPP_Target_BaseAddress( NFP_CPP_TARGET_ISLAND_XPB); const u32 barcfg_explicit[4] = { diff -Nru linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_dev.c linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_dev.c --- linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -200,6 +200,7 @@ void ionic_dev_cmd_go(struct ionic_dev *idev, union ionic_dev_cmd *cmd) { + idev->opcode = cmd->cmd.opcode; memcpy_toio(&idev->dev_cmd_regs->cmd, cmd, sizeof(*cmd)); iowrite32(0, &idev->dev_cmd_regs->done); iowrite32(1, &idev->dev_cmd_regs->doorbell); diff -Nru linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_dev.h linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_dev.h --- linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_dev.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_dev.h 2024-05-02 14:23:46.000000000 +0000 @@ -136,6 +136,7 @@ unsigned long last_hb_time; u32 last_hb; u8 last_fw_status; + u8 opcode; u64 __iomem *db_pages; dma_addr_t phy_db_pages; diff -Nru linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_lif.c linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_lif.c --- linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_lif.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_lif.c 2024-05-02 14:23:46.000000000 +0000 @@ -2708,9 +2708,12 @@ napi_enable(&qcq->napi); - if (qcq->flags & IONIC_QCQ_F_INTR) + if (qcq->flags & IONIC_QCQ_F_INTR) { + irq_set_affinity_hint(qcq->intr.vector, + &qcq->intr.affinity_mask); ionic_intr_mask(idev->intr_ctrl, qcq->intr.index, IONIC_INTR_MASK_CLEAR); + } qcq->flags |= IONIC_QCQ_F_INITED; diff -Nru linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_main.c linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_main.c --- linux-5.10.209/drivers/net/ethernet/pensando/ionic/ionic_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/pensando/ionic/ionic_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -333,7 +333,7 @@ */ max_wait = jiffies + (max_seconds * HZ); try_again: - opcode = readb(&idev->dev_cmd_regs->cmd.cmd.opcode); + opcode = idev->opcode; start_time = jiffies; do { done = ionic_dev_cmd_done(idev); diff -Nru linux-5.10.209/drivers/net/ethernet/realtek/r8169_main.c linux-5.10.216/drivers/net/ethernet/realtek/r8169_main.c --- linux-5.10.209/drivers/net/ethernet/realtek/r8169_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/realtek/r8169_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -5181,6 +5181,15 @@ struct mii_bus *new_bus; int ret; + /* On some boards with this chip version the BIOS is buggy and misses + * to reset the PHY page selector. This results in the PHY ID read + * accessing registers on a different page, returning a more or + * less random value. Fix this by resetting the page selector first. + */ + if (tp->mac_version == RTL_GIGA_MAC_VER_25 || + tp->mac_version == RTL_GIGA_MAC_VER_26) + r8169_mdio_write(tp, 0x1f, 0); + new_bus = devm_mdiobus_alloc(&pdev->dev); if (!new_bus) return -ENOMEM; diff -Nru linux-5.10.209/drivers/net/ethernet/renesas/ravb_main.c linux-5.10.216/drivers/net/ethernet/renesas/ravb_main.c --- linux-5.10.209/drivers/net/ethernet/renesas/ravb_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/renesas/ravb_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -911,12 +911,12 @@ int q = napi - priv->napi; int mask = BIT(q); int quota = budget; + bool unmask; /* Processing RX Descriptor Ring */ /* Clear RX interrupt */ ravb_write(ndev, ~(mask | RIS0_RESERVED), RIS0); - if (ravb_rx(ndev, "a, q)) - goto out; + unmask = !ravb_rx(ndev, "a, q); /* Processing RX Descriptor Ring */ spin_lock_irqsave(&priv->lock, flags); @@ -926,6 +926,9 @@ netif_wake_subqueue(ndev, q); spin_unlock_irqrestore(&priv->lock, flags); + if (!unmask) + goto out; + napi_complete(napi); /* Re-enable RX/TX interrupts */ diff -Nru linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/common.h linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/common.h --- linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/common.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/common.h 2024-05-02 14:23:46.000000000 +0000 @@ -189,6 +189,7 @@ unsigned long mac_errors[32]; unsigned long mtl_errors[32]; unsigned long dma_errors[32]; + unsigned long dma_dpp_errors[32]; }; /* Number of fields in Safety Stats */ diff -Nru linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c --- linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -75,19 +75,41 @@ u32 prio, u32 queue) { void __iomem *ioaddr = hw->pcsr; - u32 base_register; - u32 value; + u32 clear_mask = 0; + u32 ctrl2, ctrl3; + int i; - base_register = (queue < 4) ? GMAC_RXQ_CTRL2 : GMAC_RXQ_CTRL3; - if (queue >= 4) - queue -= 4; + ctrl2 = readl(ioaddr + GMAC_RXQ_CTRL2); + ctrl3 = readl(ioaddr + GMAC_RXQ_CTRL3); + + /* The software must ensure that the same priority + * is not mapped to multiple Rx queues + */ + for (i = 0; i < 4; i++) + clear_mask |= ((prio << GMAC_RXQCTRL_PSRQX_SHIFT(i)) & + GMAC_RXQCTRL_PSRQX_MASK(i)); - value = readl(ioaddr + base_register); + ctrl2 &= ~clear_mask; + ctrl3 &= ~clear_mask; - value &= ~GMAC_RXQCTRL_PSRQX_MASK(queue); - value |= (prio << GMAC_RXQCTRL_PSRQX_SHIFT(queue)) & + /* First assign new priorities to a queue, then + * clear them from others queues + */ + if (queue < 4) { + ctrl2 |= (prio << GMAC_RXQCTRL_PSRQX_SHIFT(queue)) & GMAC_RXQCTRL_PSRQX_MASK(queue); - writel(value, ioaddr + base_register); + + writel(ctrl2, ioaddr + GMAC_RXQ_CTRL2); + writel(ctrl3, ioaddr + GMAC_RXQ_CTRL3); + } else { + queue -= 4; + + ctrl3 |= (prio << GMAC_RXQCTRL_PSRQX_SHIFT(queue)) & + GMAC_RXQCTRL_PSRQX_MASK(queue); + + writel(ctrl3, ioaddr + GMAC_RXQ_CTRL3); + writel(ctrl2, ioaddr + GMAC_RXQ_CTRL2); + } } static void dwmac4_tx_queue_priority(struct mac_device_info *hw, diff -Nru linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h --- linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h 2024-05-02 14:23:46.000000000 +0000 @@ -282,6 +282,8 @@ #define XGMAC_RXCEIE BIT(4) #define XGMAC_TXCEIE BIT(0) #define XGMAC_MTL_ECC_INT_STATUS 0x000010cc +#define XGMAC_MTL_DPP_CONTROL 0x000010e0 +#define XGMAC_DPP_DISABLE BIT(0) #define XGMAC_MTL_TXQ_OPMODE(x) (0x00001100 + (0x80 * (x))) #define XGMAC_TQS GENMASK(25, 16) #define XGMAC_TQS_SHIFT 16 @@ -364,6 +366,7 @@ #define XGMAC_DCEIE BIT(1) #define XGMAC_TCEIE BIT(0) #define XGMAC_DMA_ECC_INT_STATUS 0x0000306c +#define XGMAC_DMA_DPP_INT_STATUS 0x00003074 #define XGMAC_DMA_CH_CONTROL(x) (0x00003100 + (0x80 * (x))) #define XGMAC_SPH BIT(24) #define XGMAC_PBLx8 BIT(16) diff -Nru linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c --- linux-5.10.209/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -97,17 +97,41 @@ u32 queue) { void __iomem *ioaddr = hw->pcsr; - u32 value, reg; + u32 clear_mask = 0; + u32 ctrl2, ctrl3; + int i; - reg = (queue < 4) ? XGMAC_RXQ_CTRL2 : XGMAC_RXQ_CTRL3; - if (queue >= 4) + ctrl2 = readl(ioaddr + XGMAC_RXQ_CTRL2); + ctrl3 = readl(ioaddr + XGMAC_RXQ_CTRL3); + + /* The software must ensure that the same priority + * is not mapped to multiple Rx queues + */ + for (i = 0; i < 4; i++) + clear_mask |= ((prio << XGMAC_PSRQ_SHIFT(i)) & + XGMAC_PSRQ(i)); + + ctrl2 &= ~clear_mask; + ctrl3 &= ~clear_mask; + + /* First assign new priorities to a queue, then + * clear them from others queues + */ + if (queue < 4) { + ctrl2 |= (prio << XGMAC_PSRQ_SHIFT(queue)) & + XGMAC_PSRQ(queue); + + writel(ctrl2, ioaddr + XGMAC_RXQ_CTRL2); + writel(ctrl3, ioaddr + XGMAC_RXQ_CTRL3); + } else { queue -= 4; - value = readl(ioaddr + reg); - value &= ~XGMAC_PSRQ(queue); - value |= (prio << XGMAC_PSRQ_SHIFT(queue)) & XGMAC_PSRQ(queue); + ctrl3 |= (prio << XGMAC_PSRQ_SHIFT(queue)) & + XGMAC_PSRQ(queue); - writel(value, ioaddr + reg); + writel(ctrl3, ioaddr + XGMAC_RXQ_CTRL3); + writel(ctrl2, ioaddr + XGMAC_RXQ_CTRL2); + } } static void dwxgmac2_tx_queue_prio(struct mac_device_info *hw, u32 prio, @@ -788,6 +812,44 @@ { false, "UNKNOWN", "Unknown Error" }, /* 31 */ }; +#define DPP_RX_ERR "Read Rx Descriptor Parity checker Error" +#define DPP_TX_ERR "Read Tx Descriptor Parity checker Error" + +static const struct dwxgmac3_error_desc dwxgmac3_dma_dpp_errors[32] = { + { true, "TDPES0", DPP_TX_ERR }, + { true, "TDPES1", DPP_TX_ERR }, + { true, "TDPES2", DPP_TX_ERR }, + { true, "TDPES3", DPP_TX_ERR }, + { true, "TDPES4", DPP_TX_ERR }, + { true, "TDPES5", DPP_TX_ERR }, + { true, "TDPES6", DPP_TX_ERR }, + { true, "TDPES7", DPP_TX_ERR }, + { true, "TDPES8", DPP_TX_ERR }, + { true, "TDPES9", DPP_TX_ERR }, + { true, "TDPES10", DPP_TX_ERR }, + { true, "TDPES11", DPP_TX_ERR }, + { true, "TDPES12", DPP_TX_ERR }, + { true, "TDPES13", DPP_TX_ERR }, + { true, "TDPES14", DPP_TX_ERR }, + { true, "TDPES15", DPP_TX_ERR }, + { true, "RDPES0", DPP_RX_ERR }, + { true, "RDPES1", DPP_RX_ERR }, + { true, "RDPES2", DPP_RX_ERR }, + { true, "RDPES3", DPP_RX_ERR }, + { true, "RDPES4", DPP_RX_ERR }, + { true, "RDPES5", DPP_RX_ERR }, + { true, "RDPES6", DPP_RX_ERR }, + { true, "RDPES7", DPP_RX_ERR }, + { true, "RDPES8", DPP_RX_ERR }, + { true, "RDPES9", DPP_RX_ERR }, + { true, "RDPES10", DPP_RX_ERR }, + { true, "RDPES11", DPP_RX_ERR }, + { true, "RDPES12", DPP_RX_ERR }, + { true, "RDPES13", DPP_RX_ERR }, + { true, "RDPES14", DPP_RX_ERR }, + { true, "RDPES15", DPP_RX_ERR }, +}; + static void dwxgmac3_handle_dma_err(struct net_device *ndev, void __iomem *ioaddr, bool correctable, struct stmmac_safety_stats *stats) @@ -799,6 +861,13 @@ dwxgmac3_log_error(ndev, value, correctable, "DMA", dwxgmac3_dma_errors, STAT_OFF(dma_errors), stats); + + value = readl(ioaddr + XGMAC_DMA_DPP_INT_STATUS); + writel(value, ioaddr + XGMAC_DMA_DPP_INT_STATUS); + + dwxgmac3_log_error(ndev, value, false, "DMA_DPP", + dwxgmac3_dma_dpp_errors, + STAT_OFF(dma_dpp_errors), stats); } static int dwxgmac3_safety_feat_config(void __iomem *ioaddr, unsigned int asp) @@ -835,6 +904,12 @@ value |= XGMAC_TMOUTEN; /* FSM Timeout Feature */ writel(value, ioaddr + XGMAC_MAC_FSM_CONTROL); + /* 5. Enable Data Path Parity Protection */ + value = readl(ioaddr + XGMAC_MTL_DPP_CONTROL); + /* already enabled by default, explicit enable it again */ + value &= ~XGMAC_DPP_DISABLE; + writel(value, ioaddr + XGMAC_MTL_DPP_CONTROL); + return 0; } @@ -868,7 +943,11 @@ ret |= !corr; } - err = dma & (XGMAC_DEUIS | XGMAC_DECIS); + /* DMA_DPP_Interrupt_Status is indicated by MCSIS bit in + * DMA_Safety_Interrupt_Status, so we handle DMA Data Path + * Parity Errors here + */ + err = dma & (XGMAC_DEUIS | XGMAC_DECIS | XGMAC_MCSIS); corr = dma & XGMAC_DECIS; if (err) { dwxgmac3_handle_dma_err(ndev, ioaddr, corr, stats); @@ -884,6 +963,7 @@ { dwxgmac3_mac_errors }, { dwxgmac3_mtl_errors }, { dwxgmac3_dma_errors }, + { dwxgmac3_dma_dpp_errors }, }; static int dwxgmac3_safety_feat_dump(struct stmmac_safety_stats *stats, diff -Nru linux-5.10.209/drivers/net/ethernet/ti/am65-cpts.c linux-5.10.216/drivers/net/ethernet/ti/am65-cpts.c --- linux-5.10.209/drivers/net/ethernet/ti/am65-cpts.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/ti/am65-cpts.c 2024-05-02 14:23:46.000000000 +0000 @@ -649,6 +649,11 @@ struct am65_cpts_skb_cb_data *skb_cb = (struct am65_cpts_skb_cb_data *)skb->cb; + if ((ptp_classify_raw(skb) & PTP_CLASS_V1) && + ((mtype_seqid & AM65_CPTS_EVENT_1_SEQUENCE_ID_MASK) == + (skb_cb->skb_mtype_seqid & AM65_CPTS_EVENT_1_SEQUENCE_ID_MASK))) + mtype_seqid = skb_cb->skb_mtype_seqid; + if (mtype_seqid == skb_cb->skb_mtype_seqid) { u64 ns = event->timestamp; diff -Nru linux-5.10.209/drivers/net/ethernet/xilinx/ll_temac_main.c linux-5.10.216/drivers/net/ethernet/xilinx/ll_temac_main.c --- linux-5.10.209/drivers/net/ethernet/xilinx/ll_temac_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ethernet/xilinx/ll_temac_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1427,7 +1427,7 @@ } /* map device registers */ - lp->regs = devm_platform_ioremap_resource_byname(pdev, 0); + lp->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(lp->regs)) { dev_err(&pdev->dev, "could not map TEMAC registers\n"); return -ENOMEM; diff -Nru linux-5.10.209/drivers/net/fjes/fjes_hw.c linux-5.10.216/drivers/net/fjes/fjes_hw.c --- linux-5.10.209/drivers/net/fjes/fjes_hw.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/fjes/fjes_hw.c 2024-05-02 14:23:46.000000000 +0000 @@ -220,21 +220,25 @@ mem_size = FJES_DEV_REQ_BUF_SIZE(hw->max_epid); hw->hw_info.req_buf = kzalloc(mem_size, GFP_KERNEL); - if (!(hw->hw_info.req_buf)) - return -ENOMEM; + if (!(hw->hw_info.req_buf)) { + result = -ENOMEM; + goto free_ep_info; + } hw->hw_info.req_buf_size = mem_size; mem_size = FJES_DEV_RES_BUF_SIZE(hw->max_epid); hw->hw_info.res_buf = kzalloc(mem_size, GFP_KERNEL); - if (!(hw->hw_info.res_buf)) - return -ENOMEM; + if (!(hw->hw_info.res_buf)) { + result = -ENOMEM; + goto free_req_buf; + } hw->hw_info.res_buf_size = mem_size; result = fjes_hw_alloc_shared_status_region(hw); if (result) - return result; + goto free_res_buf; hw->hw_info.buffer_share_bit = 0; hw->hw_info.buffer_unshare_reserve_bit = 0; @@ -245,11 +249,11 @@ result = fjes_hw_alloc_epbuf(&buf_pair->tx); if (result) - return result; + goto free_epbuf; result = fjes_hw_alloc_epbuf(&buf_pair->rx); if (result) - return result; + goto free_epbuf; spin_lock_irqsave(&hw->rx_status_lock, flags); fjes_hw_setup_epbuf(&buf_pair->tx, mac, @@ -272,6 +276,25 @@ fjes_hw_init_command_registers(hw, ¶m); return 0; + +free_epbuf: + for (epidx = 0; epidx < hw->max_epid ; epidx++) { + if (epidx == hw->my_epid) + continue; + fjes_hw_free_epbuf(&hw->ep_shm_info[epidx].tx); + fjes_hw_free_epbuf(&hw->ep_shm_info[epidx].rx); + } + fjes_hw_free_shared_status_region(hw); +free_res_buf: + kfree(hw->hw_info.res_buf); + hw->hw_info.res_buf = NULL; +free_req_buf: + kfree(hw->hw_info.req_buf); + hw->hw_info.req_buf = NULL; +free_ep_info: + kfree(hw->ep_shm_info); + hw->ep_shm_info = NULL; + return result; } static void fjes_hw_cleanup(struct fjes_hw *hw) diff -Nru linux-5.10.209/drivers/net/geneve.c linux-5.10.216/drivers/net/geneve.c --- linux-5.10.209/drivers/net/geneve.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/geneve.c 2024-05-02 14:23:46.000000000 +0000 @@ -218,7 +218,7 @@ struct genevehdr *gnvh = geneve_hdr(skb); struct metadata_dst *tun_dst = NULL; unsigned int len; - int err = 0; + int nh, err = 0; void *oiph; if (ip_tunnel_collect_metadata() || gs->collect_md) { @@ -262,9 +262,23 @@ goto drop; } - oiph = skb_network_header(skb); + /* Save offset of outer header relative to skb->head, + * because we are going to reset the network header to the inner header + * and might change skb->head. + */ + nh = skb_network_header(skb) - skb->head; + skb_reset_network_header(skb); + if (!pskb_inet_may_pull(skb)) { + DEV_STATS_INC(geneve->dev, rx_length_errors); + DEV_STATS_INC(geneve->dev, rx_errors); + goto drop; + } + + /* Get the outer header. */ + oiph = skb->head + nh; + if (geneve_get_sk_family(gs) == AF_INET) err = IP_ECN_decapsulate(oiph, skb); #if IS_ENABLED(CONFIG_IPV6) @@ -893,7 +907,7 @@ __be16 sport; int err; - if (!pskb_inet_may_pull(skb)) + if (!skb_vlan_inet_prepare(skb)) return -EINVAL; sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); @@ -990,7 +1004,7 @@ __be16 sport; int err; - if (!pskb_inet_may_pull(skb)) + if (!skb_vlan_inet_prepare(skb)) return -EINVAL; sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); diff -Nru linux-5.10.209/drivers/net/gtp.c linux-5.10.216/drivers/net/gtp.c --- linux-5.10.209/drivers/net/gtp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/gtp.c 2024-05-02 14:23:46.000000000 +0000 @@ -700,11 +700,12 @@ static void gtp_dellink(struct net_device *dev, struct list_head *head) { struct gtp_dev *gtp = netdev_priv(dev); + struct hlist_node *next; struct pdp_ctx *pctx; int i; for (i = 0; i < gtp->hash_size; i++) - hlist_for_each_entry_rcu(pctx, >p->tid_hash[i], hlist_tid) + hlist_for_each_entry_safe(pctx, next, >p->tid_hash[i], hlist_tid) pdp_context_delete(pctx); list_del_rcu(>p->list); @@ -1406,26 +1407,26 @@ get_random_bytes(>p_h_initval, sizeof(gtp_h_initval)); - err = rtnl_link_register(>p_link_ops); + err = register_pernet_subsys(>p_net_ops); if (err < 0) goto error_out; - err = genl_register_family(>p_genl_family); + err = rtnl_link_register(>p_link_ops); if (err < 0) - goto unreg_rtnl_link; + goto unreg_pernet_subsys; - err = register_pernet_subsys(>p_net_ops); + err = genl_register_family(>p_genl_family); if (err < 0) - goto unreg_genl_family; + goto unreg_rtnl_link; pr_info("GTP module loaded (pdp ctx size %zd bytes)\n", sizeof(struct pdp_ctx)); return 0; -unreg_genl_family: - genl_unregister_family(>p_genl_family); unreg_rtnl_link: rtnl_link_unregister(>p_link_ops); +unreg_pernet_subsys: + unregister_pernet_subsys(>p_net_ops); error_out: pr_err("error loading GTP module loaded\n"); return err; diff -Nru linux-5.10.209/drivers/net/hyperv/hyperv_net.h linux-5.10.216/drivers/net/hyperv/hyperv_net.h --- linux-5.10.209/drivers/net/hyperv/hyperv_net.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/hyperv/hyperv_net.h 2024-05-02 14:23:46.000000000 +0000 @@ -847,6 +847,19 @@ #define NETVSC_XDP_HDRM 256 +#define NETVSC_MIN_OUT_MSG_SIZE (sizeof(struct vmpacket_descriptor) + \ + sizeof(struct nvsp_message)) +#define NETVSC_MIN_IN_MSG_SIZE sizeof(struct vmpacket_descriptor) + +/* Estimated requestor size: + * out_ring_size/min_out_msg_size + in_ring_size/min_in_msg_size + */ +static inline u32 netvsc_rqstor_size(unsigned long ringbytes) +{ + return ringbytes / NETVSC_MIN_OUT_MSG_SIZE + + ringbytes / NETVSC_MIN_IN_MSG_SIZE; +} + #define NETVSC_XFER_HEADER_SIZE(rng_cnt) \ (offsetof(struct vmtransfer_page_packet_header, ranges) + \ (rng_cnt) * sizeof(struct vmtransfer_page_range)) diff -Nru linux-5.10.209/drivers/net/hyperv/netvsc.c linux-5.10.216/drivers/net/hyperv/netvsc.c --- linux-5.10.209/drivers/net/hyperv/netvsc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/hyperv/netvsc.c 2024-05-02 14:23:46.000000000 +0000 @@ -37,6 +37,10 @@ struct netvsc_device *nv_dev = rtnl_dereference(net_device_ctx->nvdev); struct nvsp_message *init_pkt = &nv_dev->channel_init_pkt; + /* Block sending traffic to VF if it's about to be gone */ + if (!vf) + net_device_ctx->data_path_is_vf = vf; + memset(init_pkt, 0, sizeof(struct nvsp_message)); init_pkt->hdr.msg_type = NVSP_MSG4_TYPE_SWITCH_DATA_PATH; if (vf) @@ -51,7 +55,10 @@ vmbus_sendpacket(dev->channel, init_pkt, sizeof(struct nvsp_message), (unsigned long)init_pkt, - VM_PKT_DATA_INBAND, 0); + VM_PKT_DATA_INBAND, + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); + wait_for_completion(&nv_dev->channel_init_wait); + net_device_ctx->data_path_is_vf = vf; } /* Worker to setup sub channels on initial setup @@ -163,7 +170,7 @@ ret = vmbus_sendpacket(device->channel, revoke_packet, sizeof(struct nvsp_message), - (unsigned long)revoke_packet, + VMBUS_RQST_ID_NO_RESPONSE, VM_PKT_DATA_INBAND, 0); /* If the failure is because the channel is rescinded; * ignore the failure since we cannot send on a rescinded @@ -213,7 +220,7 @@ ret = vmbus_sendpacket(device->channel, revoke_packet, sizeof(struct nvsp_message), - (unsigned long)revoke_packet, + VMBUS_RQST_ID_NO_RESPONSE, VM_PKT_DATA_INBAND, 0); /* If the failure is because the channel is rescinded; @@ -557,7 +564,7 @@ ret = vmbus_sendpacket(device->channel, init_packet, sizeof(struct nvsp_message), - (unsigned long)init_packet, + VMBUS_RQST_ID_NO_RESPONSE, VM_PKT_DATA_INBAND, 0); return ret; @@ -614,7 +621,7 @@ /* Send the init request */ ret = vmbus_sendpacket(device->channel, init_packet, sizeof(struct nvsp_message), - (unsigned long)init_packet, + VMBUS_RQST_ID_NO_RESPONSE, VM_PKT_DATA_INBAND, 0); if (ret != 0) goto cleanup; @@ -654,7 +661,10 @@ /* Disable NAPI and disassociate its context from the device. */ for (i = 0; i < net_device->num_chn; i++) { /* See also vmbus_reset_channel_cb(). */ - napi_disable(&net_device->chan_table[i].napi); + /* only disable enabled NAPI channel */ + if (i < ndev->real_num_rx_queues) + napi_disable(&net_device->chan_table[i].napi); + netif_napi_del(&net_device->chan_table[i].napi); } @@ -695,10 +705,19 @@ const struct vmpacket_descriptor *desc, int budget) { - struct sk_buff *skb = (struct sk_buff *)(unsigned long)desc->trans_id; struct net_device_context *ndev_ctx = netdev_priv(ndev); + struct sk_buff *skb; u16 q_idx = 0; int queue_sends; + u64 cmd_rqst; + + cmd_rqst = vmbus_request_addr(&channel->requestor, (u64)desc->trans_id); + if (cmd_rqst == VMBUS_RQST_ERROR) { + netdev_err(ndev, "Incorrect transaction id\n"); + return; + } + + skb = (struct sk_buff *)(unsigned long)cmd_rqst; /* Notify the layer above us */ if (likely(skb)) { @@ -745,8 +764,31 @@ const struct vmpacket_descriptor *desc, int budget) { - const struct nvsp_message *nvsp_packet = hv_pkt_data(desc); + const struct nvsp_message *nvsp_packet; u32 msglen = hv_pkt_datalen(desc); + struct nvsp_message *pkt_rqst; + u64 cmd_rqst; + + /* First check if this is a VMBUS completion without data payload */ + if (!msglen) { + cmd_rqst = vmbus_request_addr(&incoming_channel->requestor, + (u64)desc->trans_id); + if (cmd_rqst == VMBUS_RQST_ERROR) { + netdev_err(ndev, "Invalid transaction id\n"); + return; + } + + pkt_rqst = (struct nvsp_message *)(uintptr_t)cmd_rqst; + switch (pkt_rqst->hdr.msg_type) { + case NVSP_MSG4_TYPE_SWITCH_DATA_PATH: + complete(&net_device->channel_init_wait); + break; + + default: + netdev_err(ndev, "Unexpected VMBUS completion!!\n"); + } + return; + } /* Ensure packet is big enough to read header fields */ if (msglen < sizeof(struct nvsp_message_header)) { @@ -754,6 +796,7 @@ return; } + nvsp_packet = hv_pkt_data(desc); switch (nvsp_packet->hdr.msg_type) { case NVSP_MSG_TYPE_INIT_COMPLETE: if (msglen < sizeof(struct nvsp_message_header) + @@ -1527,6 +1570,7 @@ netvsc_poll, NAPI_POLL_WEIGHT); /* Open the channel */ + device->channel->rqstor_size = netvsc_rqstor_size(netvsc_ring_bytes); ret = vmbus_open(device->channel, netvsc_ring_bytes, netvsc_ring_bytes, NULL, 0, netvsc_channel_cb, net_device->chan_table); diff -Nru linux-5.10.209/drivers/net/hyperv/netvsc_drv.c linux-5.10.216/drivers/net/hyperv/netvsc_drv.c --- linux-5.10.209/drivers/net/hyperv/netvsc_drv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/hyperv/netvsc_drv.c 2024-05-02 14:23:46.000000000 +0000 @@ -44,6 +44,10 @@ #define LINKCHANGE_INT (2 * HZ) #define VF_TAKEOVER_INT (HZ / 10) +/* Macros to define the context of vf registration */ +#define VF_REG_IN_PROBE 1 +#define VF_REG_IN_NOTIFIER 2 + static unsigned int ring_size __ro_after_init = 128; module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); @@ -2194,7 +2198,7 @@ } static int netvsc_vf_join(struct net_device *vf_netdev, - struct net_device *ndev) + struct net_device *ndev, int context) { struct net_device_context *ndev_ctx = netdev_priv(ndev); int ret; @@ -2217,7 +2221,11 @@ goto upper_link_failed; } - schedule_delayed_work(&ndev_ctx->vf_takeover, VF_TAKEOVER_INT); + /* If this registration is called from probe context vf_takeover + * is taken care of later in probe itself. + */ + if (context == VF_REG_IN_NOTIFIER) + schedule_delayed_work(&ndev_ctx->vf_takeover, VF_TAKEOVER_INT); call_netdevice_notifiers(NETDEV_JOIN, vf_netdev); @@ -2310,8 +2318,17 @@ if (!ndev_ctx->vf_alloc) continue; - if (ndev_ctx->vf_serial == serial) - return hv_get_drvdata(ndev_ctx->device_ctx); + if (ndev_ctx->vf_serial != serial) + continue; + + ndev = hv_get_drvdata(ndev_ctx->device_ctx); + if (ndev->addr_len != vf_netdev->addr_len || + memcmp(ndev->perm_addr, vf_netdev->perm_addr, + ndev->addr_len) != 0) + continue; + + return ndev; + } /* Fallback path to check synthetic vf with help of mac addr. @@ -2346,7 +2363,7 @@ return NOTIFY_DONE; } -static int netvsc_register_vf(struct net_device *vf_netdev) +static int netvsc_register_vf(struct net_device *vf_netdev, int context) { struct net_device_context *net_device_ctx; struct netvsc_device *netvsc_dev; @@ -2386,7 +2403,7 @@ netdev_info(ndev, "VF registering: %s\n", vf_netdev->name); - if (netvsc_vf_join(vf_netdev, ndev) != 0) + if (netvsc_vf_join(vf_netdev, ndev, context) != 0) return NOTIFY_DONE; dev_hold(vf_netdev); @@ -2411,12 +2428,15 @@ * During hibernation, if a VF NIC driver (e.g. mlx5) preserves the network * interface, there is only the CHANGE event and no UP or DOWN event. */ -static int netvsc_vf_changed(struct net_device *vf_netdev) +static int netvsc_vf_changed(struct net_device *vf_netdev, unsigned long event) { struct net_device_context *net_device_ctx; struct netvsc_device *netvsc_dev; struct net_device *ndev; - bool vf_is_up = netif_running(vf_netdev); + bool vf_is_up = false; + + if (event != NETDEV_GOING_DOWN) + vf_is_up = netif_running(vf_netdev); ndev = get_netvsc_byref(vf_netdev); if (!ndev) @@ -2429,7 +2449,6 @@ if (net_device_ctx->data_path_is_vf == vf_is_up) return NOTIFY_OK; - net_device_ctx->data_path_is_vf = vf_is_up; if (vf_is_up && !net_device_ctx->vf_alloc) { netdev_info(ndev, "Waiting for the VF association from host\n"); @@ -2468,10 +2487,31 @@ return NOTIFY_OK; } +static int check_dev_is_matching_vf(struct net_device *event_ndev) +{ + /* Skip NetVSC interfaces */ + if (event_ndev->netdev_ops == &device_ops) + return -ENODEV; + + /* Avoid non-Ethernet type devices */ + if (event_ndev->type != ARPHRD_ETHER) + return -ENODEV; + + /* Avoid Vlan dev with same MAC registering as VF */ + if (is_vlan_dev(event_ndev)) + return -ENODEV; + + /* Avoid Bonding master dev with same MAC registering as VF */ + if (netif_is_bond_master(event_ndev)) + return -ENODEV; + + return 0; +} + static int netvsc_probe(struct hv_device *dev, const struct hv_vmbus_device_id *dev_id) { - struct net_device *net = NULL; + struct net_device *net = NULL, *vf_netdev; struct net_device_context *net_device_ctx; struct netvsc_device_info *device_info = NULL; struct netvsc_device *nvdev; @@ -2579,6 +2619,30 @@ } list_add(&net_device_ctx->list, &netvsc_dev_list); + + /* When the hv_netvsc driver is unloaded and reloaded, the + * NET_DEVICE_REGISTER for the vf device is replayed before probe + * is complete. This is because register_netdevice_notifier() gets + * registered before vmbus_driver_register() so that callback func + * is set before probe and we don't miss events like NETDEV_POST_INIT + * So, in this section we try to register the matching vf device that + * is present as a netdevice, knowing that its register call is not + * processed in the netvsc_netdev_notifier(as probing is progress and + * get_netvsc_byslot fails). + */ + for_each_netdev(dev_net(net), vf_netdev) { + ret = check_dev_is_matching_vf(vf_netdev); + if (ret != 0) + continue; + + if (net != get_netvsc_byslot(vf_netdev)) + continue; + + netvsc_prepare_bonding(vf_netdev); + netvsc_register_vf(vf_netdev, VF_REG_IN_PROBE); + __netvsc_vf_setup(net, vf_netdev); + break; + } rtnl_unlock(); netvsc_devinfo_put(device_info); @@ -2735,35 +2799,24 @@ unsigned long event, void *ptr) { struct net_device *event_dev = netdev_notifier_info_to_dev(ptr); + int ret = 0; - /* Skip our own events */ - if (event_dev->netdev_ops == &device_ops) - return NOTIFY_DONE; - - /* Avoid non-Ethernet type devices */ - if (event_dev->type != ARPHRD_ETHER) - return NOTIFY_DONE; - - /* Avoid Vlan dev with same MAC registering as VF */ - if (is_vlan_dev(event_dev)) - return NOTIFY_DONE; - - /* Avoid Bonding master dev with same MAC registering as VF */ - if ((event_dev->priv_flags & IFF_BONDING) && - (event_dev->flags & IFF_MASTER)) + ret = check_dev_is_matching_vf(event_dev); + if (ret != 0) return NOTIFY_DONE; switch (event) { case NETDEV_POST_INIT: return netvsc_prepare_bonding(event_dev); case NETDEV_REGISTER: - return netvsc_register_vf(event_dev); + return netvsc_register_vf(event_dev, VF_REG_IN_NOTIFIER); case NETDEV_UNREGISTER: return netvsc_unregister_vf(event_dev); case NETDEV_UP: case NETDEV_DOWN: case NETDEV_CHANGE: - return netvsc_vf_changed(event_dev); + case NETDEV_GOING_DOWN: + return netvsc_vf_changed(event_dev, event); default: return NOTIFY_DONE; } diff -Nru linux-5.10.209/drivers/net/hyperv/rndis_filter.c linux-5.10.216/drivers/net/hyperv/rndis_filter.c --- linux-5.10.209/drivers/net/hyperv/rndis_filter.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/hyperv/rndis_filter.c 2024-05-02 14:23:46.000000000 +0000 @@ -1170,6 +1170,7 @@ /* Set the channel before opening.*/ nvchan->channel = new_sc; + new_sc->rqstor_size = netvsc_rqstor_size(netvsc_ring_bytes); ret = vmbus_open(new_sc, netvsc_ring_bytes, netvsc_ring_bytes, NULL, 0, netvsc_channel_cb, nvchan); diff -Nru linux-5.10.209/drivers/net/phy/dp83822.c linux-5.10.216/drivers/net/phy/dp83822.c --- linux-5.10.209/drivers/net/phy/dp83822.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/phy/dp83822.c 2024-05-02 14:23:46.000000000 +0000 @@ -94,7 +94,8 @@ #define DP83822_WOL_INDICATION_SEL BIT(8) #define DP83822_WOL_CLR_INDICATION BIT(11) -/* RSCR bits */ +/* RCSR bits */ +#define DP83822_RGMII_MODE_EN BIT(9) #define DP83822_RX_CLK_SHIFT BIT(12) #define DP83822_TX_CLK_SHIFT BIT(11) @@ -358,7 +359,7 @@ { struct dp83822_private *dp83822 = phydev->priv; struct device *dev = &phydev->mdio.dev; - int rgmii_delay; + int rgmii_delay = 0; s32 rx_int_delay; s32 tx_int_delay; int err = 0; @@ -368,24 +369,33 @@ rx_int_delay = phy_get_internal_delay(phydev, dev, NULL, 0, true); - if (rx_int_delay <= 0) - rgmii_delay = 0; - else - rgmii_delay = DP83822_RX_CLK_SHIFT; + /* Set DP83822_RX_CLK_SHIFT to enable rx clk internal delay */ + if (rx_int_delay > 0) + rgmii_delay |= DP83822_RX_CLK_SHIFT; tx_int_delay = phy_get_internal_delay(phydev, dev, NULL, 0, false); + + /* Set DP83822_TX_CLK_SHIFT to disable tx clk internal delay */ if (tx_int_delay <= 0) - rgmii_delay &= ~DP83822_TX_CLK_SHIFT; - else rgmii_delay |= DP83822_TX_CLK_SHIFT; - if (rgmii_delay) { - err = phy_set_bits_mmd(phydev, DP83822_DEVADDR, - MII_DP83822_RCSR, rgmii_delay); - if (err) - return err; - } + err = phy_modify_mmd(phydev, DP83822_DEVADDR, MII_DP83822_RCSR, + DP83822_RX_CLK_SHIFT | DP83822_TX_CLK_SHIFT, rgmii_delay); + if (err) + return err; + + err = phy_set_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + + if (err) + return err; + } else { + err = phy_clear_bits_mmd(phydev, DP83822_DEVADDR, + MII_DP83822_RCSR, DP83822_RGMII_MODE_EN); + + if (err) + return err; } if (dp83822->fx_enabled) { diff -Nru linux-5.10.209/drivers/net/phy/phy_device.c linux-5.10.216/drivers/net/phy/phy_device.c --- linux-5.10.209/drivers/net/phy/phy_device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/phy/phy_device.c 2024-05-02 14:23:46.000000000 +0000 @@ -2769,7 +2769,7 @@ if (delay < 0) return delay; - if (delay && size == 0) + if (size == 0) return delay; if (delay < delay_values[0] || delay > delay_values[size - 1]) { diff -Nru linux-5.10.209/drivers/net/ppp/ppp_async.c linux-5.10.216/drivers/net/ppp/ppp_async.c --- linux-5.10.209/drivers/net/ppp/ppp_async.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/ppp/ppp_async.c 2024-05-02 14:23:46.000000000 +0000 @@ -471,6 +471,10 @@ case PPPIOCSMRU: if (get_user(val, p)) break; + if (val > U16_MAX) { + err = -EINVAL; + break; + } if (val < PPP_MRU) val = PPP_MRU; ap->mru = val; diff -Nru linux-5.10.209/drivers/net/tun.c linux-5.10.216/drivers/net/tun.c --- linux-5.10.209/drivers/net/tun.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/tun.c 2024-05-02 14:23:46.000000000 +0000 @@ -665,6 +665,7 @@ tun->tfiles[tun->numqueues - 1]); ntfile = rtnl_dereference(tun->tfiles[index]); ntfile->queue_index = index; + ntfile->xdp_rxq.queue_index = index; rcu_assign_pointer(tun->tfiles[tun->numqueues - 1], NULL); @@ -2140,14 +2141,16 @@ tun_is_little_endian(tun), true, vlan_hlen)) { struct skb_shared_info *sinfo = skb_shinfo(skb); - pr_err("unexpected GSO type: " - "0x%x, gso_size %d, hdr_len %d\n", - sinfo->gso_type, tun16_to_cpu(tun, gso.gso_size), - tun16_to_cpu(tun, gso.hdr_len)); - print_hex_dump(KERN_ERR, "tun: ", - DUMP_PREFIX_NONE, - 16, 1, skb->head, - min((int)tun16_to_cpu(tun, gso.hdr_len), 64), true); + + if (net_ratelimit()) { + netdev_err(tun->dev, "unexpected GSO type: 0x%x, gso_size %d, hdr_len %d\n", + sinfo->gso_type, tun16_to_cpu(tun, gso.gso_size), + tun16_to_cpu(tun, gso.hdr_len)); + print_hex_dump(KERN_ERR, "tun: ", + DUMP_PREFIX_NONE, + 16, 1, skb->head, + min((int)tun16_to_cpu(tun, gso.hdr_len), 64), true); + } WARN_ON_ONCE(1); return -EINVAL; } diff -Nru linux-5.10.209/drivers/net/usb/ax88179_178a.c linux-5.10.216/drivers/net/usb/ax88179_178a.c --- linux-5.10.209/drivers/net/usb/ax88179_178a.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/usb/ax88179_178a.c 2024-05-02 14:23:46.000000000 +0000 @@ -1558,21 +1558,16 @@ /* Skip IP alignment pseudo header */ skb_pull(skb, 2); - skb->truesize = SKB_TRUESIZE(pkt_len_plus_padd); ax88179_rx_checksum(skb, pkt_hdr); return 1; } - ax_skb = skb_clone(skb, GFP_ATOMIC); + ax_skb = netdev_alloc_skb_ip_align(dev->net, pkt_len); if (!ax_skb) return 0; - skb_trim(ax_skb, pkt_len); + skb_put(ax_skb, pkt_len); + memcpy(ax_skb->data, skb->data + 2, pkt_len); - /* Skip IP alignment pseudo header */ - skb_pull(ax_skb, 2); - - skb->truesize = pkt_len_plus_padd + - SKB_DATA_ALIGN(sizeof(struct sk_buff)); ax88179_rx_checksum(ax_skb, pkt_hdr); usbnet_skb_return(dev, ax_skb); diff -Nru linux-5.10.209/drivers/net/usb/dm9601.c linux-5.10.216/drivers/net/usb/dm9601.c --- linux-5.10.209/drivers/net/usb/dm9601.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/usb/dm9601.c 2024-05-02 14:23:46.000000000 +0000 @@ -231,7 +231,7 @@ err = dm_read_shared_word(dev, 1, loc, &res); if (err < 0) { netdev_err(dev->net, "MDIO read error: %d\n", err); - return err; + return 0; } netdev_dbg(dev->net, diff -Nru linux-5.10.209/drivers/net/usb/lan78xx.c linux-5.10.216/drivers/net/usb/lan78xx.c --- linux-5.10.209/drivers/net/usb/lan78xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/usb/lan78xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -90,6 +90,12 @@ /* statistic update interval (mSec) */ #define STAT_UPDATE_TIMER (1 * 1000) +/* time to wait for MAC or FCT to stop (jiffies) */ +#define HW_DISABLE_TIMEOUT (HZ / 10) + +/* time to wait between polling MAC or FCT state (ms) */ +#define HW_DISABLE_DELAY_MS 1 + /* defines interrupts from interrupt EP */ #define MAX_INT_EP (32) #define INT_EP_INTEP (31) @@ -384,8 +390,9 @@ struct urb *urb_intr; struct usb_anchor deferred; + struct mutex dev_mutex; /* serialise open/stop wrt suspend/resume */ struct mutex phy_mutex; /* for phy access */ - unsigned pipe_in, pipe_out, pipe_intr; + unsigned int pipe_in, pipe_out, pipe_intr; u32 hard_mtu; /* count any extra framing */ size_t rx_urb_size; /* size for rx urbs */ @@ -395,7 +402,7 @@ wait_queue_head_t *wait; unsigned char suspend_count; - unsigned maxpacket; + unsigned int maxpacket; struct timer_list delay; struct timer_list stat_monitor; @@ -479,6 +486,26 @@ return ret; } +static int lan78xx_update_reg(struct lan78xx_net *dev, u32 reg, u32 mask, + u32 data) +{ + int ret; + u32 buf; + + ret = lan78xx_read_reg(dev, reg, &buf); + if (ret < 0) + return ret; + + buf &= ~mask; + buf |= (mask & data); + + ret = lan78xx_write_reg(dev, reg, buf); + if (ret < 0) + return ret; + + return 0; +} + static int lan78xx_read_stats(struct lan78xx_net *dev, struct lan78xx_statstage *data) { @@ -504,7 +531,7 @@ if (likely(ret >= 0)) { src = (u32 *)stats; dst = (u32 *)data; - for (i = 0; i < sizeof(*stats)/sizeof(u32); i++) { + for (i = 0; i < sizeof(*stats) / sizeof(u32); i++) { le32_to_cpus(&src[i]); dst[i] = src[i]; } @@ -518,10 +545,11 @@ return ret; } -#define check_counter_rollover(struct1, dev_stats, member) { \ - if (struct1->member < dev_stats.saved.member) \ - dev_stats.rollover_count.member++; \ - } +#define check_counter_rollover(struct1, dev_stats, member) \ + do { \ + if ((struct1)->member < (dev_stats).saved.member) \ + (dev_stats).rollover_count.member++; \ + } while (0) static void lan78xx_check_stat_rollover(struct lan78xx_net *dev, struct lan78xx_statstage *stats) @@ -847,9 +875,9 @@ for (i = 0; i < length; i++) { lan78xx_write_reg(dev, OTP_ADDR1, - ((offset + i) >> 8) & OTP_ADDR1_15_11); + ((offset + i) >> 8) & OTP_ADDR1_15_11); lan78xx_write_reg(dev, OTP_ADDR2, - ((offset + i) & OTP_ADDR2_10_3)); + ((offset + i) & OTP_ADDR2_10_3)); lan78xx_write_reg(dev, OTP_FUNC_CMD, OTP_FUNC_CMD_READ_); lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); @@ -903,9 +931,9 @@ for (i = 0; i < length; i++) { lan78xx_write_reg(dev, OTP_ADDR1, - ((offset + i) >> 8) & OTP_ADDR1_15_11); + ((offset + i) >> 8) & OTP_ADDR1_15_11); lan78xx_write_reg(dev, OTP_ADDR2, - ((offset + i) & OTP_ADDR2_10_3)); + ((offset + i) & OTP_ADDR2_10_3)); lan78xx_write_reg(dev, OTP_PRGM_DATA, data[i]); lan78xx_write_reg(dev, OTP_TST_CMD, OTP_TST_CMD_PRGVRFY_); lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); @@ -962,7 +990,7 @@ usleep_range(40, 100); } - netdev_warn(dev->net, "lan78xx_dataport_wait_not_busy timed out"); + netdev_warn(dev->net, "%s timed out", __func__); return -EIO; } @@ -975,7 +1003,7 @@ int i, ret; if (usb_autopm_get_interface(dev->intf) < 0) - return 0; + return 0; mutex_lock(&pdata->dataport_mutex); @@ -1048,9 +1076,9 @@ for (i = 1; i < NUM_OF_MAF; i++) { lan78xx_write_reg(dev, MAF_HI(i), 0); lan78xx_write_reg(dev, MAF_LO(i), - pdata->pfilter_table[i][1]); + pdata->pfilter_table[i][1]); lan78xx_write_reg(dev, MAF_HI(i), - pdata->pfilter_table[i][0]); + pdata->pfilter_table[i][0]); } lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); @@ -1069,11 +1097,12 @@ RFE_CTL_DA_PERFECT_ | RFE_CTL_MCAST_HASH_); for (i = 0; i < DP_SEL_VHF_HASH_LEN; i++) - pdata->mchash_table[i] = 0; + pdata->mchash_table[i] = 0; + /* pfilter_table[0] has own HW address */ for (i = 1; i < NUM_OF_MAF; i++) { - pdata->pfilter_table[i][0] = - pdata->pfilter_table[i][1] = 0; + pdata->pfilter_table[i][0] = 0; + pdata->pfilter_table[i][1] = 0; } pdata->rfe_ctl |= RFE_CTL_BCAST_EN_; @@ -1163,7 +1192,7 @@ /* clear LAN78xx interrupt status */ ret = lan78xx_write_reg(dev, INT_STS, INT_STS_PHY_INT_); if (unlikely(ret < 0)) - return -EIO; + return ret; mutex_lock(&phydev->lock); phy_read_status(phydev); @@ -1176,11 +1205,11 @@ /* reset MAC */ ret = lan78xx_read_reg(dev, MAC_CR, &buf); if (unlikely(ret < 0)) - return -EIO; + return ret; buf |= MAC_CR_RST_; ret = lan78xx_write_reg(dev, MAC_CR, buf); if (unlikely(ret < 0)) - return -EIO; + return ret; del_timer(&dev->stat_monitor); } else if (link && !dev->link_on) { @@ -1192,18 +1221,30 @@ if (ecmd.base.speed == 1000) { /* disable U2 */ ret = lan78xx_read_reg(dev, USB_CFG1, &buf); + if (ret < 0) + return ret; buf &= ~USB_CFG1_DEV_U2_INIT_EN_; ret = lan78xx_write_reg(dev, USB_CFG1, buf); + if (ret < 0) + return ret; /* enable U1 */ ret = lan78xx_read_reg(dev, USB_CFG1, &buf); + if (ret < 0) + return ret; buf |= USB_CFG1_DEV_U1_INIT_EN_; ret = lan78xx_write_reg(dev, USB_CFG1, buf); + if (ret < 0) + return ret; } else { /* enable U1 & U2 */ ret = lan78xx_read_reg(dev, USB_CFG1, &buf); + if (ret < 0) + return ret; buf |= USB_CFG1_DEV_U2_INIT_EN_; buf |= USB_CFG1_DEV_U1_INIT_EN_; ret = lan78xx_write_reg(dev, USB_CFG1, buf); + if (ret < 0) + return ret; } } @@ -1221,6 +1262,8 @@ ret = lan78xx_update_flowcontrol(dev, ecmd.base.duplex, ladv, radv); + if (ret < 0) + return ret; if (!timer_pending(&dev->stat_monitor)) { dev->delta = 1; @@ -1231,7 +1274,7 @@ tasklet_schedule(&dev->bh); } - return ret; + return 0; } /* some work can't be done in tasklets, so we use keventd @@ -1267,9 +1310,10 @@ generic_handle_irq(dev->domain_data.phyirq); local_irq_enable(); } - } else + } else { netdev_warn(dev->net, "unexpected interrupt: 0x%08x\n", intdata); + } } static int lan78xx_ethtool_get_eeprom_len(struct net_device *netdev) @@ -1358,7 +1402,7 @@ struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); if (usb_autopm_get_interface(dev->intf) < 0) - return; + return; ret = lan78xx_read_reg(dev, USB_CFG0, &buf); if (unlikely(ret < 0)) { @@ -1980,7 +2024,7 @@ /* RGMII MAC TXC Delay Enable */ lan78xx_write_reg(dev, MAC_RGMII_ID, - MAC_RGMII_ID_TXC_DELAY_EN_); + MAC_RGMII_ID_TXC_DELAY_EN_); /* RGMII TX DLL Tune Adjust */ lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); @@ -2244,11 +2288,16 @@ int ll_mtu = new_mtu + netdev->hard_header_len; int old_hard_mtu = dev->hard_mtu; int old_rx_urb_size = dev->rx_urb_size; + int ret; /* no second zero-length packet read wanted after mtu-sized packets */ if ((ll_mtu % dev->maxpacket) == 0) return -EDOM; + ret = usb_autopm_get_interface(dev->intf); + if (ret < 0) + return ret; + lan78xx_set_rx_max_frame_length(dev, new_mtu + VLAN_ETH_HLEN); netdev->mtu = new_mtu; @@ -2264,6 +2313,8 @@ } } + usb_autopm_put_interface(dev->intf); + return 0; } @@ -2420,26 +2471,186 @@ lan78xx_write_reg(dev, LTM_INACTIVE1, regs[5]); } +static int lan78xx_start_hw(struct lan78xx_net *dev, u32 reg, u32 hw_enable) +{ + return lan78xx_update_reg(dev, reg, hw_enable, hw_enable); +} + +static int lan78xx_stop_hw(struct lan78xx_net *dev, u32 reg, u32 hw_enabled, + u32 hw_disabled) +{ + unsigned long timeout; + bool stopped = true; + int ret; + u32 buf; + + /* Stop the h/w block (if not already stopped) */ + + ret = lan78xx_read_reg(dev, reg, &buf); + if (ret < 0) + return ret; + + if (buf & hw_enabled) { + buf &= ~hw_enabled; + + ret = lan78xx_write_reg(dev, reg, buf); + if (ret < 0) + return ret; + + stopped = false; + timeout = jiffies + HW_DISABLE_TIMEOUT; + do { + ret = lan78xx_read_reg(dev, reg, &buf); + if (ret < 0) + return ret; + + if (buf & hw_disabled) + stopped = true; + else + msleep(HW_DISABLE_DELAY_MS); + } while (!stopped && !time_after(jiffies, timeout)); + } + + ret = stopped ? 0 : -ETIME; + + return ret; +} + +static int lan78xx_flush_fifo(struct lan78xx_net *dev, u32 reg, u32 fifo_flush) +{ + return lan78xx_update_reg(dev, reg, fifo_flush, fifo_flush); +} + +static int lan78xx_start_tx_path(struct lan78xx_net *dev) +{ + int ret; + + netif_dbg(dev, drv, dev->net, "start tx path"); + + /* Start the MAC transmitter */ + + ret = lan78xx_start_hw(dev, MAC_TX, MAC_TX_TXEN_); + if (ret < 0) + return ret; + + /* Start the Tx FIFO */ + + ret = lan78xx_start_hw(dev, FCT_TX_CTL, FCT_TX_CTL_EN_); + if (ret < 0) + return ret; + + return 0; +} + +static int lan78xx_stop_tx_path(struct lan78xx_net *dev) +{ + int ret; + + netif_dbg(dev, drv, dev->net, "stop tx path"); + + /* Stop the Tx FIFO */ + + ret = lan78xx_stop_hw(dev, FCT_TX_CTL, FCT_TX_CTL_EN_, FCT_TX_CTL_DIS_); + if (ret < 0) + return ret; + + /* Stop the MAC transmitter */ + + ret = lan78xx_stop_hw(dev, MAC_TX, MAC_TX_TXEN_, MAC_TX_TXD_); + if (ret < 0) + return ret; + + return 0; +} + +/* The caller must ensure the Tx path is stopped before calling + * lan78xx_flush_tx_fifo(). + */ +static int lan78xx_flush_tx_fifo(struct lan78xx_net *dev) +{ + return lan78xx_flush_fifo(dev, FCT_TX_CTL, FCT_TX_CTL_RST_); +} + +static int lan78xx_start_rx_path(struct lan78xx_net *dev) +{ + int ret; + + netif_dbg(dev, drv, dev->net, "start rx path"); + + /* Start the Rx FIFO */ + + ret = lan78xx_start_hw(dev, FCT_RX_CTL, FCT_RX_CTL_EN_); + if (ret < 0) + return ret; + + /* Start the MAC receiver*/ + + ret = lan78xx_start_hw(dev, MAC_RX, MAC_RX_RXEN_); + if (ret < 0) + return ret; + + return 0; +} + +static int lan78xx_stop_rx_path(struct lan78xx_net *dev) +{ + int ret; + + netif_dbg(dev, drv, dev->net, "stop rx path"); + + /* Stop the MAC receiver */ + + ret = lan78xx_stop_hw(dev, MAC_RX, MAC_RX_RXEN_, MAC_RX_RXD_); + if (ret < 0) + return ret; + + /* Stop the Rx FIFO */ + + ret = lan78xx_stop_hw(dev, FCT_RX_CTL, FCT_RX_CTL_EN_, FCT_RX_CTL_DIS_); + if (ret < 0) + return ret; + + return 0; +} + +/* The caller must ensure the Rx path is stopped before calling + * lan78xx_flush_rx_fifo(). + */ +static int lan78xx_flush_rx_fifo(struct lan78xx_net *dev) +{ + return lan78xx_flush_fifo(dev, FCT_RX_CTL, FCT_RX_CTL_RST_); +} + static int lan78xx_reset(struct lan78xx_net *dev) { struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); - u32 buf; - int ret = 0; unsigned long timeout; + int ret; + u32 buf; u8 sig; ret = lan78xx_read_reg(dev, HW_CFG, &buf); + if (ret < 0) + return ret; + buf |= HW_CFG_LRST_; + ret = lan78xx_write_reg(dev, HW_CFG, buf); + if (ret < 0) + return ret; timeout = jiffies + HZ; do { mdelay(1); ret = lan78xx_read_reg(dev, HW_CFG, &buf); + if (ret < 0) + return ret; + if (time_after(jiffies, timeout)) { netdev_warn(dev->net, "timeout on completion of LiteReset"); - return -EIO; + ret = -ETIMEDOUT; + return ret; } } while (buf & HW_CFG_LRST_); @@ -2447,13 +2658,22 @@ /* save DEVID for later usage */ ret = lan78xx_read_reg(dev, ID_REV, &buf); + if (ret < 0) + return ret; + dev->chipid = (buf & ID_REV_CHIP_ID_MASK_) >> 16; dev->chiprev = buf & ID_REV_CHIP_REV_MASK_; /* Respond to the IN token with a NAK */ ret = lan78xx_read_reg(dev, USB_CFG0, &buf); + if (ret < 0) + return ret; + buf |= USB_CFG_BIR_; + ret = lan78xx_write_reg(dev, USB_CFG0, buf); + if (ret < 0) + return ret; /* Init LTM */ lan78xx_init_ltm(dev); @@ -2476,58 +2696,111 @@ } ret = lan78xx_write_reg(dev, BURST_CAP, buf); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, BULK_IN_DLY, DEFAULT_BULK_IN_DELAY); + if (ret < 0) + return ret; ret = lan78xx_read_reg(dev, HW_CFG, &buf); + if (ret < 0) + return ret; + buf |= HW_CFG_MEF_; + ret = lan78xx_write_reg(dev, HW_CFG, buf); + if (ret < 0) + return ret; ret = lan78xx_read_reg(dev, USB_CFG0, &buf); + if (ret < 0) + return ret; + buf |= USB_CFG_BCE_; + ret = lan78xx_write_reg(dev, USB_CFG0, buf); + if (ret < 0) + return ret; /* set FIFO sizes */ buf = (MAX_RX_FIFO_SIZE - 512) / 512; + ret = lan78xx_write_reg(dev, FCT_RX_FIFO_END, buf); + if (ret < 0) + return ret; buf = (MAX_TX_FIFO_SIZE - 512) / 512; + ret = lan78xx_write_reg(dev, FCT_TX_FIFO_END, buf); + if (ret < 0) + return ret; ret = lan78xx_write_reg(dev, INT_STS, INT_STS_CLEAR_ALL_); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, FLOW, 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, FCT_FLOW, 0); + if (ret < 0) + return ret; /* Don't need rfe_ctl_lock during initialisation */ ret = lan78xx_read_reg(dev, RFE_CTL, &pdata->rfe_ctl); + if (ret < 0) + return ret; + pdata->rfe_ctl |= RFE_CTL_BCAST_EN_ | RFE_CTL_DA_PERFECT_; + ret = lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); + if (ret < 0) + return ret; /* Enable or disable checksum offload engines */ - lan78xx_set_features(dev->net, dev->net->features); + ret = lan78xx_set_features(dev->net, dev->net->features); + if (ret < 0) + return ret; lan78xx_set_multicast(dev->net); /* reset PHY */ ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + return ret; + buf |= PMT_CTL_PHY_RST_; + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + return ret; timeout = jiffies + HZ; do { mdelay(1); ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + return ret; + if (time_after(jiffies, timeout)) { netdev_warn(dev->net, "timeout waiting for PHY Reset"); - return -EIO; + ret = -ETIMEDOUT; + return ret; } } while ((buf & PMT_CTL_PHY_RST_) || !(buf & PMT_CTL_READY_)); ret = lan78xx_read_reg(dev, MAC_CR, &buf); + if (ret < 0) + return ret; + /* LAN7801 only has RGMII mode */ if (dev->chipid == ID_REV_CHIP_ID_7801_) buf &= ~MAC_CR_GMII_EN_; - if (dev->chipid == ID_REV_CHIP_ID_7800_) { + if (dev->chipid == ID_REV_CHIP_ID_7800_ || + dev->chipid == ID_REV_CHIP_ID_7850_) { ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig); if (!ret && sig != EEPROM_INDICATOR) { /* Implies there is no external eeprom. Set mac speed */ @@ -2536,27 +2809,13 @@ } } ret = lan78xx_write_reg(dev, MAC_CR, buf); - - ret = lan78xx_read_reg(dev, MAC_TX, &buf); - buf |= MAC_TX_TXEN_; - ret = lan78xx_write_reg(dev, MAC_TX, buf); - - ret = lan78xx_read_reg(dev, FCT_TX_CTL, &buf); - buf |= FCT_TX_CTL_EN_; - ret = lan78xx_write_reg(dev, FCT_TX_CTL, buf); + if (ret < 0) + return ret; ret = lan78xx_set_rx_max_frame_length(dev, dev->net->mtu + VLAN_ETH_HLEN); - ret = lan78xx_read_reg(dev, MAC_RX, &buf); - buf |= MAC_RX_RXEN_; - ret = lan78xx_write_reg(dev, MAC_RX, buf); - - ret = lan78xx_read_reg(dev, FCT_RX_CTL, &buf); - buf |= FCT_RX_CTL_EN_; - ret = lan78xx_write_reg(dev, FCT_RX_CTL, buf); - - return 0; + return ret; } static void lan78xx_init_stats(struct lan78xx_net *dev) @@ -2590,9 +2849,13 @@ struct lan78xx_net *dev = netdev_priv(net); int ret; + netif_dbg(dev, ifup, dev->net, "open device"); + ret = usb_autopm_get_interface(dev->intf); if (ret < 0) - goto out; + return ret; + + mutex_lock(&dev->dev_mutex); phy_start(net->phydev); @@ -2608,6 +2871,20 @@ } } + ret = lan78xx_flush_rx_fifo(dev); + if (ret < 0) + goto done; + ret = lan78xx_flush_tx_fifo(dev); + if (ret < 0) + goto done; + + ret = lan78xx_start_tx_path(dev); + if (ret < 0) + goto done; + ret = lan78xx_start_rx_path(dev); + if (ret < 0) + goto done; + lan78xx_init_stats(dev); set_bit(EVENT_DEV_OPEN, &dev->flags); @@ -2618,9 +2895,11 @@ lan78xx_defer_kevent(dev, EVENT_LINK_RESET); done: - usb_autopm_put_interface(dev->intf); + mutex_unlock(&dev->dev_mutex); + + if (ret < 0) + usb_autopm_put_interface(dev->intf); -out: return ret; } @@ -2637,38 +2916,56 @@ temp = unlink_urbs(dev, &dev->txq) + unlink_urbs(dev, &dev->rxq); /* maybe wait for deletions to finish. */ - while (!skb_queue_empty(&dev->rxq) && - !skb_queue_empty(&dev->txq) && - !skb_queue_empty(&dev->done)) { + while (!skb_queue_empty(&dev->rxq) || + !skb_queue_empty(&dev->txq)) { schedule_timeout(msecs_to_jiffies(UNLINK_TIMEOUT_MS)); set_current_state(TASK_UNINTERRUPTIBLE); netif_dbg(dev, ifdown, dev->net, - "waited for %d urb completions\n", temp); + "waited for %d urb completions", temp); } set_current_state(TASK_RUNNING); dev->wait = NULL; remove_wait_queue(&unlink_wakeup, &wait); + + while (!skb_queue_empty(&dev->done)) { + struct skb_data *entry; + struct sk_buff *skb; + + skb = skb_dequeue(&dev->done); + entry = (struct skb_data *)(skb->cb); + usb_free_urb(entry->urb); + dev_kfree_skb(skb); + } } static int lan78xx_stop(struct net_device *net) { struct lan78xx_net *dev = netdev_priv(net); + netif_dbg(dev, ifup, dev->net, "stop device"); + + mutex_lock(&dev->dev_mutex); + if (timer_pending(&dev->stat_monitor)) del_timer_sync(&dev->stat_monitor); - if (net->phydev) - phy_stop(net->phydev); - clear_bit(EVENT_DEV_OPEN, &dev->flags); netif_stop_queue(net); + tasklet_kill(&dev->bh); + + lan78xx_terminate_urbs(dev); netif_info(dev, ifdown, dev->net, "stop stats: rx/tx %lu/%lu, errs %lu/%lu\n", net->stats.rx_packets, net->stats.tx_packets, net->stats.rx_errors, net->stats.tx_errors); - lan78xx_terminate_urbs(dev); + /* ignore errors that occur stopping the Tx and Rx data paths */ + lan78xx_stop_tx_path(dev); + lan78xx_stop_rx_path(dev); + + if (net->phydev) + phy_stop(net->phydev); usb_kill_urb(dev->urb_intr); @@ -2678,12 +2975,17 @@ * can't flush_scheduled_work() until we drop rtnl (later), * else workers could deadlock; so make workers a NOP. */ - dev->flags = 0; + clear_bit(EVENT_TX_HALT, &dev->flags); + clear_bit(EVENT_RX_HALT, &dev->flags); + clear_bit(EVENT_LINK_RESET, &dev->flags); + clear_bit(EVENT_STAT_UPDATE, &dev->flags); + cancel_delayed_work_sync(&dev->wq); - tasklet_kill(&dev->bh); usb_autopm_put_interface(dev->intf); + mutex_unlock(&dev->dev_mutex); + return 0; } @@ -2806,6 +3108,9 @@ struct lan78xx_net *dev = netdev_priv(net); struct sk_buff *skb2 = NULL; + if (test_bit(EVENT_DEV_ASLEEP, &dev->flags)) + schedule_delayed_work(&dev->wq, 0); + if (skb) { skb_tx_timestamp(skb); skb2 = lan78xx_tx_prep(dev, skb, GFP_ATOMIC); @@ -3333,9 +3638,10 @@ if (skb) dev_kfree_skb_any(skb); usb_free_urb(urb); - } else + } else { netif_dbg(dev, tx_queued, dev->net, "> tx, len %d, type 0x%x\n", length, skb->protocol); + } } static void lan78xx_rx_bh(struct lan78xx_net *dev) @@ -3411,18 +3717,17 @@ dev = container_of(work, struct lan78xx_net, wq.work); + if (usb_autopm_get_interface(dev->intf) < 0) + return; + if (test_bit(EVENT_TX_HALT, &dev->flags)) { unlink_urbs(dev, &dev->txq); - status = usb_autopm_get_interface(dev->intf); - if (status < 0) - goto fail_pipe; + status = usb_clear_halt(dev->udev, dev->pipe_out); - usb_autopm_put_interface(dev->intf); if (status < 0 && status != -EPIPE && status != -ESHUTDOWN) { if (netif_msg_tx_err(dev)) -fail_pipe: netdev_err(dev->net, "can't clear tx halt, status %d\n", status); @@ -3432,18 +3737,14 @@ netif_wake_queue(dev->net); } } + if (test_bit(EVENT_RX_HALT, &dev->flags)) { unlink_urbs(dev, &dev->rxq); - status = usb_autopm_get_interface(dev->intf); - if (status < 0) - goto fail_halt; status = usb_clear_halt(dev->udev, dev->pipe_in); - usb_autopm_put_interface(dev->intf); if (status < 0 && status != -EPIPE && status != -ESHUTDOWN) { if (netif_msg_rx_err(dev)) -fail_halt: netdev_err(dev->net, "can't clear rx halt, status %d\n", status); @@ -3457,16 +3758,9 @@ int ret = 0; clear_bit(EVENT_LINK_RESET, &dev->flags); - status = usb_autopm_get_interface(dev->intf); - if (status < 0) - goto skip_reset; if (lan78xx_link_reset(dev) < 0) { - usb_autopm_put_interface(dev->intf); -skip_reset: netdev_info(dev->net, "link reset failed (%d)\n", ret); - } else { - usb_autopm_put_interface(dev->intf); } } @@ -3480,6 +3774,8 @@ dev->delta = min((dev->delta * 2), 50); } + + usb_autopm_put_interface(dev->intf); } static void intr_complete(struct urb *urb) @@ -3609,8 +3905,8 @@ struct net_device *netdev; struct usb_device *udev; int ret; - unsigned maxp; - unsigned period; + unsigned int maxp; + unsigned int period; u8 *buf = NULL; udev = interface_to_usbdev(intf); @@ -3639,6 +3935,7 @@ skb_queue_head_init(&dev->rxq_pause); skb_queue_head_init(&dev->txq_pend); mutex_init(&dev->phy_mutex); + mutex_init(&dev->dev_mutex); tasklet_init(&dev->bh, lan78xx_bh, (unsigned long)dev); INIT_DELAYED_WORK(&dev->wq, lan78xx_delayedwork); @@ -3781,37 +4078,119 @@ return crc; } -static int lan78xx_set_suspend(struct lan78xx_net *dev, u32 wol) +static int lan78xx_set_auto_suspend(struct lan78xx_net *dev) { u32 buf; - int mask_index; - u16 crc; - u32 temp_wucsr; - u32 temp_pmt_ctl; + int ret; + + ret = lan78xx_stop_tx_path(dev); + if (ret < 0) + return ret; + + ret = lan78xx_stop_rx_path(dev); + if (ret < 0) + return ret; + + /* auto suspend (selective suspend) */ + + ret = lan78xx_write_reg(dev, WUCSR, 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUCSR2, 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); + if (ret < 0) + return ret; + + /* set goodframe wakeup */ + + ret = lan78xx_read_reg(dev, WUCSR, &buf); + if (ret < 0) + return ret; + + buf |= WUCSR_RFE_WAKE_EN_; + buf |= WUCSR_STORE_WAKE_; + + ret = lan78xx_write_reg(dev, WUCSR, buf); + if (ret < 0) + return ret; + + ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + return ret; + + buf &= ~PMT_CTL_RES_CLR_WKP_EN_; + buf |= PMT_CTL_RES_CLR_WKP_STS_; + buf |= PMT_CTL_PHY_WAKE_EN_; + buf |= PMT_CTL_WOL_EN_; + buf &= ~PMT_CTL_SUS_MODE_MASK_; + buf |= PMT_CTL_SUS_MODE_3_; + + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + return ret; + + ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + return ret; + + buf |= PMT_CTL_WUPS_MASK_; + + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + return ret; + + ret = lan78xx_start_rx_path(dev); + + return ret; +} + +static int lan78xx_set_suspend(struct lan78xx_net *dev, u32 wol) +{ const u8 ipv4_multicast[3] = { 0x01, 0x00, 0x5E }; const u8 ipv6_multicast[3] = { 0x33, 0x33 }; const u8 arp_type[2] = { 0x08, 0x06 }; + u32 temp_pmt_ctl; + int mask_index; + u32 temp_wucsr; + u32 buf; + u16 crc; + int ret; - lan78xx_read_reg(dev, MAC_TX, &buf); - buf &= ~MAC_TX_TXEN_; - lan78xx_write_reg(dev, MAC_TX, buf); - lan78xx_read_reg(dev, MAC_RX, &buf); - buf &= ~MAC_RX_RXEN_; - lan78xx_write_reg(dev, MAC_RX, buf); + ret = lan78xx_stop_tx_path(dev); + if (ret < 0) + return ret; + ret = lan78xx_stop_rx_path(dev); + if (ret < 0) + return ret; - lan78xx_write_reg(dev, WUCSR, 0); - lan78xx_write_reg(dev, WUCSR2, 0); - lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); + ret = lan78xx_write_reg(dev, WUCSR, 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUCSR2, 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); + if (ret < 0) + return ret; temp_wucsr = 0; temp_pmt_ctl = 0; - lan78xx_read_reg(dev, PMT_CTL, &temp_pmt_ctl); + + ret = lan78xx_read_reg(dev, PMT_CTL, &temp_pmt_ctl); + if (ret < 0) + return ret; + temp_pmt_ctl &= ~PMT_CTL_RES_CLR_WKP_EN_; temp_pmt_ctl |= PMT_CTL_RES_CLR_WKP_STS_; - for (mask_index = 0; mask_index < NUM_OF_WUF_CFG; mask_index++) - lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); + for (mask_index = 0; mask_index < NUM_OF_WUF_CFG; mask_index++) { + ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); + if (ret < 0) + return ret; + } mask_index = 0; if (wol & WAKE_PHY) { @@ -3840,30 +4219,52 @@ /* set WUF_CFG & WUF_MASK for IPv4 Multicast */ crc = lan78xx_wakeframe_crc16(ipv4_multicast, 3); - lan78xx_write_reg(dev, WUF_CFG(mask_index), + ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), WUF_CFGX_EN_ | WUF_CFGX_TYPE_MCAST_ | (0 << WUF_CFGX_OFFSET_SHIFT_) | (crc & WUF_CFGX_CRC16_MASK_)); + if (ret < 0) + return ret; + + ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 7); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); + if (ret < 0) + return ret; - lan78xx_write_reg(dev, WUF_MASK0(mask_index), 7); - lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); mask_index++; /* for IPv6 Multicast */ crc = lan78xx_wakeframe_crc16(ipv6_multicast, 2); - lan78xx_write_reg(dev, WUF_CFG(mask_index), + ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), WUF_CFGX_EN_ | WUF_CFGX_TYPE_MCAST_ | (0 << WUF_CFGX_OFFSET_SHIFT_) | (crc & WUF_CFGX_CRC16_MASK_)); + if (ret < 0) + return ret; + + ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 3); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); + if (ret < 0) + return ret; - lan78xx_write_reg(dev, WUF_MASK0(mask_index), 3); - lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); mask_index++; temp_pmt_ctl |= PMT_CTL_WOL_EN_; @@ -3884,16 +4285,27 @@ * for packettype (offset 12,13) = ARP (0x0806) */ crc = lan78xx_wakeframe_crc16(arp_type, 2); - lan78xx_write_reg(dev, WUF_CFG(mask_index), + ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), WUF_CFGX_EN_ | WUF_CFGX_TYPE_ALL_ | (0 << WUF_CFGX_OFFSET_SHIFT_) | (crc & WUF_CFGX_CRC16_MASK_)); + if (ret < 0) + return ret; + + ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); + if (ret < 0) + return ret; + ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); + if (ret < 0) + return ret; - lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); - lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); - lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); mask_index++; temp_pmt_ctl |= PMT_CTL_WOL_EN_; @@ -3901,7 +4313,9 @@ temp_pmt_ctl |= PMT_CTL_SUS_MODE_0_; } - lan78xx_write_reg(dev, WUCSR, temp_wucsr); + ret = lan78xx_write_reg(dev, WUCSR, temp_wucsr); + if (ret < 0) + return ret; /* when multiple WOL bits are set */ if (hweight_long((unsigned long)wol) > 1) { @@ -3909,33 +4323,45 @@ temp_pmt_ctl &= ~PMT_CTL_SUS_MODE_MASK_; temp_pmt_ctl |= PMT_CTL_SUS_MODE_0_; } - lan78xx_write_reg(dev, PMT_CTL, temp_pmt_ctl); + ret = lan78xx_write_reg(dev, PMT_CTL, temp_pmt_ctl); + if (ret < 0) + return ret; /* clear WUPS */ - lan78xx_read_reg(dev, PMT_CTL, &buf); + ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + return ret; + buf |= PMT_CTL_WUPS_MASK_; - lan78xx_write_reg(dev, PMT_CTL, buf); - lan78xx_read_reg(dev, MAC_RX, &buf); - buf |= MAC_RX_RXEN_; - lan78xx_write_reg(dev, MAC_RX, buf); + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + return ret; - return 0; + ret = lan78xx_start_rx_path(dev); + + return ret; } static int lan78xx_suspend(struct usb_interface *intf, pm_message_t message) { struct lan78xx_net *dev = usb_get_intfdata(intf); - struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); - u32 buf; + bool dev_open; int ret; - if (!dev->suspend_count++) { + mutex_lock(&dev->dev_mutex); + + netif_dbg(dev, ifdown, dev->net, + "suspending: pm event %#x", message.event); + + dev_open = test_bit(EVENT_DEV_OPEN, &dev->flags); + + if (dev_open) { spin_lock_irq(&dev->txq.lock); /* don't autosuspend while transmitting */ if ((skb_queue_len(&dev->txq) || skb_queue_len(&dev->txq_pend)) && - PMSG_IS_AUTO(message)) { + PMSG_IS_AUTO(message)) { spin_unlock_irq(&dev->txq.lock); ret = -EBUSY; goto out; @@ -3944,129 +4370,207 @@ spin_unlock_irq(&dev->txq.lock); } - /* stop TX & RX */ - ret = lan78xx_read_reg(dev, MAC_TX, &buf); - buf &= ~MAC_TX_TXEN_; - ret = lan78xx_write_reg(dev, MAC_TX, buf); - ret = lan78xx_read_reg(dev, MAC_RX, &buf); - buf &= ~MAC_RX_RXEN_; - ret = lan78xx_write_reg(dev, MAC_RX, buf); + /* stop RX */ + ret = lan78xx_stop_rx_path(dev); + if (ret < 0) + goto out; + + ret = lan78xx_flush_rx_fifo(dev); + if (ret < 0) + goto out; - /* empty out the rx and queues */ + /* stop Tx */ + ret = lan78xx_stop_tx_path(dev); + if (ret < 0) + goto out; + + /* empty out the Rx and Tx queues */ netif_device_detach(dev->net); lan78xx_terminate_urbs(dev); usb_kill_urb(dev->urb_intr); /* reattach */ netif_device_attach(dev->net); - } - if (test_bit(EVENT_DEV_ASLEEP, &dev->flags)) { del_timer(&dev->stat_monitor); if (PMSG_IS_AUTO(message)) { - /* auto suspend (selective suspend) */ - ret = lan78xx_read_reg(dev, MAC_TX, &buf); - buf &= ~MAC_TX_TXEN_; - ret = lan78xx_write_reg(dev, MAC_TX, buf); - ret = lan78xx_read_reg(dev, MAC_RX, &buf); - buf &= ~MAC_RX_RXEN_; - ret = lan78xx_write_reg(dev, MAC_RX, buf); + ret = lan78xx_set_auto_suspend(dev); + if (ret < 0) + goto out; + } else { + struct lan78xx_priv *pdata; + + pdata = (struct lan78xx_priv *)(dev->data[0]); + netif_carrier_off(dev->net); + ret = lan78xx_set_suspend(dev, pdata->wol); + if (ret < 0) + goto out; + } + } else { + /* Interface is down; don't allow WOL and PHY + * events to wake up the host + */ + u32 buf; - ret = lan78xx_write_reg(dev, WUCSR, 0); - ret = lan78xx_write_reg(dev, WUCSR2, 0); - ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); + set_bit(EVENT_DEV_ASLEEP, &dev->flags); - /* set goodframe wakeup */ - ret = lan78xx_read_reg(dev, WUCSR, &buf); + ret = lan78xx_write_reg(dev, WUCSR, 0); + if (ret < 0) + goto out; + ret = lan78xx_write_reg(dev, WUCSR2, 0); + if (ret < 0) + goto out; - buf |= WUCSR_RFE_WAKE_EN_; - buf |= WUCSR_STORE_WAKE_; + ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + goto out; - ret = lan78xx_write_reg(dev, WUCSR, buf); + buf &= ~PMT_CTL_RES_CLR_WKP_EN_; + buf |= PMT_CTL_RES_CLR_WKP_STS_; + buf &= ~PMT_CTL_SUS_MODE_MASK_; + buf |= PMT_CTL_SUS_MODE_3_; - ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + goto out; - buf &= ~PMT_CTL_RES_CLR_WKP_EN_; - buf |= PMT_CTL_RES_CLR_WKP_STS_; + ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + if (ret < 0) + goto out; - buf |= PMT_CTL_PHY_WAKE_EN_; - buf |= PMT_CTL_WOL_EN_; - buf &= ~PMT_CTL_SUS_MODE_MASK_; - buf |= PMT_CTL_SUS_MODE_3_; + buf |= PMT_CTL_WUPS_MASK_; - ret = lan78xx_write_reg(dev, PMT_CTL, buf); + ret = lan78xx_write_reg(dev, PMT_CTL, buf); + if (ret < 0) + goto out; + } - ret = lan78xx_read_reg(dev, PMT_CTL, &buf); + ret = 0; +out: + mutex_unlock(&dev->dev_mutex); - buf |= PMT_CTL_WUPS_MASK_; + return ret; +} - ret = lan78xx_write_reg(dev, PMT_CTL, buf); +static bool lan78xx_submit_deferred_urbs(struct lan78xx_net *dev) +{ + bool pipe_halted = false; + struct urb *urb; - ret = lan78xx_read_reg(dev, MAC_RX, &buf); - buf |= MAC_RX_RXEN_; - ret = lan78xx_write_reg(dev, MAC_RX, buf); + while ((urb = usb_get_from_anchor(&dev->deferred))) { + struct sk_buff *skb = urb->context; + int ret; + + if (!netif_device_present(dev->net) || + !netif_carrier_ok(dev->net) || + pipe_halted) { + usb_free_urb(urb); + dev_kfree_skb(skb); + continue; + } + + ret = usb_submit_urb(urb, GFP_ATOMIC); + + if (ret == 0) { + netif_trans_update(dev->net); + lan78xx_queue_skb(&dev->txq, skb, tx_start); } else { - lan78xx_set_suspend(dev, pdata->wol); + usb_free_urb(urb); + dev_kfree_skb(skb); + + if (ret == -EPIPE) { + netif_stop_queue(dev->net); + pipe_halted = true; + } else if (ret == -ENODEV) { + netif_device_detach(dev->net); + } } } - ret = 0; -out: - return ret; + return pipe_halted; } static int lan78xx_resume(struct usb_interface *intf) { struct lan78xx_net *dev = usb_get_intfdata(intf); - struct sk_buff *skb; - struct urb *res; + bool dev_open; int ret; - u32 buf; - if (!timer_pending(&dev->stat_monitor)) { - dev->delta = 1; - mod_timer(&dev->stat_monitor, - jiffies + STAT_UPDATE_TIMER); - } + mutex_lock(&dev->dev_mutex); - if (!--dev->suspend_count) { - /* resume interrupt URBs */ - if (dev->urb_intr && test_bit(EVENT_DEV_OPEN, &dev->flags)) - usb_submit_urb(dev->urb_intr, GFP_NOIO); + netif_dbg(dev, ifup, dev->net, "resuming device"); + + dev_open = test_bit(EVENT_DEV_OPEN, &dev->flags); + + if (dev_open) { + bool pipe_halted = false; + + ret = lan78xx_flush_tx_fifo(dev); + if (ret < 0) + goto out; + + if (dev->urb_intr) { + int ret = usb_submit_urb(dev->urb_intr, GFP_KERNEL); - spin_lock_irq(&dev->txq.lock); - while ((res = usb_get_from_anchor(&dev->deferred))) { - skb = (struct sk_buff *)res->context; - ret = usb_submit_urb(res, GFP_ATOMIC); if (ret < 0) { - dev_kfree_skb_any(skb); - usb_free_urb(res); - usb_autopm_put_interface_async(dev->intf); - } else { - netif_trans_update(dev->net); - lan78xx_queue_skb(&dev->txq, skb, tx_start); + if (ret == -ENODEV) + netif_device_detach(dev->net); + + netdev_warn(dev->net, "Failed to submit intr URB"); } } + spin_lock_irq(&dev->txq.lock); + + if (netif_device_present(dev->net)) { + pipe_halted = lan78xx_submit_deferred_urbs(dev); + + if (pipe_halted) + lan78xx_defer_kevent(dev, EVENT_TX_HALT); + } + clear_bit(EVENT_DEV_ASLEEP, &dev->flags); + spin_unlock_irq(&dev->txq.lock); - if (test_bit(EVENT_DEV_OPEN, &dev->flags)) { - if (!(skb_queue_len(&dev->txq) >= dev->tx_qlen)) - netif_start_queue(dev->net); - tasklet_schedule(&dev->bh); + if (!pipe_halted && + netif_device_present(dev->net) && + (skb_queue_len(&dev->txq) < dev->tx_qlen)) + netif_start_queue(dev->net); + + ret = lan78xx_start_tx_path(dev); + if (ret < 0) + goto out; + + tasklet_schedule(&dev->bh); + + if (!timer_pending(&dev->stat_monitor)) { + dev->delta = 1; + mod_timer(&dev->stat_monitor, + jiffies + STAT_UPDATE_TIMER); } + + } else { + clear_bit(EVENT_DEV_ASLEEP, &dev->flags); } ret = lan78xx_write_reg(dev, WUCSR2, 0); + if (ret < 0) + goto out; ret = lan78xx_write_reg(dev, WUCSR, 0); + if (ret < 0) + goto out; ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); + if (ret < 0) + goto out; ret = lan78xx_write_reg(dev, WUCSR2, WUCSR2_NS_RCD_ | WUCSR2_ARP_RCD_ | WUCSR2_IPV6_TCPSYN_RCD_ | WUCSR2_IPV4_TCPSYN_RCD_); + if (ret < 0) + goto out; ret = lan78xx_write_reg(dev, WUCSR, WUCSR_EEE_TX_WAKE_ | WUCSR_EEE_RX_WAKE_ | @@ -4075,23 +4579,32 @@ WUCSR_WUFR_ | WUCSR_MPR_ | WUCSR_BCST_FR_); + if (ret < 0) + goto out; - ret = lan78xx_read_reg(dev, MAC_TX, &buf); - buf |= MAC_TX_TXEN_; - ret = lan78xx_write_reg(dev, MAC_TX, buf); + ret = 0; +out: + mutex_unlock(&dev->dev_mutex); - return 0; + return ret; } static int lan78xx_reset_resume(struct usb_interface *intf) { struct lan78xx_net *dev = usb_get_intfdata(intf); + int ret; - lan78xx_reset(dev); + netif_dbg(dev, ifup, dev->net, "(reset) resuming device"); + + ret = lan78xx_reset(dev); + if (ret < 0) + return ret; phy_start(dev->net->phydev); - return lan78xx_resume(intf); + ret = lan78xx_resume(intf); + + return ret; } static const struct usb_device_id products[] = { diff -Nru linux-5.10.209/drivers/net/usb/sr9800.c linux-5.10.216/drivers/net/usb/sr9800.c --- linux-5.10.209/drivers/net/usb/sr9800.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/usb/sr9800.c 2024-05-02 14:23:46.000000000 +0000 @@ -736,7 +736,9 @@ data->eeprom_len = SR9800_EEPROM_LEN; - usbnet_get_endpoints(dev, intf); + ret = usbnet_get_endpoints(dev, intf); + if (ret) + goto out; /* LED Setting Rule : * AABB:CCDD diff -Nru linux-5.10.209/drivers/net/virtio_net.c linux-5.10.216/drivers/net/virtio_net.c --- linux-5.10.209/drivers/net/virtio_net.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/virtio_net.c 2024-05-02 14:23:46.000000000 +0000 @@ -2819,10 +2819,11 @@ { vq_callback_t **callbacks; struct virtqueue **vqs; - int ret = -ENOMEM; - int i, total_vqs; const char **names; + int ret = -ENOMEM; + int total_vqs; bool *ctx; + u16 i; /* We expect 1 RX virtqueue followed by 1 TX virtqueue, followed by * possible N-1 RX/TX queue pairs used in multiqueue mode, followed by @@ -2859,8 +2860,8 @@ for (i = 0; i < vi->max_queue_pairs; i++) { callbacks[rxq2vq(i)] = skb_recv_done; callbacks[txq2vq(i)] = skb_xmit_done; - sprintf(vi->rq[i].name, "input.%d", i); - sprintf(vi->sq[i].name, "output.%d", i); + sprintf(vi->rq[i].name, "input.%u", i); + sprintf(vi->sq[i].name, "output.%u", i); names[rxq2vq(i)] = vi->rq[i].name; names[txq2vq(i)] = vi->sq[i].name; if (ctx) diff -Nru linux-5.10.209/drivers/net/vxlan/vxlan_core.c linux-5.10.216/drivers/net/vxlan/vxlan_core.c --- linux-5.10.209/drivers/net/vxlan/vxlan_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/vxlan/vxlan_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1778,6 +1778,10 @@ if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr)) return false; + /* Ignore packets from invalid src-address */ + if (!is_valid_ether_addr(eth_hdr(skb)->h_source)) + return false; + /* Get address from the outer IP header */ if (vxlan_get_sk_family(vs) == AF_INET) { saddr.sin.sin_addr.s_addr = ip_hdr(skb)->saddr; diff -Nru linux-5.10.209/drivers/net/wireguard/netlink.c linux-5.10.216/drivers/net/wireguard/netlink.c --- linux-5.10.209/drivers/net/wireguard/netlink.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireguard/netlink.c 2024-05-02 14:23:46.000000000 +0000 @@ -164,8 +164,8 @@ if (!allowedips_node) goto no_allowedips; if (!ctx->allowedips_seq) - ctx->allowedips_seq = peer->device->peer_allowedips.seq; - else if (ctx->allowedips_seq != peer->device->peer_allowedips.seq) + ctx->allowedips_seq = ctx->wg->peer_allowedips.seq; + else if (ctx->allowedips_seq != ctx->wg->peer_allowedips.seq) goto no_allowedips; allowedips_nest = nla_nest_start(skb, WGPEER_A_ALLOWEDIPS); @@ -255,17 +255,17 @@ if (!peers_nest) goto out; ret = 0; - /* If the last cursor was removed via list_del_init in peer_remove, then + lockdep_assert_held(&wg->device_update_lock); + /* If the last cursor was removed in peer_remove or peer_remove_all, then * we just treat this the same as there being no more peers left. The * reason is that seq_nr should indicate to userspace that this isn't a * coherent dump anyway, so they'll try again. */ if (list_empty(&wg->peer_list) || - (ctx->next_peer && list_empty(&ctx->next_peer->peer_list))) { + (ctx->next_peer && ctx->next_peer->is_dead)) { nla_nest_cancel(skb, peers_nest); goto out; } - lockdep_assert_held(&wg->device_update_lock); peer = list_prepare_entry(ctx->next_peer, &wg->peer_list, peer_list); list_for_each_entry_continue(peer, &wg->peer_list, peer_list) { if (get_peer(peer, skb, ctx)) { diff -Nru linux-5.10.209/drivers/net/wireguard/receive.c linux-5.10.216/drivers/net/wireguard/receive.c --- linux-5.10.209/drivers/net/wireguard/receive.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireguard/receive.c 2024-05-02 14:23:46.000000000 +0000 @@ -258,7 +258,7 @@ if (unlikely(!READ_ONCE(keypair->receiving.is_valid) || wg_birthdate_has_expired(keypair->receiving.birthdate, REJECT_AFTER_TIME) || - keypair->receiving_counter.counter >= REJECT_AFTER_MESSAGES)) { + READ_ONCE(keypair->receiving_counter.counter) >= REJECT_AFTER_MESSAGES)) { WRITE_ONCE(keypair->receiving.is_valid, false); return false; } @@ -325,7 +325,7 @@ for (i = 1; i <= top; ++i) counter->backtrack[(i + index_current) & ((COUNTER_BITS_TOTAL / BITS_PER_LONG) - 1)] = 0; - counter->counter = their_counter; + WRITE_ONCE(counter->counter, their_counter); } index &= (COUNTER_BITS_TOTAL / BITS_PER_LONG) - 1; @@ -470,7 +470,7 @@ net_dbg_ratelimited("%s: Packet has invalid nonce %llu (max %llu)\n", peer->device->dev->name, PACKET_CB(skb)->nonce, - keypair->receiving_counter.counter); + READ_ONCE(keypair->receiving_counter.counter)); goto next; } diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath10k/core.c linux-5.10.216/drivers/net/wireless/ath/ath10k/core.c --- linux-5.10.209/drivers/net/wireless/ath/ath10k/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath10k/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -3381,13 +3381,10 @@ void ath10k_core_destroy(struct ath10k *ar) { - flush_workqueue(ar->workqueue); destroy_workqueue(ar->workqueue); - flush_workqueue(ar->workqueue_aux); destroy_workqueue(ar->workqueue_aux); - flush_workqueue(ar->workqueue_tx_complete); destroy_workqueue(ar->workqueue_tx_complete); ath10k_debug_destroy(ar); diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath10k/sdio.c linux-5.10.216/drivers/net/wireless/ath/ath10k/sdio.c --- linux-5.10.209/drivers/net/wireless/ath/ath10k/sdio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath10k/sdio.c 2024-05-02 14:23:46.000000000 +0000 @@ -2651,7 +2651,6 @@ ath10k_core_destroy(ar); - flush_workqueue(ar_sdio->workqueue); destroy_workqueue(ar_sdio->workqueue); } diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath10k/wmi-tlv.c linux-5.10.216/drivers/net/wireless/ath/ath10k/wmi-tlv.c --- linux-5.10.209/drivers/net/wireless/ath/ath10k/wmi-tlv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath10k/wmi-tlv.c 2024-05-02 14:23:46.000000000 +0000 @@ -844,6 +844,10 @@ } ev = tb[WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT]; + if (!ev) { + kfree(tb); + return -EPROTO; + } arg->desc_id = ev->desc_id; arg->status = ev->status; diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath9k/antenna.c linux-5.10.216/drivers/net/wireless/ath/ath9k/antenna.c --- linux-5.10.209/drivers/net/wireless/ath/ath9k/antenna.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath9k/antenna.c 2024-05-02 14:23:46.000000000 +0000 @@ -643,7 +643,7 @@ conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA1; conf->alt_lna_conf = ATH_ANT_DIV_COMB_LNA1_PLUS_LNA2; } else if (antcomb->rssi_sub > - antcomb->rssi_lna1) { + antcomb->rssi_lna2) { /* set to A-B */ conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA1; conf->alt_lna_conf = ATH_ANT_DIV_COMB_LNA1_MINUS_LNA2; diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath9k/htc.h linux-5.10.216/drivers/net/wireless/ath/ath9k/htc.h --- linux-5.10.209/drivers/net/wireless/ath/ath9k/htc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath9k/htc.h 2024-05-02 14:23:46.000000000 +0000 @@ -306,7 +306,6 @@ DECLARE_BITMAP(tx_slot, MAX_TX_BUF_NUM); struct timer_list cleanup_timer; spinlock_t tx_lock; - bool initialized; }; struct ath9k_htc_tx_ctl { @@ -515,6 +514,7 @@ unsigned long ps_usecount; bool ps_enabled; bool ps_idle; + bool initialized; #ifdef CONFIG_MAC80211_LEDS enum led_brightness brightness; diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath9k/htc_drv_init.c linux-5.10.216/drivers/net/wireless/ath/ath9k/htc_drv_init.c --- linux-5.10.209/drivers/net/wireless/ath/ath9k/htc_drv_init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath9k/htc_drv_init.c 2024-05-02 14:23:46.000000000 +0000 @@ -966,6 +966,10 @@ htc_handle->drv_priv = priv; + /* Allow ath9k_wmi_event_tasklet() to operate. */ + smp_wmb(); + priv->initialized = true; + return 0; err_init: diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c linux-5.10.216/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c --- linux-5.10.209/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c 2024-05-02 14:23:46.000000000 +0000 @@ -647,9 +647,10 @@ struct ath9k_htc_tx_event *tx_pend; int i; - for (i = 0; i < txs->cnt; i++) { - WARN_ON(txs->cnt > HTC_MAX_TX_STATUS); + if (WARN_ON_ONCE(txs->cnt > HTC_MAX_TX_STATUS)) + return; + for (i = 0; i < txs->cnt; i++) { __txs = &txs->txstatus[i]; skb = ath9k_htc_tx_get_packet(priv, __txs); @@ -809,10 +810,6 @@ skb_queue_head_init(&priv->tx.data_vo_queue); skb_queue_head_init(&priv->tx.tx_failed); - /* Allow ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID) to operate. */ - smp_wmb(); - priv->tx.initialized = true; - return 0; } diff -Nru linux-5.10.209/drivers/net/wireless/ath/ath9k/wmi.c linux-5.10.216/drivers/net/wireless/ath/ath9k/wmi.c --- linux-5.10.209/drivers/net/wireless/ath/ath9k/wmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ath/ath9k/wmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -155,6 +155,12 @@ } spin_unlock_irqrestore(&wmi->wmi_lock, flags); + /* Check if ath9k_htc_probe_device() completed. */ + if (!data_race(priv->initialized)) { + kfree_skb(skb); + continue; + } + hdr = (struct wmi_cmd_hdr *) skb->data; cmd_id = be16_to_cpu(hdr->command_id); wmi_event = skb_pull(skb, sizeof(struct wmi_cmd_hdr)); @@ -169,10 +175,6 @@ &wmi->drv_priv->fatal_work); break; case WMI_TXSTATUS_EVENTID: - /* Check if ath9k_tx_init() completed. */ - if (!data_race(priv->tx.initialized)) - break; - spin_lock_bh(&priv->tx.tx_lock); if (priv->tx.flags & ATH9K_HTC_OP_TX_DRAIN) { spin_unlock_bh(&priv->tx.tx_lock); diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/b43/b43.h linux-5.10.216/drivers/net/wireless/broadcom/b43/b43.h --- linux-5.10.209/drivers/net/wireless/broadcom/b43/b43.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/b43/b43.h 2024-05-02 14:23:46.000000000 +0000 @@ -1082,6 +1082,22 @@ return dev->__using_pio_transfers; } +static inline void b43_wake_queue(struct b43_wldev *dev, int queue_prio) +{ + if (dev->qos_enabled) + ieee80211_wake_queue(dev->wl->hw, queue_prio); + else + ieee80211_wake_queue(dev->wl->hw, 0); +} + +static inline void b43_stop_queue(struct b43_wldev *dev, int queue_prio) +{ + if (dev->qos_enabled) + ieee80211_stop_queue(dev->wl->hw, queue_prio); + else + ieee80211_stop_queue(dev->wl->hw, 0); +} + /* Message printing */ __printf(2, 3) void b43info(struct b43_wl *wl, const char *fmt, ...); __printf(2, 3) void b43err(struct b43_wl *wl, const char *fmt, ...); diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/b43/dma.c linux-5.10.216/drivers/net/wireless/broadcom/b43/dma.c --- linux-5.10.209/drivers/net/wireless/broadcom/b43/dma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/b43/dma.c 2024-05-02 14:23:46.000000000 +0000 @@ -1399,7 +1399,7 @@ should_inject_overflow(ring)) { /* This TX ring is full. */ unsigned int skb_mapping = skb_get_queue_mapping(skb); - ieee80211_stop_queue(dev->wl->hw, skb_mapping); + b43_stop_queue(dev, skb_mapping); dev->wl->tx_queue_stopped[skb_mapping] = true; ring->stopped = true; if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { @@ -1570,7 +1570,7 @@ } else { /* If the driver queue is running wake the corresponding * mac80211 queue. */ - ieee80211_wake_queue(dev->wl->hw, ring->queue_prio); + b43_wake_queue(dev, ring->queue_prio); if (b43_debug(dev, B43_DBG_DMAVERBOSE)) { b43dbg(dev->wl, "Woke up TX ring %d\n", ring->index); } diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/b43/main.c linux-5.10.216/drivers/net/wireless/broadcom/b43/main.c --- linux-5.10.209/drivers/net/wireless/broadcom/b43/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/b43/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -2587,7 +2587,8 @@ start_ieee80211: wl->hw->queues = B43_QOS_QUEUE_NUM; - if (!modparam_qos || dev->fw.opensource) + if (!modparam_qos || dev->fw.opensource || + dev->dev->chip_id == BCMA_CHIP_ID_BCM4331) wl->hw->queues = 1; err = ieee80211_register_hw(wl->hw); @@ -3603,7 +3604,7 @@ err = b43_dma_tx(dev, skb); if (err == -ENOSPC) { wl->tx_queue_stopped[queue_num] = true; - ieee80211_stop_queue(wl->hw, queue_num); + b43_stop_queue(dev, queue_num); skb_queue_head(&wl->tx_queue[queue_num], skb); break; } @@ -3627,6 +3628,7 @@ struct sk_buff *skb) { struct b43_wl *wl = hw_to_b43_wl(hw); + u16 skb_queue_mapping; if (unlikely(skb->len < 2 + 2 + 6)) { /* Too short, this can't be a valid frame. */ @@ -3635,12 +3637,12 @@ } B43_WARN_ON(skb_shinfo(skb)->nr_frags); - skb_queue_tail(&wl->tx_queue[skb->queue_mapping], skb); - if (!wl->tx_queue_stopped[skb->queue_mapping]) { + skb_queue_mapping = skb_get_queue_mapping(skb); + skb_queue_tail(&wl->tx_queue[skb_queue_mapping], skb); + if (!wl->tx_queue_stopped[skb_queue_mapping]) ieee80211_queue_work(wl->hw, &wl->tx_work); - } else { - ieee80211_stop_queue(wl->hw, skb->queue_mapping); - } + else + b43_stop_queue(wl->current_dev, skb_queue_mapping); } static void b43_qos_params_upload(struct b43_wldev *dev, diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/b43/pio.c linux-5.10.216/drivers/net/wireless/broadcom/b43/pio.c --- linux-5.10.209/drivers/net/wireless/broadcom/b43/pio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/b43/pio.c 2024-05-02 14:23:46.000000000 +0000 @@ -525,7 +525,7 @@ if (total_len > (q->buffer_size - q->buffer_used)) { /* Not enough memory on the queue. */ err = -EBUSY; - ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb)); + b43_stop_queue(dev, skb_get_queue_mapping(skb)); q->stopped = true; goto out; } @@ -552,7 +552,7 @@ if (((q->buffer_size - q->buffer_used) < roundup(2 + 2 + 6, 4)) || (q->free_packet_slots == 0)) { /* The queue is full. */ - ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb)); + b43_stop_queue(dev, skb_get_queue_mapping(skb)); q->stopped = true; } @@ -587,7 +587,7 @@ list_add(&pack->list, &q->packets_list); if (q->stopped) { - ieee80211_wake_queue(dev->wl->hw, q->queue_prio); + b43_wake_queue(dev, q->queue_prio); q->stopped = false; } } diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c --- linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c 2024-05-02 14:23:46.000000000 +0000 @@ -790,8 +790,7 @@ scan_request = cfg->scan_request; cfg->scan_request = NULL; - if (timer_pending(&cfg->escan_timeout)) - del_timer_sync(&cfg->escan_timeout); + timer_delete_sync(&cfg->escan_timeout); if (fw_abort) { /* Do a scan abort to stop the driver's scan engine */ @@ -7674,6 +7673,7 @@ brcmf_btcoex_detach(cfg); wiphy_unregister(cfg->wiphy); wl_deinit_priv(cfg); + cancel_work_sync(&cfg->escan_timeout_work); brcmf_free_wiphy(cfg->wiphy); kfree(cfg); } diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c --- linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c 2024-05-02 14:23:46.000000000 +0000 @@ -383,8 +383,9 @@ return sh; } -static void wlc_phy_timercb_phycal(struct brcms_phy *pi) +static void wlc_phy_timercb_phycal(void *ptr) { + struct brcms_phy *pi = ptr; uint delay = 5; if (PHY_PERICAL_MPHASE_PENDING(pi)) { diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c --- linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c 2024-05-02 14:23:46.000000000 +0000 @@ -57,12 +57,11 @@ } struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim, - void (*fn)(struct brcms_phy *pi), + void (*fn)(void *pi), void *arg, const char *name) { return (struct wlapi_timer *) - brcms_init_timer(physhim->wl, (void (*)(void *))fn, - arg, name); + brcms_init_timer(physhim->wl, fn, arg, name); } void wlapi_free_timer(struct wlapi_timer *t) diff -Nru linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h --- linux-5.10.209/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h 2024-05-02 14:23:46.000000000 +0000 @@ -131,7 +131,7 @@ /* PHY to WL utility functions */ struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim, - void (*fn)(struct brcms_phy *pi), + void (*fn)(void *pi), void *arg, const char *name); void wlapi_free_timer(struct wlapi_timer *t); void wlapi_add_timer(struct wlapi_timer *t, uint ms, int periodic); diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlegacy/3945-mac.c linux-5.10.216/drivers/net/wireless/intel/iwlegacy/3945-mac.c --- linux-5.10.209/drivers/net/wireless/intel/iwlegacy/3945-mac.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlegacy/3945-mac.c 2024-05-02 14:23:46.000000000 +0000 @@ -3831,7 +3831,6 @@ il3945_unset_hw_params(il); /*netif_stop_queue(dev); */ - flush_workqueue(il->workqueue); /* ieee80211_unregister_hw calls il3945_mac_stop, which flushes * il->workqueue... so we can't take down the workqueue diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlegacy/4965-mac.c linux-5.10.216/drivers/net/wireless/intel/iwlegacy/4965-mac.c --- linux-5.10.209/drivers/net/wireless/intel/iwlegacy/4965-mac.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlegacy/4965-mac.c 2024-05-02 14:23:46.000000000 +0000 @@ -6745,7 +6745,6 @@ il_eeprom_free(il); /*netif_stop_queue(dev); */ - flush_workqueue(il->workqueue); /* ieee80211_unregister_hw calls il_mac_stop, which flushes * il->workqueue... so we can't take down the workqueue diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/dvm/main.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/dvm/main.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/dvm/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/dvm/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1526,7 +1526,6 @@ kfree(priv->nvm_data); /*netif_stop_queue(dev); */ - flush_workqueue(priv->workqueue); /* ieee80211_unregister_hw calls iwlagn_mac_stop, which flushes * priv->workqueue... so we can't take down the workqueue diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/fw/acpi.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/fw/acpi.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/fw/acpi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/fw/acpi.c 2024-05-02 14:23:46.000000000 +0000 @@ -555,7 +555,7 @@ * from index 1, so the maximum value allowed here is * ACPI_SAR_PROFILES_NUM - 1. */ - if (n_profiles <= 0 || n_profiles >= ACPI_SAR_PROFILE_NUM) { + if (n_profiles >= ACPI_SAR_PROFILE_NUM) { ret = -EINVAL; goto out_free; } diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c 2024-05-02 14:23:46.000000000 +0000 @@ -155,6 +155,12 @@ if (le32_to_cpu(tlv->length) != sizeof(*debug_info)) return -EINVAL; + /* we use this as a string, ensure input was NUL terminated */ + if (strnlen(debug_info->debug_cfg_name, + sizeof(debug_info->debug_cfg_name)) == + sizeof(debug_info->debug_cfg_name)) + return -EINVAL; + IWL_DEBUG_FW(trans, "WRT: Loading debug cfg: %s\n", debug_info->debug_cfg_name); @@ -876,7 +882,7 @@ node_trig = (void *)node_tlv->data; } - memcpy(node_trig->data + offset, trig->data, trig_data_len); + memcpy((u8 *)node_trig->data + offset, trig->data, trig_data_len); node_tlv->length = cpu_to_le32(size); if (policy & IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG) { diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c 2024-05-02 14:23:46.000000000 +0000 @@ -106,6 +106,8 @@ if (!pasn) return -ENOBUFS; + iwl_mvm_ftm_remove_pasn_sta(mvm, addr); + pasn->cipher = iwl_mvm_cipher_to_location_cipher(cipher); switch (pasn->cipher) { diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c 2024-05-02 14:23:46.000000000 +0000 @@ -5155,8 +5155,7 @@ if (notif->sync) { notif->cookie = mvm->queue_sync_cookie; - atomic_set(&mvm->queue_sync_counter, - mvm->trans->num_rx_queues); + mvm->queue_sync_state = (1 << mvm->trans->num_rx_queues) - 1; } ret = iwl_mvm_notify_rx_queue(mvm, qmask, (u8 *)notif, @@ -5169,16 +5168,19 @@ if (notif->sync) { lockdep_assert_held(&mvm->mutex); ret = wait_event_timeout(mvm->rx_sync_waitq, - atomic_read(&mvm->queue_sync_counter) == 0 || + READ_ONCE(mvm->queue_sync_state) == 0 || iwl_mvm_is_radio_killed(mvm), HZ); - WARN_ON_ONCE(!ret && !iwl_mvm_is_radio_killed(mvm)); + WARN_ONCE(!ret && !iwl_mvm_is_radio_killed(mvm), + "queue sync: failed to sync, state is 0x%lx\n", + mvm->queue_sync_state); } out: - atomic_set(&mvm->queue_sync_counter, 0); - if (notif->sync) + if (notif->sync) { + mvm->queue_sync_state = 0; mvm->queue_sync_cookie++; + } } static void iwl_mvm_sync_rx_queues(struct ieee80211_hw *hw) diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2024-05-02 14:23:46.000000000 +0000 @@ -842,7 +842,7 @@ unsigned long status; u32 queue_sync_cookie; - atomic_t queue_sync_counter; + unsigned long queue_sync_state; /* * for beacon filtering - * currently only one interface can be supported diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/ops.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/ops.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2024-05-02 14:23:46.000000000 +0000 @@ -725,7 +725,7 @@ init_waitqueue_head(&mvm->rx_sync_waitq); - atomic_set(&mvm->queue_sync_counter, 0); + mvm->queue_sync_state = 0; SET_IEEE80211_DEV(mvm->hw, mvm->trans->dev); diff -Nru linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c --- linux-5.10.209/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c 2024-05-02 14:23:46.000000000 +0000 @@ -853,9 +853,13 @@ WARN_ONCE(1, "Invalid identifier %d", internal_notif->type); } - if (internal_notif->sync && - !atomic_dec_return(&mvm->queue_sync_counter)) - wake_up(&mvm->rx_sync_waitq); + if (internal_notif->sync) { + WARN_ONCE(!test_and_clear_bit(queue, &mvm->queue_sync_state), + "queue sync: queue %d responded a second time!\n", + queue); + if (READ_ONCE(mvm->queue_sync_state) == 0) + wake_up(&mvm->rx_sync_waitq); + } } static void iwl_mvm_oldsn_workaround(struct iwl_mvm *mvm, diff -Nru linux-5.10.209/drivers/net/wireless/marvell/libertas/cmd.c linux-5.10.216/drivers/net/wireless/marvell/libertas/cmd.c --- linux-5.10.209/drivers/net/wireless/marvell/libertas/cmd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/marvell/libertas/cmd.c 2024-05-02 14:23:46.000000000 +0000 @@ -1133,7 +1133,7 @@ if (!cmdarray[i].cmdbuf) { lbs_deb_host("ALLOC_CMD_BUF: ptempvirtualaddr is NULL\n"); ret = -1; - goto done; + goto free_cmd_array; } } @@ -1141,8 +1141,17 @@ init_waitqueue_head(&cmdarray[i].cmdwait_q); lbs_cleanup_and_insert_cmd(priv, &cmdarray[i]); } - ret = 0; + return 0; +free_cmd_array: + for (i = 0; i < LBS_NUM_CMD_BUFFERS; i++) { + if (cmdarray[i].cmdbuf) { + kfree(cmdarray[i].cmdbuf); + cmdarray[i].cmdbuf = NULL; + } + } + kfree(priv->cmd_array); + priv->cmd_array = NULL; done: return ret; } diff -Nru linux-5.10.209/drivers/net/wireless/marvell/mwifiex/cfg80211.c linux-5.10.216/drivers/net/wireless/marvell/mwifiex/cfg80211.c --- linux-5.10.209/drivers/net/wireless/marvell/mwifiex/cfg80211.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/marvell/mwifiex/cfg80211.c 2024-05-02 14:23:46.000000000 +0000 @@ -3155,13 +3155,11 @@ unregister_netdevice(wdev->netdev); if (priv->dfs_cac_workqueue) { - flush_workqueue(priv->dfs_cac_workqueue); destroy_workqueue(priv->dfs_cac_workqueue); priv->dfs_cac_workqueue = NULL; } if (priv->dfs_chan_sw_workqueue) { - flush_workqueue(priv->dfs_chan_sw_workqueue); destroy_workqueue(priv->dfs_chan_sw_workqueue); priv->dfs_chan_sw_workqueue = NULL; } diff -Nru linux-5.10.209/drivers/net/wireless/marvell/mwifiex/debugfs.c linux-5.10.216/drivers/net/wireless/marvell/mwifiex/debugfs.c --- linux-5.10.209/drivers/net/wireless/marvell/mwifiex/debugfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/marvell/mwifiex/debugfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -976,9 +976,6 @@ priv->dfs_dev_dir = debugfs_create_dir(priv->netdev->name, mwifiex_dfs_dir); - if (!priv->dfs_dev_dir) - return; - MWIFIEX_DFS_ADD_FILE(info); MWIFIEX_DFS_ADD_FILE(debug); MWIFIEX_DFS_ADD_FILE(getlog); diff -Nru linux-5.10.209/drivers/net/wireless/marvell/mwifiex/main.c linux-5.10.216/drivers/net/wireless/marvell/mwifiex/main.c --- linux-5.10.209/drivers/net/wireless/marvell/mwifiex/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/marvell/mwifiex/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -498,13 +498,11 @@ static void mwifiex_terminate_workqueue(struct mwifiex_adapter *adapter) { if (adapter->workqueue) { - flush_workqueue(adapter->workqueue); destroy_workqueue(adapter->workqueue); adapter->workqueue = NULL; } if (adapter->rx_workqueue) { - flush_workqueue(adapter->rx_workqueue); destroy_workqueue(adapter->rx_workqueue); adapter->rx_workqueue = NULL; } diff -Nru linux-5.10.209/drivers/net/wireless/microchip/wilc1000/cfg80211.c linux-5.10.216/drivers/net/wireless/microchip/wilc1000/cfg80211.c --- linux-5.10.209/drivers/net/wireless/microchip/wilc1000/cfg80211.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/microchip/wilc1000/cfg80211.c 2024-05-02 14:23:46.000000000 +0000 @@ -1562,7 +1562,6 @@ unregister_netdevice(vif->ndev); vif->monitor_flag = 0; - wilc_set_operation_mode(vif, 0, 0, 0); mutex_lock(&wl->vif_mutex); list_del_rcu(&vif->list); wl->vif_num--; diff -Nru linux-5.10.209/drivers/net/wireless/microchip/wilc1000/hif.c linux-5.10.216/drivers/net/wireless/microchip/wilc1000/hif.c --- linux-5.10.209/drivers/net/wireless/microchip/wilc1000/hif.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/microchip/wilc1000/hif.c 2024-05-02 14:23:46.000000000 +0000 @@ -359,38 +359,49 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *bss, struct cfg80211_crypto_settings *crypto) { - struct wilc_join_bss_param *param; - struct ieee80211_p2p_noa_attr noa_attr; - u8 rates_len = 0; - const u8 *tim_elm, *ssid_elm, *rates_ie, *supp_rates_ie; + const u8 *ies_data, *tim_elm, *ssid_elm, *rates_ie, *supp_rates_ie; const u8 *ht_ie, *wpa_ie, *wmm_ie, *rsn_ie; + struct ieee80211_p2p_noa_attr noa_attr; + const struct cfg80211_bss_ies *ies; + struct wilc_join_bss_param *param; + u8 rates_len = 0, ies_len; int ret; - const struct cfg80211_bss_ies *ies = rcu_dereference(bss->ies); param = kzalloc(sizeof(*param), GFP_KERNEL); if (!param) return NULL; + rcu_read_lock(); + ies = rcu_dereference(bss->ies); + ies_data = kmemdup(ies->data, ies->len, GFP_ATOMIC); + if (!ies_data) { + rcu_read_unlock(); + kfree(param); + return NULL; + } + ies_len = ies->len; + rcu_read_unlock(); + param->beacon_period = cpu_to_le16(bss->beacon_interval); param->cap_info = cpu_to_le16(bss->capability); param->bss_type = WILC_FW_BSS_TYPE_INFRA; param->ch = ieee80211_frequency_to_channel(bss->channel->center_freq); ether_addr_copy(param->bssid, bss->bssid); - ssid_elm = cfg80211_find_ie(WLAN_EID_SSID, ies->data, ies->len); + ssid_elm = cfg80211_find_ie(WLAN_EID_SSID, ies_data, ies_len); if (ssid_elm) { if (ssid_elm[1] <= IEEE80211_MAX_SSID_LEN) memcpy(param->ssid, ssid_elm + 2, ssid_elm[1]); } - tim_elm = cfg80211_find_ie(WLAN_EID_TIM, ies->data, ies->len); + tim_elm = cfg80211_find_ie(WLAN_EID_TIM, ies_data, ies_len); if (tim_elm && tim_elm[1] >= 2) param->dtim_period = tim_elm[3]; memset(param->p_suites, 0xFF, 3); memset(param->akm_suites, 0xFF, 3); - rates_ie = cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies->data, ies->len); + rates_ie = cfg80211_find_ie(WLAN_EID_SUPP_RATES, ies_data, ies_len); if (rates_ie) { rates_len = rates_ie[1]; if (rates_len > WILC_MAX_RATES_SUPPORTED) @@ -401,7 +412,7 @@ if (rates_len < WILC_MAX_RATES_SUPPORTED) { supp_rates_ie = cfg80211_find_ie(WLAN_EID_EXT_SUPP_RATES, - ies->data, ies->len); + ies_data, ies_len); if (supp_rates_ie) { u8 ext_rates = supp_rates_ie[1]; @@ -416,11 +427,11 @@ } } - ht_ie = cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies->data, ies->len); + ht_ie = cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, ies_data, ies_len); if (ht_ie) param->ht_capable = true; - ret = cfg80211_get_p2p_attr(ies->data, ies->len, + ret = cfg80211_get_p2p_attr(ies_data, ies_len, IEEE80211_P2P_ATTR_ABSENCE_NOTICE, (u8 *)&noa_attr, sizeof(noa_attr)); if (ret > 0) { @@ -444,7 +455,7 @@ } wmm_ie = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WMM, - ies->data, ies->len); + ies_data, ies_len); if (wmm_ie) { struct ieee80211_wmm_param_ie *ie; @@ -459,13 +470,13 @@ wpa_ie = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WPA, - ies->data, ies->len); + ies_data, ies_len); if (wpa_ie) { param->mode_802_11i = 1; param->rsn_found = true; } - rsn_ie = cfg80211_find_ie(WLAN_EID_RSN, ies->data, ies->len); + rsn_ie = cfg80211_find_ie(WLAN_EID_RSN, ies_data, ies_len); if (rsn_ie) { int rsn_ie_len = sizeof(struct element) + rsn_ie[1]; int offset = 8; @@ -499,6 +510,7 @@ param->akm_suites[i] = crypto->akm_suites[i] & 0xFF; } + kfree(ies_data); return (void *)param; } diff -Nru linux-5.10.209/drivers/net/wireless/microchip/wilc1000/netdev.c linux-5.10.216/drivers/net/wireless/microchip/wilc1000/netdev.c --- linux-5.10.209/drivers/net/wireless/microchip/wilc1000/netdev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/microchip/wilc1000/netdev.c 2024-05-02 14:23:46.000000000 +0000 @@ -821,8 +821,7 @@ void wilc_netdev_cleanup(struct wilc *wilc) { - struct wilc_vif *vif; - int srcu_idx, ifc_cnt = 0; + struct wilc_vif *vif, *vif_tmp; if (!wilc) return; @@ -832,33 +831,19 @@ wilc->firmware = NULL; } - srcu_idx = srcu_read_lock(&wilc->srcu); - list_for_each_entry_rcu(vif, &wilc->vif_list, list) { + list_for_each_entry_safe(vif, vif_tmp, &wilc->vif_list, list) { + mutex_lock(&wilc->vif_mutex); + list_del_rcu(&vif->list); + wilc->vif_num--; + mutex_unlock(&wilc->vif_mutex); + synchronize_srcu(&wilc->srcu); if (vif->ndev) unregister_netdev(vif->ndev); } - srcu_read_unlock(&wilc->srcu, srcu_idx); wilc_wfi_deinit_mon_interface(wilc, false); - flush_workqueue(wilc->hif_workqueue); destroy_workqueue(wilc->hif_workqueue); - while (ifc_cnt < WILC_NUM_CONCURRENT_IFC) { - mutex_lock(&wilc->vif_mutex); - if (wilc->vif_num <= 0) { - mutex_unlock(&wilc->vif_mutex); - break; - } - vif = wilc_get_wl_to_vif(wilc); - if (!IS_ERR(vif)) - list_del_rcu(&vif->list); - - wilc->vif_num--; - mutex_unlock(&wilc->vif_mutex); - synchronize_srcu(&wilc->srcu); - ifc_cnt++; - } - wilc_wlan_cfg_deinit(wilc); wlan_deinit_locks(wilc); kfree(wilc->bus_data); diff -Nru linux-5.10.209/drivers/net/wireless/quantenna/qtnfmac/core.c linux-5.10.216/drivers/net/wireless/quantenna/qtnfmac/core.c --- linux-5.10.209/drivers/net/wireless/quantenna/qtnfmac/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/quantenna/qtnfmac/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -816,13 +816,11 @@ bus->fw_state = QTNF_FW_STATE_DETACHED; if (bus->workqueue) { - flush_workqueue(bus->workqueue); destroy_workqueue(bus->workqueue); bus->workqueue = NULL; } if (bus->hprio_workqueue) { - flush_workqueue(bus->hprio_workqueue); destroy_workqueue(bus->hprio_workqueue); bus->hprio_workqueue = NULL; } diff -Nru linux-5.10.209/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c linux-5.10.216/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c --- linux-5.10.209/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c 2024-05-02 14:23:46.000000000 +0000 @@ -387,7 +387,6 @@ return 0; error: - flush_workqueue(pcie_priv->workqueue); destroy_workqueue(pcie_priv->workqueue); pci_set_drvdata(pdev, NULL); return ret; @@ -416,7 +415,6 @@ qtnf_core_detach(bus); netif_napi_del(&bus->mux_napi); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); tasklet_kill(&priv->reclaim_tq); diff -Nru linux-5.10.209/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c linux-5.10.216/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c --- linux-5.10.209/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -101,6 +101,7 @@ rt2x00link_stop_tuner(rt2x00dev); rt2x00queue_stop_queues(rt2x00dev); rt2x00queue_flush_queues(rt2x00dev, true); + rt2x00queue_stop_queue(rt2x00dev->bcn); /* * Disable radio. @@ -1272,6 +1273,7 @@ rt2x00dev->intf_ap_count = 0; rt2x00dev->intf_sta_count = 0; rt2x00dev->intf_associated = 0; + rt2x00dev->intf_beaconing = 0; /* Enable the radio */ retval = rt2x00lib_enable_radio(rt2x00dev); @@ -1298,6 +1300,7 @@ rt2x00dev->intf_ap_count = 0; rt2x00dev->intf_sta_count = 0; rt2x00dev->intf_associated = 0; + rt2x00dev->intf_beaconing = 0; } static inline void rt2x00lib_set_if_combinations(struct rt2x00_dev *rt2x00dev) diff -Nru linux-5.10.209/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c linux-5.10.216/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c --- linux-5.10.209/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c 2024-05-02 14:23:46.000000000 +0000 @@ -599,6 +599,17 @@ */ if (changes & BSS_CHANGED_BEACON_ENABLED) { mutex_lock(&intf->beacon_skb_mutex); + + /* + * Clear the 'enable_beacon' flag and clear beacon because + * the beacon queue has been stopped after hardware reset. + */ + if (test_bit(DEVICE_STATE_RESET, &rt2x00dev->flags) && + intf->enable_beacon) { + intf->enable_beacon = false; + rt2x00queue_clear_beacon(rt2x00dev, vif); + } + if (!bss_conf->enable_beacon && intf->enable_beacon) { rt2x00dev->intf_beaconing--; intf->enable_beacon = false; diff -Nru linux-5.10.209/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c linux-5.10.216/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c --- linux-5.10.209/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -6483,6 +6483,7 @@ if (priv->usb_interrupts) rtl8xxxu_write32(priv, REG_USB_HIMR, 0); + cancel_work_sync(&priv->c2hcmd_work); cancel_delayed_work_sync(&priv->ra_watchdog); rtl8xxxu_free_rx_resources(priv); @@ -6973,6 +6974,18 @@ .driver_info = (unsigned long)&rtl8192eu_fops}, {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x818c, 0xff, 0xff, 0xff), .driver_info = (unsigned long)&rtl8192eu_fops}, +/* D-Link DWA-131 rev C1 */ +{USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3312, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8192eu_fops}, +/* TP-Link TL-WN8200ND V2 */ +{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0126, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8192eu_fops}, +/* Mercusys MW300UM */ +{USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x0100, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8192eu_fops}, +/* Mercusys MW300UH */ +{USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x0104, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8192eu_fops}, #endif { } }; diff -Nru linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/pci.c linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/pci.c --- linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/pci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/pci.c 2024-05-02 14:23:46.000000000 +0000 @@ -1704,7 +1704,6 @@ tasklet_kill(&rtlpriv->works.irq_tasklet); cancel_work_sync(&rtlpriv->works.lps_change_work); - flush_workqueue(rtlpriv->works.rtl_wq); destroy_workqueue(rtlpriv->works.rtl_wq); } diff -Nru linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c --- linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c 2024-05-02 14:23:46.000000000 +0000 @@ -49,7 +49,7 @@ rfpath, regaddr); } - bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + bitshift = calculate_bit_shift(bitmask); readback_value = (original_value & bitmask) >> bitshift; spin_unlock(&rtlpriv->locks.rf_lock); @@ -80,7 +80,7 @@ original_value = rtl8723_phy_rf_serial_read(hw, rfpath, regaddr); - bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + bitshift = calculate_bit_shift(bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); @@ -89,7 +89,7 @@ rtl8723_phy_rf_serial_write(hw, rfpath, regaddr, data); } else { if (bitmask != RFREG_OFFSET_MASK) { - bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + bitshift = calculate_bit_shift(bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); diff -Nru linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c --- linux-5.10.209/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c 2024-05-02 14:23:46.000000000 +0000 @@ -41,7 +41,7 @@ spin_lock(&rtlpriv->locks.rf_lock); original_value = rtl8723_phy_rf_serial_read(hw, rfpath, regaddr); - bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + bitshift = calculate_bit_shift(bitmask); readback_value = (original_value & bitmask) >> bitshift; spin_unlock(&rtlpriv->locks.rf_lock); @@ -68,7 +68,7 @@ if (bitmask != RFREG_OFFSET_MASK) { original_value = rtl8723_phy_rf_serial_read(hw, path, regaddr); - bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + bitshift = calculate_bit_shift(bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); } diff -Nru linux-5.10.209/drivers/net/wireless/realtek/rtw88/rtw8821c.c linux-5.10.216/drivers/net/wireless/realtek/rtw88/rtw8821c.c --- linux-5.10.209/drivers/net/wireless/realtek/rtw88/rtw8821c.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/realtek/rtw88/rtw8821c.c 2024-05-02 14:23:46.000000000 +0000 @@ -579,9 +579,9 @@ dm_info->cck_fa_cnt = cck_fa_cnt; dm_info->ofdm_fa_cnt = ofdm_fa_cnt; + dm_info->total_fa_cnt = ofdm_fa_cnt; if (cck_enable) dm_info->total_fa_cnt += cck_fa_cnt; - dm_info->total_fa_cnt = ofdm_fa_cnt; crc32_cnt = rtw_read32(rtwdev, REG_CRC_CCK); dm_info->cck_ok_cnt = FIELD_GET(GENMASK(15, 0), crc32_cnt); diff -Nru linux-5.10.209/drivers/net/wireless/rndis_wlan.c linux-5.10.216/drivers/net/wireless/rndis_wlan.c --- linux-5.10.209/drivers/net/wireless/rndis_wlan.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/rndis_wlan.c 2024-05-02 14:23:46.000000000 +0000 @@ -3497,7 +3497,6 @@ cancel_delayed_work_sync(&priv->dev_poller_work); cancel_delayed_work_sync(&priv->scan_work); cancel_work_sync(&priv->work); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); wiphy_free(wiphy); @@ -3514,7 +3513,6 @@ cancel_delayed_work_sync(&priv->dev_poller_work); cancel_delayed_work_sync(&priv->scan_work); cancel_work_sync(&priv->work); - flush_workqueue(priv->workqueue); destroy_workqueue(priv->workqueue); rndis_unbind(usbdev, intf); diff -Nru linux-5.10.209/drivers/net/wireless/st/cw1200/bh.c linux-5.10.216/drivers/net/wireless/st/cw1200/bh.c --- linux-5.10.209/drivers/net/wireless/st/cw1200/bh.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/wireless/st/cw1200/bh.c 2024-05-02 14:23:46.000000000 +0000 @@ -88,8 +88,6 @@ atomic_add(1, &priv->bh_term); wake_up(&priv->bh_wq); - flush_workqueue(priv->bh_workqueue); - destroy_workqueue(priv->bh_workqueue); priv->bh_workqueue = NULL; diff -Nru linux-5.10.209/drivers/net/xen-netback/netback.c linux-5.10.216/drivers/net/xen-netback/netback.c --- linux-5.10.209/drivers/net/xen-netback/netback.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/net/xen-netback/netback.c 2024-05-02 14:23:46.000000000 +0000 @@ -104,13 +104,12 @@ module_param(provides_xdp_headroom, bool, 0644); static void xenvif_idx_release(struct xenvif_queue *queue, u16 pending_idx, - u8 status); + s8 status); static void make_tx_response(struct xenvif_queue *queue, - struct xen_netif_tx_request *txp, + const struct xen_netif_tx_request *txp, unsigned int extra_count, - s8 st); -static void push_tx_responses(struct xenvif_queue *queue); + s8 status); static void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx); @@ -208,13 +207,9 @@ unsigned int extra_count, RING_IDX end) { RING_IDX cons = queue->tx.req_cons; - unsigned long flags; do { - spin_lock_irqsave(&queue->response_lock, flags); make_tx_response(queue, txp, extra_count, XEN_NETIF_RSP_ERROR); - push_tx_responses(queue); - spin_unlock_irqrestore(&queue->response_lock, flags); if (cons == end) break; RING_COPY_REQUEST(&queue->tx, cons++, txp); @@ -465,12 +460,7 @@ for (shinfo->nr_frags = 0; nr_slots > 0 && shinfo->nr_frags < MAX_SKB_FRAGS; nr_slots--) { if (unlikely(!txp->size)) { - unsigned long flags; - - spin_lock_irqsave(&queue->response_lock, flags); make_tx_response(queue, txp, 0, XEN_NETIF_RSP_OKAY); - push_tx_responses(queue); - spin_unlock_irqrestore(&queue->response_lock, flags); ++txp; continue; } @@ -496,14 +486,8 @@ for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; ++txp) { if (unlikely(!txp->size)) { - unsigned long flags; - - spin_lock_irqsave(&queue->response_lock, flags); make_tx_response(queue, txp, 0, XEN_NETIF_RSP_OKAY); - push_tx_responses(queue); - spin_unlock_irqrestore(&queue->response_lock, - flags); continue; } @@ -997,7 +981,6 @@ (ret == 0) ? XEN_NETIF_RSP_OKAY : XEN_NETIF_RSP_ERROR); - push_tx_responses(queue); continue; } @@ -1009,7 +992,6 @@ make_tx_response(queue, &txreq, extra_count, XEN_NETIF_RSP_OKAY); - push_tx_responses(queue); continue; } @@ -1444,8 +1426,35 @@ return work_done; } +static void _make_tx_response(struct xenvif_queue *queue, + const struct xen_netif_tx_request *txp, + unsigned int extra_count, + s8 status) +{ + RING_IDX i = queue->tx.rsp_prod_pvt; + struct xen_netif_tx_response *resp; + + resp = RING_GET_RESPONSE(&queue->tx, i); + resp->id = txp->id; + resp->status = status; + + while (extra_count-- != 0) + RING_GET_RESPONSE(&queue->tx, ++i)->status = XEN_NETIF_RSP_NULL; + + queue->tx.rsp_prod_pvt = ++i; +} + +static void push_tx_responses(struct xenvif_queue *queue) +{ + int notify; + + RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&queue->tx, notify); + if (notify) + notify_remote_via_irq(queue->tx_irq); +} + static void xenvif_idx_release(struct xenvif_queue *queue, u16 pending_idx, - u8 status) + s8 status) { struct pending_tx_info *pending_tx_info; pending_ring_idx_t index; @@ -1455,8 +1464,8 @@ spin_lock_irqsave(&queue->response_lock, flags); - make_tx_response(queue, &pending_tx_info->req, - pending_tx_info->extra_count, status); + _make_tx_response(queue, &pending_tx_info->req, + pending_tx_info->extra_count, status); /* Release the pending index before pusing the Tx response so * its available before a new Tx request is pushed by the @@ -1470,32 +1479,19 @@ spin_unlock_irqrestore(&queue->response_lock, flags); } - static void make_tx_response(struct xenvif_queue *queue, - struct xen_netif_tx_request *txp, + const struct xen_netif_tx_request *txp, unsigned int extra_count, - s8 st) + s8 status) { - RING_IDX i = queue->tx.rsp_prod_pvt; - struct xen_netif_tx_response *resp; - - resp = RING_GET_RESPONSE(&queue->tx, i); - resp->id = txp->id; - resp->status = st; - - while (extra_count-- != 0) - RING_GET_RESPONSE(&queue->tx, ++i)->status = XEN_NETIF_RSP_NULL; + unsigned long flags; - queue->tx.rsp_prod_pvt = ++i; -} + spin_lock_irqsave(&queue->response_lock, flags); -static void push_tx_responses(struct xenvif_queue *queue) -{ - int notify; + _make_tx_response(queue, txp, extra_count, status); + push_tx_responses(queue); - RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&queue->tx, notify); - if (notify) - notify_remote_via_irq(queue->tx_irq); + spin_unlock_irqrestore(&queue->response_lock, flags); } static void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx) diff -Nru linux-5.10.209/drivers/nfc/trf7970a.c linux-5.10.216/drivers/nfc/trf7970a.c --- linux-5.10.209/drivers/nfc/trf7970a.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nfc/trf7970a.c 2024-05-02 14:23:46.000000000 +0000 @@ -424,7 +424,8 @@ enum trf7970a_state state; struct device *dev; struct spi_device *spi; - struct regulator *regulator; + struct regulator *vin_regulator; + struct regulator *vddio_regulator; struct nfc_digital_dev *ddev; u32 quirks; bool is_initiator; @@ -1882,7 +1883,7 @@ if (trf->state != TRF7970A_ST_PWR_OFF) return 0; - ret = regulator_enable(trf->regulator); + ret = regulator_enable(trf->vin_regulator); if (ret) { dev_err(trf->dev, "%s - Can't enable VIN: %d\n", __func__, ret); return ret; @@ -1925,7 +1926,7 @@ if (trf->en2_gpiod && !(trf->quirks & TRF7970A_QUIRK_EN2_MUST_STAY_LOW)) gpiod_set_value_cansleep(trf->en2_gpiod, 0); - ret = regulator_disable(trf->regulator); + ret = regulator_disable(trf->vin_regulator); if (ret) dev_err(trf->dev, "%s - Can't disable VIN: %d\n", __func__, ret); @@ -2064,37 +2065,37 @@ mutex_init(&trf->lock); INIT_DELAYED_WORK(&trf->timeout_work, trf7970a_timeout_work_handler); - trf->regulator = devm_regulator_get(&spi->dev, "vin"); - if (IS_ERR(trf->regulator)) { - ret = PTR_ERR(trf->regulator); + trf->vin_regulator = devm_regulator_get(&spi->dev, "vin"); + if (IS_ERR(trf->vin_regulator)) { + ret = PTR_ERR(trf->vin_regulator); dev_err(trf->dev, "Can't get VIN regulator: %d\n", ret); goto err_destroy_lock; } - ret = regulator_enable(trf->regulator); + ret = regulator_enable(trf->vin_regulator); if (ret) { dev_err(trf->dev, "Can't enable VIN: %d\n", ret); goto err_destroy_lock; } - uvolts = regulator_get_voltage(trf->regulator); + uvolts = regulator_get_voltage(trf->vin_regulator); if (uvolts > 4000000) trf->chip_status_ctrl = TRF7970A_CHIP_STATUS_VRS5_3; - trf->regulator = devm_regulator_get(&spi->dev, "vdd-io"); - if (IS_ERR(trf->regulator)) { - ret = PTR_ERR(trf->regulator); + trf->vddio_regulator = devm_regulator_get(&spi->dev, "vdd-io"); + if (IS_ERR(trf->vddio_regulator)) { + ret = PTR_ERR(trf->vddio_regulator); dev_err(trf->dev, "Can't get VDD_IO regulator: %d\n", ret); - goto err_destroy_lock; + goto err_disable_vin_regulator; } - ret = regulator_enable(trf->regulator); + ret = regulator_enable(trf->vddio_regulator); if (ret) { dev_err(trf->dev, "Can't enable VDD_IO: %d\n", ret); - goto err_destroy_lock; + goto err_disable_vin_regulator; } - if (regulator_get_voltage(trf->regulator) == 1800000) { + if (regulator_get_voltage(trf->vddio_regulator) == 1800000) { trf->io_ctrl = TRF7970A_REG_IO_CTRL_IO_LOW; dev_dbg(trf->dev, "trf7970a config vdd_io to 1.8V\n"); } @@ -2107,7 +2108,7 @@ if (!trf->ddev) { dev_err(trf->dev, "Can't allocate NFC digital device\n"); ret = -ENOMEM; - goto err_disable_regulator; + goto err_disable_vddio_regulator; } nfc_digital_set_parent_dev(trf->ddev, trf->dev); @@ -2136,8 +2137,10 @@ trf7970a_shutdown(trf); err_free_ddev: nfc_digital_free_device(trf->ddev); -err_disable_regulator: - regulator_disable(trf->regulator); +err_disable_vddio_regulator: + regulator_disable(trf->vddio_regulator); +err_disable_vin_regulator: + regulator_disable(trf->vin_regulator); err_destroy_lock: mutex_destroy(&trf->lock); return ret; @@ -2156,7 +2159,8 @@ nfc_digital_unregister_device(trf->ddev); nfc_digital_free_device(trf->ddev); - regulator_disable(trf->regulator); + regulator_disable(trf->vddio_regulator); + regulator_disable(trf->vin_regulator); mutex_destroy(&trf->lock); diff -Nru linux-5.10.209/drivers/nvme/host/fc.c linux-5.10.216/drivers/nvme/host/fc.c --- linux-5.10.209/drivers/nvme/host/fc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvme/host/fc.c 2024-05-02 14:23:46.000000000 +0000 @@ -220,11 +220,6 @@ static DEFINE_IDA(nvme_fc_local_port_cnt); static DEFINE_IDA(nvme_fc_ctrl_cnt); -static struct workqueue_struct *nvme_fc_wq; - -static bool nvme_fc_waiting_to_unload; -static DECLARE_COMPLETION(nvme_fc_unload_proceed); - /* * These items are short-term. They will eventually be moved into * a generic FC class. See comments in module init. @@ -254,8 +249,6 @@ /* remove from transport list */ spin_lock_irqsave(&nvme_fc_lock, flags); list_del(&lport->port_list); - if (nvme_fc_waiting_to_unload && list_empty(&nvme_fc_lport_list)) - complete(&nvme_fc_unload_proceed); spin_unlock_irqrestore(&nvme_fc_lock, flags); ida_simple_remove(&nvme_fc_local_port_cnt, lport->localport.port_num); @@ -3823,10 +3816,6 @@ { int ret; - nvme_fc_wq = alloc_workqueue("nvme_fc_wq", WQ_MEM_RECLAIM, 0); - if (!nvme_fc_wq) - return -ENOMEM; - /* * NOTE: * It is expected that in the future the kernel will combine @@ -3844,7 +3833,7 @@ ret = class_register(&fc_class); if (ret) { pr_err("couldn't register class fc\n"); - goto out_destroy_wq; + return ret; } /* @@ -3868,8 +3857,6 @@ device_destroy(&fc_class, MKDEV(0, 0)); out_destroy_class: class_unregister(&fc_class); -out_destroy_wq: - destroy_workqueue(nvme_fc_wq); return ret; } @@ -3889,45 +3876,23 @@ spin_unlock(&rport->lock); } -static void -nvme_fc_cleanup_for_unload(void) +static void __exit nvme_fc_exit_module(void) { struct nvme_fc_lport *lport; struct nvme_fc_rport *rport; - - list_for_each_entry(lport, &nvme_fc_lport_list, port_list) { - list_for_each_entry(rport, &lport->endp_list, endp_list) { - nvme_fc_delete_controllers(rport); - } - } -} - -static void __exit nvme_fc_exit_module(void) -{ unsigned long flags; - bool need_cleanup = false; spin_lock_irqsave(&nvme_fc_lock, flags); - nvme_fc_waiting_to_unload = true; - if (!list_empty(&nvme_fc_lport_list)) { - need_cleanup = true; - nvme_fc_cleanup_for_unload(); - } + list_for_each_entry(lport, &nvme_fc_lport_list, port_list) + list_for_each_entry(rport, &lport->endp_list, endp_list) + nvme_fc_delete_controllers(rport); spin_unlock_irqrestore(&nvme_fc_lock, flags); - if (need_cleanup) { - pr_info("%s: waiting for ctlr deletes\n", __func__); - wait_for_completion(&nvme_fc_unload_proceed); - pr_info("%s: ctrl deletes complete\n", __func__); - } + flush_workqueue(nvme_delete_wq); nvmf_unregister_transport(&nvme_fc_transport); - ida_destroy(&nvme_fc_local_port_cnt); - ida_destroy(&nvme_fc_ctrl_cnt); - device_destroy(&fc_class, MKDEV(0, 0)); class_unregister(&fc_class); - destroy_workqueue(nvme_fc_wq); } module_init(nvme_fc_init_module); diff -Nru linux-5.10.209/drivers/nvme/host/pci.c linux-5.10.216/drivers/nvme/host/pci.c --- linux-5.10.209/drivers/nvme/host/pci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvme/host/pci.c 2024-05-02 14:23:46.000000000 +0000 @@ -3199,6 +3199,9 @@ NVME_QUIRK_BOGUS_NID, }, { PCI_VDEVICE(REDHAT, 0x0010), /* Qemu emulated controller */ .driver_data = NVME_QUIRK_BOGUS_NID, }, + { PCI_DEVICE(0x126f, 0x2262), /* Silicon Motion generic */ + .driver_data = NVME_QUIRK_NO_DEEPEST_PS | + NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x126f, 0x2263), /* Silicon Motion unidentified */ .driver_data = NVME_QUIRK_NO_NS_DESC_LIST, }, { PCI_DEVICE(0x1bb1, 0x0100), /* Seagate Nytro Flash Storage */ diff -Nru linux-5.10.209/drivers/nvme/target/fc.c linux-5.10.216/drivers/nvme/target/fc.c --- linux-5.10.209/drivers/nvme/target/fc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvme/target/fc.c 2024-05-02 14:23:46.000000000 +0000 @@ -357,7 +357,7 @@ if (!lsop->req_queued) { spin_unlock_irqrestore(&tgtport->lock, flags); - return; + goto out_puttgtport; } list_del(&lsop->lsreq_list); @@ -370,6 +370,7 @@ (lsreq->rqstlen + lsreq->rsplen), DMA_BIDIRECTIONAL); +out_puttgtport: nvmet_fc_tgtport_put(tgtport); } @@ -1101,6 +1102,9 @@ int idx; bool needrandom = true; + if (!tgtport->pe) + return NULL; + assoc = kzalloc(sizeof(*assoc), GFP_KERNEL); if (!assoc) return NULL; @@ -2528,8 +2532,9 @@ fod->req.cmd = &fod->cmdiubuf.sqe; fod->req.cqe = &fod->rspiubuf.cqe; - if (tgtport->pe) - fod->req.port = tgtport->pe->port; + if (!tgtport->pe) + goto transport_error; + fod->req.port = tgtport->pe->port; /* clear any response payload */ memset(&fod->rspiubuf, 0, sizeof(fod->rspiubuf)); diff -Nru linux-5.10.209/drivers/nvme/target/fcloop.c linux-5.10.216/drivers/nvme/target/fcloop.c --- linux-5.10.209/drivers/nvme/target/fcloop.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvme/target/fcloop.c 2024-05-02 14:23:46.000000000 +0000 @@ -358,7 +358,7 @@ if (!rport->targetport) { tls_req->status = -ECONNREFUSED; spin_lock(&rport->lock); - list_add_tail(&rport->ls_list, &tls_req->ls_list); + list_add_tail(&tls_req->ls_list, &rport->ls_list); spin_unlock(&rport->lock); schedule_work(&rport->ls_work); return ret; @@ -391,7 +391,7 @@ if (remoteport) { rport = remoteport->private; spin_lock(&rport->lock); - list_add_tail(&rport->ls_list, &tls_req->ls_list); + list_add_tail(&tls_req->ls_list, &rport->ls_list); spin_unlock(&rport->lock); schedule_work(&rport->ls_work); } @@ -446,7 +446,7 @@ if (!tport->remoteport) { tls_req->status = -ECONNREFUSED; spin_lock(&tport->lock); - list_add_tail(&tport->ls_list, &tls_req->ls_list); + list_add_tail(&tls_req->ls_list, &tport->ls_list); spin_unlock(&tport->lock); schedule_work(&tport->ls_work); return ret; diff -Nru linux-5.10.209/drivers/nvme/target/tcp.c linux-5.10.216/drivers/nvme/target/tcp.c --- linux-5.10.209/drivers/nvme/target/tcp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvme/target/tcp.c 2024-05-02 14:23:46.000000000 +0000 @@ -1852,6 +1852,7 @@ flush_scheduled_work(); destroy_workqueue(nvmet_tcp_wq); + ida_destroy(&nvmet_tcp_queue_ida); } module_init(nvmet_tcp_init); diff -Nru linux-5.10.209/drivers/nvmem/meson-efuse.c linux-5.10.216/drivers/nvmem/meson-efuse.c --- linux-5.10.209/drivers/nvmem/meson-efuse.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/nvmem/meson-efuse.c 2024-05-02 14:23:46.000000000 +0000 @@ -47,7 +47,6 @@ struct nvmem_config *econfig; struct clk *clk; unsigned int size; - int ret; sm_np = of_parse_phandle(pdev->dev.of_node, "secure-monitor", 0); if (!sm_np) { @@ -60,27 +59,9 @@ if (!fw) return -EPROBE_DEFER; - clk = devm_clk_get(dev, NULL); - if (IS_ERR(clk)) { - ret = PTR_ERR(clk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get efuse gate"); - return ret; - } - - ret = clk_prepare_enable(clk); - if (ret) { - dev_err(dev, "failed to enable gate"); - return ret; - } - - ret = devm_add_action_or_reset(dev, - (void(*)(void *))clk_disable_unprepare, - clk); - if (ret) { - dev_err(dev, "failed to add disable callback"); - return ret; - } + clk = devm_clk_get_enabled(dev, NULL); + if (IS_ERR(clk)) + return dev_err_probe(dev, PTR_ERR(clk), "failed to get efuse gate"); if (meson_sm_call(fw, SM_EFUSE_USER_MAX, &size, 0, 0, 0, 0, 0) < 0) { dev_err(dev, "failed to get max user"); diff -Nru linux-5.10.209/drivers/of/dynamic.c linux-5.10.216/drivers/of/dynamic.c --- linux-5.10.209/drivers/of/dynamic.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/of/dynamic.c 2024-05-02 14:23:46.000000000 +0000 @@ -9,6 +9,7 @@ #define pr_fmt(fmt) "OF: " fmt +#include #include #include #include @@ -675,6 +676,17 @@ { struct of_changeset_entry *ce, *cen; + /* + * When a device is deleted, the device links to/from it are also queued + * for deletion. Until these device links are freed, the devices + * themselves aren't freed. If the device being deleted is due to an + * overlay change, this device might be holding a reference to a device + * node that will be freed. So, wait until all already pending device + * links are deleted before freeing a device node. This ensures we don't + * free any device node that has a non-zero reference count. + */ + device_link_wait_removal(); + list_for_each_entry_safe_reverse(ce, cen, &ocs->entries, node) __of_changeset_entry_destroy(ce); } diff -Nru linux-5.10.209/drivers/of/property.c linux-5.10.216/drivers/of/property.c --- linux-5.10.209/drivers/of/property.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/of/property.c 2024-05-02 14:23:46.000000000 +0000 @@ -1306,7 +1306,7 @@ DEFINE_SIMPLE_PROP(interconnects, "interconnects", "#interconnect-cells") DEFINE_SIMPLE_PROP(iommus, "iommus", "#iommu-cells") DEFINE_SIMPLE_PROP(mboxes, "mboxes", "#mbox-cells") -DEFINE_SIMPLE_PROP(io_channels, "io-channel", "#io-channel-cells") +DEFINE_SIMPLE_PROP(io_channels, "io-channels", "#io-channel-cells") DEFINE_SIMPLE_PROP(interrupt_parent, "interrupt-parent", NULL) DEFINE_SIMPLE_PROP(dmas, "dmas", "#dma-cells") DEFINE_SIMPLE_PROP(power_domains, "power-domains", "#power-domain-cells") diff -Nru linux-5.10.209/drivers/of/unittest.c linux-5.10.216/drivers/of/unittest.c --- linux-5.10.209/drivers/of/unittest.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/of/unittest.c 2024-05-02 14:23:46.000000000 +0000 @@ -48,6 +48,12 @@ failed; \ }) +#ifdef CONFIG_OF_KOBJ +#define OF_KREF_READ(NODE) kref_read(&(NODE)->kobj.kref) +#else +#define OF_KREF_READ(NODE) 1 +#endif + /* * Expected message may have a message level other than KERN_INFO. * Print the expected message only if the current loglevel will allow @@ -561,7 +567,7 @@ pr_err("missing testcase data\n"); return; } - prefs[i] = kref_read(&p[i]->kobj.kref); + prefs[i] = OF_KREF_READ(p[i]); } rc = of_count_phandle_with_args(np, "phandle-list", "#phandle-cells"); @@ -684,9 +690,9 @@ unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); for (i = 0; i < ARRAY_SIZE(p); ++i) { - unittest(prefs[i] == kref_read(&p[i]->kobj.kref), + unittest(prefs[i] == OF_KREF_READ(p[i]), "provider%d: expected:%d got:%d\n", - i, prefs[i], kref_read(&p[i]->kobj.kref)); + i, prefs[i], OF_KREF_READ(p[i])); of_node_put(p[i]); } } diff -Nru linux-5.10.209/drivers/opp/debugfs.c linux-5.10.216/drivers/opp/debugfs.c --- linux-5.10.209/drivers/opp/debugfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/opp/debugfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -36,10 +36,12 @@ size_t count, loff_t *ppos) { struct icc_path *path = fp->private_data; + const char *name = icc_get_name(path); char buf[64]; - int i; + int i = 0; - i = scnprintf(buf, sizeof(buf), "%.62s\n", icc_get_name(path)); + if (name) + i = scnprintf(buf, sizeof(buf), "%.62s\n", name); return simple_read_from_buffer(userbuf, count, ppos, buf, i); } diff -Nru linux-5.10.209/drivers/pci/controller/dwc/pcie-designware-ep.c linux-5.10.216/drivers/pci/controller/dwc/pcie-designware-ep.c --- linux-5.10.209/drivers/pci/controller/dwc/pcie-designware-ep.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/controller/dwc/pcie-designware-ep.c 2024-05-02 14:23:46.000000000 +0000 @@ -6,6 +6,7 @@ * Author: Kishon Vijay Abraham I */ +#include #include #include "pcie-designware.h" @@ -593,6 +594,7 @@ } aligned_offset = msg_addr & (epc->mem->window.page_size - 1); + msg_addr = ALIGN_DOWN(msg_addr, epc->mem->window.page_size); ret = dw_pcie_ep_map_addr(epc, func_no, ep->msi_mem_phys, msg_addr, epc->mem->window.page_size); if (ret) @@ -660,8 +662,13 @@ nbars = (reg & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT; + /* + * PCIe r6.0, sec 7.8.6.2 require us to support at least one + * size in the range from 1 MB to 512 GB. Advertise support + * for 1 MB BAR size only. + */ for (i = 0; i < nbars; i++, offset += PCI_REBAR_CTRL) - dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, 0x0); + dw_pcie_writel_dbi(pci, offset + PCI_REBAR_CAP, BIT(4)); } dw_pcie_setup(pci); diff -Nru linux-5.10.209/drivers/pci/controller/pcie-mediatek.c linux-5.10.216/drivers/pci/controller/pcie-mediatek.c --- linux-5.10.209/drivers/pci/controller/pcie-mediatek.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/controller/pcie-mediatek.c 2024-05-02 14:23:46.000000000 +0000 @@ -620,14 +620,20 @@ if (status & MSI_STATUS){ unsigned long imsi_status; + /* + * The interrupt status can be cleared even if the + * MSI status remains pending. As such, given the + * edge-triggered interrupt type, its status should + * be cleared before being dispatched to the + * handler of the underlying device. + */ + writel(MSI_STATUS, port->base + PCIE_INT_STATUS); while ((imsi_status = readl(port->base + PCIE_IMSI_STATUS))) { for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM) { virq = irq_find_mapping(port->inner_domain, bit); generic_handle_irq(virq); } } - /* Clear MSI interrupt status */ - writel(MSI_STATUS, port->base + PCIE_INT_STATUS); } } diff -Nru linux-5.10.209/drivers/pci/msi.c linux-5.10.216/drivers/pci/msi.c --- linux-5.10.209/drivers/pci/msi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/msi.c 2024-05-02 14:23:46.000000000 +0000 @@ -1409,7 +1409,7 @@ return (irq_hw_number_t)desc->msi_attrib.entry_nr | pci_dev_id(dev) << 11 | - (pci_domain_nr(dev->bus) & 0xFFFFFFFF) << 27; + ((irq_hw_number_t)(pci_domain_nr(dev->bus) & 0xFFFFFFFF)) << 27; } static inline bool pci_msi_desc_is_multi_msi(struct msi_desc *desc) diff -Nru linux-5.10.209/drivers/pci/pci-driver.c linux-5.10.216/drivers/pci/pci-driver.c --- linux-5.10.209/drivers/pci/pci-driver.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pci-driver.c 2024-05-02 14:23:46.000000000 +0000 @@ -444,16 +444,21 @@ struct pci_dev *pci_dev = to_pci_dev(dev); struct pci_driver *drv = pci_dev->driver; - if (drv) { - if (drv->remove) { - pm_runtime_get_sync(dev); - drv->remove(pci_dev); - pm_runtime_put_noidle(dev); - } - pcibios_free_irq(pci_dev); - pci_dev->driver = NULL; - pci_iov_remove(pci_dev); + if (drv->remove) { + pm_runtime_get_sync(dev); + /* + * If the driver provides a .runtime_idle() callback and it has + * started to run already, it may continue to run in parallel + * with the code below, so wait until all of the runtime PM + * activity has completed. + */ + pm_runtime_barrier(dev); + drv->remove(pci_dev); + pm_runtime_put_noidle(dev); } + pcibios_free_irq(pci_dev); + pci_dev->driver = NULL; + pci_iov_remove(pci_dev); /* Undo the runtime PM settings in local_pci_probe() */ pm_runtime_put_sync(dev); diff -Nru linux-5.10.209/drivers/pci/pci.c linux-5.10.216/drivers/pci/pci.c --- linux-5.10.209/drivers/pci/pci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pci.c 2024-05-02 14:23:46.000000000 +0000 @@ -31,6 +31,7 @@ #include #include #include +#include #include "pci.h" DEFINE_MUTEX(pci_slot_mutex); @@ -4572,13 +4573,10 @@ */ bool pcie_has_flr(struct pci_dev *dev) { - u32 cap; - if (dev->dev_flags & PCI_DEV_FLAGS_NO_FLR_RESET) return false; - pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &cap); - return cap & PCI_EXP_DEVCAP_FLR; + return FIELD_GET(PCI_EXP_DEVCAP_FLR, dev->devcap) == 1; } EXPORT_SYMBOL_GPL(pcie_has_flr); diff -Nru linux-5.10.209/drivers/pci/pci.h linux-5.10.216/drivers/pci/pci.h --- linux-5.10.209/drivers/pci/pci.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pci.h 2024-05-02 14:23:46.000000000 +0000 @@ -399,11 +399,6 @@ return 0; } -static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) -{ - return dev->error_state == pci_channel_io_perm_failure; -} - /* pci_dev priv_flags */ #define PCI_DEV_ADDED 0 #define PCI_DPC_RECOVERED 1 @@ -447,6 +442,15 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info); #endif /* CONFIG_PCIEAER */ +#ifdef CONFIG_PCIEPORTBUS +/* Cached RCEC Endpoint Association */ +struct rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; +#endif + #ifdef CONFIG_PCIE_DPC void pci_save_dpc_state(struct pci_dev *dev); void pci_restore_dpc_state(struct pci_dev *dev); @@ -461,6 +465,14 @@ static inline bool pci_dpc_recovered(struct pci_dev *pdev) { return false; } #endif +#ifdef CONFIG_PCIEPORTBUS +void pci_rcec_init(struct pci_dev *dev); +void pci_rcec_exit(struct pci_dev *dev); +#else +static inline void pci_rcec_init(struct pci_dev *dev) {} +static inline void pci_rcec_exit(struct pci_dev *dev) {} +#endif + #ifdef CONFIG_PCI_ATS /* Address Translation Service */ void pci_ats_init(struct pci_dev *dev); diff -Nru linux-5.10.209/drivers/pci/pcie/Makefile linux-5.10.216/drivers/pci/pcie/Makefile --- linux-5.10.209/drivers/pci/pcie/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pcie/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -2,7 +2,7 @@ # # Makefile for PCI Express features and port driver -pcieportdrv-y := portdrv_core.o portdrv_pci.o err.o +pcieportdrv-y := portdrv_core.o portdrv_pci.o err.o rcec.o obj-$(CONFIG_PCIEPORTBUS) += pcieportdrv.o diff -Nru linux-5.10.209/drivers/pci/pcie/aer.c linux-5.10.216/drivers/pci/pcie/aer.c --- linux-5.10.209/drivers/pci/pcie/aer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pcie/aer.c 2024-05-02 14:23:46.000000000 +0000 @@ -741,7 +741,7 @@ u8 bus = info->id >> 8; u8 devfn = info->id & 0xff; - pci_info(dev, "%s%s error received: %04x:%02x:%02x.%d\n", + pci_info(dev, "%s%s error message received from %04x:%02x:%02x.%d\n", info->multi_error_valid ? "Multiple " : "", aer_error_severity_string[info->severity], pci_domain_nr(dev->bus), bus, PCI_SLOT(devfn), @@ -926,7 +926,12 @@ pci_walk_bus(parent->subordinate, find_device_iter, e_info); if (!e_info->error_dev_num) { - pci_info(parent, "can't find device of ID%04x\n", e_info->id); + u8 bus = e_info->id >> 8; + u8 devfn = e_info->id & 0xff; + + pci_info(parent, "found no error details for %04x:%02x:%02x.%d\n", + pci_domain_nr(parent->bus), bus, PCI_SLOT(devfn), + PCI_FUNC(devfn)); return false; } return true; diff -Nru linux-5.10.209/drivers/pci/pcie/dpc.c linux-5.10.216/drivers/pci/pcie/dpc.c --- linux-5.10.209/drivers/pci/pcie/dpc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pcie/dpc.c 2024-05-02 14:23:46.000000000 +0000 @@ -231,7 +231,7 @@ for (i = 0; i < pdev->dpc_rp_log_size - 5; i++) { pci_read_config_dword(pdev, - cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG, &prefix); + cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG + i * 4, &prefix); pci_err(pdev, "TLP Prefix Header: dw%d, %#010x\n", i, prefix); } clear_status: @@ -335,11 +335,16 @@ return; pdev->dpc_rp_extensions = true; - pdev->dpc_rp_log_size = (cap & PCI_EXP_DPC_RP_PIO_LOG_SIZE) >> 8; - if (pdev->dpc_rp_log_size < 4 || pdev->dpc_rp_log_size > 9) { - pci_err(pdev, "RP PIO log size %u is invalid\n", - pdev->dpc_rp_log_size); - pdev->dpc_rp_log_size = 0; + + /* Quirks may set dpc_rp_log_size if device or firmware is buggy */ + if (!pdev->dpc_rp_log_size) { + pdev->dpc_rp_log_size = + (cap & PCI_EXP_DPC_RP_PIO_LOG_SIZE) >> 8; + if (pdev->dpc_rp_log_size < 4 || pdev->dpc_rp_log_size > 9) { + pci_err(pdev, "RP PIO log size %u is invalid\n", + pdev->dpc_rp_log_size); + pdev->dpc_rp_log_size = 0; + } } } diff -Nru linux-5.10.209/drivers/pci/pcie/err.c linux-5.10.216/drivers/pci/pcie/err.c --- linux-5.10.209/drivers/pci/pcie/err.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/pcie/err.c 2024-05-02 14:23:46.000000000 +0000 @@ -13,6 +13,7 @@ #define dev_fmt(fmt) "AER: " fmt #include +#include #include #include #include @@ -79,6 +80,18 @@ return 0; } +static int pci_pm_runtime_get_sync(struct pci_dev *pdev, void *data) +{ + pm_runtime_get_sync(&pdev->dev); + return 0; +} + +static int pci_pm_runtime_put(struct pci_dev *pdev, void *data) +{ + pm_runtime_put(&pdev->dev); + return 0; +} + static int report_frozen_detected(struct pci_dev *dev, void *data) { return report_error_detected(dev, pci_channel_io_frozen, data); @@ -176,6 +189,7 @@ int type = pci_pcie_type(dev); struct pci_dev *bridge; pci_ers_result_t status = PCI_ERS_RESULT_CAN_RECOVER; + struct pci_host_bridge *host = pci_find_host_bridge(dev->bus); /* * If the error was detected by a Root Port, Downstream Port, or @@ -193,6 +207,8 @@ else bridge = pci_upstream_bridge(dev); + pci_walk_bridge(bridge, pci_pm_runtime_get_sync, NULL); + pci_dbg(bridge, "broadcast error_detected message\n"); if (state == pci_channel_io_frozen) { pci_walk_bridge(bridge, report_frozen_detected, &status); @@ -227,13 +243,26 @@ pci_dbg(bridge, "broadcast resume message\n"); pci_walk_bridge(bridge, report_resume, &status); - if (pcie_aer_is_native(bridge)) + /* + * If we have native control of AER, clear error status in the Root + * Port or Downstream Port that signaled the error. If the + * platform retained control of AER, it is responsible for clearing + * this status. In that case, the signaling device may not even be + * visible to the OS. + */ + if (host->native_aer || pcie_ports_native) { pcie_clear_device_status(bridge); - pci_aer_clear_nonfatal_status(bridge); + pci_aer_clear_nonfatal_status(bridge); + } + + pci_walk_bridge(bridge, pci_pm_runtime_put, NULL); + pci_info(bridge, "device recovery successful\n"); return status; failed: + pci_walk_bridge(bridge, pci_pm_runtime_put, NULL); + pci_uevent_ers(bridge, PCI_ERS_RESULT_DISCONNECT); /* TODO: Should kernel panic here? */ diff -Nru linux-5.10.209/drivers/pci/pcie/rcec.c linux-5.10.216/drivers/pci/pcie/rcec.c --- linux-5.10.209/drivers/pci/pcie/rcec.c 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/drivers/pci/pcie/rcec.c 2024-05-02 14:23:46.000000000 +0000 @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Root Complex Event Collector Support + * + * Authors: + * Sean V Kelley + * Qiuxu Zhuo + * + * Copyright (C) 2020 Intel Corp. + */ + +#include +#include +#include + +#include "../pci.h" + +void pci_rcec_init(struct pci_dev *dev) +{ + struct rcec_ea *rcec_ea; + u32 rcec, hdr, busn; + u8 ver; + + /* Only for Root Complex Event Collectors */ + if (pci_pcie_type(dev) != PCI_EXP_TYPE_RC_EC) + return; + + rcec = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_RCEC); + if (!rcec) + return; + + rcec_ea = kzalloc(sizeof(*rcec_ea), GFP_KERNEL); + if (!rcec_ea) + return; + + pci_read_config_dword(dev, rcec + PCI_RCEC_RCIEP_BITMAP, + &rcec_ea->bitmap); + + /* Check whether RCEC BUSN register is present */ + pci_read_config_dword(dev, rcec, &hdr); + ver = PCI_EXT_CAP_VER(hdr); + if (ver >= PCI_RCEC_BUSN_REG_VER) { + pci_read_config_dword(dev, rcec + PCI_RCEC_BUSN, &busn); + rcec_ea->nextbusn = PCI_RCEC_BUSN_NEXT(busn); + rcec_ea->lastbusn = PCI_RCEC_BUSN_LAST(busn); + } else { + /* Avoid later ver check by setting nextbusn */ + rcec_ea->nextbusn = 0xff; + rcec_ea->lastbusn = 0x00; + } + + dev->rcec_ea = rcec_ea; +} + +void pci_rcec_exit(struct pci_dev *dev) +{ + kfree(dev->rcec_ea); + dev->rcec_ea = NULL; +} diff -Nru linux-5.10.209/drivers/pci/probe.c linux-5.10.216/drivers/pci/probe.c --- linux-5.10.209/drivers/pci/probe.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/probe.c 2024-05-02 14:23:46.000000000 +0000 @@ -19,6 +19,7 @@ #include #include #include +#include #include "pci.h" #define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */ @@ -1496,8 +1497,8 @@ pdev->pcie_cap = pos; pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16); pdev->pcie_flags_reg = reg16; - pci_read_config_word(pdev, pos + PCI_EXP_DEVCAP, ®16); - pdev->pcie_mpss = reg16 & PCI_EXP_DEVCAP_PAYLOAD; + pci_read_config_dword(pdev, pos + PCI_EXP_DEVCAP, &pdev->devcap); + pdev->pcie_mpss = FIELD_GET(PCI_EXP_DEVCAP_PAYLOAD, pdev->devcap); parent = pci_upstream_bridge(pdev); if (!parent) @@ -2216,6 +2217,7 @@ static void pci_release_capabilities(struct pci_dev *dev) { pci_aer_exit(dev); + pci_rcec_exit(dev); pci_vpd_release(dev); pci_iov_release(dev); pci_free_cap_save_buffers(dev); @@ -2416,6 +2418,7 @@ pci_ptm_init(dev); /* Precision Time Measurement */ pci_aer_init(dev); /* Advanced Error Reporting */ pci_dpc_init(dev); /* Downstream Port Containment */ + pci_rcec_init(dev); /* Root Complex Event Collector */ pcie_report_downtraining(dev); diff -Nru linux-5.10.209/drivers/pci/quirks.c linux-5.10.216/drivers/pci/quirks.c --- linux-5.10.209/drivers/pci/quirks.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/quirks.c 2024-05-02 14:23:46.000000000 +0000 @@ -12,6 +12,7 @@ * file, where their drivers can use them. */ +#include #include #include #include @@ -609,10 +610,13 @@ { u32 class = pdev->class; - /* Use "USB Device (not host controller)" class */ - pdev->class = PCI_CLASS_SERIAL_USB_DEVICE; - pci_info(pdev, "PCI class overridden (%#08x -> %#08x) so dwc3 driver can claim this instead of xhci\n", - class, pdev->class); + if (class != PCI_CLASS_SERIAL_USB_DEVICE) { + /* Use "USB Device (not host controller)" class */ + pdev->class = PCI_CLASS_SERIAL_USB_DEVICE; + pci_info(pdev, + "PCI class overridden (%#08x -> %#08x) so dwc3 driver can claim this instead of xhci\n", + class, pdev->class); + } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB, quirk_amd_dwc_class); @@ -3639,6 +3643,19 @@ PCI_CLASS_DISPLAY_VGA, 8, quirk_no_pm_reset); /* + * Spectrum-{1,2,3,4} devices report that a D3hot->D0 transition causes a reset + * (i.e., they advertise NoSoftRst-). However, this transition does not have + * any effect on the device: It continues to be operational and network ports + * remain up. Advertising this support makes it seem as if a PM reset is viable + * for these devices. Mark it as unavailable to skip it when testing reset + * methods. + */ +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0xcb84, quirk_no_pm_reset); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0xcf6c, quirk_no_pm_reset); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0xcf70, quirk_no_pm_reset); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0xcf80, quirk_no_pm_reset); + +/* * Thunderbolt controllers with broken MSI hotplug signaling: * Entire 1st generation (Light Ridge, Eagle Ridge, Light Peak) and part * of the 2nd generation (Cactus Ridge 4C up to revision 1, Port Ridge). @@ -5348,6 +5365,7 @@ pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); } +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_3WARE, 0x1004, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_tags); @@ -5835,3 +5853,102 @@ pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING; } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup); + +static void rom_bar_overlap_defect(struct pci_dev *dev) +{ + pci_info(dev, "working around ROM BAR overlap defect\n"); + dev->rom_bar_overlap = 1; +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1533, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1536, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1537, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1538, rom_bar_overlap_defect); + +#ifdef CONFIG_PCIEASPM +/* + * Several Intel DG2 graphics devices advertise that they can only tolerate + * 1us latency when transitioning from L1 to L0, which may prevent ASPM L1 + * from being enabled. But in fact these devices can tolerate unlimited + * latency. Override their Device Capabilities value to allow ASPM L1 to + * be enabled. + */ +static void aspm_l1_acceptable_latency(struct pci_dev *dev) +{ + u32 l1_lat = FIELD_GET(PCI_EXP_DEVCAP_L1, dev->devcap); + + if (l1_lat < 7) { + dev->devcap |= FIELD_PREP(PCI_EXP_DEVCAP_L1, 7); + pci_info(dev, "ASPM: overriding L1 acceptable latency from %#x to 0x7\n", + l1_lat); + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f80, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f81, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f82, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f83, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f84, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f85, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f86, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f87, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x4f88, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5690, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5691, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5692, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5693, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5694, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x5695, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a0, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a1, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a2, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a3, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a4, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a5, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56a6, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b0, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b1, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency); +#endif + +#ifdef CONFIG_PCIE_DPC +/* + * Intel Ice Lake, Tiger Lake and Alder Lake BIOS has a bug that clears + * the DPC RP PIO Log Size of the integrated Thunderbolt PCIe Root + * Ports. + */ +static void dpc_log_size(struct pci_dev *dev) +{ + u16 dpc, val; + + dpc = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_DPC); + if (!dpc) + return; + + pci_read_config_word(dev, dpc + PCI_EXP_DPC_CAP, &val); + if (!(val & PCI_EXP_DPC_CAP_RP_EXT)) + return; + + if (!((val & PCI_EXP_DPC_RP_PIO_LOG_SIZE) >> 8)) { + pci_info(dev, "Overriding RP PIO Log Size to 4\n"); + dev->dpc_rp_log_size = 4; + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x461f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x462f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x463f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x466e, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8a1d, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8a1f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8a21, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8a23, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a23, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a25, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a27, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a29, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a2b, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a2d, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a2f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9a31, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa73f, dpc_log_size); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e, dpc_log_size); +#endif diff -Nru linux-5.10.209/drivers/pci/setup-res.c linux-5.10.216/drivers/pci/setup-res.c --- linux-5.10.209/drivers/pci/setup-res.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/setup-res.c 2024-05-02 14:23:46.000000000 +0000 @@ -75,12 +75,16 @@ * as zero when disabled, so don't update ROM BARs unless * they're enabled. See * https://lore.kernel.org/r/43147B3D.1030309@vc.cvut.cz/ + * But we must update ROM BAR for buggy devices where even a + * disabled ROM can conflict with other BARs. */ - if (!(res->flags & IORESOURCE_ROM_ENABLE)) + if (!(res->flags & IORESOURCE_ROM_ENABLE) && + !dev->rom_bar_overlap) return; reg = dev->rom_base_reg; - new |= PCI_ROM_ADDRESS_ENABLE; + if (res->flags & IORESOURCE_ROM_ENABLE) + new |= PCI_ROM_ADDRESS_ENABLE; } else return; diff -Nru linux-5.10.209/drivers/pci/switch/switchtec.c linux-5.10.216/drivers/pci/switch/switchtec.c --- linux-5.10.209/drivers/pci/switch/switchtec.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pci/switch/switchtec.c 2024-05-02 14:23:46.000000000 +0000 @@ -1251,13 +1251,6 @@ { struct switchtec_dev *stdev = to_stdev(dev); - if (stdev->dma_mrpc) { - iowrite32(0, &stdev->mmio_mrpc->dma_en); - flush_wc_buf(stdev); - writeq(0, &stdev->mmio_mrpc->dma_addr); - dma_free_coherent(&stdev->pdev->dev, sizeof(*stdev->dma_mrpc), - stdev->dma_mrpc, stdev->dma_mrpc_dma_addr); - } kfree(stdev); } @@ -1301,7 +1294,7 @@ return ERR_PTR(-ENOMEM); stdev->alive = true; - stdev->pdev = pdev; + stdev->pdev = pci_dev_get(pdev); INIT_LIST_HEAD(&stdev->mrpc_queue); mutex_init(&stdev->mrpc_mutex); stdev->mrpc_busy = 0; @@ -1335,6 +1328,7 @@ return stdev; err_put: + pci_dev_put(stdev->pdev); put_device(&stdev->dev); return ERR_PTR(rc); } @@ -1587,6 +1581,18 @@ return 0; } +static void switchtec_exit_pci(struct switchtec_dev *stdev) +{ + if (stdev->dma_mrpc) { + iowrite32(0, &stdev->mmio_mrpc->dma_en); + flush_wc_buf(stdev); + writeq(0, &stdev->mmio_mrpc->dma_addr); + dma_free_coherent(&stdev->pdev->dev, sizeof(*stdev->dma_mrpc), + stdev->dma_mrpc, stdev->dma_mrpc_dma_addr); + stdev->dma_mrpc = NULL; + } +} + static int switchtec_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { @@ -1609,7 +1615,7 @@ rc = switchtec_init_isr(stdev); if (rc) { dev_err(&stdev->dev, "failed to init isr.\n"); - goto err_put; + goto err_exit_pci; } iowrite32(SWITCHTEC_EVENT_CLEAR | @@ -1630,6 +1636,8 @@ err_devadd: stdev_kill(stdev); +err_exit_pci: + switchtec_exit_pci(stdev); err_put: ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt)); put_device(&stdev->dev); @@ -1646,6 +1654,9 @@ ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt)); dev_info(&stdev->dev, "unregistered.\n"); stdev_kill(stdev); + switchtec_exit_pci(stdev); + pci_dev_put(stdev->pdev); + stdev->pdev = NULL; put_device(&stdev->dev); } diff -Nru linux-5.10.209/drivers/phy/renesas/phy-rcar-gen3-usb2.c linux-5.10.216/drivers/phy/renesas/phy-rcar-gen3-usb2.c --- linux-5.10.209/drivers/phy/renesas/phy-rcar-gen3-usb2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/phy/renesas/phy-rcar-gen3-usb2.c 2024-05-02 14:23:46.000000000 +0000 @@ -633,8 +633,6 @@ channel->irq = platform_get_irq_optional(pdev, 0); channel->dr_mode = rcar_gen3_get_dr_mode(dev->of_node); if (channel->dr_mode != USB_DR_MODE_UNKNOWN) { - int ret; - channel->is_otg_channel = true; channel->uses_otg_pins = !of_property_read_bool(dev->of_node, "renesas,no-otg-pins"); @@ -693,8 +691,6 @@ ret = PTR_ERR(provider); goto error; } else if (channel->is_otg_channel) { - int ret; - ret = device_create_file(dev, &dev_attr_role); if (ret < 0) goto error; diff -Nru linux-5.10.209/drivers/phy/tegra/xusb.c linux-5.10.216/drivers/phy/tegra/xusb.c --- linux-5.10.209/drivers/phy/tegra/xusb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/phy/tegra/xusb.c 2024-05-02 14:23:46.000000000 +0000 @@ -1399,6 +1399,19 @@ } EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_usb3_companion); +int tegra_xusb_padctl_get_port_number(struct phy *phy) +{ + struct tegra_xusb_lane *lane; + + if (!phy) + return -ENODEV; + + lane = phy_get_drvdata(phy); + + return lane->index; +} +EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_port_number); + MODULE_AUTHOR("Thierry Reding "); MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver"); MODULE_LICENSE("GPL v2"); diff -Nru linux-5.10.209/drivers/phy/ti/phy-omap-usb2.c linux-5.10.216/drivers/phy/ti/phy-omap-usb2.c --- linux-5.10.209/drivers/phy/ti/phy-omap-usb2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/phy/ti/phy-omap-usb2.c 2024-05-02 14:23:46.000000000 +0000 @@ -116,7 +116,7 @@ { struct omap_usb *phy = phy_to_omapusb(otg->usb_phy); - if (!phy->comparator) + if (!phy->comparator || !phy->comparator->set_vbus) return -ENODEV; return phy->comparator->set_vbus(phy->comparator, enabled); @@ -126,7 +126,7 @@ { struct omap_usb *phy = phy_to_omapusb(otg->usb_phy); - if (!phy->comparator) + if (!phy->comparator || !phy->comparator->start_srp) return -ENODEV; return phy->comparator->start_srp(phy->comparator); diff -Nru linux-5.10.209/drivers/pinctrl/mediatek/pinctrl-mt8192.c linux-5.10.216/drivers/pinctrl/mediatek/pinctrl-mt8192.c --- linux-5.10.209/drivers/pinctrl/mediatek/pinctrl-mt8192.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pinctrl/mediatek/pinctrl-mt8192.c 2024-05-02 14:23:46.000000000 +0000 @@ -1346,7 +1346,6 @@ [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8192_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8192_pin_di_range), [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8192_pin_do_range), - [PINCTRL_PIN_REG_SR] = MTK_RANGE(mt8192_pin_dir_range), [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8192_pin_smt_range), [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8192_pin_ies_range), [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8192_pin_pu_range), diff -Nru linux-5.10.209/drivers/pinctrl/renesas/core.c linux-5.10.216/drivers/pinctrl/renesas/core.c --- linux-5.10.209/drivers/pinctrl/renesas/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pinctrl/renesas/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -868,9 +868,11 @@ sh_pfc_err("reg 0x%x: var_field_width declares %u instead of %u bits\n", cfg_reg->reg, rw, cfg_reg->reg_width); - if (n != cfg_reg->nr_enum_ids) + if (n != cfg_reg->nr_enum_ids) { sh_pfc_err("reg 0x%x: enum_ids[] has %u instead of %u values\n", cfg_reg->reg, cfg_reg->nr_enum_ids, n); + n = cfg_reg->nr_enum_ids; + } check_enum_ids: sh_pfc_check_reg_enums(drvname, cfg_reg->reg, cfg_reg->enum_ids, n); diff -Nru linux-5.10.209/drivers/platform/x86/intel-vbtn.c linux-5.10.216/drivers/platform/x86/intel-vbtn.c --- linux-5.10.209/drivers/platform/x86/intel-vbtn.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/platform/x86/intel-vbtn.c 2024-05-02 14:23:46.000000000 +0000 @@ -230,6 +230,12 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7352"), }, }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion 13 x360 PC"), + }, + }, {} /* Array terminator */ }; diff -Nru linux-5.10.209/drivers/platform/x86/touchscreen_dmi.c linux-5.10.216/drivers/platform/x86/touchscreen_dmi.c --- linux-5.10.209/drivers/platform/x86/touchscreen_dmi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/platform/x86/touchscreen_dmi.c 2024-05-02 14:23:46.000000000 +0000 @@ -50,7 +50,7 @@ }; static const struct ts_dmi_data chuwi_hi8_air_data = { - .acpi_name = "MSSL1680:00", + .acpi_name = "MSSL1680", .properties = chuwi_hi8_air_props, }; @@ -1085,6 +1085,15 @@ }, }, { + /* Chuwi Vi8 dual-boot (CWI506) */ + .driver_data = (void *)&chuwi_vi8_data, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Insyde"), + DMI_MATCH(DMI_PRODUCT_NAME, "i86"), + DMI_MATCH(DMI_BIOS_VERSION, "CHUWI2.D86JHBNR02"), + }, + }, + { /* Chuwi Vi8 Plus (CWI519) */ .driver_data = (void *)&chuwi_vi8_plus_data, .matches = { @@ -1648,7 +1657,7 @@ int error; if (has_acpi_companion(dev) && - !strncmp(ts_data->acpi_name, client->name, I2C_NAME_SIZE)) { + strstarts(client->name, ts_data->acpi_name)) { error = device_add_properties(dev, ts_data->properties); if (error) dev_err(dev, "failed to add properties: %d\n", error); diff -Nru linux-5.10.209/drivers/pnp/pnpacpi/rsparser.c linux-5.10.216/drivers/pnp/pnpacpi/rsparser.c --- linux-5.10.209/drivers/pnp/pnpacpi/rsparser.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/pnp/pnpacpi/rsparser.c 2024-05-02 14:23:46.000000000 +0000 @@ -151,13 +151,13 @@ static void pnpacpi_parse_allocated_vendor(struct pnp_dev *dev, struct acpi_resource_vendor_typed *vendor) { - if (vendor_resource_matches(dev, vendor, &hp_ccsr_uuid, 16)) { - u64 start, length; + struct { u64 start, length; } range; - memcpy(&start, vendor->byte_data, sizeof(start)); - memcpy(&length, vendor->byte_data + 8, sizeof(length)); - - pnp_add_mem_resource(dev, start, start + length - 1, 0); + if (vendor_resource_matches(dev, vendor, &hp_ccsr_uuid, + sizeof(range))) { + memcpy(&range, vendor->byte_data, sizeof(range)); + pnp_add_mem_resource(dev, range.start, range.start + + range.length - 1, 0); } } diff -Nru linux-5.10.209/drivers/power/supply/bq27xxx_battery_i2c.c linux-5.10.216/drivers/power/supply/bq27xxx_battery_i2c.c --- linux-5.10.209/drivers/power/supply/bq27xxx_battery_i2c.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/power/supply/bq27xxx_battery_i2c.c 2024-05-02 14:23:46.000000000 +0000 @@ -209,7 +209,9 @@ { struct bq27xxx_device_info *di = i2c_get_clientdata(client); - free_irq(client->irq, di); + if (client->irq) + free_irq(client->irq, di); + bq27xxx_battery_teardown(di); mutex_lock(&battery_mutex); diff -Nru linux-5.10.209/drivers/regulator/core.c linux-5.10.216/drivers/regulator/core.c --- linux-5.10.209/drivers/regulator/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/regulator/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -2768,7 +2768,8 @@ /* Fallthrough on positive return values - already enabled */ } - rdev->use_count++; + if (regulator->enable_count == 1) + rdev->use_count++; return 0; @@ -2846,37 +2847,40 @@ lockdep_assert_held_once(&rdev->mutex.base); - if (WARN(rdev->use_count <= 0, + if (WARN(regulator->enable_count == 0, "unbalanced disables for %s\n", rdev_get_name(rdev))) return -EIO; - /* are we the last user and permitted to disable ? */ - if (rdev->use_count == 1 && - (rdev->constraints && !rdev->constraints->always_on)) { - - /* we are last user */ - if (regulator_ops_is_valid(rdev, REGULATOR_CHANGE_STATUS)) { - ret = _notifier_call_chain(rdev, - REGULATOR_EVENT_PRE_DISABLE, - NULL); - if (ret & NOTIFY_STOP_MASK) - return -EINVAL; - - ret = _regulator_do_disable(rdev); - if (ret < 0) { - rdev_err(rdev, "failed to disable: %pe\n", ERR_PTR(ret)); - _notifier_call_chain(rdev, - REGULATOR_EVENT_ABORT_DISABLE, + if (regulator->enable_count == 1) { + /* disabling last enable_count from this regulator */ + /* are we the last user and permitted to disable ? */ + if (rdev->use_count == 1 && + (rdev->constraints && !rdev->constraints->always_on)) { + + /* we are last user */ + if (regulator_ops_is_valid(rdev, REGULATOR_CHANGE_STATUS)) { + ret = _notifier_call_chain(rdev, + REGULATOR_EVENT_PRE_DISABLE, + NULL); + if (ret & NOTIFY_STOP_MASK) + return -EINVAL; + + ret = _regulator_do_disable(rdev); + if (ret < 0) { + rdev_err(rdev, "failed to disable: %pe\n", ERR_PTR(ret)); + _notifier_call_chain(rdev, + REGULATOR_EVENT_ABORT_DISABLE, + NULL); + return ret; + } + _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, NULL); - return ret; } - _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, - NULL); - } - rdev->use_count = 0; - } else if (rdev->use_count > 1) { - rdev->use_count--; + rdev->use_count = 0; + } else if (rdev->use_count > 1) { + rdev->use_count--; + } } if (ret == 0) diff -Nru linux-5.10.209/drivers/regulator/pwm-regulator.c linux-5.10.216/drivers/regulator/pwm-regulator.c --- linux-5.10.209/drivers/regulator/pwm-regulator.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/regulator/pwm-regulator.c 2024-05-02 14:23:46.000000000 +0000 @@ -158,6 +158,9 @@ pwm_get_state(drvdata->pwm, &pstate); voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); + if (voltage < min(max_uV_duty, min_uV_duty) || + voltage > max(max_uV_duty, min_uV_duty)) + return -ENOTRECOVERABLE; /* * The dutycycle for min_uV might be greater than the one for max_uV. diff -Nru linux-5.10.209/drivers/remoteproc/Kconfig linux-5.10.216/drivers/remoteproc/Kconfig --- linux-5.10.209/drivers/remoteproc/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/remoteproc/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -249,7 +249,7 @@ config STM32_RPROC tristate "STM32 remoteproc support" - depends on ARCH_STM32 + depends on ARCH_STM32 || COMPILE_TEST depends on REMOTEPROC select MAILBOX help diff -Nru linux-5.10.209/drivers/remoteproc/remoteproc_core.c linux-5.10.216/drivers/remoteproc/remoteproc_core.c --- linux-5.10.209/drivers/remoteproc/remoteproc_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/remoteproc/remoteproc_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1539,6 +1539,32 @@ return ret; } +static int rproc_set_rsc_table(struct rproc *rproc) +{ + struct resource_table *table_ptr; + struct device *dev = &rproc->dev; + size_t table_sz; + int ret; + + table_ptr = rproc_get_loaded_rsc_table(rproc, &table_sz); + if (!table_ptr) { + /* Not having a resource table is acceptable */ + return 0; + } + + if (IS_ERR(table_ptr)) { + ret = PTR_ERR(table_ptr); + dev_err(dev, "can't load resource table: %d\n", ret); + return ret; + } + + rproc->cached_table = NULL; + rproc->table_ptr = table_ptr; + rproc->table_sz = table_sz; + + return 0; +} + /* * Attach to remote processor - similar to rproc_fw_boot() but without * the steps that deal with the firmware image. @@ -1558,6 +1584,12 @@ return ret; } + ret = rproc_set_rsc_table(rproc); + if (ret) { + dev_err(dev, "can't load resource table: %d\n", ret); + goto disable_iommu; + } + /* reset max_notifyid */ rproc->max_notifyid = -1; diff -Nru linux-5.10.209/drivers/remoteproc/remoteproc_internal.h linux-5.10.216/drivers/remoteproc/remoteproc_internal.h --- linux-5.10.209/drivers/remoteproc/remoteproc_internal.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/remoteproc/remoteproc_internal.h 2024-05-02 14:23:46.000000000 +0000 @@ -178,6 +178,16 @@ } static inline +struct resource_table *rproc_get_loaded_rsc_table(struct rproc *rproc, + size_t *size) +{ + if (rproc->ops->get_loaded_rsc_table) + return rproc->ops->get_loaded_rsc_table(rproc, size); + + return NULL; +} + +static inline bool rproc_u64_fit_in_size_t(u64 val) { if (sizeof(size_t) == sizeof(u64)) diff -Nru linux-5.10.209/drivers/remoteproc/stm32_rproc.c linux-5.10.216/drivers/remoteproc/stm32_rproc.c --- linux-5.10.209/drivers/remoteproc/stm32_rproc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/remoteproc/stm32_rproc.c 2024-05-02 14:23:46.000000000 +0000 @@ -117,10 +117,10 @@ struct device *dev = rproc->dev.parent; void *va; - dev_dbg(dev, "map memory: %pa+%x\n", &mem->dma, mem->len); - va = ioremap_wc(mem->dma, mem->len); + dev_dbg(dev, "map memory: %pad+%zx\n", &mem->dma, mem->len); + va = (__force void *)ioremap_wc(mem->dma, mem->len); if (IS_ERR_OR_NULL(va)) { - dev_err(dev, "Unable to map memory region: %pa+%x\n", + dev_err(dev, "Unable to map memory region: %pad+0x%zx\n", &mem->dma, mem->len); return -ENOMEM; } @@ -135,7 +135,7 @@ struct rproc_mem_entry *mem) { dev_dbg(rproc->dev.parent, "unmap memory: %pa\n", &mem->dma); - iounmap(mem->va); + iounmap((__force __iomem void *)mem->va); return 0; } @@ -553,7 +553,74 @@ } } -static struct rproc_ops st_rproc_ops = { +static int stm32_rproc_da_to_pa(struct rproc *rproc, + u64 da, phys_addr_t *pa) +{ + struct stm32_rproc *ddata = rproc->priv; + struct device *dev = rproc->dev.parent; + struct stm32_rproc_mem *p_mem; + unsigned int i; + + for (i = 0; i < ddata->nb_rmems; i++) { + p_mem = &ddata->rmems[i]; + + if (da < p_mem->dev_addr || + da >= p_mem->dev_addr + p_mem->size) + continue; + + *pa = da - p_mem->dev_addr + p_mem->bus_addr; + dev_dbg(dev, "da %llx to pa %pap\n", da, pa); + + return 0; + } + + dev_err(dev, "can't translate da %llx\n", da); + + return -EINVAL; +} + +static struct resource_table * +stm32_rproc_get_loaded_rsc_table(struct rproc *rproc, size_t *table_sz) +{ + struct stm32_rproc *ddata = rproc->priv; + struct device *dev = rproc->dev.parent; + phys_addr_t rsc_pa; + u32 rsc_da; + int err; + + /* The resource table has already been mapped, nothing to do */ + if (ddata->rsc_va) + goto done; + + err = regmap_read(ddata->rsctbl.map, ddata->rsctbl.reg, &rsc_da); + if (err) { + dev_err(dev, "failed to read rsc tbl addr\n"); + return ERR_PTR(-EINVAL); + } + + if (!rsc_da) + /* no rsc table */ + return ERR_PTR(-ENOENT); + + err = stm32_rproc_da_to_pa(rproc, rsc_da, &rsc_pa); + if (err) + return ERR_PTR(err); + + ddata->rsc_va = devm_ioremap_wc(dev, rsc_pa, RSC_TBL_SIZE); + if (IS_ERR_OR_NULL(ddata->rsc_va)) { + dev_err(dev, "Unable to map memory region: %pa+%x\n", + &rsc_pa, RSC_TBL_SIZE); + ddata->rsc_va = NULL; + return ERR_PTR(-ENOMEM); + } + +done: + /* Assuming the resource table fits in 1kB is fair */ + *table_sz = RSC_TBL_SIZE; + return (__force struct resource_table *)ddata->rsc_va; +} + +static const struct rproc_ops st_rproc_ops = { .start = stm32_rproc_start, .stop = stm32_rproc_stop, .attach = stm32_rproc_attach, @@ -561,6 +628,7 @@ .load = rproc_elf_load_segments, .parse_fw = stm32_rproc_parse_fw, .find_loaded_rsc_table = rproc_elf_find_loaded_rsc_table, + .get_loaded_rsc_table = stm32_rproc_get_loaded_rsc_table, .sanity_check = rproc_elf_sanity_check, .get_boot_addr = rproc_elf_get_boot_addr, }; @@ -704,75 +772,6 @@ return regmap_read(ddata->m4_state.map, ddata->m4_state.reg, state); } -static int stm32_rproc_da_to_pa(struct platform_device *pdev, - struct stm32_rproc *ddata, - u64 da, phys_addr_t *pa) -{ - struct device *dev = &pdev->dev; - struct stm32_rproc_mem *p_mem; - unsigned int i; - - for (i = 0; i < ddata->nb_rmems; i++) { - p_mem = &ddata->rmems[i]; - - if (da < p_mem->dev_addr || - da >= p_mem->dev_addr + p_mem->size) - continue; - - *pa = da - p_mem->dev_addr + p_mem->bus_addr; - dev_dbg(dev, "da %llx to pa %#x\n", da, *pa); - - return 0; - } - - dev_err(dev, "can't translate da %llx\n", da); - - return -EINVAL; -} - -static int stm32_rproc_get_loaded_rsc_table(struct platform_device *pdev, - struct rproc *rproc, - struct stm32_rproc *ddata) -{ - struct device *dev = &pdev->dev; - phys_addr_t rsc_pa; - u32 rsc_da; - int err; - - err = regmap_read(ddata->rsctbl.map, ddata->rsctbl.reg, &rsc_da); - if (err) { - dev_err(dev, "failed to read rsc tbl addr\n"); - return err; - } - - if (!rsc_da) - /* no rsc table */ - return 0; - - err = stm32_rproc_da_to_pa(pdev, ddata, rsc_da, &rsc_pa); - if (err) - return err; - - ddata->rsc_va = devm_ioremap_wc(dev, rsc_pa, RSC_TBL_SIZE); - if (IS_ERR_OR_NULL(ddata->rsc_va)) { - dev_err(dev, "Unable to map memory region: %pa+%zx\n", - &rsc_pa, RSC_TBL_SIZE); - ddata->rsc_va = NULL; - return -ENOMEM; - } - - /* - * The resource table is already loaded in device memory, no need - * to work with a cached table. - */ - rproc->cached_table = NULL; - /* Assuming the resource table fits in 1kB is fair */ - rproc->table_sz = RSC_TBL_SIZE; - rproc->table_ptr = (struct resource_table *)ddata->rsc_va; - - return 0; -} - static int stm32_rproc_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -812,10 +811,6 @@ ret = stm32_rproc_parse_memory_regions(rproc); if (ret) goto free_resources; - - ret = stm32_rproc_get_loaded_rsc_table(pdev, rproc, ddata); - if (ret) - goto free_resources; } rproc->has_iommu = false; diff -Nru linux-5.10.209/drivers/rpmsg/virtio_rpmsg_bus.c linux-5.10.216/drivers/rpmsg/virtio_rpmsg_bus.c --- linux-5.10.209/drivers/rpmsg/virtio_rpmsg_bus.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/rpmsg/virtio_rpmsg_bus.c 2024-05-02 14:23:46.000000000 +0000 @@ -387,6 +387,7 @@ struct rpmsg_device *rpdev = to_rpmsg_device(dev); struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); + kfree(rpdev->driver_override); kfree(vch); } diff -Nru linux-5.10.209/drivers/rtc/Kconfig linux-5.10.216/drivers/rtc/Kconfig --- linux-5.10.209/drivers/rtc/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/rtc/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -1833,7 +1833,8 @@ config RTC_DRV_MT6397 tristate "MediaTek PMIC based RTC" - depends on MFD_MT6397 || (COMPILE_TEST && IRQ_DOMAIN) + depends on MFD_MT6397 || COMPILE_TEST + select IRQ_DOMAIN help This selects the MediaTek(R) RTC driver. RTC is part of MediaTek MT6397 PMIC. You should enable MT6397 PMIC MFD before select diff -Nru linux-5.10.209/drivers/rtc/rtc-cmos.c linux-5.10.216/drivers/rtc/rtc-cmos.c --- linux-5.10.209/drivers/rtc/rtc-cmos.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/rtc/rtc-cmos.c 2024-05-02 14:23:46.000000000 +0000 @@ -292,7 +292,7 @@ /* This not only a rtc_op, but also called directly */ if (!is_valid_irq(cmos->irq)) - return -EIO; + return -ETIMEDOUT; /* Basic alarms only support hour, minute, and seconds fields. * Some also support day and month, for alarms up to a year in @@ -557,7 +557,7 @@ * Use mc146818_avoid_UIP() to avoid this. */ if (!mc146818_avoid_UIP(cmos_set_alarm_callback, &p)) - return -EIO; + return -ETIMEDOUT; cmos->alarm_expires = rtc_tm_to_time64(&t->time); diff -Nru linux-5.10.209/drivers/s390/cio/device_ops.c linux-5.10.216/drivers/s390/cio/device_ops.c --- linux-5.10.209/drivers/s390/cio/device_ops.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/s390/cio/device_ops.c 2024-05-02 14:23:46.000000000 +0000 @@ -202,7 +202,8 @@ return -EINVAL; if (cdev->private->state == DEV_STATE_NOT_OPER) return -ENODEV; - if (cdev->private->state == DEV_STATE_VERIFY) { + if (cdev->private->state == DEV_STATE_VERIFY || + cdev->private->flags.doverify) { /* Remember to fake irb when finished. */ if (!cdev->private->flags.fake_irb) { cdev->private->flags.fake_irb = FAKE_CMD_IRB; @@ -214,8 +215,7 @@ } if (cdev->private->state != DEV_STATE_ONLINE || ((sch->schib.scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && - !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS)) || - cdev->private->flags.doverify) + !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS))) return -EBUSY; ret = cio_set_options (sch, flags); if (ret) diff -Nru linux-5.10.209/drivers/s390/crypto/zcrypt_api.c linux-5.10.216/drivers/s390/crypto/zcrypt_api.c --- linux-5.10.209/drivers/s390/crypto/zcrypt_api.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/s390/crypto/zcrypt_api.c 2024-05-02 14:23:46.000000000 +0000 @@ -576,6 +576,7 @@ { if (!zq || !try_module_get(zq->queue->ap_dev.drv->driver.owner)) return NULL; + zcrypt_card_get(zc); zcrypt_queue_get(zq); get_device(&zq->queue->ap_dev.device); atomic_add(weight, &zc->load); @@ -595,6 +596,7 @@ atomic_sub(weight, &zq->load); put_device(&zq->queue->ap_dev.device); zcrypt_queue_put(zq); + zcrypt_card_put(zc); module_put(mod); } diff -Nru linux-5.10.209/drivers/s390/net/qeth_l3_main.c linux-5.10.216/drivers/s390/net/qeth_l3_main.c --- linux-5.10.209/drivers/s390/net/qeth_l3_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/s390/net/qeth_l3_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -257,9 +257,10 @@ if (!recover) { hash_del(&addr->hnode); kfree(addr); - continue; + } else { + /* prepare for recovery */ + addr->disp_flag = QETH_DISP_ADDR_ADD; } - addr->disp_flag = QETH_DISP_ADDR_ADD; } mutex_unlock(&card->ip_lock); @@ -280,9 +281,11 @@ if (addr->disp_flag == QETH_DISP_ADDR_ADD) { rc = qeth_l3_register_addr_entry(card, addr); - if (!rc) { + if (!rc || rc == -EADDRINUSE || rc == -ENETDOWN) { + /* keep it in the records */ addr->disp_flag = QETH_DISP_ADDR_DO_NOTHING; } else { + /* bad address */ hash_del(&addr->hnode); kfree(addr); } diff -Nru linux-5.10.209/drivers/scsi/Kconfig linux-5.10.216/drivers/scsi/Kconfig --- linux-5.10.209/drivers/scsi/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -1289,7 +1289,7 @@ config JAZZ_ESP bool "MIPS JAZZ FAS216 SCSI support" - depends on MACH_JAZZ && SCSI + depends on MACH_JAZZ && SCSI=y select SCSI_SPI_ATTRS help This is the driver for the onboard SCSI host adapter of MIPS Magnum diff -Nru linux-5.10.209/drivers/scsi/arcmsr/arcmsr.h linux-5.10.216/drivers/scsi/arcmsr/arcmsr.h --- linux-5.10.209/drivers/scsi/arcmsr/arcmsr.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/arcmsr/arcmsr.h 2024-05-02 14:23:46.000000000 +0000 @@ -77,9 +77,13 @@ #ifndef PCI_DEVICE_ID_ARECA_1203 #define PCI_DEVICE_ID_ARECA_1203 0x1203 #endif +#ifndef PCI_DEVICE_ID_ARECA_1883 +#define PCI_DEVICE_ID_ARECA_1883 0x1883 +#endif #ifndef PCI_DEVICE_ID_ARECA_1884 #define PCI_DEVICE_ID_ARECA_1884 0x1884 #endif +#define PCI_DEVICE_ID_ARECA_1886_0 0x1886 #define PCI_DEVICE_ID_ARECA_1886 0x188A #define ARCMSR_HOURS (1000 * 60 * 60 * 4) #define ARCMSR_MINUTES (1000 * 60 * 60) diff -Nru linux-5.10.209/drivers/scsi/arcmsr/arcmsr_hba.c linux-5.10.216/drivers/scsi/arcmsr/arcmsr_hba.c --- linux-5.10.209/drivers/scsi/arcmsr/arcmsr_hba.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/arcmsr/arcmsr_hba.c 2024-05-02 14:23:46.000000000 +0000 @@ -208,8 +208,12 @@ .driver_data = ACB_ADAPTER_TYPE_A}, {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1880), .driver_data = ACB_ADAPTER_TYPE_C}, + {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1883), + .driver_data = ACB_ADAPTER_TYPE_C}, {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1884), .driver_data = ACB_ADAPTER_TYPE_E}, + {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1886_0), + .driver_data = ACB_ADAPTER_TYPE_F}, {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1886), .driver_data = ACB_ADAPTER_TYPE_F}, {0, 0}, /* Terminating entry */ @@ -4701,9 +4705,11 @@ case PCI_DEVICE_ID_ARECA_1680: case PCI_DEVICE_ID_ARECA_1681: case PCI_DEVICE_ID_ARECA_1880: + case PCI_DEVICE_ID_ARECA_1883: case PCI_DEVICE_ID_ARECA_1884: type = "SAS/SATA"; break; + case PCI_DEVICE_ID_ARECA_1886_0: case PCI_DEVICE_ID_ARECA_1886: type = "NVMe/SAS/SATA"; break; diff -Nru linux-5.10.209/drivers/scsi/bfa/bfa.h linux-5.10.216/drivers/scsi/bfa/bfa.h --- linux-5.10.209/drivers/scsi/bfa/bfa.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/bfa/bfa.h 2024-05-02 14:23:46.000000000 +0000 @@ -20,7 +20,6 @@ struct bfa_s; typedef void (*bfa_isr_func_t) (struct bfa_s *bfa, struct bfi_msg_s *m); -typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status); /* * Interrupt message handlers @@ -435,6 +434,14 @@ (__qe)->hcb_qe.cbarg = (__cbarg); \ (__qe)->hcb_qe.pre_rmv = BFA_TRUE; \ (__qe)->data = (__data); \ +} while (0) + +#define bfa_pending_q_init_status(__qe, __cbfn, __cbarg, __data) do { \ + bfa_q_qe_init(&((__qe)->hcb_qe.qe)); \ + (__qe)->hcb_qe.cbfn_status = (__cbfn); \ + (__qe)->hcb_qe.cbarg = (__cbarg); \ + (__qe)->hcb_qe.pre_rmv = BFA_TRUE; \ + (__qe)->data = (__data); \ } while (0) #endif /* __BFA_H__ */ diff -Nru linux-5.10.209/drivers/scsi/bfa/bfa_core.c linux-5.10.216/drivers/scsi/bfa/bfa_core.c --- linux-5.10.209/drivers/scsi/bfa/bfa_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/bfa/bfa_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1907,15 +1907,13 @@ struct list_head *qe; struct list_head *qen; struct bfa_cb_qe_s *hcb_qe; - bfa_cb_cbfn_status_t cbfn; list_for_each_safe(qe, qen, comp_q) { hcb_qe = (struct bfa_cb_qe_s *) qe; if (hcb_qe->pre_rmv) { /* qe is invalid after return, dequeue before cbfn() */ list_del(qe); - cbfn = (bfa_cb_cbfn_status_t)(hcb_qe->cbfn); - cbfn(hcb_qe->cbarg, hcb_qe->fw_status); + hcb_qe->cbfn_status(hcb_qe->cbarg, hcb_qe->fw_status); } else hcb_qe->cbfn(hcb_qe->cbarg, BFA_TRUE); } diff -Nru linux-5.10.209/drivers/scsi/bfa/bfa_ioc.h linux-5.10.216/drivers/scsi/bfa/bfa_ioc.h --- linux-5.10.209/drivers/scsi/bfa/bfa_ioc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/bfa/bfa_ioc.h 2024-05-02 14:23:46.000000000 +0000 @@ -361,14 +361,18 @@ void *cbarg; }; -typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete); +typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete); +typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status); /* * Generic BFA callback element. */ struct bfa_cb_qe_s { struct list_head qe; - bfa_cb_cbfn_t cbfn; + union { + bfa_cb_cbfn_status_t cbfn_status; + bfa_cb_cbfn_t cbfn; + }; bfa_boolean_t once; bfa_boolean_t pre_rmv; /* set for stack based qe(s) */ bfa_status_t fw_status; /* to access fw status in comp proc */ diff -Nru linux-5.10.209/drivers/scsi/bfa/bfad_bsg.c linux-5.10.216/drivers/scsi/bfa/bfad_bsg.c --- linux-5.10.209/drivers/scsi/bfa/bfad_bsg.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/bfa/bfad_bsg.c 2024-05-02 14:23:46.000000000 +0000 @@ -2135,8 +2135,7 @@ struct bfa_cb_pending_q_s cb_qe; init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, &iocmd->stats); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats); spin_lock_irqsave(&bfad->bfad_lock, flags); iocmd->status = bfa_fcport_get_stats(&bfad->bfa, &cb_qe); spin_unlock_irqrestore(&bfad->bfad_lock, flags); @@ -2159,7 +2158,7 @@ struct bfa_cb_pending_q_s cb_qe; init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, &fcomp, NULL); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL); spin_lock_irqsave(&bfad->bfad_lock, flags); iocmd->status = bfa_fcport_clear_stats(&bfad->bfa, &cb_qe); @@ -2443,8 +2442,7 @@ struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, &iocmd->stats); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats); spin_lock_irqsave(&bfad->bfad_lock, flags); WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc)); @@ -2474,8 +2472,7 @@ struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa); init_completion(&fcomp.comp); - bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, - &fcomp, NULL); + bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL); spin_lock_irqsave(&bfad->bfad_lock, flags); WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc)); diff -Nru linux-5.10.209/drivers/scsi/csiostor/csio_defs.h linux-5.10.216/drivers/scsi/csiostor/csio_defs.h --- linux-5.10.209/drivers/scsi/csiostor/csio_defs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/csiostor/csio_defs.h 2024-05-02 14:23:46.000000000 +0000 @@ -73,7 +73,21 @@ #define csio_list_prev(elem) (((struct list_head *)(elem))->prev) /* State machine */ -typedef void (*csio_sm_state_t)(void *, uint32_t); +struct csio_lnode; + +/* State machine evets */ +enum csio_ln_ev { + CSIO_LNE_NONE = (uint32_t)0, + CSIO_LNE_LINKUP, + CSIO_LNE_FAB_INIT_DONE, + CSIO_LNE_LINK_DOWN, + CSIO_LNE_DOWN_LINK, + CSIO_LNE_LOGO, + CSIO_LNE_CLOSE, + CSIO_LNE_MAX_EVENT, +}; + +typedef void (*csio_sm_state_t)(struct csio_lnode *ln, enum csio_ln_ev evt); struct csio_sm { struct list_head sm_list; @@ -83,7 +97,7 @@ static inline void csio_set_state(void *smp, void *state) { - ((struct csio_sm *)smp)->sm_state = (csio_sm_state_t)state; + ((struct csio_sm *)smp)->sm_state = state; } static inline void diff -Nru linux-5.10.209/drivers/scsi/csiostor/csio_lnode.c linux-5.10.216/drivers/scsi/csiostor/csio_lnode.c --- linux-5.10.209/drivers/scsi/csiostor/csio_lnode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/csiostor/csio_lnode.c 2024-05-02 14:23:46.000000000 +0000 @@ -1095,7 +1095,7 @@ int csio_is_lnode_ready(struct csio_lnode *ln) { - return (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)); + return (csio_get_state(ln) == csio_lns_ready); } /*****************************************************************************/ @@ -1366,15 +1366,15 @@ void csio_lnode_state_to_str(struct csio_lnode *ln, int8_t *str) { - if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_uninit)) { + if (csio_get_state(ln) == csio_lns_uninit) { strcpy(str, "UNINIT"); return; } - if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)) { + if (csio_get_state(ln) == csio_lns_ready) { strcpy(str, "READY"); return; } - if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_offline)) { + if (csio_get_state(ln) == csio_lns_offline) { strcpy(str, "OFFLINE"); return; } diff -Nru linux-5.10.209/drivers/scsi/csiostor/csio_lnode.h linux-5.10.216/drivers/scsi/csiostor/csio_lnode.h --- linux-5.10.209/drivers/scsi/csiostor/csio_lnode.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/csiostor/csio_lnode.h 2024-05-02 14:23:46.000000000 +0000 @@ -53,19 +53,6 @@ extern int csio_fcoe_rnodes; extern int csio_fdmi_enable; -/* State machine evets */ -enum csio_ln_ev { - CSIO_LNE_NONE = (uint32_t)0, - CSIO_LNE_LINKUP, - CSIO_LNE_FAB_INIT_DONE, - CSIO_LNE_LINK_DOWN, - CSIO_LNE_DOWN_LINK, - CSIO_LNE_LOGO, - CSIO_LNE_CLOSE, - CSIO_LNE_MAX_EVENT, -}; - - struct csio_fcf_info { struct list_head list; uint8_t priority; diff -Nru linux-5.10.209/drivers/scsi/device_handler/scsi_dh_alua.c linux-5.10.216/drivers/scsi/device_handler/scsi_dh_alua.c --- linux-5.10.209/drivers/scsi/device_handler/scsi_dh_alua.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/device_handler/scsi_dh_alua.c 2024-05-02 14:23:46.000000000 +0000 @@ -405,8 +405,8 @@ } } -static int alua_check_sense(struct scsi_device *sdev, - struct scsi_sense_hdr *sense_hdr) +static enum scsi_disposition alua_check_sense(struct scsi_device *sdev, + struct scsi_sense_hdr *sense_hdr) { switch (sense_hdr->sense_key) { case NOT_READY: diff -Nru linux-5.10.209/drivers/scsi/device_handler/scsi_dh_emc.c linux-5.10.216/drivers/scsi/device_handler/scsi_dh_emc.c --- linux-5.10.209/drivers/scsi/device_handler/scsi_dh_emc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/device_handler/scsi_dh_emc.c 2024-05-02 14:23:46.000000000 +0000 @@ -280,8 +280,8 @@ return res; } -static int clariion_check_sense(struct scsi_device *sdev, - struct scsi_sense_hdr *sense_hdr) +static enum scsi_disposition clariion_check_sense(struct scsi_device *sdev, + struct scsi_sense_hdr *sense_hdr) { switch (sense_hdr->sense_key) { case NOT_READY: diff -Nru linux-5.10.209/drivers/scsi/device_handler/scsi_dh_rdac.c linux-5.10.216/drivers/scsi/device_handler/scsi_dh_rdac.c --- linux-5.10.209/drivers/scsi/device_handler/scsi_dh_rdac.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/device_handler/scsi_dh_rdac.c 2024-05-02 14:23:46.000000000 +0000 @@ -656,8 +656,8 @@ return BLK_STS_OK; } -static int rdac_check_sense(struct scsi_device *sdev, - struct scsi_sense_hdr *sense_hdr) +static enum scsi_disposition rdac_check_sense(struct scsi_device *sdev, + struct scsi_sense_hdr *sense_hdr) { struct rdac_dh_data *h = sdev->handler_data; diff -Nru linux-5.10.209/drivers/scsi/fcoe/fcoe_ctlr.c linux-5.10.216/drivers/scsi/fcoe/fcoe_ctlr.c --- linux-5.10.209/drivers/scsi/fcoe/fcoe_ctlr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/fcoe/fcoe_ctlr.c 2024-05-02 14:23:46.000000000 +0000 @@ -319,17 +319,16 @@ { struct fcoe_fcf *sel; struct fcoe_fcf *fcf; - unsigned long flags; mutex_lock(&fip->ctlr_mutex); - spin_lock_irqsave(&fip->ctlr_lock, flags); + spin_lock_bh(&fip->ctlr_lock); kfree_skb(fip->flogi_req); fip->flogi_req = NULL; list_for_each_entry(fcf, &fip->fcfs, list) fcf->flogi_sent = 0; - spin_unlock_irqrestore(&fip->ctlr_lock, flags); + spin_unlock_bh(&fip->ctlr_lock); sel = fip->sel_fcf; if (sel && ether_addr_equal(sel->fcf_mac, fip->dest_addr)) @@ -700,7 +699,6 @@ { struct fc_frame *fp; struct fc_frame_header *fh; - unsigned long flags; u16 old_xid; u8 op; u8 mac[ETH_ALEN]; @@ -734,11 +732,11 @@ op = FIP_DT_FLOGI; if (fip->mode == FIP_MODE_VN2VN) break; - spin_lock_irqsave(&fip->ctlr_lock, flags); + spin_lock_bh(&fip->ctlr_lock); kfree_skb(fip->flogi_req); fip->flogi_req = skb; fip->flogi_req_send = 1; - spin_unlock_irqrestore(&fip->ctlr_lock, flags); + spin_unlock_bh(&fip->ctlr_lock); schedule_work(&fip->timer_work); return -EINPROGRESS; case ELS_FDISC: @@ -1715,11 +1713,10 @@ static int fcoe_ctlr_flogi_retry(struct fcoe_ctlr *fip) { struct fcoe_fcf *fcf; - unsigned long flags; int error; mutex_lock(&fip->ctlr_mutex); - spin_lock_irqsave(&fip->ctlr_lock, flags); + spin_lock_bh(&fip->ctlr_lock); LIBFCOE_FIP_DBG(fip, "re-sending FLOGI - reselect\n"); fcf = fcoe_ctlr_select(fip); if (!fcf || fcf->flogi_sent) { @@ -1730,7 +1727,7 @@ fcoe_ctlr_solicit(fip, NULL); error = fcoe_ctlr_flogi_send_locked(fip); } - spin_unlock_irqrestore(&fip->ctlr_lock, flags); + spin_unlock_bh(&fip->ctlr_lock); mutex_unlock(&fip->ctlr_mutex); return error; } @@ -1747,9 +1744,8 @@ static void fcoe_ctlr_flogi_send(struct fcoe_ctlr *fip) { struct fcoe_fcf *fcf; - unsigned long flags; - spin_lock_irqsave(&fip->ctlr_lock, flags); + spin_lock_bh(&fip->ctlr_lock); fcf = fip->sel_fcf; if (!fcf || !fip->flogi_req_send) goto unlock; @@ -1776,7 +1772,7 @@ } else /* XXX */ LIBFCOE_FIP_DBG(fip, "No FCF selected - defer send\n"); unlock: - spin_unlock_irqrestore(&fip->ctlr_lock, flags); + spin_unlock_bh(&fip->ctlr_lock); } /** diff -Nru linux-5.10.209/drivers/scsi/hosts.c linux-5.10.216/drivers/scsi/hosts.c --- linux-5.10.209/drivers/scsi/hosts.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/hosts.c 2024-05-02 14:23:46.000000000 +0000 @@ -334,12 +334,13 @@ if (shost->shost_state == SHOST_CREATED) { /* - * Free the shost_dev device name here if scsi_host_alloc() - * and scsi_host_put() have been called but neither + * Free the shost_dev device name and remove the proc host dir + * here if scsi_host_{alloc,put}() have been called but neither * scsi_host_add() nor scsi_host_remove() has been called. * This avoids that the memory allocated for the shost_dev - * name is leaked. + * name as well as the proc dir structure are leaked. */ + scsi_proc_hostdir_rm(shost->hostt); kfree(dev_name(&shost->shost_dev)); } diff -Nru linux-5.10.209/drivers/scsi/isci/request.c linux-5.10.216/drivers/scsi/isci/request.c --- linux-5.10.209/drivers/scsi/isci/request.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/isci/request.c 2024-05-02 14:23:46.000000000 +0000 @@ -3398,7 +3398,7 @@ return SCI_FAILURE; } - return SCI_SUCCESS; + return status; } static struct isci_request *isci_request_from_tag(struct isci_host *ihost, u16 tag) diff -Nru linux-5.10.209/drivers/scsi/libfc/fc_fcp.c linux-5.10.216/drivers/scsi/libfc/fc_fcp.c --- linux-5.10.209/drivers/scsi/libfc/fc_fcp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/libfc/fc_fcp.c 2024-05-02 14:23:46.000000000 +0000 @@ -270,6 +270,11 @@ if (!fsp->seq_ptr) return -EINVAL; + if (fsp->state & FC_SRB_ABORT_PENDING) { + FC_FCP_DBG(fsp, "abort already pending\n"); + return -EBUSY; + } + per_cpu_ptr(fsp->lp->stats, get_cpu())->FcpPktAborts++; put_cpu(); @@ -1681,7 +1686,7 @@ if (fsp->recov_retry++ < FC_MAX_RECOV_RETRY) fc_fcp_rec(fsp); else - fc_fcp_recovery(fsp, FC_ERROR); + fc_fcp_recovery(fsp, FC_TIMED_OUT); break; } fc_fcp_unlock_pkt(fsp); @@ -1700,11 +1705,12 @@ fsp->status_code = code; fsp->cdb_status = 0; fsp->io_status = 0; - /* - * if this fails then we let the scsi command timer fire and - * scsi-ml escalate. - */ - fc_fcp_send_abort(fsp); + if (!fsp->cmd) + /* + * Only abort non-scsi commands; otherwise let the + * scsi command timer fire and scsi-ml escalate. + */ + fc_fcp_send_abort(fsp); } /** diff -Nru linux-5.10.209/drivers/scsi/lpfc/lpfc.h linux-5.10.216/drivers/scsi/lpfc/lpfc.h --- linux-5.10.209/drivers/scsi/lpfc/lpfc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/lpfc/lpfc.h 2024-05-02 14:23:46.000000000 +0000 @@ -32,6 +32,7 @@ struct lpfc_sli2_slim; #define ELX_MODEL_NAME_SIZE 80 +#define ELX_FW_NAME_SIZE 84 #define LPFC_PCI_DEV_LP 0x1 #define LPFC_PCI_DEV_OC 0x2 diff -Nru linux-5.10.209/drivers/scsi/lpfc/lpfc_init.c linux-5.10.216/drivers/scsi/lpfc/lpfc_init.c --- linux-5.10.209/drivers/scsi/lpfc/lpfc_init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/lpfc/lpfc_init.c 2024-05-02 14:23:46.000000000 +0000 @@ -13026,7 +13026,7 @@ int lpfc_sli4_request_firmware_update(struct lpfc_hba *phba, uint8_t fw_upgrade) { - uint8_t file_name[ELX_MODEL_NAME_SIZE]; + char file_name[ELX_FW_NAME_SIZE] = {0}; int ret; const struct firmware *fw; @@ -13035,7 +13035,7 @@ LPFC_SLI_INTF_IF_TYPE_2) return -EPERM; - snprintf(file_name, ELX_MODEL_NAME_SIZE, "%s.grp", phba->ModelName); + scnprintf(file_name, sizeof(file_name), "%s.grp", phba->ModelName); if (fw_upgrade == INT_FW_UPGRADE) { ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG, diff -Nru linux-5.10.209/drivers/scsi/lpfc/lpfc_nportdisc.c linux-5.10.216/drivers/scsi/lpfc/lpfc_nportdisc.c --- linux-5.10.209/drivers/scsi/lpfc/lpfc_nportdisc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/lpfc/lpfc_nportdisc.c 2024-05-02 14:23:46.000000000 +0000 @@ -784,8 +784,10 @@ /* Save the ELS cmd */ elsiocb->drvrTimeout = cmd; - lpfc_sli4_resume_rpi(ndlp, - lpfc_mbx_cmpl_resume_rpi, elsiocb); + if (lpfc_sli4_resume_rpi(ndlp, + lpfc_mbx_cmpl_resume_rpi, + elsiocb)) + kfree(elsiocb); goto out; } } diff -Nru linux-5.10.209/drivers/scsi/lpfc/lpfc_nvmet.c linux-5.10.216/drivers/scsi/lpfc/lpfc_nvmet.c --- linux-5.10.209/drivers/scsi/lpfc/lpfc_nvmet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/lpfc/lpfc_nvmet.c 2024-05-02 14:23:46.000000000 +0000 @@ -1579,7 +1579,7 @@ wqe = &nvmewqe->wqe; /* Initialize WQE */ - memset(wqe, 0, sizeof(union lpfc_wqe)); + memset(wqe, 0, sizeof(*wqe)); ctx_buf->iocbq->context1 = NULL; spin_lock(&phba->sli4_hba.sgl_list_lock); diff -Nru linux-5.10.209/drivers/scsi/lpfc/lpfc_scsi.c linux-5.10.216/drivers/scsi/lpfc/lpfc_scsi.c --- linux-5.10.209/drivers/scsi/lpfc/lpfc_scsi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/lpfc/lpfc_scsi.c 2024-05-02 14:23:46.000000000 +0000 @@ -1944,7 +1944,7 @@ * * Returns the number of SGEs added to the SGL. **/ -static int +static uint32_t lpfc_bg_setup_sgl(struct lpfc_hba *phba, struct scsi_cmnd *sc, struct sli4_sge *sgl, int datasegcnt, struct lpfc_io_buf *lpfc_cmd) @@ -1952,8 +1952,8 @@ struct scatterlist *sgde = NULL; /* s/g data entry */ struct sli4_sge_diseed *diseed = NULL; dma_addr_t physaddr; - int i = 0, num_sge = 0, status; - uint32_t reftag; + int i = 0, status; + uint32_t reftag, num_sge = 0; uint8_t txop, rxop; #ifdef CONFIG_SCSI_LPFC_DEBUG_FS uint32_t rc; @@ -2124,7 +2124,7 @@ * * Returns the number of SGEs added to the SGL. **/ -static int +static uint32_t lpfc_bg_setup_sgl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc, struct sli4_sge *sgl, int datacnt, int protcnt, struct lpfc_io_buf *lpfc_cmd) @@ -2148,8 +2148,8 @@ uint32_t rc; #endif uint32_t checking = 1; - uint32_t dma_offset = 0; - int num_sge = 0, j = 2; + uint32_t dma_offset = 0, num_sge = 0; + int j = 2; struct sli4_hybrid_sgl *sgl_xtra = NULL; sgpe = scsi_prot_sglist(sc); diff -Nru linux-5.10.209/drivers/scsi/mpt3sas/mpt3sas_base.c linux-5.10.216/drivers/scsi/mpt3sas/mpt3sas_base.c --- linux-5.10.209/drivers/scsi/mpt3sas/mpt3sas_base.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/mpt3sas/mpt3sas_base.c 2024-05-02 14:23:46.000000000 +0000 @@ -6357,7 +6357,9 @@ return -EFAULT; } - issue_diag_reset: + return 0; + +issue_diag_reset: rc = _base_diag_reset(ioc); return rc; } diff -Nru linux-5.10.209/drivers/scsi/myrb.c linux-5.10.216/drivers/scsi/myrb.c --- linux-5.10.209/drivers/scsi/myrb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/myrb.c 2024-05-02 14:23:46.000000000 +0000 @@ -1803,9 +1803,9 @@ name = myrb_devstate_name(ldev_info->state); if (name) - ret = snprintf(buf, 32, "%s\n", name); + ret = snprintf(buf, 64, "%s\n", name); else - ret = snprintf(buf, 32, "Invalid (%02X)\n", + ret = snprintf(buf, 64, "Invalid (%02X)\n", ldev_info->state); } else { struct myrb_pdev_state *pdev_info = sdev->hostdata; @@ -1824,9 +1824,9 @@ else name = myrb_devstate_name(pdev_info->state); if (name) - ret = snprintf(buf, 32, "%s\n", name); + ret = snprintf(buf, 64, "%s\n", name); else - ret = snprintf(buf, 32, "Invalid (%02X)\n", + ret = snprintf(buf, 64, "Invalid (%02X)\n", pdev_info->state); } return ret; @@ -1914,11 +1914,11 @@ name = myrb_raidlevel_name(ldev_info->raid_level); if (!name) - return snprintf(buf, 32, "Invalid (%02X)\n", + return snprintf(buf, 64, "Invalid (%02X)\n", ldev_info->state); - return snprintf(buf, 32, "%s\n", name); + return snprintf(buf, 64, "%s\n", name); } - return snprintf(buf, 32, "Physical Drive\n"); + return snprintf(buf, 64, "Physical Drive\n"); } static DEVICE_ATTR_RO(raid_level); @@ -1931,15 +1931,15 @@ unsigned char status; if (sdev->channel < myrb_logical_channel(sdev->host)) - return snprintf(buf, 32, "physical device - not rebuilding\n"); + return snprintf(buf, 64, "physical device - not rebuilding\n"); status = myrb_get_rbld_progress(cb, &rbld_buf); if (rbld_buf.ldev_num != sdev->id || status != MYRB_STATUS_SUCCESS) - return snprintf(buf, 32, "not rebuilding\n"); + return snprintf(buf, 64, "not rebuilding\n"); - return snprintf(buf, 32, "rebuilding block %u of %u\n", + return snprintf(buf, 64, "rebuilding block %u of %u\n", rbld_buf.ldev_size - rbld_buf.blocks_left, rbld_buf.ldev_size); } diff -Nru linux-5.10.209/drivers/scsi/myrs.c linux-5.10.216/drivers/scsi/myrs.c --- linux-5.10.209/drivers/scsi/myrs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/myrs.c 2024-05-02 14:23:46.000000000 +0000 @@ -950,9 +950,9 @@ name = myrs_devstate_name(ldev_info->dev_state); if (name) - ret = snprintf(buf, 32, "%s\n", name); + ret = snprintf(buf, 64, "%s\n", name); else - ret = snprintf(buf, 32, "Invalid (%02X)\n", + ret = snprintf(buf, 64, "Invalid (%02X)\n", ldev_info->dev_state); } else { struct myrs_pdev_info *pdev_info; @@ -961,9 +961,9 @@ pdev_info = sdev->hostdata; name = myrs_devstate_name(pdev_info->dev_state); if (name) - ret = snprintf(buf, 32, "%s\n", name); + ret = snprintf(buf, 64, "%s\n", name); else - ret = snprintf(buf, 32, "Invalid (%02X)\n", + ret = snprintf(buf, 64, "Invalid (%02X)\n", pdev_info->dev_state); } return ret; @@ -1069,13 +1069,13 @@ ldev_info = sdev->hostdata; name = myrs_raid_level_name(ldev_info->raid_level); if (!name) - return snprintf(buf, 32, "Invalid (%02X)\n", + return snprintf(buf, 64, "Invalid (%02X)\n", ldev_info->dev_state); } else name = myrs_raid_level_name(MYRS_RAID_PHYSICAL); - return snprintf(buf, 32, "%s\n", name); + return snprintf(buf, 64, "%s\n", name); } static DEVICE_ATTR_RO(raid_level); @@ -1089,7 +1089,7 @@ unsigned char status; if (sdev->channel < cs->ctlr_info->physchan_present) - return snprintf(buf, 32, "physical device - not rebuilding\n"); + return snprintf(buf, 64, "physical device - not rebuilding\n"); ldev_info = sdev->hostdata; ldev_num = ldev_info->ldev_num; @@ -1101,11 +1101,11 @@ return -EIO; } if (ldev_info->rbld_active) { - return snprintf(buf, 32, "rebuilding block %zu of %zu\n", + return snprintf(buf, 64, "rebuilding block %zu of %zu\n", (size_t)ldev_info->rbld_lba, (size_t)ldev_info->cfg_devsize); } else - return snprintf(buf, 32, "not rebuilding\n"); + return snprintf(buf, 64, "not rebuilding\n"); } static ssize_t rebuild_store(struct device *dev, @@ -1194,7 +1194,7 @@ unsigned char status; if (sdev->channel < cs->ctlr_info->physchan_present) - return snprintf(buf, 32, "physical device - not checking\n"); + return snprintf(buf, 64, "physical device - not checking\n"); ldev_info = sdev->hostdata; if (!ldev_info) @@ -1202,11 +1202,11 @@ ldev_num = ldev_info->ldev_num; status = myrs_get_ldev_info(cs, ldev_num, ldev_info); if (ldev_info->cc_active) - return snprintf(buf, 32, "checking block %zu of %zu\n", + return snprintf(buf, 64, "checking block %zu of %zu\n", (size_t)ldev_info->cc_lba, (size_t)ldev_info->cfg_devsize); else - return snprintf(buf, 32, "not checking\n"); + return snprintf(buf, 64, "not checking\n"); } static ssize_t consistency_check_store(struct device *dev, diff -Nru linux-5.10.209/drivers/scsi/qla2xxx/qla_attr.c linux-5.10.216/drivers/scsi/qla2xxx/qla_attr.c --- linux-5.10.209/drivers/scsi/qla2xxx/qla_attr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/qla2xxx/qla_attr.c 2024-05-02 14:23:46.000000000 +0000 @@ -2689,7 +2689,13 @@ return; if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { - qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); + /* Will wait for wind down of adapter */ + ql_dbg(ql_dbg_aer, fcport->vha, 0x900c, + "%s pci offline detected (id %06x)\n", __func__, + fcport->d_id.b24); + qla_pci_set_eeh_busy(fcport->vha); + qla2x00_eh_wait_for_pending_commands(fcport->vha, fcport->d_id.b24, + 0, WAIT_TARGET); return; } } @@ -2711,7 +2717,11 @@ vha = fcport->vha; if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { - qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); + /* Will wait for wind down of adapter */ + ql_dbg(ql_dbg_aer, fcport->vha, 0x900b, + "%s pci offline detected (id %06x)\n", __func__, + fcport->d_id.b24); + qla_pci_set_eeh_busy(vha); qla2x00_eh_wait_for_pending_commands(fcport->vha, fcport->d_id.b24, 0, WAIT_TARGET); return; diff -Nru linux-5.10.209/drivers/scsi/qla2xxx/qla_def.h linux-5.10.216/drivers/scsi/qla2xxx/qla_def.h --- linux-5.10.209/drivers/scsi/qla2xxx/qla_def.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/qla2xxx/qla_def.h 2024-05-02 14:23:46.000000000 +0000 @@ -56,7 +56,7 @@ #include "qla_nvme.h" #define QLA2XXX_DRIVER_NAME "qla2xxx" #define QLA2XXX_APIDEV "ql2xapidev" -#define QLA2XXX_MANUFACTURER "QLogic Corporation" +#define QLA2XXX_MANUFACTURER "Marvell" /* * We have MAILBOX_REGISTER_COUNT sized arrays in a few places, diff -Nru linux-5.10.209/drivers/scsi/qla2xxx/qla_gs.c linux-5.10.216/drivers/scsi/qla2xxx/qla_gs.c --- linux-5.10.209/drivers/scsi/qla2xxx/qla_gs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/qla2xxx/qla_gs.c 2024-05-02 14:23:46.000000000 +0000 @@ -1614,7 +1614,7 @@ eiter->type = cpu_to_be16(FDMI_HBA_MANUFACTURER); alen = scnprintf( eiter->a.manufacturer, sizeof(eiter->a.manufacturer), - "%s", "QLogic Corporation"); + "%s", QLA2XXX_MANUFACTURER); alen += FDMI_ATTR_ALIGNMENT(alen); alen += FDMI_ATTR_TYPELEN(eiter); eiter->len = cpu_to_be16(alen); diff -Nru linux-5.10.209/drivers/scsi/qla2xxx/qla_init.c linux-5.10.216/drivers/scsi/qla2xxx/qla_init.c --- linux-5.10.209/drivers/scsi/qla2xxx/qla_init.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/qla2xxx/qla_init.c 2024-05-02 14:23:46.000000000 +0000 @@ -2280,6 +2280,40 @@ return rval; } +static void qla_enable_fce_trace(scsi_qla_host_t *vha) +{ + int rval; + struct qla_hw_data *ha = vha->hw; + + if (ha->fce) { + ha->flags.fce_enabled = 1; + memset(ha->fce, 0, fce_calc_size(ha->fce_bufs)); + rval = qla2x00_enable_fce_trace(vha, + ha->fce_dma, ha->fce_bufs, ha->fce_mb, &ha->fce_bufs); + + if (rval) { + ql_log(ql_log_warn, vha, 0x8033, + "Unable to reinitialize FCE (%d).\n", rval); + ha->flags.fce_enabled = 0; + } + } +} + +static void qla_enable_eft_trace(scsi_qla_host_t *vha) +{ + int rval; + struct qla_hw_data *ha = vha->hw; + + if (ha->eft) { + memset(ha->eft, 0, EFT_SIZE); + rval = qla2x00_enable_eft_trace(vha, ha->eft_dma, EFT_NUM_BUFFERS); + + if (rval) { + ql_log(ql_log_warn, vha, 0x8034, + "Unable to reinitialize EFT (%d).\n", rval); + } + } +} /* * qla2x00_initialize_adapter * Initialize board. @@ -3230,9 +3264,8 @@ } static void -qla2x00_init_fce_trace(scsi_qla_host_t *vha) +qla2x00_alloc_fce_trace(scsi_qla_host_t *vha) { - int rval; dma_addr_t tc_dma; void *tc; struct qla_hw_data *ha = vha->hw; @@ -3261,27 +3294,17 @@ return; } - rval = qla2x00_enable_fce_trace(vha, tc_dma, FCE_NUM_BUFFERS, - ha->fce_mb, &ha->fce_bufs); - if (rval) { - ql_log(ql_log_warn, vha, 0x00bf, - "Unable to initialize FCE (%d).\n", rval); - dma_free_coherent(&ha->pdev->dev, FCE_SIZE, tc, tc_dma); - return; - } - ql_dbg(ql_dbg_init, vha, 0x00c0, "Allocated (%d KB) for FCE...\n", FCE_SIZE / 1024); - ha->flags.fce_enabled = 1; ha->fce_dma = tc_dma; ha->fce = tc; + ha->fce_bufs = FCE_NUM_BUFFERS; } static void -qla2x00_init_eft_trace(scsi_qla_host_t *vha) +qla2x00_alloc_eft_trace(scsi_qla_host_t *vha) { - int rval; dma_addr_t tc_dma; void *tc; struct qla_hw_data *ha = vha->hw; @@ -3306,14 +3329,6 @@ return; } - rval = qla2x00_enable_eft_trace(vha, tc_dma, EFT_NUM_BUFFERS); - if (rval) { - ql_log(ql_log_warn, vha, 0x00c2, - "Unable to initialize EFT (%d).\n", rval); - dma_free_coherent(&ha->pdev->dev, EFT_SIZE, tc, tc_dma); - return; - } - ql_dbg(ql_dbg_init, vha, 0x00c3, "Allocated (%d KB) EFT ...\n", EFT_SIZE / 1024); @@ -3321,13 +3336,6 @@ ha->eft = tc; } -static void -qla2x00_alloc_offload_mem(scsi_qla_host_t *vha) -{ - qla2x00_init_fce_trace(vha); - qla2x00_init_eft_trace(vha); -} - void qla2x00_alloc_fw_dump(scsi_qla_host_t *vha) { @@ -3382,10 +3390,10 @@ if (ha->tgt.atio_ring) mq_size += ha->tgt.atio_q_length * sizeof(request_t); - qla2x00_init_fce_trace(vha); + qla2x00_alloc_fce_trace(vha); if (ha->fce) fce_size = sizeof(struct qla2xxx_fce_chain) + FCE_SIZE; - qla2x00_init_eft_trace(vha); + qla2x00_alloc_eft_trace(vha); if (ha->eft) eft_size = EFT_SIZE; } @@ -3784,7 +3792,6 @@ struct qla_hw_data *ha = vha->hw; struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; unsigned long flags; - uint16_t fw_major_version; int done_once = 0; if (IS_P3P_TYPE(ha)) { @@ -3851,7 +3858,6 @@ goto failed; enable_82xx_npiv: - fw_major_version = ha->fw_major_version; if (IS_P3P_TYPE(ha)) qla82xx_check_md_needed(vha); else @@ -3880,12 +3886,11 @@ if (rval != QLA_SUCCESS) goto failed; - if (!fw_major_version && !(IS_P3P_TYPE(ha))) - qla2x00_alloc_offload_mem(vha); - if (ql2xallocfwdump && !(IS_P3P_TYPE(ha))) qla2x00_alloc_fw_dump(vha); + qla_enable_fce_trace(vha); + qla_enable_eft_trace(vha); } else { goto failed; } @@ -7012,7 +7017,6 @@ int qla2x00_abort_isp(scsi_qla_host_t *vha) { - int rval; uint8_t status = 0; struct qla_hw_data *ha = vha->hw; struct scsi_qla_host *vp; @@ -7100,31 +7104,7 @@ if (IS_QLA81XX(ha) || IS_QLA8031(ha)) qla2x00_get_fw_version(vha); - if (ha->fce) { - ha->flags.fce_enabled = 1; - memset(ha->fce, 0, - fce_calc_size(ha->fce_bufs)); - rval = qla2x00_enable_fce_trace(vha, - ha->fce_dma, ha->fce_bufs, ha->fce_mb, - &ha->fce_bufs); - if (rval) { - ql_log(ql_log_warn, vha, 0x8033, - "Unable to reinitialize FCE " - "(%d).\n", rval); - ha->flags.fce_enabled = 0; - } - } - if (ha->eft) { - memset(ha->eft, 0, EFT_SIZE); - rval = qla2x00_enable_eft_trace(vha, - ha->eft_dma, EFT_NUM_BUFFERS); - if (rval) { - ql_log(ql_log_warn, vha, 0x8034, - "Unable to reinitialize EFT " - "(%d).\n", rval); - } - } } else { /* failed the ISP abort */ vha->flags.online = 1; if (test_bit(ISP_ABORT_RETRY, &vha->dpc_flags)) { diff -Nru linux-5.10.209/drivers/scsi/qla2xxx/qla_target.c linux-5.10.216/drivers/scsi/qla2xxx/qla_target.c --- linux-5.10.209/drivers/scsi/qla2xxx/qla_target.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/qla2xxx/qla_target.c 2024-05-02 14:23:46.000000000 +0000 @@ -1038,6 +1038,16 @@ "%s: sess %p logout completed\n", __func__, sess); } + /* check for any straggling io left behind */ + if (!(sess->flags & FCF_FCP2_DEVICE) && + qla2x00_eh_wait_for_pending_commands(sess->vha, sess->d_id.b24, 0, WAIT_TARGET)) { + ql_log(ql_log_warn, vha, 0x3027, + "IO not return. Resetting.\n"); + set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); + qla2xxx_wake_dpc(vha); + qla2x00_wait_for_chip_reset(vha); + } + if (sess->logo_ack_needed) { sess->logo_ack_needed = 0; qla24xx_async_notify_ack(vha, sess, diff -Nru linux-5.10.209/drivers/scsi/scsi_error.c linux-5.10.216/drivers/scsi/scsi_error.c --- linux-5.10.209/drivers/scsi/scsi_error.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/scsi_error.c 2024-05-02 14:23:46.000000000 +0000 @@ -60,14 +60,14 @@ #define HOST_RESET_SETTLE_TIME (10) static int scsi_eh_try_stu(struct scsi_cmnd *scmd); -static int scsi_try_to_abort_cmd(struct scsi_host_template *, - struct scsi_cmnd *); +static enum scsi_disposition scsi_try_to_abort_cmd(struct scsi_host_template *, + struct scsi_cmnd *); -void scsi_eh_wakeup(struct Scsi_Host *shost) +void scsi_eh_wakeup(struct Scsi_Host *shost, unsigned int busy) { lockdep_assert_held(shost->host_lock); - if (scsi_host_busy(shost) == shost->host_failed) { + if (busy == shost->host_failed) { trace_scsi_eh_wakeup(shost); wake_up_process(shost->ehandler); SCSI_LOG_ERROR_RECOVERY(5, shost_printk(KERN_INFO, shost, @@ -90,7 +90,7 @@ if (scsi_host_set_state(shost, SHOST_RECOVERY) == 0 || scsi_host_set_state(shost, SHOST_CANCEL_RECOVERY) == 0) { shost->host_eh_scheduled++; - scsi_eh_wakeup(shost); + scsi_eh_wakeup(shost, scsi_host_busy(shost)); } spin_unlock_irqrestore(shost->host_lock, flags); @@ -140,7 +140,7 @@ struct scsi_cmnd *scmd = container_of(work, struct scsi_cmnd, abort_work.work); struct scsi_device *sdev = scmd->device; - int rtn; + enum scsi_disposition rtn; if (scsi_host_eh_past_deadline(sdev->host)) { SCSI_LOG_ERROR_RECOVERY(3, @@ -241,11 +241,12 @@ { struct scsi_cmnd *scmd = container_of(head, typeof(*scmd), rcu); struct Scsi_Host *shost = scmd->device->host; + unsigned int busy = scsi_host_busy(shost); unsigned long flags; spin_lock_irqsave(shost->host_lock, flags); shost->host_failed++; - scsi_eh_wakeup(shost); + scsi_eh_wakeup(shost, busy); spin_unlock_irqrestore(shost->host_lock, flags); } @@ -478,7 +479,7 @@ * When a deferred error is detected the current command has * not been executed and needs retrying. */ -int scsi_check_sense(struct scsi_cmnd *scmd) +enum scsi_disposition scsi_check_sense(struct scsi_cmnd *scmd) { struct scsi_device *sdev = scmd->device; struct scsi_sense_hdr sshdr; @@ -492,7 +493,7 @@ return NEEDS_RETRY; if (sdev->handler && sdev->handler->check_sense) { - int rc; + enum scsi_disposition rc; rc = sdev->handler->check_sense(sdev, &sshdr); if (rc != SCSI_RETURN_NOT_HANDLED) @@ -703,7 +704,7 @@ * don't allow for the possibility of retries here, and we are a lot * more restrictive about what we consider acceptable. */ -static int scsi_eh_completed_normally(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_eh_completed_normally(struct scsi_cmnd *scmd) { /* * first check the host byte, to see if there is anything in there @@ -784,10 +785,10 @@ * scsi_try_host_reset - ask host adapter to reset itself * @scmd: SCSI cmd to send host reset. */ -static int scsi_try_host_reset(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_try_host_reset(struct scsi_cmnd *scmd) { unsigned long flags; - int rtn; + enum scsi_disposition rtn; struct Scsi_Host *host = scmd->device->host; struct scsi_host_template *hostt = host->hostt; @@ -814,10 +815,10 @@ * scsi_try_bus_reset - ask host to perform a bus reset * @scmd: SCSI cmd to send bus reset. */ -static int scsi_try_bus_reset(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_try_bus_reset(struct scsi_cmnd *scmd) { unsigned long flags; - int rtn; + enum scsi_disposition rtn; struct Scsi_Host *host = scmd->device->host; struct scsi_host_template *hostt = host->hostt; @@ -856,10 +857,10 @@ * timer on it, and set the host back to a consistent state prior to * returning. */ -static int scsi_try_target_reset(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_try_target_reset(struct scsi_cmnd *scmd) { unsigned long flags; - int rtn; + enum scsi_disposition rtn; struct Scsi_Host *host = scmd->device->host; struct scsi_host_template *hostt = host->hostt; @@ -887,9 +888,9 @@ * timer on it, and set the host back to a consistent state prior to * returning. */ -static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_try_bus_device_reset(struct scsi_cmnd *scmd) { - int rtn; + enum scsi_disposition rtn; struct scsi_host_template *hostt = scmd->device->host->hostt; if (!hostt->eh_device_reset_handler) @@ -918,8 +919,8 @@ * if the device is temporarily unavailable (eg due to a * link down on FibreChannel) */ -static int scsi_try_to_abort_cmd(struct scsi_host_template *hostt, - struct scsi_cmnd *scmd) +static enum scsi_disposition +scsi_try_to_abort_cmd(struct scsi_host_template *hostt, struct scsi_cmnd *scmd) { if (!hostt->eh_abort_handler) return FAILED; @@ -1052,8 +1053,8 @@ * Return value: * SUCCESS or FAILED or NEEDS_RETRY */ -static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd, - int cmnd_size, int timeout, unsigned sense_bytes) +static enum scsi_disposition scsi_send_eh_cmnd(struct scsi_cmnd *scmd, + unsigned char *cmnd, int cmnd_size, int timeout, unsigned sense_bytes) { struct scsi_device *sdev = scmd->device; struct Scsi_Host *shost = sdev->host; @@ -1161,12 +1162,13 @@ * that we obtain it on our own. This function will *not* return until * the command either times out, or it completes. */ -static int scsi_request_sense(struct scsi_cmnd *scmd) +static enum scsi_disposition scsi_request_sense(struct scsi_cmnd *scmd) { return scsi_send_eh_cmnd(scmd, NULL, 0, scmd->device->eh_timeout, ~0); } -static int scsi_eh_action(struct scsi_cmnd *scmd, int rtn) +static enum scsi_disposition +scsi_eh_action(struct scsi_cmnd *scmd, enum scsi_disposition rtn) { if (!blk_rq_is_passthrough(scmd->request)) { struct scsi_driver *sdrv = scsi_cmd_to_driver(scmd); @@ -1219,7 +1221,7 @@ { struct scsi_cmnd *scmd, *next; struct Scsi_Host *shost; - int rtn; + enum scsi_disposition rtn; /* * If SCSI_EH_ABORT_SCHEDULED has been set, it is timeout IO, @@ -1297,7 +1299,8 @@ static int scsi_eh_tur(struct scsi_cmnd *scmd) { static unsigned char tur_command[6] = {TEST_UNIT_READY, 0, 0, 0, 0, 0}; - int retry_cnt = 1, rtn; + int retry_cnt = 1; + enum scsi_disposition rtn; retry_tur: rtn = scsi_send_eh_cmnd(scmd, tur_command, 6, @@ -1385,7 +1388,8 @@ static unsigned char stu_command[6] = {START_STOP, 0, 0, 0, 1, 0}; if (scmd->device->allow_restart) { - int i, rtn = NEEDS_RETRY; + int i; + enum scsi_disposition rtn = NEEDS_RETRY; for (i = 0; rtn == NEEDS_RETRY && i < 2; i++) rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, scmd->device->request_queue->rq_timeout, 0); @@ -1479,7 +1483,7 @@ { struct scsi_cmnd *scmd, *bdr_scmd, *next; struct scsi_device *sdev; - int rtn; + enum scsi_disposition rtn; shost_for_each_device(sdev, shost) { if (scsi_host_eh_past_deadline(shost)) { @@ -1546,7 +1550,7 @@ while (!list_empty(&tmp_list)) { struct scsi_cmnd *next, *scmd; - int rtn; + enum scsi_disposition rtn; unsigned int id; if (scsi_host_eh_past_deadline(shost)) { @@ -1604,7 +1608,7 @@ struct scsi_cmnd *scmd, *chan_scmd, *next; LIST_HEAD(check_list); unsigned int channel; - int rtn; + enum scsi_disposition rtn; /* * we really want to loop over the various channels, and do this on @@ -1675,7 +1679,7 @@ { struct scsi_cmnd *scmd, *next; LIST_HEAD(check_list); - int rtn; + enum scsi_disposition rtn; if (!list_empty(work_q)) { scmd = list_entry(work_q->next, @@ -1781,9 +1785,9 @@ * doesn't require the error handler read (i.e. we don't need to * abort/reset), this function should return SUCCESS. */ -int scsi_decide_disposition(struct scsi_cmnd *scmd) +enum scsi_disposition scsi_decide_disposition(struct scsi_cmnd *scmd) { - int rtn; + enum scsi_disposition rtn; /* * if the device is offline, then we clearly just pass the result back @@ -2339,7 +2343,8 @@ struct Scsi_Host *shost = dev->host; struct request *rq; unsigned long flags; - int error = 0, rtn, val; + int error = 0, val; + enum scsi_disposition rtn; if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO)) return -EACCES; diff -Nru linux-5.10.209/drivers/scsi/scsi_lib.c linux-5.10.216/drivers/scsi/scsi_lib.c --- linux-5.10.209/drivers/scsi/scsi_lib.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/scsi_lib.c 2024-05-02 14:23:46.000000000 +0000 @@ -310,9 +310,11 @@ rcu_read_lock(); __clear_bit(SCMD_STATE_INFLIGHT, &cmd->state); if (unlikely(scsi_host_in_recovery(shost))) { + unsigned int busy = scsi_host_busy(shost); + spin_lock_irqsave(shost->host_lock, flags); if (shost->host_failed || shost->host_eh_scheduled) - scsi_eh_wakeup(shost); + scsi_eh_wakeup(shost, busy); spin_unlock_irqrestore(shost->host_lock, flags); } rcu_read_unlock(); @@ -1426,7 +1428,7 @@ static void scsi_softirq_done(struct request *rq) { struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq); - int disposition; + enum scsi_disposition disposition; INIT_LIST_HEAD(&cmd->eh_entry); diff -Nru linux-5.10.209/drivers/scsi/scsi_priv.h linux-5.10.216/drivers/scsi/scsi_priv.h --- linux-5.10.209/drivers/scsi/scsi_priv.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/scsi_priv.h 2024-05-02 14:23:46.000000000 +0000 @@ -73,8 +73,8 @@ extern void scmd_eh_abort_handler(struct work_struct *work); extern enum blk_eh_timer_return scsi_times_out(struct request *req); extern int scsi_error_handler(void *host); -extern int scsi_decide_disposition(struct scsi_cmnd *cmd); -extern void scsi_eh_wakeup(struct Scsi_Host *shost); +extern enum scsi_disposition scsi_decide_disposition(struct scsi_cmnd *cmd); +extern void scsi_eh_wakeup(struct Scsi_Host *shost, unsigned int busy); extern void scsi_eh_scmd_add(struct scsi_cmnd *); void scsi_eh_ready_devs(struct Scsi_Host *shost, struct list_head *work_q, diff -Nru linux-5.10.209/drivers/scsi/sd.c linux-5.10.216/drivers/scsi/sd.c --- linux-5.10.209/drivers/scsi/sd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/scsi/sd.c 2024-05-02 14:23:46.000000000 +0000 @@ -3026,8 +3026,13 @@ } if (sdkp->device->type == TYPE_ZBC) { - /* Host-managed */ + /* + * Host-managed: Per ZBC and ZAC specifications, writes in + * sequential write required zones of host-managed devices must + * be aligned to the device physical block size. + */ blk_queue_set_zoned(sdkp->disk, BLK_ZONED_HM); + blk_queue_zone_write_granularity(q, sdkp->physical_block_size); } else { sdkp->zoned = (buffer[8] >> 4) & 3; if (sdkp->zoned == 1) { diff -Nru linux-5.10.209/drivers/slimbus/core.c linux-5.10.216/drivers/slimbus/core.c --- linux-5.10.209/drivers/slimbus/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/slimbus/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -438,8 +438,8 @@ if (ret < 0) goto err; } else if (report_present) { - ret = ida_simple_get(&ctrl->laddr_ida, - 0, SLIM_LA_MANAGER - 1, GFP_KERNEL); + ret = ida_alloc_max(&ctrl->laddr_ida, + SLIM_LA_MANAGER - 1, GFP_KERNEL); if (ret < 0) goto err; diff -Nru linux-5.10.209/drivers/soc/fsl/dpio/dpio-service.c linux-5.10.216/drivers/soc/fsl/dpio/dpio-service.c --- linux-5.10.209/drivers/soc/fsl/dpio/dpio-service.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/soc/fsl/dpio/dpio-service.c 2024-05-02 14:23:46.000000000 +0000 @@ -485,7 +485,7 @@ struct qbman_eq_desc *ed; int i, ret; - ed = kcalloc(sizeof(struct qbman_eq_desc), 32, GFP_KERNEL); + ed = kcalloc(32, sizeof(struct qbman_eq_desc), GFP_KERNEL); if (!ed) return -ENOMEM; diff -Nru linux-5.10.209/drivers/soc/fsl/qbman/qman.c linux-5.10.216/drivers/soc/fsl/qbman/qman.c --- linux-5.10.209/drivers/soc/fsl/qbman/qman.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/soc/fsl/qbman/qman.c 2024-05-02 14:23:46.000000000 +0000 @@ -991,7 +991,7 @@ /* linked-list of CSCN handlers. */ struct list_head cgr_cbs; /* list lock */ - spinlock_t cgr_lock; + raw_spinlock_t cgr_lock; struct work_struct congestion_work; struct work_struct mr_work; char irqname[MAX_IRQNAME]; @@ -1281,7 +1281,7 @@ /* if the given mask is NULL, assume all CGRs can be seen */ qman_cgrs_fill(&portal->cgrs[0]); INIT_LIST_HEAD(&portal->cgr_cbs); - spin_lock_init(&portal->cgr_lock); + raw_spin_lock_init(&portal->cgr_lock); INIT_WORK(&portal->congestion_work, qm_congestion_task); INIT_WORK(&portal->mr_work, qm_mr_process_task); portal->bits = 0; @@ -1456,11 +1456,14 @@ union qm_mc_result *mcr; struct qman_cgr *cgr; - spin_lock(&p->cgr_lock); + /* + * FIXME: QM_MCR_TIMEOUT is 10ms, which is too long for a raw spinlock! + */ + raw_spin_lock_irq(&p->cgr_lock); qm_mc_start(&p->p); qm_mc_commit(&p->p, QM_MCC_VERB_QUERYCONGESTION); if (!qm_mc_result_timeout(&p->p, &mcr)) { - spin_unlock(&p->cgr_lock); + raw_spin_unlock_irq(&p->cgr_lock); dev_crit(p->config->dev, "QUERYCONGESTION timeout\n"); qman_p_irqsource_add(p, QM_PIRQ_CSCI); return; @@ -1476,7 +1479,7 @@ list_for_each_entry(cgr, &p->cgr_cbs, node) if (cgr->cb && qman_cgrs_get(&c, cgr->cgrid)) cgr->cb(p, cgr, qman_cgrs_get(&rr, cgr->cgrid)); - spin_unlock(&p->cgr_lock); + raw_spin_unlock_irq(&p->cgr_lock); qman_p_irqsource_add(p, QM_PIRQ_CSCI); } @@ -2440,7 +2443,7 @@ preempt_enable(); cgr->chan = p->config->channel; - spin_lock(&p->cgr_lock); + raw_spin_lock_irq(&p->cgr_lock); if (opts) { struct qm_mcc_initcgr local_opts = *opts; @@ -2477,19 +2480,14 @@ qman_cgrs_get(&p->cgrs[1], cgr->cgrid)) cgr->cb(p, cgr, 1); out: - spin_unlock(&p->cgr_lock); + raw_spin_unlock_irq(&p->cgr_lock); put_affine_portal(); return ret; } EXPORT_SYMBOL(qman_create_cgr); -int qman_delete_cgr(struct qman_cgr *cgr) +static struct qman_portal *qman_cgr_get_affine_portal(struct qman_cgr *cgr) { - unsigned long irqflags; - struct qm_mcr_querycgr cgr_state; - struct qm_mcc_initcgr local_opts; - int ret = 0; - struct qman_cgr *i; struct qman_portal *p = get_affine_portal(); if (cgr->chan != p->config->channel) { @@ -2497,12 +2495,27 @@ dev_err(p->config->dev, "CGR not owned by current portal"); dev_dbg(p->config->dev, " create 0x%x, delete 0x%x\n", cgr->chan, p->config->channel); - - ret = -EINVAL; - goto put_portal; + put_affine_portal(); + return NULL; } + + return p; +} + +int qman_delete_cgr(struct qman_cgr *cgr) +{ + unsigned long irqflags; + struct qm_mcr_querycgr cgr_state; + struct qm_mcc_initcgr local_opts; + int ret = 0; + struct qman_cgr *i; + struct qman_portal *p = qman_cgr_get_affine_portal(cgr); + + if (!p) + return -EINVAL; + memset(&local_opts, 0, sizeof(struct qm_mcc_initcgr)); - spin_lock_irqsave(&p->cgr_lock, irqflags); + raw_spin_lock_irqsave(&p->cgr_lock, irqflags); list_del(&cgr->node); /* * If there are no other CGR objects for this CGRID in the list, @@ -2527,8 +2540,7 @@ /* add back to the list */ list_add(&cgr->node, &p->cgr_cbs); release_lock: - spin_unlock_irqrestore(&p->cgr_lock, irqflags); -put_portal: + raw_spin_unlock_irqrestore(&p->cgr_lock, irqflags); put_affine_portal(); return ret; } @@ -2559,6 +2571,54 @@ } EXPORT_SYMBOL(qman_delete_cgr_safe); +static int qman_update_cgr(struct qman_cgr *cgr, struct qm_mcc_initcgr *opts) +{ + int ret; + unsigned long irqflags; + struct qman_portal *p = qman_cgr_get_affine_portal(cgr); + + if (!p) + return -EINVAL; + + raw_spin_lock_irqsave(&p->cgr_lock, irqflags); + ret = qm_modify_cgr(cgr, 0, opts); + raw_spin_unlock_irqrestore(&p->cgr_lock, irqflags); + put_affine_portal(); + return ret; +} + +struct update_cgr_params { + struct qman_cgr *cgr; + struct qm_mcc_initcgr *opts; + int ret; +}; + +static void qman_update_cgr_smp_call(void *p) +{ + struct update_cgr_params *params = p; + + params->ret = qman_update_cgr(params->cgr, params->opts); +} + +int qman_update_cgr_safe(struct qman_cgr *cgr, struct qm_mcc_initcgr *opts) +{ + struct update_cgr_params params = { + .cgr = cgr, + .opts = opts, + }; + + preempt_disable(); + if (qman_cgr_cpus[cgr->cgrid] != smp_processor_id()) + smp_call_function_single(qman_cgr_cpus[cgr->cgrid], + qman_update_cgr_smp_call, ¶ms, + true); + else + params.ret = qman_update_cgr(cgr, opts); + preempt_enable(); + return params.ret; +} +EXPORT_SYMBOL(qman_update_cgr_safe); + /* Cleanup FQs */ static int _qm_mr_consume_and_match_verb(struct qm_portal *p, int v) diff -Nru linux-5.10.209/drivers/soc/qcom/rpmhpd.c linux-5.10.216/drivers/soc/qcom/rpmhpd.c --- linux-5.10.209/drivers/soc/qcom/rpmhpd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/soc/qcom/rpmhpd.c 2024-05-02 14:23:46.000000000 +0000 @@ -261,12 +261,15 @@ unsigned int active_corner, sleep_corner; unsigned int this_active_corner = 0, this_sleep_corner = 0; unsigned int peer_active_corner = 0, peer_sleep_corner = 0; + unsigned int peer_enabled_corner; to_active_sleep(pd, corner, &this_active_corner, &this_sleep_corner); - if (peer && peer->enabled) - to_active_sleep(peer, peer->corner, &peer_active_corner, + if (peer && peer->enabled) { + peer_enabled_corner = max(peer->corner, peer->enable_corner); + to_active_sleep(peer, peer_enabled_corner, &peer_active_corner, &peer_sleep_corner); + } active_corner = max(this_active_corner, peer_active_corner); diff -Nru linux-5.10.209/drivers/soc/renesas/r8a77980-sysc.c linux-5.10.216/drivers/soc/renesas/r8a77980-sysc.c --- linux-5.10.209/drivers/soc/renesas/r8a77980-sysc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/soc/renesas/r8a77980-sysc.c 2024-05-02 14:23:46.000000000 +0000 @@ -25,7 +25,8 @@ PD_CPU_NOCR }, { "ca53-cpu3", 0x200, 3, R8A77980_PD_CA53_CPU3, R8A77980_PD_CA53_SCU, PD_CPU_NOCR }, - { "cr7", 0x240, 0, R8A77980_PD_CR7, R8A77980_PD_ALWAYS_ON }, + { "cr7", 0x240, 0, R8A77980_PD_CR7, R8A77980_PD_ALWAYS_ON, + PD_CPU_NOCR }, { "a3ir", 0x180, 0, R8A77980_PD_A3IR, R8A77980_PD_ALWAYS_ON }, { "a2ir0", 0x400, 0, R8A77980_PD_A2IR0, R8A77980_PD_A3IR }, { "a2ir1", 0x400, 1, R8A77980_PD_A2IR1, R8A77980_PD_A3IR }, diff -Nru linux-5.10.209/drivers/spi/spi-bcm-qspi.c linux-5.10.216/drivers/spi/spi-bcm-qspi.c --- linux-5.10.209/drivers/spi/spi-bcm-qspi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/spi/spi-bcm-qspi.c 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include "spi-bcm-qspi.h" @@ -1048,7 +1048,7 @@ /* non-aligned and very short transfers are handled by MSPI */ if (!IS_ALIGNED((uintptr_t)addr, 4) || !IS_ALIGNED((uintptr_t)buf, 4) || - len < 4) + len < 4 || op->cmd.opcode == SPINOR_OP_RDSFDP) mspi_read = true; if (!has_bspi(qspi) || mspi_read) diff -Nru linux-5.10.209/drivers/spi/spi-hisi-sfc-v3xx.c linux-5.10.216/drivers/spi/spi-hisi-sfc-v3xx.c --- linux-5.10.209/drivers/spi/spi-hisi-sfc-v3xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/spi/spi-hisi-sfc-v3xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -365,6 +365,11 @@ static irqreturn_t hisi_sfc_v3xx_isr(int irq, void *data) { struct hisi_sfc_v3xx_host *host = data; + u32 reg; + + reg = readl(host->regbase + HISI_SFC_V3XX_INT_STAT); + if (!reg) + return IRQ_NONE; hisi_sfc_v3xx_disable_int(host); diff -Nru linux-5.10.209/drivers/spi/spi-mt65xx.c linux-5.10.216/drivers/spi/spi-mt65xx.c --- linux-5.10.209/drivers/spi/spi-mt65xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/spi/spi-mt65xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -566,17 +566,19 @@ mdata->xfer_len = min(MTK_SPI_MAX_FIFO_SIZE, len); mtk_spi_setup_packet(master); - cnt = mdata->xfer_len / 4; - iowrite32_rep(mdata->base + SPI_TX_DATA_REG, - trans->tx_buf + mdata->num_xfered, cnt); + if (trans->tx_buf) { + cnt = mdata->xfer_len / 4; + iowrite32_rep(mdata->base + SPI_TX_DATA_REG, + trans->tx_buf + mdata->num_xfered, cnt); - remainder = mdata->xfer_len % 4; - if (remainder > 0) { - reg_val = 0; - memcpy(®_val, - trans->tx_buf + (cnt * 4) + mdata->num_xfered, - remainder); - writel(reg_val, mdata->base + SPI_TX_DATA_REG); + remainder = mdata->xfer_len % 4; + if (remainder > 0) { + reg_val = 0; + memcpy(®_val, + trans->tx_buf + (cnt * 4) + mdata->num_xfered, + remainder); + writel(reg_val, mdata->base + SPI_TX_DATA_REG); + } } mtk_spi_enable_transfer(master); diff -Nru linux-5.10.209/drivers/spi/spi-ppc4xx.c linux-5.10.216/drivers/spi/spi-ppc4xx.c --- linux-5.10.209/drivers/spi/spi-ppc4xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/spi/spi-ppc4xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,10 +166,8 @@ int scr; u8 cdm = 0; u32 speed; - u8 bits_per_word; /* Start with the generic configuration for this device. */ - bits_per_word = spi->bits_per_word; speed = spi->max_speed_hz; /* @@ -177,9 +175,6 @@ * the transfer to overwrite the generic configuration with zeros. */ if (t) { - if (t->bits_per_word) - bits_per_word = t->bits_per_word; - if (t->speed_hz) speed = min(t->speed_hz, spi->max_speed_hz); } diff -Nru linux-5.10.209/drivers/spi/spi-sh-msiof.c linux-5.10.216/drivers/spi/spi-sh-msiof.c --- linux-5.10.209/drivers/spi/spi-sh-msiof.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/spi/spi-sh-msiof.c 2024-05-02 14:23:46.000000000 +0000 @@ -137,14 +137,14 @@ /* SIFCTR */ #define SIFCTR_TFWM_MASK GENMASK(31, 29) /* Transmit FIFO Watermark */ -#define SIFCTR_TFWM_64 (0 << 29) /* Transfer Request when 64 empty stages */ -#define SIFCTR_TFWM_32 (1 << 29) /* Transfer Request when 32 empty stages */ -#define SIFCTR_TFWM_24 (2 << 29) /* Transfer Request when 24 empty stages */ -#define SIFCTR_TFWM_16 (3 << 29) /* Transfer Request when 16 empty stages */ -#define SIFCTR_TFWM_12 (4 << 29) /* Transfer Request when 12 empty stages */ -#define SIFCTR_TFWM_8 (5 << 29) /* Transfer Request when 8 empty stages */ -#define SIFCTR_TFWM_4 (6 << 29) /* Transfer Request when 4 empty stages */ -#define SIFCTR_TFWM_1 (7 << 29) /* Transfer Request when 1 empty stage */ +#define SIFCTR_TFWM_64 (0UL << 29) /* Transfer Request when 64 empty stages */ +#define SIFCTR_TFWM_32 (1UL << 29) /* Transfer Request when 32 empty stages */ +#define SIFCTR_TFWM_24 (2UL << 29) /* Transfer Request when 24 empty stages */ +#define SIFCTR_TFWM_16 (3UL << 29) /* Transfer Request when 16 empty stages */ +#define SIFCTR_TFWM_12 (4UL << 29) /* Transfer Request when 12 empty stages */ +#define SIFCTR_TFWM_8 (5UL << 29) /* Transfer Request when 8 empty stages */ +#define SIFCTR_TFWM_4 (6UL << 29) /* Transfer Request when 4 empty stages */ +#define SIFCTR_TFWM_1 (7UL << 29) /* Transfer Request when 1 empty stage */ #define SIFCTR_TFUA_MASK GENMASK(26, 20) /* Transmit FIFO Usable Area */ #define SIFCTR_TFUA_SHIFT 20 #define SIFCTR_TFUA(i) ((i) << SIFCTR_TFUA_SHIFT) diff -Nru linux-5.10.209/drivers/staging/comedi/drivers/comedi_test.c linux-5.10.216/drivers/staging/comedi/drivers/comedi_test.c --- linux-5.10.209/drivers/staging/comedi/drivers/comedi_test.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/comedi/drivers/comedi_test.c 2024-05-02 14:23:46.000000000 +0000 @@ -87,6 +87,8 @@ struct comedi_device *dev; /* parent comedi device */ u64 ao_last_scan_time; /* time of previous AO scan in usec */ unsigned int ao_scan_period; /* AO scan period in usec */ + bool ai_timer_enable:1; /* should AI timer be running? */ + bool ao_timer_enable:1; /* should AO timer be running? */ unsigned short ao_loopbacks[N_CHANS]; }; @@ -236,8 +238,12 @@ time_increment = devpriv->ai_convert_time - now; else time_increment = 1; - mod_timer(&devpriv->ai_timer, - jiffies + usecs_to_jiffies(time_increment)); + spin_lock(&dev->spinlock); + if (devpriv->ai_timer_enable) { + mod_timer(&devpriv->ai_timer, + jiffies + usecs_to_jiffies(time_increment)); + } + spin_unlock(&dev->spinlock); } overrun: @@ -393,9 +399,12 @@ * Seem to need an extra jiffy here, otherwise timer expires slightly * early! */ + spin_lock_bh(&dev->spinlock); + devpriv->ai_timer_enable = true; devpriv->ai_timer.expires = jiffies + usecs_to_jiffies(devpriv->ai_convert_period) + 1; add_timer(&devpriv->ai_timer); + spin_unlock_bh(&dev->spinlock); return 0; } @@ -404,6 +413,9 @@ { struct waveform_private *devpriv = dev->private; + spin_lock_bh(&dev->spinlock); + devpriv->ai_timer_enable = false; + spin_unlock_bh(&dev->spinlock); if (in_softirq()) { /* Assume we were called from the timer routine itself. */ del_timer(&devpriv->ai_timer); @@ -495,8 +507,12 @@ unsigned int time_inc = devpriv->ao_last_scan_time + devpriv->ao_scan_period - now; - mod_timer(&devpriv->ao_timer, - jiffies + usecs_to_jiffies(time_inc)); + spin_lock(&dev->spinlock); + if (devpriv->ao_timer_enable) { + mod_timer(&devpriv->ao_timer, + jiffies + usecs_to_jiffies(time_inc)); + } + spin_unlock(&dev->spinlock); } underrun: @@ -517,9 +533,12 @@ async->inttrig = NULL; devpriv->ao_last_scan_time = ktime_to_us(ktime_get()); + spin_lock_bh(&dev->spinlock); + devpriv->ao_timer_enable = true; devpriv->ao_timer.expires = jiffies + usecs_to_jiffies(devpriv->ao_scan_period); add_timer(&devpriv->ao_timer); + spin_unlock_bh(&dev->spinlock); return 1; } @@ -604,6 +623,9 @@ struct waveform_private *devpriv = dev->private; s->async->inttrig = NULL; + spin_lock_bh(&dev->spinlock); + devpriv->ao_timer_enable = false; + spin_unlock_bh(&dev->spinlock); if (in_softirq()) { /* Assume we were called from the timer routine itself. */ del_timer(&devpriv->ao_timer); diff -Nru linux-5.10.209/drivers/staging/comedi/drivers/vmk80xx.c linux-5.10.216/drivers/staging/comedi/drivers/vmk80xx.c --- linux-5.10.209/drivers/staging/comedi/drivers/vmk80xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/comedi/drivers/vmk80xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -642,33 +642,22 @@ struct vmk80xx_private *devpriv = dev->private; struct usb_interface *intf = comedi_to_usb_interface(dev); struct usb_host_interface *iface_desc = intf->cur_altsetting; - struct usb_endpoint_descriptor *ep_desc; - int i; + struct usb_endpoint_descriptor *ep_rx_desc, *ep_tx_desc; + int ret; - if (iface_desc->desc.bNumEndpoints != 2) - return -ENODEV; - - for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) { - ep_desc = &iface_desc->endpoint[i].desc; - - if (usb_endpoint_is_int_in(ep_desc) || - usb_endpoint_is_bulk_in(ep_desc)) { - if (!devpriv->ep_rx) - devpriv->ep_rx = ep_desc; - continue; - } + if (devpriv->model == VMK8061_MODEL) + ret = usb_find_common_endpoints(iface_desc, &ep_rx_desc, + &ep_tx_desc, NULL, NULL); + else + ret = usb_find_common_endpoints(iface_desc, NULL, NULL, + &ep_rx_desc, &ep_tx_desc); - if (usb_endpoint_is_int_out(ep_desc) || - usb_endpoint_is_bulk_out(ep_desc)) { - if (!devpriv->ep_tx) - devpriv->ep_tx = ep_desc; - continue; - } - } - - if (!devpriv->ep_rx || !devpriv->ep_tx) + if (ret) return -ENODEV; + devpriv->ep_rx = ep_rx_desc; + devpriv->ep_tx = ep_tx_desc; + if (!usb_endpoint_maxp(devpriv->ep_rx) || !usb_endpoint_maxp(devpriv->ep_tx)) return -EINVAL; diff -Nru linux-5.10.209/drivers/staging/greybus/light.c linux-5.10.216/drivers/staging/greybus/light.c --- linux-5.10.209/drivers/staging/greybus/light.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/greybus/light.c 2024-05-02 14:23:46.000000000 +0000 @@ -100,15 +100,15 @@ static struct gb_channel *get_channel_from_mode(struct gb_light *light, u32 mode) { - struct gb_channel *channel = NULL; + struct gb_channel *channel; int i; for (i = 0; i < light->channels_count; i++) { channel = &light->channels[i]; - if (channel && channel->mode == mode) - break; + if (channel->mode == mode) + return channel; } - return channel; + return NULL; } static int __gb_lights_flash_intensity_set(struct gb_channel *channel, diff -Nru linux-5.10.209/drivers/staging/iio/impedance-analyzer/ad5933.c linux-5.10.216/drivers/staging/iio/impedance-analyzer/ad5933.c --- linux-5.10.209/drivers/staging/iio/impedance-analyzer/ad5933.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/iio/impedance-analyzer/ad5933.c 2024-05-02 14:23:46.000000000 +0000 @@ -625,7 +625,7 @@ struct ad5933_state, work.work); struct iio_dev *indio_dev = i2c_get_clientdata(st->client); __be16 buf[2]; - int val[2]; + u16 val[2]; unsigned char status; int ret; diff -Nru linux-5.10.209/drivers/staging/media/imx/imx-media-csc-scaler.c linux-5.10.216/drivers/staging/media/imx/imx-media-csc-scaler.c --- linux-5.10.209/drivers/staging/media/imx/imx-media-csc-scaler.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/media/imx/imx-media-csc-scaler.c 2024-05-02 14:23:46.000000000 +0000 @@ -803,6 +803,7 @@ dev_dbg(priv->dev, "Releasing instance %p\n", ctx); + v4l2_ctrl_handler_free(&ctx->ctrl_hdlr); v4l2_m2m_ctx_release(ctx->fh.m2m_ctx); v4l2_fh_del(&ctx->fh); v4l2_fh_exit(&ctx->fh); diff -Nru linux-5.10.209/drivers/staging/media/ipu3/ipu3-v4l2.c linux-5.10.216/drivers/staging/media/ipu3/ipu3-v4l2.c --- linux-5.10.209/drivers/staging/media/ipu3/ipu3-v4l2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/media/ipu3/ipu3-v4l2.c 2024-05-02 14:23:46.000000000 +0000 @@ -1063,6 +1063,11 @@ struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; /* Initialize subdev media entity */ + imgu_sd->subdev.entity.ops = &imgu_media_ops; + for (i = 0; i < IMGU_NODE_NUM; i++) { + imgu_sd->subdev_pads[i].flags = imgu_pipe->nodes[i].output ? + MEDIA_PAD_FL_SINK : MEDIA_PAD_FL_SOURCE; + } r = media_entity_pads_init(&imgu_sd->subdev.entity, IMGU_NODE_NUM, imgu_sd->subdev_pads); if (r) { @@ -1070,11 +1075,6 @@ "failed initialize subdev media entity (%d)\n", r); return r; } - imgu_sd->subdev.entity.ops = &imgu_media_ops; - for (i = 0; i < IMGU_NODE_NUM; i++) { - imgu_sd->subdev_pads[i].flags = imgu_pipe->nodes[i].output ? - MEDIA_PAD_FL_SINK : MEDIA_PAD_FL_SOURCE; - } /* Initialize subdev */ v4l2_subdev_init(&imgu_sd->subdev, &imgu_subdev_ops); @@ -1169,15 +1169,15 @@ } /* Initialize media entities */ + node->vdev_pad.flags = node->output ? + MEDIA_PAD_FL_SOURCE : MEDIA_PAD_FL_SINK; + vdev->entity.ops = NULL; r = media_entity_pads_init(&vdev->entity, 1, &node->vdev_pad); if (r) { dev_err(dev, "failed initialize media entity (%d)\n", r); mutex_destroy(&node->lock); return r; } - node->vdev_pad.flags = node->output ? - MEDIA_PAD_FL_SOURCE : MEDIA_PAD_FL_SINK; - vdev->entity.ops = NULL; /* Initialize vbq */ vbq->type = node->vdev_fmt.type; diff -Nru linux-5.10.209/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c linux-5.10.216/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c --- linux-5.10.209/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c 2024-05-02 14:23:46.000000000 +0000 @@ -940,8 +940,9 @@ /* build component create message */ m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE; m.u.component_create.client_component = component->client_component; - strncpy(m.u.component_create.name, name, - sizeof(m.u.component_create.name)); + strscpy_pad(m.u.component_create.name, name, + sizeof(m.u.component_create.name)); + m.u.component_create.pid = 0; ret = send_synchronous_mmal_msg(instance, &m, sizeof(m.u.component_create), diff -Nru linux-5.10.209/drivers/target/target_core_device.c linux-5.10.216/drivers/target/target_core_device.c --- linux-5.10.209/drivers/target/target_core_device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/target/target_core_device.c 2024-05-02 14:23:46.000000000 +0000 @@ -150,7 +150,6 @@ struct se_session *se_sess = se_cmd->se_sess; struct se_node_acl *nacl = se_sess->se_node_acl; struct se_tmr_req *se_tmr = se_cmd->se_tmr_req; - unsigned long flags; rcu_read_lock(); deve = target_nacl_find_deve(nacl, se_cmd->orig_fe_lun); @@ -181,10 +180,6 @@ se_cmd->se_dev = rcu_dereference_raw(se_lun->lun_se_dev); se_tmr->tmr_dev = rcu_dereference_raw(se_lun->lun_se_dev); - spin_lock_irqsave(&se_tmr->tmr_dev->se_tmr_lock, flags); - list_add_tail(&se_tmr->tmr_list, &se_tmr->tmr_dev->dev_tmr_list); - spin_unlock_irqrestore(&se_tmr->tmr_dev->se_tmr_lock, flags); - return 0; } EXPORT_SYMBOL(transport_lookup_tmr_lun); diff -Nru linux-5.10.209/drivers/target/target_core_transport.c linux-5.10.216/drivers/target/target_core_transport.c --- linux-5.10.209/drivers/target/target_core_transport.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/target/target_core_transport.c 2024-05-02 14:23:46.000000000 +0000 @@ -3436,6 +3436,10 @@ unsigned long flags; bool aborted = false; + spin_lock_irqsave(&cmd->se_dev->se_tmr_lock, flags); + list_add_tail(&cmd->se_tmr_req->tmr_list, &cmd->se_dev->dev_tmr_list); + spin_unlock_irqrestore(&cmd->se_dev->se_tmr_lock, flags); + spin_lock_irqsave(&cmd->t_state_lock, flags); if (cmd->transport_state & CMD_T_ABORTED) { aborted = true; diff -Nru linux-5.10.209/drivers/tee/optee/device.c linux-5.10.216/drivers/tee/optee/device.c --- linux-5.10.209/drivers/tee/optee/device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tee/optee/device.c 2024-05-02 14:23:46.000000000 +0000 @@ -90,13 +90,14 @@ if (rc) { pr_err("device registration failed, err: %d\n", rc); put_device(&optee_device->dev); + return rc; } if (func == PTA_CMD_GET_DEVICES_SUPP) device_create_file(&optee_device->dev, &dev_attr_need_supplicant); - return rc; + return 0; } static int __optee_enumerate_devices(u32 func) diff -Nru linux-5.10.209/drivers/thunderbolt/switch.c linux-5.10.216/drivers/thunderbolt/switch.c --- linux-5.10.209/drivers/thunderbolt/switch.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/thunderbolt/switch.c 2024-05-02 14:23:46.000000000 +0000 @@ -2402,22 +2402,29 @@ { struct tb_port *up, *down; - if (sw->is_unplugged) - return; if (!tb_route(sw) || tb_switch_is_icm(sw)) return; + /* + * Unconfigure downstream port so that wake-on-connect can be + * configured after router unplug. No need to unconfigure upstream port + * since its router is unplugged. + */ up = tb_upstream_port(sw); - if (tb_switch_is_usb4(up->sw)) - usb4_port_unconfigure(up); - else - tb_lc_unconfigure_port(up); - down = up->remote; if (tb_switch_is_usb4(down->sw)) usb4_port_unconfigure(down); else tb_lc_unconfigure_port(down); + + if (sw->is_unplugged) + return; + + up = tb_upstream_port(sw); + if (tb_switch_is_usb4(up->sw)) + usb4_port_unconfigure(up); + else + tb_lc_unconfigure_port(up); } static int tb_switch_port_hotplug_enable(struct tb_switch *sw) @@ -2631,7 +2638,26 @@ return tb_lc_set_wake(sw, flags); } -int tb_switch_resume(struct tb_switch *sw) +static void tb_switch_check_wakes(struct tb_switch *sw) +{ + if (device_may_wakeup(&sw->dev)) { + if (tb_switch_is_usb4(sw)) + usb4_switch_check_wakes(sw); + } +} + +/** + * tb_switch_resume() - Resume a switch after sleep + * @sw: Switch to resume + * @runtime: Is this resume from runtime suspend or system sleep + * + * Resumes and re-enumerates router (and all its children), if still plugged + * after suspend. Don't enumerate device router whose UID was changed during + * suspend. If this is resume from system sleep, notifies PM core about the + * wakes occurred during suspend. Disables all wakes, except USB4 wake of + * upstream port for USB4 routers that shall be always enabled. + */ +int tb_switch_resume(struct tb_switch *sw, bool runtime) { struct tb_port *port; int err; @@ -2676,6 +2702,9 @@ if (err) return err; + if (!runtime) + tb_switch_check_wakes(sw); + /* Disable wakes */ tb_switch_set_wake(sw, 0); @@ -2702,7 +2731,8 @@ */ if (tb_port_unlock(port)) tb_port_warn(port, "failed to unlock port\n"); - if (port->remote && tb_switch_resume(port->remote->sw)) { + if (port->remote && + tb_switch_resume(port->remote->sw, runtime)) { tb_port_warn(port, "lost during suspend, disconnecting\n"); tb_sw_set_unplugged(port->remote->sw); diff -Nru linux-5.10.209/drivers/thunderbolt/tb.c linux-5.10.216/drivers/thunderbolt/tb.c --- linux-5.10.209/drivers/thunderbolt/tb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/thunderbolt/tb.c 2024-05-02 14:23:46.000000000 +0000 @@ -1385,7 +1385,7 @@ /* remove any pci devices the firmware might have setup */ tb_switch_reset(tb->root_switch); - tb_switch_resume(tb->root_switch); + tb_switch_resume(tb->root_switch, false); tb_free_invalid_tunnels(tb); tb_free_unplugged_children(tb->root_switch); tb_restore_children(tb->root_switch); @@ -1488,7 +1488,7 @@ struct tb_tunnel *tunnel, *n; mutex_lock(&tb->lock); - tb_switch_resume(tb->root_switch); + tb_switch_resume(tb->root_switch, true); tb_free_invalid_tunnels(tb); tb_restore_children(tb->root_switch); list_for_each_entry_safe(tunnel, n, &tcm->tunnel_list, list) diff -Nru linux-5.10.209/drivers/thunderbolt/tb.h linux-5.10.216/drivers/thunderbolt/tb.h --- linux-5.10.209/drivers/thunderbolt/tb.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/thunderbolt/tb.h 2024-05-02 14:23:46.000000000 +0000 @@ -653,7 +653,7 @@ int tb_switch_add(struct tb_switch *sw); void tb_switch_remove(struct tb_switch *sw); void tb_switch_suspend(struct tb_switch *sw, bool runtime); -int tb_switch_resume(struct tb_switch *sw); +int tb_switch_resume(struct tb_switch *sw, bool runtime); int tb_switch_reset(struct tb_switch *sw); void tb_sw_set_unplugged(struct tb_switch *sw); struct tb_port *tb_switch_find_port(struct tb_switch *sw, @@ -957,6 +957,7 @@ return NULL; } +void usb4_switch_check_wakes(struct tb_switch *sw); int usb4_switch_setup(struct tb_switch *sw); int usb4_switch_read_uid(struct tb_switch *sw, u64 *uid); int usb4_switch_drom_read(struct tb_switch *sw, unsigned int address, void *buf, diff -Nru linux-5.10.209/drivers/thunderbolt/usb4.c linux-5.10.216/drivers/thunderbolt/usb4.c --- linux-5.10.209/drivers/thunderbolt/usb4.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/thunderbolt/usb4.c 2024-05-02 14:23:46.000000000 +0000 @@ -197,15 +197,18 @@ return 0; } -static void usb4_switch_check_wakes(struct tb_switch *sw) +/** + * usb4_switch_check_wakes() - Check for wakes and notify PM core about them + * @sw: Router whose wakes to check + * + * Checks wakes occurred during suspend and notify the PM core about them. + */ +void usb4_switch_check_wakes(struct tb_switch *sw) { struct tb_port *port; bool wakeup = false; u32 val; - if (!device_may_wakeup(&sw->dev)) - return; - if (tb_route(sw)) { if (tb_sw_read(sw, &val, TB_CFG_SWITCH, ROUTER_CS_6, 1)) return; @@ -270,8 +273,6 @@ u32 val = 0; int ret; - usb4_switch_check_wakes(sw); - if (!tb_route(sw)) return 0; diff -Nru linux-5.10.209/drivers/tty/hvc/hvc_xen.c linux-5.10.216/drivers/tty/hvc/hvc_xen.c --- linux-5.10.209/drivers/tty/hvc/hvc_xen.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/hvc/hvc_xen.c 2024-05-02 14:23:46.000000000 +0000 @@ -43,6 +43,7 @@ int irq; int vtermno; grant_ref_t gntref; + spinlock_t ring_lock; }; static LIST_HEAD(xenconsoles); @@ -89,12 +90,15 @@ XENCONS_RING_IDX cons, prod; struct xencons_interface *intf = xencons->intf; int sent = 0; + unsigned long flags; + spin_lock_irqsave(&xencons->ring_lock, flags); cons = intf->out_cons; prod = intf->out_prod; mb(); /* update queue values before going on */ if ((prod - cons) > sizeof(intf->out)) { + spin_unlock_irqrestore(&xencons->ring_lock, flags); pr_err_once("xencons: Illegal ring page indices"); return -EINVAL; } @@ -104,6 +108,7 @@ wmb(); /* write ring before updating pointer */ intf->out_prod = prod; + spin_unlock_irqrestore(&xencons->ring_lock, flags); if (sent) notify_daemon(xencons); @@ -146,16 +151,19 @@ int recv = 0; struct xencons_info *xencons = vtermno_to_xencons(vtermno); unsigned int eoiflag = 0; + unsigned long flags; if (xencons == NULL) return -EINVAL; intf = xencons->intf; + spin_lock_irqsave(&xencons->ring_lock, flags); cons = intf->in_cons; prod = intf->in_prod; mb(); /* get pointers before reading ring */ if ((prod - cons) > sizeof(intf->in)) { + spin_unlock_irqrestore(&xencons->ring_lock, flags); pr_err_once("xencons: Illegal ring page indices"); return -EINVAL; } @@ -179,10 +187,13 @@ xencons->out_cons = intf->out_cons; xencons->out_cons_same = 0; } + if (!recv && xencons->out_cons_same++ > 1) { + eoiflag = XEN_EOI_FLAG_SPURIOUS; + } + spin_unlock_irqrestore(&xencons->ring_lock, flags); + if (recv) { notify_daemon(xencons); - } else if (xencons->out_cons_same++ > 1) { - eoiflag = XEN_EOI_FLAG_SPURIOUS; } xen_irq_lateeoi(xencons->irq, eoiflag); @@ -239,6 +250,7 @@ info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL); if (!info) return -ENOMEM; + spin_lock_init(&info->ring_lock); } else if (info->intf != NULL) { /* already configured */ return 0; @@ -275,6 +287,7 @@ static int xencons_info_pv_init(struct xencons_info *info, int vtermno) { + spin_lock_init(&info->ring_lock); info->evtchn = xen_start_info->console.domU.evtchn; /* GFN == MFN for PV guest */ info->intf = gfn_to_virt(xen_start_info->console.domU.mfn); @@ -325,6 +338,7 @@ info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL); if (!info) return -ENOMEM; + spin_lock_init(&info->ring_lock); } info->irq = bind_virq_to_irq(VIRQ_CONSOLE, 0, false); @@ -485,6 +499,7 @@ info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL); if (!info) return -ENOMEM; + spin_lock_init(&info->ring_lock); dev_set_drvdata(&dev->dev, info); info->xbdev = dev; info->vtermno = xenbus_devid_to_vtermno(devid); diff -Nru linux-5.10.209/drivers/tty/n_gsm.c linux-5.10.216/drivers/tty/n_gsm.c --- linux-5.10.209/drivers/tty/n_gsm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/n_gsm.c 2024-05-02 14:23:46.000000000 +0000 @@ -2661,6 +2661,9 @@ { struct gsm_mux *gsm; + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + if (tty->ops->write == NULL) return -EINVAL; diff -Nru linux-5.10.209/drivers/tty/serial/8250/8250_core.c linux-5.10.216/drivers/tty/serial/8250/8250_core.c --- linux-5.10.209/drivers/tty/serial/8250/8250_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/8250/8250_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1026,6 +1026,7 @@ uart->port.throttle = up->port.throttle; uart->port.unthrottle = up->port.unthrottle; uart->port.rs485_config = up->port.rs485_config; + uart->port.rs485_supported = up->port.rs485_supported; uart->port.rs485 = up->port.rs485; uart->rs485_start_tx = up->rs485_start_tx; uart->rs485_stop_tx = up->rs485_stop_tx; diff -Nru linux-5.10.209/drivers/tty/serial/8250/8250_exar.c linux-5.10.216/drivers/tty/serial/8250/8250_exar.c --- linux-5.10.209/drivers/tty/serial/8250/8250_exar.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/8250/8250_exar.c 2024-05-02 14:23:46.000000000 +0000 @@ -123,6 +123,7 @@ struct exar8250_platform { int (*rs485_config)(struct uart_port *, struct serial_rs485 *); + const struct serial_rs485 *rs485_supported; int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); }; @@ -423,9 +424,14 @@ return 0; } +static const struct serial_rs485 generic_rs485_supported = { + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND, +}; + static const struct exar8250_platform exar8250_default_platform = { .register_gpio = xr17v35x_register_gpio, .rs485_config = generic_rs485_config, + .rs485_supported = &generic_rs485_supported, }; static int iot2040_rs485_config(struct uart_port *port, @@ -461,6 +467,11 @@ return generic_rs485_config(port, rs485); } +static const struct serial_rs485 iot2040_rs485_supported = { + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | + SER_RS485_RX_DURING_TX | SER_RS485_TERMINATE_BUS, +}; + static const struct property_entry iot2040_gpio_properties[] = { PROPERTY_ENTRY_U32("exar,first-pin", 10), PROPERTY_ENTRY_U32("ngpios", 1), @@ -485,6 +496,7 @@ static const struct exar8250_platform iot2040_platform = { .rs485_config = iot2040_rs485_config, + .rs485_supported = &iot2040_rs485_supported, .register_gpio = iot2040_register_gpio, }; @@ -522,6 +534,7 @@ port->port.uartclk = baud * 16; port->port.rs485_config = platform->rs485_config; + port->port.rs485_supported = platform->rs485_supported; /* * Setup the UART clock for the devices on expansion slot to @@ -675,6 +688,7 @@ for (i = 0; i < priv->nr; i++) serial8250_unregister_port(priv->line[i]); + /* Ensure that every init quirk is properly torn down */ if (priv->board->exit) priv->board->exit(pcidev); } @@ -689,10 +703,6 @@ if (priv->line[i] >= 0) serial8250_suspend_port(priv->line[i]); - /* Ensure that every init quirk is properly torn down */ - if (priv->board->exit) - priv->board->exit(pcidev); - return 0; } diff -Nru linux-5.10.209/drivers/tty/serial/8250/8250_port.c linux-5.10.216/drivers/tty/serial/8250/8250_port.c --- linux-5.10.209/drivers/tty/serial/8250/8250_port.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/8250/8250_port.c 2024-05-02 14:23:46.000000000 +0000 @@ -1358,9 +1358,6 @@ inb_p(ICP); } - if (uart_console(port)) - console_lock(); - /* forget possible initially masked and pending IRQ */ probe_irq_off(probe_irq_on()); save_mcr = serial8250_in_MCR(up); @@ -1391,9 +1388,6 @@ if (port->flags & UPF_FOURPORT) outb_p(save_ICP, ICP); - if (uart_console(port)) - console_unlock(); - port->irq = (irq > 0) ? irq : 0; } diff -Nru linux-5.10.209/drivers/tty/serial/Kconfig linux-5.10.216/drivers/tty/serial/Kconfig --- linux-5.10.209/drivers/tty/serial/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -343,6 +343,7 @@ depends on SPI_MASTER select SERIAL_CORE select REGMAP_SPI if SPI_MASTER + select REGMAP_I2C if I2C help This selects support for an advanced UART from Maxim (Dallas). Supported ICs are MAX3107, MAX3108, MAX3109, MAX14830. diff -Nru linux-5.10.209/drivers/tty/serial/fsl_lpuart.c linux-5.10.216/drivers/tty/serial/fsl_lpuart.c --- linux-5.10.209/drivers/tty/serial/fsl_lpuart.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/fsl_lpuart.c 2024-05-02 14:23:46.000000000 +0000 @@ -2178,9 +2178,12 @@ UARTCTRL); lpuart32_serial_setbrg(sport, baud); - lpuart32_write(&sport->port, modem, UARTMODIR); - lpuart32_write(&sport->port, ctrl, UARTCTRL); + /* disable CTS before enabling UARTCTRL_TE to avoid pending idle preamble */ + lpuart32_write(&sport->port, modem & ~UARTMODIR_TXCTSE, UARTMODIR); /* restore control register */ + lpuart32_write(&sport->port, ctrl, UARTCTRL); + /* re-enable the CTS if needed */ + lpuart32_write(&sport->port, modem, UARTMODIR); if (old && sport->lpuart_dma_rx_use) { if (!lpuart_start_rx_dma(sport)) diff -Nru linux-5.10.209/drivers/tty/serial/max310x.c linux-5.10.216/drivers/tty/serial/max310x.c --- linux-5.10.209/drivers/tty/serial/max310x.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/max310x.c 2024-05-02 14:23:46.000000000 +0000 @@ -14,9 +14,10 @@ #include #include #include +#include #include -#include -#include +#include +#include #include #include #include @@ -72,7 +73,8 @@ #define MAX310X_GLOBALCMD_REG MAX310X_REG_1F /* Global Command (WO) */ /* Extended registers */ -#define MAX310X_REVID_EXTREG MAX310X_REG_05 /* Revision ID */ +#define MAX310X_SPI_REVID_EXTREG MAX310X_REG_05 /* Revision ID */ +#define MAX310X_I2C_REVID_EXTREG (0x25) /* Revision ID */ /* IRQ register bits */ #define MAX310X_IRQ_LSR_BIT (1 << 0) /* LSR interrupt */ @@ -235,6 +237,14 @@ #define MAX310x_REV_MASK (0xf8) #define MAX310X_WRITE_BIT 0x80 +/* Port startup definitions */ +#define MAX310X_PORT_STARTUP_WAIT_RETRIES 20 /* Number of retries */ +#define MAX310X_PORT_STARTUP_WAIT_DELAY_MS 10 /* Delay between retries */ + +/* Crystal-related definitions */ +#define MAX310X_XTAL_WAIT_RETRIES 20 /* Number of retries */ +#define MAX310X_XTAL_WAIT_DELAY_MS 10 /* Delay between retries */ + /* MAX3107 specific */ #define MAX3107_REV_ID (0xa0) @@ -245,7 +255,17 @@ #define MAX14830_BRGCFG_CLKDIS_BIT (1 << 6) /* Clock Disable */ #define MAX14830_REV_ID (0xb0) +struct max310x_if_cfg { + int (*extended_reg_enable)(struct device *dev, bool enable); + + unsigned int rev_id_reg; +}; + struct max310x_devtype { + struct { + unsigned short min; + unsigned short max; + } slave_addr; char name[9]; int nr; u8 mode1; @@ -258,16 +278,16 @@ struct work_struct tx_work; struct work_struct md_work; struct work_struct rs_work; + struct regmap *regmap; - u8 wr_header; - u8 rd_header; u8 rx_buf[MAX310X_FIFO_SIZE]; }; #define to_max310x_port(_port) \ container_of(_port, struct max310x_one, port) struct max310x_port { - struct max310x_devtype *devtype; + const struct max310x_devtype *devtype; + const struct max310x_if_cfg *if_cfg; struct regmap *regmap; struct clk *clk; #ifdef CONFIG_GPIOLIB @@ -289,26 +309,26 @@ static u8 max310x_port_read(struct uart_port *port, u8 reg) { - struct max310x_port *s = dev_get_drvdata(port->dev); + struct max310x_one *one = to_max310x_port(port); unsigned int val = 0; - regmap_read(s->regmap, port->iobase + reg, &val); + regmap_read(one->regmap, reg, &val); return val; } static void max310x_port_write(struct uart_port *port, u8 reg, u8 val) { - struct max310x_port *s = dev_get_drvdata(port->dev); + struct max310x_one *one = to_max310x_port(port); - regmap_write(s->regmap, port->iobase + reg, val); + regmap_write(one->regmap, reg, val); } static void max310x_port_update(struct uart_port *port, u8 reg, u8 mask, u8 val) { - struct max310x_port *s = dev_get_drvdata(port->dev); + struct max310x_one *one = to_max310x_port(port); - regmap_update_bits(s->regmap, port->iobase + reg, mask, val); + regmap_update_bits(one->regmap, reg, mask, val); } static int max3107_detect(struct device *dev) @@ -357,13 +377,12 @@ unsigned int val = 0; int ret; - ret = regmap_write(s->regmap, MAX310X_GLOBALCMD_REG, - MAX310X_EXTREG_ENBL); + ret = s->if_cfg->extended_reg_enable(dev, true); if (ret) return ret; - regmap_read(s->regmap, MAX310X_REVID_EXTREG, &val); - regmap_write(s->regmap, MAX310X_GLOBALCMD_REG, MAX310X_EXTREG_DSBL); + regmap_read(s->regmap, s->if_cfg->rev_id_reg, &val); + s->if_cfg->extended_reg_enable(dev, false); if (((val & MAX310x_REV_MASK) != MAX3109_REV_ID)) { dev_err(dev, "%s ID 0x%02x does not match\n", s->devtype->name, val); @@ -388,13 +407,12 @@ unsigned int val = 0; int ret; - ret = regmap_write(s->regmap, MAX310X_GLOBALCMD_REG, - MAX310X_EXTREG_ENBL); + ret = s->if_cfg->extended_reg_enable(dev, true); if (ret) return ret; - regmap_read(s->regmap, MAX310X_REVID_EXTREG, &val); - regmap_write(s->regmap, MAX310X_GLOBALCMD_REG, MAX310X_EXTREG_DSBL); + regmap_read(s->regmap, s->if_cfg->rev_id_reg, &val); + s->if_cfg->extended_reg_enable(dev, false); if (((val & MAX310x_REV_MASK) != MAX14830_REV_ID)) { dev_err(dev, "%s ID 0x%02x does not match\n", s->devtype->name, val); @@ -419,6 +437,10 @@ .mode1 = MAX310X_MODE1_AUTOSLEEP_BIT | MAX310X_MODE1_IRQSEL_BIT, .detect = max3107_detect, .power = max310x_power, + .slave_addr = { + .min = 0x2c, + .max = 0x2f, + }, }; static const struct max310x_devtype max3108_devtype = { @@ -427,6 +449,10 @@ .mode1 = MAX310X_MODE1_AUTOSLEEP_BIT, .detect = max3108_detect, .power = max310x_power, + .slave_addr = { + .min = 0x60, + .max = 0x6f, + }, }; static const struct max310x_devtype max3109_devtype = { @@ -435,6 +461,10 @@ .mode1 = MAX310X_MODE1_AUTOSLEEP_BIT, .detect = max3109_detect, .power = max310x_power, + .slave_addr = { + .min = 0x60, + .max = 0x6f, + }, }; static const struct max310x_devtype max14830_devtype = { @@ -443,11 +473,15 @@ .mode1 = MAX310X_MODE1_IRQSEL_BIT, .detect = max14830_detect, .power = max14830_power, + .slave_addr = { + .min = 0x60, + .max = 0x6f, + }, }; static bool max310x_reg_writeable(struct device *dev, unsigned int reg) { - switch (reg & 0x1f) { + switch (reg) { case MAX310X_IRQSTS_REG: case MAX310X_LSR_IRQSTS_REG: case MAX310X_SPCHR_IRQSTS_REG: @@ -464,7 +498,7 @@ static bool max310x_reg_volatile(struct device *dev, unsigned int reg) { - switch (reg & 0x1f) { + switch (reg) { case MAX310X_RHR_REG: case MAX310X_IRQSTS_REG: case MAX310X_LSR_IRQSTS_REG: @@ -486,7 +520,7 @@ static bool max310x_reg_precious(struct device *dev, unsigned int reg) { - switch (reg & 0x1f) { + switch (reg) { case MAX310X_RHR_REG: case MAX310X_IRQSTS_REG: case MAX310X_SPCHR_IRQSTS_REG: @@ -499,6 +533,11 @@ return false; } +static bool max310x_reg_noinc(struct device *dev, unsigned int reg) +{ + return reg == MAX310X_RHR_REG; +} + static int max310x_set_baud(struct uart_port *port, int baud) { unsigned int mode = 0, div = 0, frac = 0, c = 0, F = 0; @@ -552,7 +591,7 @@ return 1; } -static int max310x_set_ref_clk(struct device *dev, struct max310x_port *s, +static s32 max310x_set_ref_clk(struct device *dev, struct max310x_port *s, unsigned long freq, bool xtal) { unsigned int div, clksrc, pllcfg = 0; @@ -610,45 +649,37 @@ /* Wait for crystal */ if (xtal) { - unsigned int val; - msleep(10); - regmap_read(s->regmap, MAX310X_STS_IRQSTS_REG, &val); - if (!(val & MAX310X_STS_CLKREADY_BIT)) { - dev_warn(dev, "clock is not stable yet\n"); - } + bool stable = false; + unsigned int try = 0, val = 0; + + do { + msleep(MAX310X_XTAL_WAIT_DELAY_MS); + regmap_read(s->regmap, MAX310X_STS_IRQSTS_REG, &val); + + if (val & MAX310X_STS_CLKREADY_BIT) + stable = true; + } while (!stable && (++try < MAX310X_XTAL_WAIT_RETRIES)); + + if (!stable) + return dev_err_probe(dev, -EAGAIN, + "clock is not stable\n"); } - return (int)bestfreq; + return bestfreq; } static void max310x_batch_write(struct uart_port *port, u8 *txbuf, unsigned int len) { struct max310x_one *one = to_max310x_port(port); - struct spi_transfer xfer[] = { - { - .tx_buf = &one->wr_header, - .len = sizeof(one->wr_header), - }, { - .tx_buf = txbuf, - .len = len, - } - }; - spi_sync_transfer(to_spi_device(port->dev), xfer, ARRAY_SIZE(xfer)); + + regmap_noinc_write(one->regmap, MAX310X_THR_REG, txbuf, len); } static void max310x_batch_read(struct uart_port *port, u8 *rxbuf, unsigned int len) { struct max310x_one *one = to_max310x_port(port); - struct spi_transfer xfer[] = { - { - .tx_buf = &one->rd_header, - .len = sizeof(one->rd_header), - }, { - .rx_buf = rxbuf, - .len = len, - } - }; - spi_sync_transfer(to_spi_device(port->dev), xfer, ARRAY_SIZE(xfer)); + + regmap_noinc_read(one->regmap, MAX310X_RHR_REG, rxbuf, len); } static void max310x_handle_rx(struct uart_port *port, unsigned int rxlen) @@ -1250,16 +1281,18 @@ } #endif -static int max310x_probe(struct device *dev, struct max310x_devtype *devtype, - struct regmap *regmap, int irq) +static int max310x_probe(struct device *dev, const struct max310x_devtype *devtype, + const struct max310x_if_cfg *if_cfg, + struct regmap *regmaps[], int irq) { - int i, ret, fmin, fmax, freq, uartclk; - struct clk *clk_osc, *clk_xtal; + int i, ret, fmin, fmax, freq; struct max310x_port *s; - bool xtal = false; + s32 uartclk = 0; + bool xtal; - if (IS_ERR(regmap)) - return PTR_ERR(regmap); + for (i = 0; i < devtype->nr; i++) + if (IS_ERR(regmaps[i])) + return PTR_ERR(regmaps[i]); /* Alloc port structure */ s = devm_kzalloc(dev, struct_size(s, p, devtype->nr), GFP_KERNEL); @@ -1268,23 +1301,20 @@ return -ENOMEM; } - clk_osc = devm_clk_get(dev, "osc"); - clk_xtal = devm_clk_get(dev, "xtal"); - if (!IS_ERR(clk_osc)) { - s->clk = clk_osc; - fmin = 500000; - fmax = 35000000; - } else if (!IS_ERR(clk_xtal)) { - s->clk = clk_xtal; - fmin = 1000000; - fmax = 4000000; - xtal = true; - } else if (PTR_ERR(clk_osc) == -EPROBE_DEFER || - PTR_ERR(clk_xtal) == -EPROBE_DEFER) { - return -EPROBE_DEFER; + /* Always ask for fixed clock rate from a property. */ + device_property_read_u32(dev, "clock-frequency", &uartclk); + + s->clk = devm_clk_get_optional(dev, "osc"); + if (IS_ERR(s->clk)) + return PTR_ERR(s->clk); + if (s->clk) { + xtal = false; } else { - dev_err(dev, "Cannot get clock\n"); - return -EINVAL; + s->clk = devm_clk_get_optional(dev, "xtal"); + if (IS_ERR(s->clk)) + return PTR_ERR(s->clk); + + xtal = true; } ret = clk_prepare_enable(s->clk); @@ -1292,14 +1322,31 @@ return ret; freq = clk_get_rate(s->clk); + if (freq == 0) + freq = uartclk; + if (freq == 0) { + dev_err(dev, "Cannot get clock rate\n"); + ret = -EINVAL; + goto out_clk; + } + + if (xtal) { + fmin = 1000000; + fmax = 4000000; + } else { + fmin = 500000; + fmax = 35000000; + } + /* Check frequency limits */ if (freq < fmin || freq > fmax) { ret = -ERANGE; goto out_clk; } - s->regmap = regmap; + s->regmap = regmaps[0]; s->devtype = devtype; + s->if_cfg = if_cfg; dev_set_drvdata(dev, s); /* Check device to ensure we are talking to what we expect */ @@ -1308,25 +1355,38 @@ goto out_clk; for (i = 0; i < devtype->nr; i++) { - unsigned int offs = i << 5; + bool started = false; + unsigned int try = 0, val = 0; /* Reset port */ - regmap_write(s->regmap, MAX310X_MODE2_REG + offs, + regmap_write(regmaps[i], MAX310X_MODE2_REG, MAX310X_MODE2_RST_BIT); /* Clear port reset */ - regmap_write(s->regmap, MAX310X_MODE2_REG + offs, 0); + regmap_write(regmaps[i], MAX310X_MODE2_REG, 0); /* Wait for port startup */ do { - regmap_read(s->regmap, - MAX310X_BRGDIVLSB_REG + offs, &ret); - } while (ret != 0x01); + msleep(MAX310X_PORT_STARTUP_WAIT_DELAY_MS); + regmap_read(regmaps[i], MAX310X_BRGDIVLSB_REG, &val); + + if (val == 0x01) + started = true; + } while (!started && (++try < MAX310X_PORT_STARTUP_WAIT_RETRIES)); + + if (!started) { + ret = dev_err_probe(dev, -EAGAIN, "port reset failed\n"); + goto out_uart; + } - regmap_write(s->regmap, MAX310X_MODE1_REG + offs, - devtype->mode1); + regmap_write(regmaps[i], MAX310X_MODE1_REG, devtype->mode1); } uartclk = max310x_set_ref_clk(dev, s, freq, xtal); + if (uartclk < 0) { + ret = uartclk; + goto out_uart; + } + dev_dbg(dev, "Reference clock set to %i Hz\n", uartclk); for (i = 0; i < devtype->nr; i++) { @@ -1346,11 +1406,13 @@ s->p[i].port.fifosize = MAX310X_FIFO_SIZE; s->p[i].port.flags = UPF_FIXED_TYPE | UPF_LOW_LATENCY; s->p[i].port.iotype = UPIO_PORT; - s->p[i].port.iobase = i * 0x20; + s->p[i].port.iobase = i; s->p[i].port.membase = (void __iomem *)~0; s->p[i].port.uartclk = uartclk; s->p[i].port.rs485_config = max310x_rs485_config; s->p[i].port.ops = &max310x_ops; + s->p[i].regmap = regmaps[i]; + /* Disable all interrupts */ max310x_port_write(&s->p[i].port, MAX310X_IRQEN_REG, 0); /* Clear IRQ status register */ @@ -1361,10 +1423,6 @@ INIT_WORK(&s->p[i].md_work, max310x_md_proc); /* Initialize queue for changing RS485 mode */ INIT_WORK(&s->p[i].rs_work, max310x_rs_proc); - /* Initialize SPI-transfer buffers */ - s->p[i].wr_header = (s->p[i].port.iobase + MAX310X_THR_REG) | - MAX310X_WRITE_BIT; - s->p[i].rd_header = (s->p[i].port.iobase + MAX310X_RHR_REG); /* Register port */ ret = uart_add_one_port(&max310x_uart, &s->p[i].port); @@ -1402,7 +1460,7 @@ if (!ret) return 0; - dev_err(dev, "Unable to reguest IRQ %i\n", irq); + dev_err(dev, "Unable to request IRQ %i\n", irq); out_uart: for (i = 0; i < devtype->nr; i++) { @@ -1451,16 +1509,35 @@ .val_bits = 8, .write_flag_mask = MAX310X_WRITE_BIT, .cache_type = REGCACHE_RBTREE, + .max_register = MAX310X_REG_1F, .writeable_reg = max310x_reg_writeable, .volatile_reg = max310x_reg_volatile, .precious_reg = max310x_reg_precious, + .writeable_noinc_reg = max310x_reg_noinc, + .readable_noinc_reg = max310x_reg_noinc, + .max_raw_read = MAX310X_FIFO_SIZE, + .max_raw_write = MAX310X_FIFO_SIZE, }; #ifdef CONFIG_SPI_MASTER +static int max310x_spi_extended_reg_enable(struct device *dev, bool enable) +{ + struct max310x_port *s = dev_get_drvdata(dev); + + return regmap_write(s->regmap, MAX310X_GLOBALCMD_REG, + enable ? MAX310X_EXTREG_ENBL : MAX310X_EXTREG_DSBL); +} + +static const struct max310x_if_cfg __maybe_unused max310x_spi_if_cfg = { + .extended_reg_enable = max310x_spi_extended_reg_enable, + .rev_id_reg = MAX310X_SPI_REVID_EXTREG, +}; + static int max310x_spi_probe(struct spi_device *spi) { - struct max310x_devtype *devtype; - struct regmap *regmap; + const struct max310x_devtype *devtype; + struct regmap *regmaps[4]; + unsigned int i; int ret; /* Setup SPI bus */ @@ -1471,23 +1548,18 @@ if (ret) return ret; - if (spi->dev.of_node) { - const struct of_device_id *of_id = - of_match_device(max310x_dt_ids, &spi->dev); - if (!of_id) - return -ENODEV; - - devtype = (struct max310x_devtype *)of_id->data; - } else { - const struct spi_device_id *id_entry = spi_get_device_id(spi); + devtype = device_get_match_data(&spi->dev); + if (!devtype) + devtype = (struct max310x_devtype *)spi_get_device_id(spi)->driver_data; - devtype = (struct max310x_devtype *)id_entry->driver_data; + for (i = 0; i < devtype->nr; i++) { + u8 port_mask = i * 0x20; + regcfg.read_flag_mask = port_mask; + regcfg.write_flag_mask = port_mask | MAX310X_WRITE_BIT; + regmaps[i] = devm_regmap_init_spi(spi, ®cfg); } - regcfg.max_register = devtype->nr * 0x20 - 1; - regmap = devm_regmap_init_spi(spi, ®cfg); - - return max310x_probe(&spi->dev, devtype, regmap, spi->irq); + return max310x_probe(&spi->dev, devtype, &max310x_spi_if_cfg, regmaps, spi->irq); } static int max310x_spi_remove(struct spi_device *spi) @@ -1507,7 +1579,7 @@ static struct spi_driver max310x_spi_driver = { .driver = { .name = MAX310X_NAME, - .of_match_table = of_match_ptr(max310x_dt_ids), + .of_match_table = max310x_dt_ids, .pm = &max310x_pm_ops, }, .probe = max310x_spi_probe, @@ -1516,6 +1588,104 @@ }; #endif +#ifdef CONFIG_I2C +static int max310x_i2c_extended_reg_enable(struct device *dev, bool enable) +{ + return 0; +} + +static struct regmap_config regcfg_i2c = { + .reg_bits = 8, + .val_bits = 8, + .cache_type = REGCACHE_RBTREE, + .writeable_reg = max310x_reg_writeable, + .volatile_reg = max310x_reg_volatile, + .precious_reg = max310x_reg_precious, + .max_register = MAX310X_I2C_REVID_EXTREG, + .writeable_noinc_reg = max310x_reg_noinc, + .readable_noinc_reg = max310x_reg_noinc, + .max_raw_read = MAX310X_FIFO_SIZE, + .max_raw_write = MAX310X_FIFO_SIZE, +}; + +static const struct max310x_if_cfg max310x_i2c_if_cfg = { + .extended_reg_enable = max310x_i2c_extended_reg_enable, + .rev_id_reg = MAX310X_I2C_REVID_EXTREG, +}; + +static unsigned short max310x_i2c_slave_addr(unsigned short addr, + unsigned int nr) +{ + /* + * For MAX14830 and MAX3109, the slave address depends on what the + * A0 and A1 pins are tied to. + * See Table I2C Address Map of the datasheet. + * Based on that table, the following formulas were determined. + * UART1 - UART0 = 0x10 + * UART2 - UART1 = 0x20 + 0x10 + * UART3 - UART2 = 0x10 + */ + + addr -= nr * 0x10; + + if (nr >= 2) + addr -= 0x20; + + return addr; +} + +static int max310x_i2c_probe(struct i2c_client *client) +{ + const struct max310x_devtype *devtype; + struct i2c_client *port_client; + struct regmap *regmaps[4]; + unsigned int i; + u8 port_addr; + + devtype = device_get_match_data(&client->dev); + if (!devtype) + return dev_err_probe(&client->dev, -ENODEV, "Failed to match device\n"); + + if (client->addr < devtype->slave_addr.min || + client->addr > devtype->slave_addr.max) + return dev_err_probe(&client->dev, -EINVAL, + "Slave addr 0x%x outside of range [0x%x, 0x%x]\n", + client->addr, devtype->slave_addr.min, + devtype->slave_addr.max); + + regmaps[0] = devm_regmap_init_i2c(client, ®cfg_i2c); + + for (i = 1; i < devtype->nr; i++) { + port_addr = max310x_i2c_slave_addr(client->addr, i); + port_client = devm_i2c_new_dummy_device(&client->dev, + client->adapter, + port_addr); + + regmaps[i] = devm_regmap_init_i2c(port_client, ®cfg_i2c); + } + + return max310x_probe(&client->dev, devtype, &max310x_i2c_if_cfg, + regmaps, client->irq); +} + +static int max310x_i2c_remove(struct i2c_client *client) +{ + max310x_remove(&client->dev); + + return 0; +} + +static struct i2c_driver max310x_i2c_driver = { + .driver = { + .name = MAX310X_NAME, + .of_match_table = max310x_dt_ids, + .pm = &max310x_pm_ops, + }, + .probe_new = max310x_i2c_probe, + .remove = max310x_i2c_remove, +}; +#endif + static int __init max310x_uart_init(void) { int ret; @@ -1529,15 +1699,35 @@ #ifdef CONFIG_SPI_MASTER ret = spi_register_driver(&max310x_spi_driver); if (ret) - uart_unregister_driver(&max310x_uart); + goto err_spi_register; #endif +#ifdef CONFIG_I2C + ret = i2c_add_driver(&max310x_i2c_driver); + if (ret) + goto err_i2c_register; +#endif + + return 0; + +#ifdef CONFIG_I2C +err_i2c_register: + spi_unregister_driver(&max310x_spi_driver); +#endif + +err_spi_register: + uart_unregister_driver(&max310x_uart); + return ret; } module_init(max310x_uart_init); static void __exit max310x_uart_exit(void) { +#ifdef CONFIG_I2C + i2c_del_driver(&max310x_i2c_driver); +#endif + #ifdef CONFIG_SPI_MASTER spi_unregister_driver(&max310x_spi_driver); #endif diff -Nru linux-5.10.209/drivers/tty/serial/mxs-auart.c linux-5.10.216/drivers/tty/serial/mxs-auart.c --- linux-5.10.209/drivers/tty/serial/mxs-auart.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/mxs-auart.c 2024-05-02 14:23:46.000000000 +0000 @@ -1122,11 +1122,13 @@ static irqreturn_t mxs_auart_irq_handle(int irq, void *context) { - u32 istat; + u32 istat, stat; struct mxs_auart_port *s = context; u32 mctrl_temp = s->mctrl_prev; - u32 stat = mxs_read(s, REG_STAT); + uart_port_lock(&s->port); + + stat = mxs_read(s, REG_STAT); istat = mxs_read(s, REG_INTR); /* ack irq */ @@ -1162,6 +1164,8 @@ istat &= ~AUART_INTR_TXIS; } + uart_port_unlock(&s->port); + return IRQ_HANDLED; } diff -Nru linux-5.10.209/drivers/tty/serial/pmac_zilog.c linux-5.10.216/drivers/tty/serial/pmac_zilog.c --- linux-5.10.209/drivers/tty/serial/pmac_zilog.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/pmac_zilog.c 2024-05-02 14:23:46.000000000 +0000 @@ -217,7 +217,6 @@ { struct tty_port *port; unsigned char ch, r1, drop, flag; - int loops = 0; /* Sanity check, make sure the old bug is no longer happening */ if (uap->port.state == NULL) { @@ -298,25 +297,12 @@ if (r1 & Rx_OVR) tty_insert_flip_char(port, 0, TTY_OVERRUN); next_char: - /* We can get stuck in an infinite loop getting char 0 when the - * line is in a wrong HW state, we break that here. - * When that happens, I disable the receive side of the driver. - * Note that what I've been experiencing is a real irq loop where - * I'm getting flooded regardless of the actual port speed. - * Something strange is going on with the HW - */ - if ((++loops) > 1000) - goto flood; ch = read_zsreg(uap, R0); if (!(ch & Rx_CH_AV)) break; } return true; - flood: - pmz_interrupt_control(uap, 0); - pmz_error("pmz: rx irq flood !\n"); - return true; } static void pmz_status_handle(struct uart_pmac_port *uap) diff -Nru linux-5.10.209/drivers/tty/serial/samsung_tty.c linux-5.10.216/drivers/tty/serial/samsung_tty.c --- linux-5.10.209/drivers/tty/serial/samsung_tty.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/samsung_tty.c 2024-05-02 14:23:46.000000000 +0000 @@ -922,11 +922,10 @@ if ((ufstat & info->tx_fifomask) != 0 || (ufstat & info->tx_fifofull)) return 0; - - return 1; + return TIOCSER_TEMT; } - return s3c24xx_serial_txempty_nofifo(port); + return s3c24xx_serial_txempty_nofifo(port) ? TIOCSER_TEMT : 0; } /* no modem control lines */ diff -Nru linux-5.10.209/drivers/tty/serial/sc16is7xx.c linux-5.10.216/drivers/tty/serial/sc16is7xx.c --- linux-5.10.209/drivers/tty/serial/sc16is7xx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/sc16is7xx.c 2024-05-02 14:23:46.000000000 +0000 @@ -24,6 +24,7 @@ #include #include #include +#include #include #define SC16IS7XX_NAME "sc16is7xx" @@ -375,9 +376,7 @@ const u8 line = sc16is7xx_line(port); u8 addr = (SC16IS7XX_RHR_REG << SC16IS7XX_REG_SHIFT) | line; - regcache_cache_bypass(s->regmap, true); - regmap_raw_read(s->regmap, addr, s->buf, rxlen); - regcache_cache_bypass(s->regmap, false); + regmap_noinc_read(s->regmap, addr, s->buf, rxlen); } static void sc16is7xx_fifo_write(struct uart_port *port, u8 to_send) @@ -393,9 +392,7 @@ if (unlikely(!to_send)) return; - regcache_cache_bypass(s->regmap, true); - regmap_raw_write(s->regmap, addr, s->buf, to_send); - regcache_cache_bypass(s->regmap, false); + regmap_noinc_write(s->regmap, addr, s->buf, to_send); } static void sc16is7xx_port_update(struct uart_port *port, u8 reg, @@ -488,6 +485,11 @@ return false; } +static bool sc16is7xx_regmap_noinc(struct device *dev, unsigned int reg) +{ + return reg == SC16IS7XX_RHR_REG; +} + static int sc16is7xx_set_baud(struct uart_port *port, int baud) { struct sc16is7xx_port *s = dev_get_drvdata(port->dev); @@ -1438,6 +1440,8 @@ .cache_type = REGCACHE_RBTREE, .volatile_reg = sc16is7xx_regmap_volatile, .precious_reg = sc16is7xx_regmap_precious, + .writeable_noinc_reg = sc16is7xx_regmap_noinc, + .readable_noinc_reg = sc16is7xx_regmap_noinc, }; #ifdef CONFIG_SERIAL_SC16IS7XX_SPI @@ -1449,9 +1453,12 @@ /* Setup SPI bus */ spi->bits_per_word = 8; - /* only supports mode 0 on SC16IS762 */ + /* For all variants, only mode 0 is supported */ + if ((spi->mode & SPI_MODE_X_MASK) != SPI_MODE_0) + return dev_err_probe(&spi->dev, -EINVAL, "Unsupported SPI mode\n"); + spi->mode = spi->mode ? : SPI_MODE_0; - spi->max_speed_hz = spi->max_speed_hz ? : 15000000; + spi->max_speed_hz = spi->max_speed_hz ? : 4 * HZ_PER_MHZ; ret = spi_setup(spi); if (ret) return ret; diff -Nru linux-5.10.209/drivers/tty/serial/serial_core.c linux-5.10.216/drivers/tty/serial/serial_core.c --- linux-5.10.209/drivers/tty/serial/serial_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/serial/serial_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -2431,7 +2431,12 @@ port->type = PORT_UNKNOWN; flags |= UART_CONFIG_TYPE; } + /* Synchronize with possible boot console. */ + if (uart_console(port)) + console_lock(); port->ops->config_port(port, flags); + if (uart_console(port)) + console_unlock(); } if (port->type != PORT_UNKNOWN) { @@ -2439,6 +2444,10 @@ uart_report_port(drv, port); + /* Synchronize with possible boot console. */ + if (uart_console(port)) + console_lock(); + /* Power up port for set_mctrl() */ uart_change_pm(state, UART_PM_STATE_ON); @@ -2455,6 +2464,9 @@ port->rs485_config(port, &port->rs485); spin_unlock_irqrestore(&port->lock, flags); + if (uart_console(port)) + console_unlock(); + /* * If this driver supports console, and it hasn't been * successfully registered yet, try to re-register it. diff -Nru linux-5.10.209/drivers/tty/tty_ioctl.c linux-5.10.216/drivers/tty/tty_ioctl.c --- linux-5.10.209/drivers/tty/tty_ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/tty_ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -763,7 +763,7 @@ ret = -EFAULT; return ret; case TIOCSLCKTRMIOS: - if (!capable(CAP_SYS_ADMIN)) + if (!checkpoint_restore_ns_capable(&init_user_ns)) return -EPERM; copy_termios_locked(real_tty, &kterm); if (user_termios_to_kernel_termios(&kterm, @@ -780,7 +780,7 @@ ret = -EFAULT; return ret; case TIOCSLCKTRMIOS: - if (!capable(CAP_SYS_ADMIN)) + if (!checkpoint_restore_ns_capable(&init_user_ns)) return -EPERM; copy_termios_locked(real_tty, &kterm); if (user_termios_to_kernel_termios_1(&kterm, diff -Nru linux-5.10.209/drivers/tty/vt/vt.c linux-5.10.216/drivers/tty/vt/vt.c --- linux-5.10.209/drivers/tty/vt/vt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/tty/vt/vt.c 2024-05-02 14:23:46.000000000 +0000 @@ -398,7 +398,7 @@ char32_t *ln = uniscr->lines[vc->state.y]; unsigned int x = vc->state.x, cols = vc->vc_cols; - memcpy(&ln[x], &ln[x + nr], (cols - x - nr) * sizeof(*ln)); + memmove(&ln[x], &ln[x + nr], (cols - x - nr) * sizeof(*ln)); memset32(&ln[cols - nr], ' ', nr); } } @@ -2516,7 +2516,7 @@ } return; case EScsiignore: - if (c >= 20 && c <= 0x3f) + if (c >= 0x20 && c <= 0x3f) return; vc->vc_state = ESnormal; return; diff -Nru linux-5.10.209/drivers/usb/cdns3/ep0.c linux-5.10.216/drivers/usb/cdns3/ep0.c --- linux-5.10.209/drivers/usb/cdns3/ep0.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/cdns3/ep0.c 2024-05-02 14:23:46.000000000 +0000 @@ -364,7 +364,7 @@ if (le16_to_cpu(ctrl->wValue) != USB_ENDPOINT_HALT) return -EINVAL; - if (!(ctrl->wIndex & ~USB_DIR_IN)) + if (!(le16_to_cpu(ctrl->wIndex) & ~USB_DIR_IN)) return 0; index = cdns3_ep_addr_to_index(le16_to_cpu(ctrl->wIndex)); @@ -790,7 +790,7 @@ return 0; } -const struct usb_ep_ops cdns3_gadget_ep0_ops = { +static const struct usb_ep_ops cdns3_gadget_ep0_ops = { .enable = cdns3_gadget_ep0_enable, .disable = cdns3_gadget_ep0_disable, .alloc_request = cdns3_gadget_ep_alloc_request, diff -Nru linux-5.10.209/drivers/usb/cdns3/gadget.c linux-5.10.216/drivers/usb/cdns3/gadget.c --- linux-5.10.209/drivers/usb/cdns3/gadget.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/cdns3/gadget.c 2024-05-02 14:23:46.000000000 +0000 @@ -837,7 +837,11 @@ return; } - if (request->complete) { + /* + * zlp request is appended by driver, needn't call usb_gadget_giveback_request() to notify + * gadget composite driver. + */ + if (request->complete && request->buf != priv_dev->zlp_buf) { spin_unlock(&priv_dev->lock); usb_gadget_giveback_request(&priv_ep->endpoint, request); @@ -1118,6 +1122,8 @@ dma_addr_t trb_dma; u32 togle_pcs = 1; int sg_iter = 0; + int num_trb_req; + int trb_burst; int num_trb; int address; u32 control; @@ -1126,15 +1132,13 @@ struct scatterlist *s = NULL; bool sg_supported = !!(request->num_mapped_sgs); + num_trb_req = sg_supported ? request->num_mapped_sgs : 1; + + /* ISO transfer require each SOF have a TD, each TD include some TRBs */ if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) - num_trb = priv_ep->interval; + num_trb = priv_ep->interval * num_trb_req; else - num_trb = sg_supported ? request->num_mapped_sgs : 1; - - if (num_trb > priv_ep->free_trbs) { - priv_ep->flags |= EP_RING_FULL; - return -ENOBUFS; - } + num_trb = num_trb_req; priv_req = to_cdns3_request(request); address = priv_ep->endpoint.desc->bEndpointAddress; @@ -1183,14 +1187,31 @@ link_trb->control = cpu_to_le32(((priv_ep->pcs) ? TRB_CYCLE : 0) | TRB_TYPE(TRB_LINK) | TRB_TOGGLE | ch_bit); + + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) { + /* + * ISO require LINK TRB must be first one of TD. + * Fill LINK TRBs for left trb space to simply software process logic. + */ + while (priv_ep->enqueue) { + *trb = *link_trb; + trace_cdns3_prepare_trb(priv_ep, trb); + + cdns3_ep_inc_enq(priv_ep); + trb = priv_ep->trb_pool + priv_ep->enqueue; + priv_req->trb = trb; + } + } + } + + if (num_trb > priv_ep->free_trbs) { + priv_ep->flags |= EP_RING_FULL; + return -ENOBUFS; } if (priv_dev->dev_ver <= DEV_VER_V2) togle_pcs = cdns3_wa1_update_guard(priv_ep, trb); - if (sg_supported) - s = request->sg; - /* set incorrect Cycle Bit for first trb*/ control = priv_ep->pcs ? 0 : TRB_CYCLE; trb->length = 0; @@ -1200,7 +1221,7 @@ td_size = DIV_ROUND_UP(request->length, priv_ep->endpoint.maxpacket); if (priv_dev->gadget.speed == USB_SPEED_SUPER) - trb->length = TRB_TDL_SS_SIZE(td_size); + trb->length = cpu_to_le32(TRB_TDL_SS_SIZE(td_size)); else control |= TRB_TDL_HS_SIZE(td_size); } @@ -1208,6 +1229,9 @@ do { u32 length; + if (!(sg_iter % num_trb_req) && sg_supported) + s = request->sg; + /* fill TRB */ control |= TRB_TYPE(TRB_NORMAL); if (sg_supported) { @@ -1222,7 +1246,36 @@ total_tdl += DIV_ROUND_UP(length, priv_ep->endpoint.maxpacket); - trb->length |= cpu_to_le32(TRB_BURST_LEN(priv_ep->trb_burst_size) | + trb_burst = priv_ep->trb_burst_size; + + /* + * Supposed DMA cross 4k bounder problem should be fixed at DEV_VER_V2, but still + * met problem when do ISO transfer if sg enabled. + * + * Data pattern likes below when sg enabled, package size is 1k and mult is 2 + * [UVC Header(8B) ] [data(3k - 8)] ... + * + * The received data at offset 0xd000 will get 0xc000 data, len 0x70. Error happen + * as below pattern: + * 0xd000: wrong + * 0xe000: wrong + * 0xf000: correct + * 0x10000: wrong + * 0x11000: wrong + * 0x12000: correct + * ... + * + * But it is still unclear about why error have not happen below 0xd000, it should + * cross 4k bounder. But anyway, the below code can fix this problem. + * + * To avoid DMA cross 4k bounder at ISO transfer, reduce burst len according to 16. + */ + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && priv_dev->dev_ver <= DEV_VER_V2) + if (ALIGN_DOWN(trb->buffer, SZ_4K) != + ALIGN_DOWN(trb->buffer + length, SZ_4K)) + trb_burst = 16; + + trb->length |= cpu_to_le32(TRB_BURST_LEN(trb_burst) | TRB_LEN(length)); pcs = priv_ep->pcs ? TRB_CYCLE : 0; @@ -1247,10 +1300,10 @@ priv_req->trb->control = cpu_to_le32(control); if (sg_supported) { - trb->control |= TRB_ISP; + trb->control |= cpu_to_le32(TRB_ISP); /* Don't set chain bit for last TRB */ - if (sg_iter < num_trb - 1) - trb->control |= TRB_CHAIN; + if ((sg_iter % num_trb_req) < num_trb_req - 1) + trb->control |= cpu_to_le32(TRB_CHAIN); s = sg_next(s); } @@ -1507,6 +1560,12 @@ /* The TRB was changed as link TRB, and the request was handled at ep_dequeue */ while (TRB_FIELD_TO_TYPE(le32_to_cpu(trb->control)) == TRB_LINK) { + + /* ISO ep_traddr may stop at LINK TRB */ + if (priv_ep->dequeue == cdns3_get_dma_pos(priv_dev, priv_ep) && + priv_ep->type == USB_ENDPOINT_XFER_ISOC) + break; + trace_cdns3_complete_trb(priv_ep, trb); cdns3_ep_inc_deq(priv_ep); trb = priv_ep->trb_pool + priv_ep->dequeue; @@ -1539,6 +1598,10 @@ } if (request_handled) { + /* TRBs are duplicated by priv_ep->interval time for ISO IN */ + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && priv_ep->dir) + request->actual /= priv_ep->interval; + cdns3_gadget_giveback(priv_ep, priv_req, 0); request_handled = false; transfer_end = false; @@ -2034,11 +2097,10 @@ bool is_iso_ep = (priv_ep->type == USB_ENDPOINT_XFER_ISOC); struct cdns3_device *priv_dev = priv_ep->cdns3_dev; u32 bEndpointAddress = priv_ep->num | priv_ep->dir; - u32 max_packet_size = 0; - u8 maxburst = 0; + u32 max_packet_size = priv_ep->wMaxPacketSize; + u8 maxburst = priv_ep->bMaxBurst; u32 ep_cfg = 0; u8 buffering; - u8 mult = 0; int ret; buffering = priv_dev->ep_buf_size - 1; @@ -2060,8 +2122,7 @@ break; default: ep_cfg = EP_CFG_EPTYPE(USB_ENDPOINT_XFER_ISOC); - mult = priv_dev->ep_iso_burst - 1; - buffering = mult + 1; + buffering = (priv_ep->bMaxBurst + 1) * (priv_ep->mult + 1) - 1; } switch (priv_dev->gadget.speed) { @@ -2072,17 +2133,8 @@ max_packet_size = is_iso_ep ? 1024 : 512; break; case USB_SPEED_SUPER: - /* It's limitation that driver assumes in driver. */ - mult = 0; - max_packet_size = 1024; - if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) { - maxburst = priv_dev->ep_iso_burst - 1; - buffering = (mult + 1) * - (maxburst + 1); - - if (priv_ep->interval > 1) - buffering++; - } else { + if (priv_ep->type != USB_ENDPOINT_XFER_ISOC) { + max_packet_size = 1024; maxburst = priv_dev->ep_buf_size - 1; } break; @@ -2111,7 +2163,6 @@ if (priv_dev->dev_ver < DEV_VER_V2) priv_ep->trb_burst_size = 16; - mult = min_t(u8, mult, EP_CFG_MULT_MAX); buffering = min_t(u8, buffering, EP_CFG_BUFFERING_MAX); maxburst = min_t(u8, maxburst, EP_CFG_MAXBURST_MAX); @@ -2145,7 +2196,7 @@ } ep_cfg |= EP_CFG_MAXPKTSIZE(max_packet_size) | - EP_CFG_MULT(mult) | + EP_CFG_MULT(priv_ep->mult) | /* must match EP setting */ EP_CFG_BUFFERING(buffering) | EP_CFG_MAXBURST(maxburst); @@ -2235,6 +2286,13 @@ priv_ep->type = usb_endpoint_type(desc); priv_ep->flags |= EP_CLAIMED; priv_ep->interval = desc->bInterval ? BIT(desc->bInterval - 1) : 0; + priv_ep->wMaxPacketSize = usb_endpoint_maxp(desc); + priv_ep->mult = USB_EP_MAXP_MULT(priv_ep->wMaxPacketSize); + priv_ep->wMaxPacketSize &= USB_ENDPOINT_MAXP_MASK; + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && comp_desc) { + priv_ep->mult = USB_SS_MULT(comp_desc->bmAttributes) - 1; + priv_ep->bMaxBurst = comp_desc->bMaxBurst; + } spin_unlock_irqrestore(&priv_dev->lock, flags); return &priv_ep->endpoint; @@ -2484,11 +2542,11 @@ while (!list_empty(&priv_ep->wa2_descmiss_req_list)) { priv_req = cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); + list_del_init(&priv_req->list); kfree(priv_req->request.buf); cdns3_gadget_ep_free_request(&priv_ep->endpoint, &priv_req->request); - list_del_init(&priv_req->list); --priv_ep->wa2_counter; } @@ -3001,23 +3059,43 @@ static int cdns3_gadget_check_config(struct usb_gadget *gadget) { struct cdns3_device *priv_dev = gadget_to_cdns3_device(gadget); + struct cdns3_endpoint *priv_ep; struct usb_ep *ep; int n_in = 0; + int iso = 0; + int out = 1; int total; + int n; list_for_each_entry(ep, &gadget->ep_list, ep_list) { - if (ep->claimed && (ep->address & USB_DIR_IN)) - n_in++; + priv_ep = ep_to_cdns3_ep(ep); + if (!(priv_ep->flags & EP_CLAIMED)) + continue; + + n = (priv_ep->mult + 1) * (priv_ep->bMaxBurst + 1); + if (ep->address & USB_DIR_IN) { + /* + * ISO transfer: DMA start move data when get ISO, only transfer + * data as min(TD size, iso). No benefit for allocate bigger + * internal memory than 'iso'. + */ + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) + iso += n; + else + n_in++; + } else { + if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) + out = max_t(int, out, n); + } } /* 2KB are reserved for EP0, 1KB for out*/ - total = 2 + n_in + 1; + total = 2 + n_in + out + iso; if (total > priv_dev->onchip_buffers) return -ENOMEM; - priv_dev->ep_buf_size = priv_dev->ep_iso_burst = - (priv_dev->onchip_buffers - 2) / (n_in + 1); + priv_dev->ep_buf_size = (priv_dev->onchip_buffers - 2 - iso) / (n_in + out); return 0; } diff -Nru linux-5.10.209/drivers/usb/cdns3/gadget.h linux-5.10.216/drivers/usb/cdns3/gadget.h --- linux-5.10.209/drivers/usb/cdns3/gadget.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/cdns3/gadget.h 2024-05-02 14:23:46.000000000 +0000 @@ -1167,6 +1167,9 @@ u8 dir; u8 num; u8 type; + u8 mult; + u8 bMaxBurst; + u16 wMaxPacketSize; int interval; int free_trbs; diff -Nru linux-5.10.209/drivers/usb/core/hub.c linux-5.10.216/drivers/usb/core/hub.c --- linux-5.10.209/drivers/usb/core/hub.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/core/hub.c 2024-05-02 14:23:46.000000000 +0000 @@ -46,8 +46,8 @@ #define USB_VENDOR_TEXAS_INSTRUMENTS 0x0451 #define USB_PRODUCT_TUSB8041_USB3 0x8140 #define USB_PRODUCT_TUSB8041_USB2 0x8142 -#define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND 0x01 -#define HUB_QUIRK_DISABLE_AUTOSUSPEND 0x02 +#define HUB_QUIRK_CHECK_PORT_AUTOSUSPEND BIT(0) +#define HUB_QUIRK_DISABLE_AUTOSUSPEND BIT(1) #define USB_TP_TRANSMISSION_DELAY 40 /* ns */ #define USB_TP_TRANSMISSION_DELAY_MAX 65535 /* ns */ @@ -116,7 +116,6 @@ #define HUB_DEBOUNCE_STEP 25 #define HUB_DEBOUNCE_STABLE 100 -static void hub_release(struct kref *kref); static int usb_reset_and_verify_device(struct usb_device *udev); static int hub_port_disable(struct usb_hub *hub, int port1, int set_state); static bool hub_port_warm_reset_required(struct usb_hub *hub, int port1, @@ -678,14 +677,14 @@ */ intf = to_usb_interface(hub->intfdev); usb_autopm_get_interface_no_resume(intf); - kref_get(&hub->kref); + hub_get(hub); if (queue_work(hub_wq, &hub->events)) return; /* the work has already been scheduled */ usb_autopm_put_interface_async(intf); - kref_put(&hub->kref, hub_release); + hub_put(hub); } void usb_kick_hub_wq(struct usb_device *hdev) @@ -1053,7 +1052,7 @@ goto init2; goto init3; } - kref_get(&hub->kref); + hub_get(hub); /* The superspeed hub except for root hub has to use Hub Depth * value as an offset into the route string to locate the bits @@ -1301,7 +1300,7 @@ device_unlock(&hdev->dev); } - kref_put(&hub->kref, hub_release); + hub_put(hub); } /* Implement the continuations for the delays above */ @@ -1717,6 +1716,16 @@ kfree(hub); } +void hub_get(struct usb_hub *hub) +{ + kref_get(&hub->kref); +} + +void hub_put(struct usb_hub *hub) +{ + kref_put(&hub->kref, hub_release); +} + static unsigned highspeed_hubs; static void hub_disconnect(struct usb_interface *intf) @@ -1763,7 +1772,7 @@ if (hub->quirk_disable_autosuspend) usb_autopm_put_interface(intf); - kref_put(&hub->kref, hub_release); + hub_put(hub); } static bool hub_descriptor_is_sane(struct usb_host_interface *desc) @@ -2367,17 +2376,25 @@ } } else if (desc->bLength == sizeof (struct usb_otg_descriptor)) { - /* Set a_alt_hnp_support for legacy otg device */ - err = usb_control_msg(udev, - usb_sndctrlpipe(udev, 0), - USB_REQ_SET_FEATURE, 0, - USB_DEVICE_A_ALT_HNP_SUPPORT, - 0, NULL, 0, - USB_CTRL_SET_TIMEOUT); - if (err < 0) - dev_err(&udev->dev, - "set a_alt_hnp_support failed: %d\n", - err); + /* + * We are operating on a legacy OTP device + * These should be told that they are operating + * on the wrong port if we have another port that does + * support HNP + */ + if (bus->otg_port != 0) { + /* Set a_alt_hnp_support for legacy otg device */ + err = usb_control_msg(udev, + usb_sndctrlpipe(udev, 0), + USB_REQ_SET_FEATURE, 0, + USB_DEVICE_A_ALT_HNP_SUPPORT, + 0, NULL, 0, + USB_CTRL_SET_TIMEOUT); + if (err < 0) + dev_err(&udev->dev, + "set a_alt_hnp_support failed: %d\n", + err); + } } } #endif @@ -5849,7 +5866,7 @@ /* Balance the stuff in kick_hub_wq() and allow autosuspend */ usb_autopm_put_interface(intf); - kref_put(&hub->kref, hub_release); + hub_put(hub); kcov_remote_stop(); } diff -Nru linux-5.10.209/drivers/usb/core/hub.h linux-5.10.216/drivers/usb/core/hub.h --- linux-5.10.209/drivers/usb/core/hub.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/core/hub.h 2024-05-02 14:23:46.000000000 +0000 @@ -117,6 +117,8 @@ extern int usb_hub_set_port_power(struct usb_device *hdev, struct usb_hub *hub, int port1, bool set); extern struct usb_hub *usb_hub_to_struct_hub(struct usb_device *hdev); +extern void hub_get(struct usb_hub *hub); +extern void hub_put(struct usb_hub *hub); extern int hub_port_debounce(struct usb_hub *hub, int port1, bool must_be_connected); extern int usb_clear_port_feature(struct usb_device *hdev, diff -Nru linux-5.10.209/drivers/usb/core/port.c linux-5.10.216/drivers/usb/core/port.c --- linux-5.10.209/drivers/usb/core/port.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/core/port.c 2024-05-02 14:23:46.000000000 +0000 @@ -295,8 +295,10 @@ { struct usb_port *port_dev = to_usb_port(dev); - if (port_dev->child) + if (port_dev->child) { usb_disable_usb2_hardware_lpm(port_dev->child); + usb_unlocked_disable_lpm(port_dev->child); + } } static const struct dev_pm_ops usb_port_pm_ops = { @@ -450,7 +452,7 @@ struct usb_hub *peer_hub = usb_hub_to_struct_hub(peer_hdev); struct usb_device *hdev = to_usb_device(port_dev->dev.parent->parent); - if (!peer_hub) + if (!peer_hub || port_dev->connect_type == USB_PORT_NOT_USED) return 0; hcd = bus_to_hcd(hdev->bus); @@ -461,7 +463,8 @@ for (port1 = 1; port1 <= peer_hdev->maxchild; port1++) { peer = peer_hub->ports[port1 - 1]; - if (peer && peer->location == port_dev->location) { + if (peer && peer->connect_type != USB_PORT_NOT_USED && + peer->location == port_dev->location) { link_peers_report(port_dev, peer); return 1; /* done */ } diff -Nru linux-5.10.209/drivers/usb/core/sysfs.c linux-5.10.216/drivers/usb/core/sysfs.c --- linux-5.10.209/drivers/usb/core/sysfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/core/sysfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -1166,14 +1166,24 @@ { struct usb_interface *intf = to_usb_interface(dev); bool val; + struct kernfs_node *kn; if (strtobool(buf, &val) != 0) return -EINVAL; - if (val) + if (val) { usb_authorize_interface(intf); - else - usb_deauthorize_interface(intf); + } else { + /* + * Prevent deadlock if another process is concurrently + * trying to unregister intf. + */ + kn = sysfs_break_active_protection(&dev->kobj, &attr->attr); + if (kn) { + usb_deauthorize_interface(intf); + sysfs_unbreak_active_protection(kn); + } + } return count; } diff -Nru linux-5.10.209/drivers/usb/dwc2/core.h linux-5.10.216/drivers/usb/dwc2/core.h --- linux-5.10.209/drivers/usb/dwc2/core.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/core.h 2024-05-02 14:23:46.000000000 +0000 @@ -748,8 +748,14 @@ * struct dwc2_hregs_backup - Holds host registers state before * entering partial power down * @hcfg: Backup of HCFG register + * @hflbaddr: Backup of HFLBADDR register * @haintmsk: Backup of HAINTMSK register + * @hcchar: Backup of HCCHAR register + * @hcsplt: Backup of HCSPLT register * @hcintmsk: Backup of HCINTMSK register + * @hctsiz: Backup of HCTSIZ register + * @hdma: Backup of HCDMA register + * @hcdmab: Backup of HCDMAB register * @hprt0: Backup of HPTR0 register * @hfir: Backup of HFIR register * @hptxfsiz: Backup of HPTXFSIZ register @@ -757,8 +763,14 @@ */ struct dwc2_hregs_backup { u32 hcfg; + u32 hflbaddr; u32 haintmsk; + u32 hcchar[MAX_EPS_CHANNELS]; + u32 hcsplt[MAX_EPS_CHANNELS]; u32 hcintmsk[MAX_EPS_CHANNELS]; + u32 hctsiz[MAX_EPS_CHANNELS]; + u32 hcidma[MAX_EPS_CHANNELS]; + u32 hcidmab[MAX_EPS_CHANNELS]; u32 hprt0; u32 hfir; u32 hptxfsiz; @@ -1097,6 +1109,7 @@ bool needs_byte_swap; /* DWC OTG HW Release versions */ +#define DWC2_CORE_REV_4_30a 0x4f54430a #define DWC2_CORE_REV_2_71a 0x4f54271a #define DWC2_CORE_REV_2_72a 0x4f54272a #define DWC2_CORE_REV_2_80a 0x4f54280a @@ -1335,6 +1348,7 @@ int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg); void dwc2_enable_acg(struct dwc2_hsotg *hsotg); +void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg, bool remotewakeup); /* This function should be called on every hardware interrupt. */ irqreturn_t dwc2_handle_common_intr(int irq, void *dev); diff -Nru linux-5.10.209/drivers/usb/dwc2/core_intr.c linux-5.10.216/drivers/usb/dwc2/core_intr.c --- linux-5.10.209/drivers/usb/dwc2/core_intr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/core_intr.c 2024-05-02 14:23:46.000000000 +0000 @@ -344,10 +344,11 @@ * @hsotg: Programming view of DWC_otg controller * */ -static void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg) +void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg, bool remotewakeup) { u32 glpmcfg; - u32 i = 0; + u32 pcgctl; + u32 dctl; if (hsotg->lx_state != DWC2_L1) { dev_err(hsotg->dev, "Core isn't in DWC2_L1 state\n"); @@ -356,37 +357,57 @@ glpmcfg = dwc2_readl(hsotg, GLPMCFG); if (dwc2_is_device_mode(hsotg)) { - dev_dbg(hsotg->dev, "Exit from L1 state\n"); + dev_dbg(hsotg->dev, "Exit from L1 state, remotewakeup=%d\n", remotewakeup); glpmcfg &= ~GLPMCFG_ENBLSLPM; - glpmcfg &= ~GLPMCFG_HIRD_THRES_EN; + glpmcfg &= ~GLPMCFG_HIRD_THRES_MASK; dwc2_writel(hsotg, glpmcfg, GLPMCFG); - do { - glpmcfg = dwc2_readl(hsotg, GLPMCFG); - - if (!(glpmcfg & (GLPMCFG_COREL1RES_MASK | - GLPMCFG_L1RESUMEOK | GLPMCFG_SLPSTS))) - break; + pcgctl = dwc2_readl(hsotg, PCGCTL); + pcgctl &= ~PCGCTL_ENBL_SLEEP_GATING; + dwc2_writel(hsotg, pcgctl, PCGCTL); + + glpmcfg = dwc2_readl(hsotg, GLPMCFG); + if (glpmcfg & GLPMCFG_ENBESL) { + glpmcfg |= GLPMCFG_RSTRSLPSTS; + dwc2_writel(hsotg, glpmcfg, GLPMCFG); + } - udelay(1); - } while (++i < 200); + if (remotewakeup) { + if (dwc2_hsotg_wait_bit_set(hsotg, GLPMCFG, GLPMCFG_L1RESUMEOK, 1000)) { + dev_warn(hsotg->dev, "%s: timeout GLPMCFG_L1RESUMEOK\n", __func__); + goto fail; + return; + } + + dctl = dwc2_readl(hsotg, DCTL); + dctl |= DCTL_RMTWKUPSIG; + dwc2_writel(hsotg, dctl, DCTL); + + if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS, GINTSTS_WKUPINT, 1000)) { + dev_warn(hsotg->dev, "%s: timeout GINTSTS_WKUPINT\n", __func__); + goto fail; + return; + } + } - if (i == 200) { - dev_err(hsotg->dev, "Failed to exit L1 sleep state in 200us.\n"); + glpmcfg = dwc2_readl(hsotg, GLPMCFG); + if (glpmcfg & GLPMCFG_COREL1RES_MASK || glpmcfg & GLPMCFG_SLPSTS || + glpmcfg & GLPMCFG_L1RESUMEOK) { + goto fail; return; } - dwc2_gadget_init_lpm(hsotg); + + /* Inform gadget to exit from L1 */ + call_gadget(hsotg, resume); + /* Change to L0 state */ + hsotg->lx_state = DWC2_L0; + hsotg->bus_suspended = false; +fail: dwc2_gadget_init_lpm(hsotg); } else { /* TODO */ dev_err(hsotg->dev, "Host side LPM is not supported.\n"); return; } - - /* Change to L0 state */ - hsotg->lx_state = DWC2_L0; - - /* Inform gadget to exit from L1 */ - call_gadget(hsotg, resume); } /* @@ -407,7 +428,7 @@ dev_dbg(hsotg->dev, "%s lxstate = %d\n", __func__, hsotg->lx_state); if (hsotg->lx_state == DWC2_L1) { - dwc2_wakeup_from_lpm_l1(hsotg); + dwc2_wakeup_from_lpm_l1(hsotg, false); return; } diff -Nru linux-5.10.209/drivers/usb/dwc2/gadget.c linux-5.10.216/drivers/usb/dwc2/gadget.c --- linux-5.10.209/drivers/usb/dwc2/gadget.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/gadget.c 2024-05-02 14:23:46.000000000 +0000 @@ -1416,6 +1416,10 @@ ep->name, req, req->length, req->buf, req->no_interrupt, req->zero, req->short_not_ok); + if (hs->lx_state == DWC2_L1) { + dwc2_wakeup_from_lpm_l1(hs, true); + } + /* Prevent new request submission when controller is suspended */ if (hs->lx_state != DWC2_L0) { dev_dbg(hs->dev, "%s: submit request only in active state\n", diff -Nru linux-5.10.209/drivers/usb/dwc2/hcd.c linux-5.10.216/drivers/usb/dwc2/hcd.c --- linux-5.10.209/drivers/usb/dwc2/hcd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/hcd.c 2024-05-02 14:23:46.000000000 +0000 @@ -2736,8 +2736,11 @@ hsotg->available_host_channels--; } qh = list_entry(qh_ptr, struct dwc2_qh, qh_list_entry); - if (dwc2_assign_and_init_hc(hsotg, qh)) + if (dwc2_assign_and_init_hc(hsotg, qh)) { + if (hsotg->params.uframe_sched) + hsotg->available_host_channels++; break; + } /* * Move the QH from the periodic ready schedule to the @@ -2770,8 +2773,11 @@ hsotg->available_host_channels--; } - if (dwc2_assign_and_init_hc(hsotg, qh)) + if (dwc2_assign_and_init_hc(hsotg, qh)) { + if (hsotg->params.uframe_sched) + hsotg->available_host_channels++; break; + } /* * Move the QH from the non-periodic inactive schedule to the @@ -4125,6 +4131,8 @@ urb->actual_length); if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) { + if (!hsotg->params.dma_desc_enable) + urb->start_frame = qtd->qh->start_active_frame; urb->error_count = dwc2_hcd_urb_get_error_count(qtd->urb); for (i = 0; i < urb->number_of_packets; ++i) { urb->iso_frame_desc[i].actual_length = @@ -5319,9 +5327,16 @@ /* Backup Host regs */ hr = &hsotg->hr_backup; hr->hcfg = dwc2_readl(hsotg, HCFG); + hr->hflbaddr = dwc2_readl(hsotg, HFLBADDR); hr->haintmsk = dwc2_readl(hsotg, HAINTMSK); - for (i = 0; i < hsotg->params.host_channels; ++i) + for (i = 0; i < hsotg->params.host_channels; ++i) { + hr->hcchar[i] = dwc2_readl(hsotg, HCCHAR(i)); + hr->hcsplt[i] = dwc2_readl(hsotg, HCSPLT(i)); hr->hcintmsk[i] = dwc2_readl(hsotg, HCINTMSK(i)); + hr->hctsiz[i] = dwc2_readl(hsotg, HCTSIZ(i)); + hr->hcidma[i] = dwc2_readl(hsotg, HCDMA(i)); + hr->hcidmab[i] = dwc2_readl(hsotg, HCDMAB(i)); + } hr->hprt0 = dwc2_read_hprt0(hsotg); hr->hfir = dwc2_readl(hsotg, HFIR); @@ -5355,10 +5370,17 @@ hr->valid = false; dwc2_writel(hsotg, hr->hcfg, HCFG); + dwc2_writel(hsotg, hr->hflbaddr, HFLBADDR); dwc2_writel(hsotg, hr->haintmsk, HAINTMSK); - for (i = 0; i < hsotg->params.host_channels; ++i) + for (i = 0; i < hsotg->params.host_channels; ++i) { + dwc2_writel(hsotg, hr->hcchar[i], HCCHAR(i)); + dwc2_writel(hsotg, hr->hcsplt[i], HCSPLT(i)); dwc2_writel(hsotg, hr->hcintmsk[i], HCINTMSK(i)); + dwc2_writel(hsotg, hr->hctsiz[i], HCTSIZ(i)); + dwc2_writel(hsotg, hr->hcidma[i], HCDMA(i)); + dwc2_writel(hsotg, hr->hcidmab[i], HCDMAB(i)); + } dwc2_writel(hsotg, hr->hprt0, HPRT0); dwc2_writel(hsotg, hr->hfir, HFIR); @@ -5523,10 +5545,12 @@ dwc2_writel(hsotg, hr->hcfg, HCFG); /* De-assert Wakeup Logic */ - gpwrdn = dwc2_readl(hsotg, GPWRDN); - gpwrdn &= ~GPWRDN_PMUACTV; - dwc2_writel(hsotg, gpwrdn, GPWRDN); - udelay(10); + if (!(rem_wakeup && hsotg->hw_params.snpsid >= DWC2_CORE_REV_4_30a)) { + gpwrdn = dwc2_readl(hsotg, GPWRDN); + gpwrdn &= ~GPWRDN_PMUACTV; + dwc2_writel(hsotg, gpwrdn, GPWRDN); + udelay(10); + } hprt0 = hr->hprt0; hprt0 |= HPRT0_PWR; @@ -5551,6 +5575,13 @@ hprt0 |= HPRT0_RES; dwc2_writel(hsotg, hprt0, HPRT0); + /* De-assert Wakeup Logic */ + if ((rem_wakeup && hsotg->hw_params.snpsid >= DWC2_CORE_REV_4_30a)) { + gpwrdn = dwc2_readl(hsotg, GPWRDN); + gpwrdn &= ~GPWRDN_PMUACTV; + dwc2_writel(hsotg, gpwrdn, GPWRDN); + udelay(10); + } /* Wait for Resume time and then program HPRT again */ mdelay(100); hprt0 &= ~HPRT0_RES; diff -Nru linux-5.10.209/drivers/usb/dwc2/hcd_ddma.c linux-5.10.216/drivers/usb/dwc2/hcd_ddma.c --- linux-5.10.209/drivers/usb/dwc2/hcd_ddma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/hcd_ddma.c 2024-05-02 14:23:46.000000000 +0000 @@ -589,7 +589,7 @@ idx = qh->td_last; inc = qh->host_interval; hsotg->frame_number = dwc2_hcd_get_frame_number(hsotg); - cur_idx = dwc2_frame_list_idx(hsotg->frame_number); + cur_idx = idx; next_idx = dwc2_desclist_idx_inc(qh->td_last, inc, qh->dev_speed); /* @@ -896,20 +896,27 @@ { struct dwc2_dma_desc *dma_desc; struct dwc2_hcd_iso_packet_desc *frame_desc; + u16 frame_desc_idx; + struct urb *usb_urb; u16 remain = 0; int rc = 0; if (!qtd->urb) return -EINVAL; + usb_urb = qtd->urb->priv; + dma_sync_single_for_cpu(hsotg->dev, qh->desc_list_dma + (idx * sizeof(struct dwc2_dma_desc)), sizeof(struct dwc2_dma_desc), DMA_FROM_DEVICE); dma_desc = &qh->desc_list[idx]; + frame_desc_idx = (idx - qtd->isoc_td_first) & (usb_urb->number_of_packets - 1); - frame_desc = &qtd->urb->iso_descs[qtd->isoc_frame_index_last]; + frame_desc = &qtd->urb->iso_descs[frame_desc_idx]; + if (idx == qtd->isoc_td_first) + usb_urb->start_frame = dwc2_hcd_get_frame_number(hsotg); dma_desc->buf = (u32)(qtd->urb->dma + frame_desc->offset); if (chan->ep_is_in) remain = (dma_desc->status & HOST_DMA_ISOC_NBYTES_MASK) >> @@ -930,7 +937,7 @@ frame_desc->status = 0; } - if (++qtd->isoc_frame_index == qtd->urb->packet_count) { + if (++qtd->isoc_frame_index == usb_urb->number_of_packets) { /* * urb->status is not used for isoc transfers here. The * individual frame_desc status are used instead. @@ -1035,11 +1042,11 @@ return; idx = dwc2_desclist_idx_inc(idx, qh->host_interval, chan->speed); - if (!rc) + if (rc == 0) continue; - if (rc == DWC2_CMPL_DONE) - break; + if (rc == DWC2_CMPL_DONE || rc == DWC2_CMPL_STOP) + goto stop_scan; /* rc == DWC2_CMPL_STOP */ diff -Nru linux-5.10.209/drivers/usb/dwc2/hw.h linux-5.10.216/drivers/usb/dwc2/hw.h --- linux-5.10.209/drivers/usb/dwc2/hw.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/dwc2/hw.h 2024-05-02 14:23:46.000000000 +0000 @@ -727,7 +727,7 @@ #define TXSTS_QTOP_TOKEN_MASK (0x3 << 25) #define TXSTS_QTOP_TOKEN_SHIFT 25 #define TXSTS_QTOP_TERMINATE BIT(24) -#define TXSTS_QSPCAVAIL_MASK (0xff << 16) +#define TXSTS_QSPCAVAIL_MASK (0x7f << 16) #define TXSTS_QSPCAVAIL_SHIFT 16 #define TXSTS_FSPCAVAIL_MASK (0xffff << 0) #define TXSTS_FSPCAVAIL_SHIFT 0 diff -Nru linux-5.10.209/drivers/usb/gadget/function/f_mass_storage.c linux-5.10.216/drivers/usb/gadget/function/f_mass_storage.c --- linux-5.10.209/drivers/usb/gadget/function/f_mass_storage.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/gadget/function/f_mass_storage.c 2024-05-02 14:23:46.000000000 +0000 @@ -575,21 +575,37 @@ static bool start_in_transfer(struct fsg_common *common, struct fsg_buffhd *bh) { + int rc; + if (!fsg_is_set(common)) return false; bh->state = BUF_STATE_SENDING; - if (start_transfer(common->fsg, common->fsg->bulk_in, bh->inreq)) + rc = start_transfer(common->fsg, common->fsg->bulk_in, bh->inreq); + if (rc) { bh->state = BUF_STATE_EMPTY; + if (rc == -ESHUTDOWN) { + common->running = 0; + return false; + } + } return true; } static bool start_out_transfer(struct fsg_common *common, struct fsg_buffhd *bh) { + int rc; + if (!fsg_is_set(common)) return false; bh->state = BUF_STATE_RECEIVING; - if (start_transfer(common->fsg, common->fsg->bulk_out, bh->outreq)) + rc = start_transfer(common->fsg, common->fsg->bulk_out, bh->outreq); + if (rc) { bh->state = BUF_STATE_FULL; + if (rc == -ESHUTDOWN) { + common->running = 0; + return false; + } + } return true; } diff -Nru linux-5.10.209/drivers/usb/gadget/function/f_ncm.c linux-5.10.216/drivers/usb/gadget/function/f_ncm.c --- linux-5.10.209/drivers/usb/gadget/function/f_ncm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/gadget/function/f_ncm.c 2024-05-02 14:23:46.000000000 +0000 @@ -1349,7 +1349,15 @@ "Parsed NTB with %d frames\n", dgram_counter); to_process -= block_len; - if (to_process != 0) { + + /* + * Windows NCM driver avoids USB ZLPs by adding a 1-byte + * zero pad as needed. + */ + if (to_process == 1 && + (*(unsigned char *)(ntb_ptr + block_len) == 0x00)) { + to_process--; + } else if ((to_process > 0) && (block_len != 0)) { ntb_ptr = (unsigned char *)(ntb_ptr + block_len); goto parse_ntb; } diff -Nru linux-5.10.209/drivers/usb/gadget/udc/core.c linux-5.10.216/drivers/usb/gadget/udc/core.c --- linux-5.10.209/drivers/usb/gadget/udc/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/gadget/udc/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -273,7 +273,9 @@ { int ret = 0; - if (WARN_ON_ONCE(!ep->enabled && ep->address)) { + if (!ep->enabled && ep->address) { + pr_debug("USB gadget: queue request to disabled ep 0x%x (%s)\n", + ep->address, ep->name); ret = -ESHUTDOWN; goto out; } diff -Nru linux-5.10.209/drivers/usb/gadget/udc/net2272.c linux-5.10.216/drivers/usb/gadget/udc/net2272.c --- linux-5.10.209/drivers/usb/gadget/udc/net2272.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/gadget/udc/net2272.c 2024-05-02 14:23:46.000000000 +0000 @@ -2636,7 +2636,7 @@ goto err_req; } - ret = net2272_probe_fin(dev, IRQF_TRIGGER_LOW); + ret = net2272_probe_fin(dev, irqflags); if (ret) goto err_io; diff -Nru linux-5.10.209/drivers/usb/gadget/udc/tegra-xudc.c linux-5.10.216/drivers/usb/gadget/udc/tegra-xudc.c --- linux-5.10.209/drivers/usb/gadget/udc/tegra-xudc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/gadget/udc/tegra-xudc.c 2024-05-02 14:23:46.000000000 +0000 @@ -3480,8 +3480,8 @@ static int tegra_xudc_phy_get(struct tegra_xudc *xudc) { - int err = 0, usb3; - unsigned int i; + int err = 0, usb3_companion_port; + unsigned int i, j; xudc->utmi_phy = devm_kcalloc(xudc->dev, xudc->soc->num_phys, sizeof(*xudc->utmi_phy), GFP_KERNEL); @@ -3508,10 +3508,8 @@ xudc->utmi_phy[i] = devm_phy_optional_get(xudc->dev, phy_name); if (IS_ERR(xudc->utmi_phy[i])) { err = PTR_ERR(xudc->utmi_phy[i]); - if (err != -EPROBE_DEFER) - dev_err(xudc->dev, "failed to get usb2-%d PHY: %d\n", - i, err); - + dev_err_probe(xudc->dev, err, + "failed to get PHY for phy-name usb2-%d\n", i); goto clean_up; } else if (xudc->utmi_phy[i]) { /* Get usb-phy, if utmi phy is available */ @@ -3530,21 +3528,30 @@ } /* Get USB3 phy */ - usb3 = tegra_xusb_padctl_get_usb3_companion(xudc->padctl, i); - if (usb3 < 0) + usb3_companion_port = tegra_xusb_padctl_get_usb3_companion(xudc->padctl, i); + if (usb3_companion_port < 0) continue; - snprintf(phy_name, sizeof(phy_name), "usb3-%d", usb3); - xudc->usb3_phy[i] = devm_phy_optional_get(xudc->dev, phy_name); - if (IS_ERR(xudc->usb3_phy[i])) { - err = PTR_ERR(xudc->usb3_phy[i]); - if (err != -EPROBE_DEFER) - dev_err(xudc->dev, "failed to get usb3-%d PHY: %d\n", - usb3, err); - - goto clean_up; - } else if (xudc->usb3_phy[i]) - dev_dbg(xudc->dev, "usb3-%d PHY registered", usb3); + for (j = 0; j < xudc->soc->num_phys; j++) { + snprintf(phy_name, sizeof(phy_name), "usb3-%d", j); + xudc->usb3_phy[i] = devm_phy_optional_get(xudc->dev, phy_name); + if (IS_ERR(xudc->usb3_phy[i])) { + err = PTR_ERR(xudc->usb3_phy[i]); + dev_err_probe(xudc->dev, err, + "failed to get PHY for phy-name usb3-%d\n", j); + goto clean_up; + } else if (xudc->usb3_phy[i]) { + int usb2_port = + tegra_xusb_padctl_get_port_number(xudc->utmi_phy[i]); + int usb3_port = + tegra_xusb_padctl_get_port_number(xudc->usb3_phy[i]); + if (usb3_port == usb3_companion_port) { + dev_dbg(xudc->dev, "USB2 port %d is paired with USB3 port %d for device mode port %d\n", + usb2_port, usb3_port, i); + break; + } + } + } } return err; @@ -3781,9 +3788,7 @@ err = devm_clk_bulk_get(&pdev->dev, xudc->soc->num_clks, xudc->clks); if (err) { - if (err != -EPROBE_DEFER) - dev_err(xudc->dev, "failed to request clocks: %d\n", err); - + dev_err_probe(xudc->dev, err, "failed to request clocks\n"); return err; } @@ -3798,9 +3803,7 @@ err = devm_regulator_bulk_get(&pdev->dev, xudc->soc->num_supplies, xudc->supplies); if (err) { - if (err != -EPROBE_DEFER) - dev_err(xudc->dev, "failed to request regulators: %d\n", err); - + dev_err_probe(xudc->dev, err, "failed to request regulators\n"); return err; } diff -Nru linux-5.10.209/drivers/usb/host/sl811-hcd.c linux-5.10.216/drivers/usb/host/sl811-hcd.c --- linux-5.10.209/drivers/usb/host/sl811-hcd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/host/sl811-hcd.c 2024-05-02 14:23:46.000000000 +0000 @@ -585,6 +585,7 @@ finish_request(sl811, ep, urb, urbstat); } +#ifdef QUIRK2 static inline u8 checkdone(struct sl811 *sl811) { u8 ctl; @@ -616,6 +617,7 @@ #endif return irqstat; } +#endif static irqreturn_t sl811h_irq(struct usb_hcd *hcd) { diff -Nru linux-5.10.209/drivers/usb/host/xhci-plat.c linux-5.10.216/drivers/usb/host/xhci-plat.c --- linux-5.10.209/drivers/usb/host/xhci-plat.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/host/xhci-plat.c 2024-05-02 14:23:46.000000000 +0000 @@ -323,6 +323,9 @@ if (device_property_read_bool(tmpdev, "quirk-broken-port-ped")) xhci->quirks |= XHCI_BROKEN_PORT_PED; + if (device_property_read_bool(tmpdev, "xhci-sg-trb-cache-size-quirk")) + xhci->quirks |= XHCI_SG_TRB_CACHE_SIZE_QUIRK; + device_property_read_u32(tmpdev, "imod-interval-ns", &xhci->imod_interval); } diff -Nru linux-5.10.209/drivers/usb/host/xhci-ring.c linux-5.10.216/drivers/usb/host/xhci-ring.c --- linux-5.10.209/drivers/usb/host/xhci-ring.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/host/xhci-ring.c 2024-05-02 14:23:46.000000000 +0000 @@ -2059,16 +2059,13 @@ return 0; } -static int finish_td(struct xhci_hcd *xhci, struct xhci_td *td, - struct xhci_transfer_event *event, struct xhci_virt_ep *ep) +static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep, + struct xhci_ring *ep_ring, struct xhci_td *td, + u32 trb_comp_code) { struct xhci_ep_ctx *ep_ctx; - struct xhci_ring *ep_ring; - u32 trb_comp_code; - ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); ep_ctx = xhci_get_ep_ctx(xhci, ep->vdev->out_ctx, ep->ep_index); - trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); if (trb_comp_code == COMP_STOPPED_LENGTH_INVALID || trb_comp_code == COMP_STOPPED || @@ -2099,8 +2096,9 @@ EP_HARD_RESET); } else { /* Update ring dequeue pointer */ - while (ep_ring->dequeue != td->last_trb) - inc_deq(xhci, ep_ring); + ep_ring->dequeue = td->last_trb; + ep_ring->deq_seg = td->last_trb_seg; + ep_ring->num_trbs_free += td->num_trbs - 1; inc_deq(xhci, ep_ring); } @@ -2125,9 +2123,9 @@ /* * Process control tds, update urb status and actual_length. */ -static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_td *td, - union xhci_trb *ep_trb, struct xhci_transfer_event *event, - struct xhci_virt_ep *ep) +static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep, + struct xhci_ring *ep_ring, struct xhci_td *td, + union xhci_trb *ep_trb, struct xhci_transfer_event *event) { struct xhci_ep_ctx *ep_ctx; u32 trb_comp_code; @@ -2215,15 +2213,15 @@ td->urb->actual_length = requested; finish_td: - return finish_td(xhci, td, event, ep); + return finish_td(xhci, ep, ep_ring, td, trb_comp_code); } /* * Process isochronous tds, update urb packet status and actual_length. */ -static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td, - union xhci_trb *ep_trb, struct xhci_transfer_event *event, - struct xhci_virt_ep *ep) +static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep, + struct xhci_ring *ep_ring, struct xhci_td *td, + union xhci_trb *ep_trb, struct xhci_transfer_event *event) { struct urb_priv *urb_priv; int idx; @@ -2246,6 +2244,9 @@ /* handle completion code */ switch (trb_comp_code) { case COMP_SUCCESS: + /* Don't overwrite status if TD had an error, see xHCI 4.9.1 */ + if (td->error_mid_td) + break; if (remaining) { frame->status = short_framestatus; if (xhci->quirks & XHCI_TRUST_TX_LENGTH) @@ -2261,9 +2262,13 @@ case COMP_BANDWIDTH_OVERRUN_ERROR: frame->status = -ECOMM; break; - case COMP_ISOCH_BUFFER_OVERRUN: case COMP_BABBLE_DETECTED_ERROR: + sum_trbs_for_length = true; + fallthrough; + case COMP_ISOCH_BUFFER_OVERRUN: frame->status = -EOVERFLOW; + if (ep_trb != td->last_trb) + td->error_mid_td = true; break; case COMP_INCOMPATIBLE_DEVICE_ERROR: case COMP_STALL_ERROR: @@ -2271,8 +2276,9 @@ break; case COMP_USB_TRANSACTION_ERROR: frame->status = -EPROTO; + sum_trbs_for_length = true; if (ep_trb != td->last_trb) - return 0; + td->error_mid_td = true; break; case COMP_STOPPED: sum_trbs_for_length = true; @@ -2292,6 +2298,9 @@ break; } + if (td->urb_length_set) + goto finish_td; + if (sum_trbs_for_length) frame->actual_length = sum_trb_lengths(xhci, ep->ring, ep_trb) + ep_trb_len - remaining; @@ -2300,7 +2309,15 @@ td->urb->actual_length += frame->actual_length; - return finish_td(xhci, td, event, ep); +finish_td: + /* Don't give back TD yet if we encountered an error mid TD */ + if (td->error_mid_td && ep_trb != td->last_trb) { + xhci_dbg(xhci, "Error mid isoc TD, wait for final completion event\n"); + td->urb_length_set = true; + return 0; + } + + return finish_td(xhci, ep, ep_ring, td, trb_comp_code); } static int skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td, @@ -2321,8 +2338,9 @@ frame->actual_length = 0; /* Update ring dequeue pointer */ - while (ep->ring->dequeue != td->last_trb) - inc_deq(xhci, ep->ring); + ep->ring->dequeue = td->last_trb; + ep->ring->deq_seg = td->last_trb_seg; + ep->ring->num_trbs_free += td->num_trbs - 1; inc_deq(xhci, ep->ring); return xhci_td_cleanup(xhci, td, ep->ring, status); @@ -2331,17 +2349,15 @@ /* * Process bulk and interrupt tds, update urb status and actual_length. */ -static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_td *td, - union xhci_trb *ep_trb, struct xhci_transfer_event *event, - struct xhci_virt_ep *ep) +static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep, + struct xhci_ring *ep_ring, struct xhci_td *td, + union xhci_trb *ep_trb, struct xhci_transfer_event *event) { struct xhci_slot_ctx *slot_ctx; - struct xhci_ring *ep_ring; u32 trb_comp_code; u32 remaining, requested, ep_trb_len; slot_ctx = xhci_get_slot_ctx(xhci, ep->vdev->out_ctx); - ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer)); trb_comp_code = GET_COMP_CODE(le32_to_cpu(event->transfer_len)); remaining = EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)); ep_trb_len = TRB_LEN(le32_to_cpu(ep_trb->generic.field[2])); @@ -2401,7 +2417,8 @@ remaining); td->urb->actual_length = 0; } - return finish_td(xhci, td, event, ep); + + return finish_td(xhci, ep, ep_ring, td, trb_comp_code); } /* @@ -2686,17 +2703,51 @@ } if (!ep_seg) { - if (!ep->skip || - !usb_endpoint_xfer_isoc(&td->urb->ep->desc)) { - /* Some host controllers give a spurious - * successful event after a short transfer. - * Ignore it. - */ - if ((xhci->quirks & XHCI_SPURIOUS_SUCCESS) && - ep_ring->last_td_was_short) { - ep_ring->last_td_was_short = false; - goto cleanup; + + if (ep->skip && usb_endpoint_xfer_isoc(&td->urb->ep->desc)) { + skip_isoc_td(xhci, td, ep, status); + goto cleanup; + } + + /* + * Some hosts give a spurious success event after a short + * transfer. Ignore it. + */ + if ((xhci->quirks & XHCI_SPURIOUS_SUCCESS) && + ep_ring->last_td_was_short) { + ep_ring->last_td_was_short = false; + goto cleanup; + } + + /* + * xhci 4.10.2 states isoc endpoints should continue + * processing the next TD if there was an error mid TD. + * So host like NEC don't generate an event for the last + * isoc TRB even if the IOC flag is set. + * xhci 4.9.1 states that if there are errors in mult-TRB + * TDs xHC should generate an error for that TRB, and if xHC + * proceeds to the next TD it should genete an event for + * any TRB with IOC flag on the way. Other host follow this. + * So this event might be for the next TD. + */ + if (td->error_mid_td && + !list_is_last(&td->td_list, &ep_ring->td_list)) { + struct xhci_td *td_next = list_next_entry(td, td_list); + + ep_seg = trb_in_td(xhci, td_next->start_seg, td_next->first_trb, + td_next->last_trb, ep_trb_dma, false); + if (ep_seg) { + /* give back previous TD, start handling new */ + xhci_dbg(xhci, "Missing TD completion event after mid TD error\n"); + ep_ring->dequeue = td->last_trb; + ep_ring->deq_seg = td->last_trb_seg; + inc_deq(xhci, ep_ring); + xhci_td_cleanup(xhci, td, ep_ring, td->status); + td = td_next; } + } + + if (!ep_seg) { /* HC is busted, give up! */ xhci_err(xhci, "ERROR Transfer event TRB DMA ptr not " @@ -2708,9 +2759,6 @@ ep_trb_dma, true); return -ESHUTDOWN; } - - skip_isoc_td(xhci, td, ep, status); - goto cleanup; } if (trb_comp_code == COMP_SHORT_PACKET) ep_ring->last_td_was_short = true; @@ -2752,11 +2800,11 @@ /* update the urb's actual_length and give back to the core */ if (usb_endpoint_xfer_control(&td->urb->ep->desc)) - process_ctrl_td(xhci, td, ep_trb, event, ep); + process_ctrl_td(xhci, ep, ep_ring, td, ep_trb, event); else if (usb_endpoint_xfer_isoc(&td->urb->ep->desc)) - process_isoc_td(xhci, td, ep_trb, event, ep); + process_isoc_td(xhci, ep, ep_ring, td, ep_trb, event); else - process_bulk_intr_td(xhci, td, ep_trb, event, ep); + process_bulk_intr_td(xhci, ep, ep_ring, td, ep_trb, event); cleanup: handling_skipped_tds = ep->skip && trb_comp_code != COMP_MISSED_SERVICE_ERROR && @@ -3487,7 +3535,7 @@ field |= TRB_IOC; more_trbs_coming = false; td->last_trb = ring->enqueue; - + td->last_trb_seg = ring->enq_seg; if (xhci_urb_suitable_for_idt(urb)) { memcpy(&send_addr, urb->transfer_buffer, trb_buff_len); @@ -3513,7 +3561,7 @@ upper_32_bits(send_addr), length_field, field); - + td->num_trbs++; addr += trb_buff_len; sent_len = trb_buff_len; @@ -3537,8 +3585,10 @@ ep_index, urb->stream_id, 1, urb, 1, mem_flags); urb_priv->td[1].last_trb = ring->enqueue; + urb_priv->td[1].last_trb_seg = ring->enq_seg; field = TRB_TYPE(TRB_NORMAL) | ring->cycle_state | TRB_IOC; queue_trb(xhci, ring, 0, 0, 0, TRB_INTR_TARGET(0), field); + urb_priv->td[1].num_trbs++; } check_trb_math(urb, enqd_len); @@ -3589,6 +3639,7 @@ urb_priv = urb->hcpriv; td = &urb_priv->td[0]; + td->num_trbs = num_trbs; /* * Don't give the first TRB to the hardware (by toggling the cycle bit) @@ -3661,6 +3712,7 @@ /* Save the DMA address of the last TRB in the TD */ td->last_trb = ep_ring->enqueue; + td->last_trb_seg = ep_ring->enq_seg; /* Queue status TRB - see Table 7 and sections 4.11.2.2 and 6.4.1.2.3 */ /* If the device sent data, the status stage is an OUT transfer */ @@ -3905,7 +3957,7 @@ goto cleanup; } td = &urb_priv->td[i]; - + td->num_trbs = trbs_per_td; /* use SIA as default, if frame id is used overwrite it */ sia_frame_id = TRB_SIA; if (!(urb->transfer_flags & URB_ISO_ASAP) && @@ -3948,6 +4000,7 @@ } else { more_trbs_coming = false; td->last_trb = ep_ring->enqueue; + td->last_trb_seg = ep_ring->enq_seg; field |= TRB_IOC; if (trb_block_event_intr(xhci, num_tds, i)) field |= TRB_BEI; diff -Nru linux-5.10.209/drivers/usb/host/xhci.h linux-5.10.216/drivers/usb/host/xhci.h --- linux-5.10.209/drivers/usb/host/xhci.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/host/xhci.h 2024-05-02 14:23:46.000000000 +0000 @@ -1550,9 +1550,12 @@ struct xhci_segment *start_seg; union xhci_trb *first_trb; union xhci_trb *last_trb; + struct xhci_segment *last_trb_seg; struct xhci_segment *bounce_seg; /* actual_length of the URB has already been set */ bool urb_length_set; + bool error_mid_td; + unsigned int num_trbs; }; /* xHCI command default timeout value */ diff -Nru linux-5.10.209/drivers/usb/phy/phy-generic.c linux-5.10.216/drivers/usb/phy/phy-generic.c --- linux-5.10.209/drivers/usb/phy/phy-generic.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/phy/phy-generic.c 2024-05-02 14:23:46.000000000 +0000 @@ -268,13 +268,6 @@ return -EPROBE_DEFER; } - nop->vbus_draw = devm_regulator_get_exclusive(dev, "vbus"); - if (PTR_ERR(nop->vbus_draw) == -ENODEV) - nop->vbus_draw = NULL; - if (IS_ERR(nop->vbus_draw)) - return dev_err_probe(dev, PTR_ERR(nop->vbus_draw), - "could not get vbus regulator\n"); - nop->dev = dev; nop->phy.dev = nop->dev; nop->phy.label = "nop-xceiv"; diff -Nru linux-5.10.209/drivers/usb/roles/class.c linux-5.10.216/drivers/usb/roles/class.c --- linux-5.10.209/drivers/usb/roles/class.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/roles/class.c 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,9 @@ struct usb_role_switch { struct device dev; struct mutex lock; /* device lock*/ + struct module *module; /* the module this device depends on */ enum usb_role role; + bool registered; /* From descriptor */ struct device *usb2_port; @@ -46,6 +48,9 @@ if (IS_ERR_OR_NULL(sw)) return 0; + if (!sw->registered) + return -EOPNOTSUPP; + mutex_lock(&sw->lock); ret = sw->set(sw, role); @@ -71,7 +76,7 @@ { enum usb_role role; - if (IS_ERR_OR_NULL(sw)) + if (IS_ERR_OR_NULL(sw) || !sw->registered) return USB_ROLE_NONE; mutex_lock(&sw->lock); @@ -133,7 +138,7 @@ usb_role_switch_match); if (!IS_ERR_OR_NULL(sw)) - WARN_ON(!try_module_get(sw->dev.parent->driver->owner)); + WARN_ON(!try_module_get(sw->module)); return sw; } @@ -155,7 +160,7 @@ sw = fwnode_connection_find_match(fwnode, "usb-role-switch", NULL, usb_role_switch_match); if (!IS_ERR_OR_NULL(sw)) - WARN_ON(!try_module_get(sw->dev.parent->driver->owner)); + WARN_ON(!try_module_get(sw->module)); return sw; } @@ -170,7 +175,7 @@ void usb_role_switch_put(struct usb_role_switch *sw) { if (!IS_ERR_OR_NULL(sw)) { - module_put(sw->dev.parent->driver->owner); + module_put(sw->module); put_device(&sw->dev); } } @@ -187,15 +192,18 @@ usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode) { struct device *dev; + struct usb_role_switch *sw = NULL; if (!fwnode) return NULL; dev = class_find_device_by_fwnode(role_class, fwnode); - if (dev) - WARN_ON(!try_module_get(dev->parent->driver->owner)); + if (dev) { + sw = to_role_switch(dev); + WARN_ON(!try_module_get(sw->module)); + } - return dev ? to_role_switch(dev) : NULL; + return sw; } EXPORT_SYMBOL_GPL(usb_role_switch_find_by_fwnode); @@ -328,6 +336,7 @@ sw->set = desc->set; sw->get = desc->get; + sw->module = parent->driver->owner; sw->dev.parent = parent; sw->dev.fwnode = desc->fwnode; sw->dev.class = role_class; @@ -342,6 +351,8 @@ return ERR_PTR(ret); } + sw->registered = true; + /* TODO: Symlinks for the host port and the device controller. */ return sw; @@ -356,8 +367,10 @@ */ void usb_role_switch_unregister(struct usb_role_switch *sw) { - if (!IS_ERR_OR_NULL(sw)) + if (!IS_ERR_OR_NULL(sw)) { + sw->registered = false; device_unregister(&sw->dev); + } } EXPORT_SYMBOL_GPL(usb_role_switch_unregister); diff -Nru linux-5.10.209/drivers/usb/serial/cp210x.c linux-5.10.216/drivers/usb/serial/cp210x.c --- linux-5.10.209/drivers/usb/serial/cp210x.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/serial/cp210x.c 2024-05-02 14:23:46.000000000 +0000 @@ -60,6 +60,8 @@ { USB_DEVICE(0x0471, 0x066A) }, /* AKTAKOM ACE-1001 cable */ { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ { USB_DEVICE(0x0489, 0xE003) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ + { USB_DEVICE(0x04BF, 0x1301) }, /* TDK Corporation NC0110013M - Network Controller */ + { USB_DEVICE(0x04BF, 0x1303) }, /* TDK Corporation MM0110113M - i3 Micro Module */ { USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */ { USB_DEVICE(0x0846, 0x1100) }, /* NetGear Managed Switch M4100 series, M5300 series, M7100 series */ { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */ @@ -148,8 +150,10 @@ { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */ { USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */ { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ + { USB_DEVICE(0x10C4, 0x863C) }, /* MGP Instruments PDS100 */ { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ + { USB_DEVICE(0x10C4, 0x87ED) }, /* IMST USB-Stick for Smart Meter */ { USB_DEVICE(0x10C4, 0x8856) }, /* CEL EM357 ZigBee USB Stick - LR */ { USB_DEVICE(0x10C4, 0x8857) }, /* CEL EM357 ZigBee USB Stick */ { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */ @@ -180,6 +184,7 @@ { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */ { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */ { USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */ + { USB_DEVICE(0x11CA, 0x0212) }, /* Verifone USB to Printer (UART, CP2102) */ { USB_DEVICE(0x12B8, 0xEC60) }, /* Link G4 ECU */ { USB_DEVICE(0x12B8, 0xEC62) }, /* Link G4+ ECU */ { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ diff -Nru linux-5.10.209/drivers/usb/serial/ftdi_sio.c linux-5.10.216/drivers/usb/serial/ftdi_sio.c --- linux-5.10.209/drivers/usb/serial/ftdi_sio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/serial/ftdi_sio.c 2024-05-02 14:23:46.000000000 +0000 @@ -1055,6 +1055,8 @@ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + /* GMC devices */ + { USB_DEVICE(GMC_VID, GMC_Z216C_PID) }, { } /* Terminating entry */ }; diff -Nru linux-5.10.209/drivers/usb/serial/ftdi_sio_ids.h linux-5.10.216/drivers/usb/serial/ftdi_sio_ids.h --- linux-5.10.209/drivers/usb/serial/ftdi_sio_ids.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/serial/ftdi_sio_ids.h 2024-05-02 14:23:46.000000000 +0000 @@ -1599,3 +1599,9 @@ #define UBLOX_VID 0x1546 #define UBLOX_C099F9P_ZED_PID 0x0502 #define UBLOX_C099F9P_ODIN_PID 0x0503 + +/* + * GMC devices + */ +#define GMC_VID 0x1cd7 +#define GMC_Z216C_PID 0x0217 /* GMC Z216C Adapter IR-USB */ diff -Nru linux-5.10.209/drivers/usb/serial/option.c linux-5.10.216/drivers/usb/serial/option.c --- linux-5.10.209/drivers/usb/serial/option.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/serial/option.c 2024-05-02 14:23:46.000000000 +0000 @@ -255,6 +255,10 @@ #define QUECTEL_PRODUCT_EM061K_LMS 0x0124 #define QUECTEL_PRODUCT_EC25 0x0125 #define QUECTEL_PRODUCT_EM060K_128 0x0128 +#define QUECTEL_PRODUCT_EM060K_129 0x0129 +#define QUECTEL_PRODUCT_EM060K_12a 0x012a +#define QUECTEL_PRODUCT_EM060K_12b 0x012b +#define QUECTEL_PRODUCT_EM060K_12c 0x012c #define QUECTEL_PRODUCT_EG91 0x0191 #define QUECTEL_PRODUCT_EG95 0x0195 #define QUECTEL_PRODUCT_BG96 0x0296 @@ -613,6 +617,11 @@ /* Luat Air72*U series based on UNISOC UIS8910 uses UNISOC's vendor ID */ #define LUAT_PRODUCT_AIR720U 0x4e00 +/* MeiG Smart Technology products */ +#define MEIGSMART_VENDOR_ID 0x2dee +/* MeiG Smart SLM320 based on UNISOC UIS8910 */ +#define MEIGSMART_PRODUCT_SLM320 0x4d41 + /* Device flags */ /* Highest interface number which can be used with NCTRL() and RSVD() */ @@ -1213,6 +1222,18 @@ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0x00, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0x00, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x40) }, @@ -1355,6 +1376,12 @@ .driver_info = NCTRL(2) | RSVD(3) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1083, 0xff), /* Telit FE990 (ECM) */ .driver_info = NCTRL(0) | RSVD(1) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a0, 0xff), /* Telit FN20C04 (rmnet) */ + .driver_info = RSVD(0) | NCTRL(3) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a4, 0xff), /* Telit FN20C04 (rmnet) */ + .driver_info = RSVD(0) | NCTRL(3) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a9, 0xff), /* Telit FN20C04 (rmnet) */ + .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910), .driver_info = NCTRL(0) | RSVD(1) | RSVD(3) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), @@ -2047,6 +2074,10 @@ .driver_info = RSVD(3) }, { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9803, 0xff), .driver_info = RSVD(4) }, + { USB_DEVICE(LONGCHEER_VENDOR_ID, 0x9b05), /* Longsung U8300 */ + .driver_info = RSVD(4) | RSVD(5) }, + { USB_DEVICE(LONGCHEER_VENDOR_ID, 0x9b3c), /* Longsung U9300 */ + .driver_info = RSVD(0) | RSVD(4) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) }, { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, @@ -2267,20 +2298,36 @@ { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0xff, 0x30) }, /* Fibocom FG150 Diag */ { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0, 0) }, /* Fibocom FG150 AT */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0111, 0xff) }, /* Fibocom FM160 (MBIM mode) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0115, 0xff), /* Fibocom FM135 (laptop MBIM) */ + .driver_info = RSVD(5) }, { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) }, /* Fibocom NL668-AM/NL652-EU (laptop MBIM) */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a3, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */ .driver_info = RSVD(4) }, + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a04, 0xff) }, /* Fibocom FM650-CN (ECM mode) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a05, 0xff) }, /* Fibocom FM650-CN (NCM mode) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff) }, /* Fibocom FM650-CN (RNDIS mode) */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a07, 0xff) }, /* Fibocom FM650-CN (MBIM mode) */ { USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */ { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1404, 0xff) }, /* GosunCn GM500 RNDIS */ { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1405, 0xff) }, /* GosunCn GM500 MBIM */ { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) }, /* GosunCn GM500 ECM/NCM */ + { USB_DEVICE(0x33f8, 0x0104), /* Rolling RW101-GL (laptop RMNET) */ + .driver_info = RSVD(4) | RSVD(5) }, + { USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a2, 0xff) }, /* Rolling RW101-GL (laptop MBIM) */ + { USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a3, 0xff) }, /* Rolling RW101-GL (laptop MBIM) */ + { USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x01a4, 0xff), /* Rolling RW101-GL (laptop MBIM) */ + .driver_info = RSVD(4) }, + { USB_DEVICE_INTERFACE_CLASS(0x33f8, 0x0115, 0xff), /* Rolling RW135-GL (laptop MBIM) */ + .driver_info = RSVD(5) }, { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) }, + { USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SLM320, 0xff, 0, 0) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); diff -Nru linux-5.10.209/drivers/usb/serial/qcserial.c linux-5.10.216/drivers/usb/serial/qcserial.c --- linux-5.10.209/drivers/usb/serial/qcserial.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/serial/qcserial.c 2024-05-02 14:23:46.000000000 +0000 @@ -184,6 +184,8 @@ {DEVICE_SWI(0x413c, 0x81d0)}, /* Dell Wireless 5819 */ {DEVICE_SWI(0x413c, 0x81d1)}, /* Dell Wireless 5818 */ {DEVICE_SWI(0x413c, 0x81d2)}, /* Dell Wireless 5818 */ + {DEVICE_SWI(0x413c, 0x8217)}, /* Dell Wireless DW5826e */ + {DEVICE_SWI(0x413c, 0x8218)}, /* Dell Wireless DW5826e QDL */ /* Huawei devices */ {DEVICE_HWI(0x03f0, 0x581d)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Modem (Huawei me906e) */ diff -Nru linux-5.10.209/drivers/usb/storage/isd200.c linux-5.10.216/drivers/usb/storage/isd200.c --- linux-5.10.209/drivers/usb/storage/isd200.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/storage/isd200.c 2024-05-02 14:23:46.000000000 +0000 @@ -1105,7 +1105,7 @@ static int isd200_get_inquiry_data( struct us_data *us ) { struct isd200_info *info = (struct isd200_info *)us->extra; - int retStatus = ISD200_GOOD; + int retStatus; u16 *id = info->id; usb_stor_dbg(us, "Entering isd200_get_inquiry_data\n"); @@ -1137,6 +1137,13 @@ isd200_fix_driveid(id); isd200_dump_driveid(us, id); + /* Prevent division by 0 in isd200_scsi_to_ata() */ + if (id[ATA_ID_HEADS] == 0 || id[ATA_ID_SECTORS] == 0) { + usb_stor_dbg(us, " Invalid ATA Identify data\n"); + retStatus = ISD200_ERROR; + goto Done; + } + memset(&info->InquiryData, 0, sizeof(info->InquiryData)); /* Standard IDE interface only supports disks */ @@ -1202,6 +1209,7 @@ } } + Done: usb_stor_dbg(us, "Leaving isd200_get_inquiry_data %08X\n", retStatus); return(retStatus); @@ -1481,22 +1489,27 @@ static int isd200_Initialization(struct us_data *us) { + int rc = 0; + usb_stor_dbg(us, "ISD200 Initialization...\n"); /* Initialize ISD200 info struct */ - if (isd200_init_info(us) == ISD200_ERROR) { + if (isd200_init_info(us) < 0) { usb_stor_dbg(us, "ERROR Initializing ISD200 Info struct\n"); + rc = -ENOMEM; } else { /* Get device specific data */ - if (isd200_get_inquiry_data(us) != ISD200_GOOD) + if (isd200_get_inquiry_data(us) != ISD200_GOOD) { usb_stor_dbg(us, "ISD200 Initialization Failure\n"); - else + rc = -EINVAL; + } else { usb_stor_dbg(us, "ISD200 Initialization complete\n"); + } } - return 0; + return rc; } diff -Nru linux-5.10.209/drivers/usb/typec/tcpm/tcpci.c linux-5.10.216/drivers/usb/typec/tcpm/tcpci.c --- linux-5.10.209/drivers/usb/typec/tcpm/tcpci.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/typec/tcpm/tcpci.c 2024-05-02 14:23:46.000000000 +0000 @@ -732,6 +732,7 @@ #ifdef CONFIG_OF static const struct of_device_id tcpci_of_match[] = { { .compatible = "nxp,ptn5110", }, + { .compatible = "tcpci", }, {}, }; MODULE_DEVICE_TABLE(of, tcpci_of_match); diff -Nru linux-5.10.209/drivers/usb/typec/ucsi/ucsi.c linux-5.10.216/drivers/usb/typec/ucsi/ucsi.c --- linux-5.10.209/drivers/usb/typec/ucsi/ucsi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/typec/ucsi/ucsi.c 2024-05-02 14:23:46.000000000 +0000 @@ -138,8 +138,12 @@ if (!(cci & UCSI_CCI_COMMAND_COMPLETE)) return -EIO; - if (cci & UCSI_CCI_NOT_SUPPORTED) + if (cci & UCSI_CCI_NOT_SUPPORTED) { + if (ucsi_acknowledge_command(ucsi) < 0) + dev_err(ucsi->dev, + "ACK of unsupported command failed\n"); return -EOPNOTSUPP; + } if (cci & UCSI_CCI_ERROR) { if (cmd == UCSI_GET_ERROR_STATUS) @@ -848,13 +852,47 @@ static int ucsi_reset_ppm(struct ucsi *ucsi) { - u64 command = UCSI_PPM_RESET; + u64 command; unsigned long tmo; u32 cci; int ret; mutex_lock(&ucsi->ppm_lock); + ret = ucsi->ops->read(ucsi, UCSI_CCI, &cci, sizeof(cci)); + if (ret < 0) + goto out; + + /* + * If UCSI_CCI_RESET_COMPLETE is already set we must clear + * the flag before we start another reset. Send a + * UCSI_SET_NOTIFICATION_ENABLE command to achieve this. + * Ignore a timeout and try the reset anyway if this fails. + */ + if (cci & UCSI_CCI_RESET_COMPLETE) { + command = UCSI_SET_NOTIFICATION_ENABLE; + ret = ucsi->ops->async_write(ucsi, UCSI_CONTROL, &command, + sizeof(command)); + if (ret < 0) + goto out; + + tmo = jiffies + msecs_to_jiffies(UCSI_TIMEOUT_MS); + do { + ret = ucsi->ops->read(ucsi, UCSI_CCI, + &cci, sizeof(cci)); + if (ret < 0) + goto out; + if (cci & UCSI_CCI_COMMAND_COMPLETE) + break; + if (time_is_before_jiffies(tmo)) + break; + msleep(20); + } while (1); + + WARN_ON(cci & UCSI_CCI_RESET_COMPLETE); + } + + command = UCSI_PPM_RESET; ret = ucsi->ops->async_write(ucsi, UCSI_CONTROL, &command, sizeof(command)); if (ret < 0) diff -Nru linux-5.10.209/drivers/usb/typec/ucsi/ucsi.h linux-5.10.216/drivers/usb/typec/ucsi/ucsi.h --- linux-5.10.209/drivers/usb/typec/ucsi/ucsi.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/typec/ucsi/ucsi.h 2024-05-02 14:23:46.000000000 +0000 @@ -219,12 +219,12 @@ #define UCSI_CABLE_PROP_FLAG_VBUS_IN_CABLE BIT(0) #define UCSI_CABLE_PROP_FLAG_ACTIVE_CABLE BIT(1) #define UCSI_CABLE_PROP_FLAG_DIRECTIONALITY BIT(2) -#define UCSI_CABLE_PROP_FLAG_PLUG_TYPE(_f_) ((_f_) & GENMASK(3, 0)) +#define UCSI_CABLE_PROP_FLAG_PLUG_TYPE(_f_) (((_f_) & GENMASK(4, 3)) >> 3) #define UCSI_CABLE_PROPERTY_PLUG_TYPE_A 0 #define UCSI_CABLE_PROPERTY_PLUG_TYPE_B 1 #define UCSI_CABLE_PROPERTY_PLUG_TYPE_C 2 #define UCSI_CABLE_PROPERTY_PLUG_OTHER 3 -#define UCSI_CABLE_PROP_MODE_SUPPORT BIT(5) +#define UCSI_CABLE_PROP_FLAG_MODE_SUPPORT BIT(5) u8 latency; } __packed; diff -Nru linux-5.10.209/drivers/usb/typec/ucsi/ucsi_acpi.c linux-5.10.216/drivers/usb/typec/ucsi/ucsi_acpi.c --- linux-5.10.209/drivers/usb/typec/ucsi/ucsi_acpi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/usb/typec/ucsi/ucsi_acpi.c 2024-05-02 14:23:46.000000000 +0000 @@ -70,9 +70,13 @@ const void *val, size_t val_len) { struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); + bool ack = UCSI_COMMAND(*(u64 *)val) == UCSI_ACK_CC_CI; int ret; - set_bit(COMMAND_PENDING, &ua->flags); + if (ack) + set_bit(ACK_PENDING, &ua->flags); + else + set_bit(COMMAND_PENDING, &ua->flags); ret = ucsi_acpi_async_write(ucsi, offset, val, val_len); if (ret) @@ -82,7 +86,10 @@ ret = -ETIMEDOUT; out_clear_bit: - clear_bit(COMMAND_PENDING, &ua->flags); + if (ack) + clear_bit(ACK_PENDING, &ua->flags); + else + clear_bit(COMMAND_PENDING, &ua->flags); return ret; } @@ -106,8 +113,10 @@ if (UCSI_CCI_CONNECTOR(cci)) ucsi_connector_change(ua->ucsi, UCSI_CCI_CONNECTOR(cci)); - if (test_bit(COMMAND_PENDING, &ua->flags) && - cci & (UCSI_CCI_ACK_COMPLETE | UCSI_CCI_COMMAND_COMPLETE)) + if (cci & UCSI_CCI_ACK_COMPLETE && test_bit(ACK_PENDING, &ua->flags)) + complete(&ua->complete); + if (cci & UCSI_CCI_COMMAND_COMPLETE && + test_bit(COMMAND_PENDING, &ua->flags)) complete(&ua->complete); } diff -Nru linux-5.10.209/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c linux-5.10.216/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c --- linux-5.10.209/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c 2024-05-02 14:23:46.000000000 +0000 @@ -142,13 +142,14 @@ irq = &vdev->mc_irqs[index]; if (flags & VFIO_IRQ_SET_DATA_NONE) { - vfio_fsl_mc_irq_handler(hwirq, irq); + if (irq->trigger) + eventfd_signal(irq->trigger, 1); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { u8 trigger = *(u8 *)data; - if (trigger) - vfio_fsl_mc_irq_handler(hwirq, irq); + if (trigger && irq->trigger) + eventfd_signal(irq->trigger, 1); } return 0; diff -Nru linux-5.10.209/drivers/vfio/pci/vfio_pci_intrs.c linux-5.10.216/drivers/vfio/pci/vfio_pci_intrs.c --- linux-5.10.209/drivers/vfio/pci/vfio_pci_intrs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/vfio/pci/vfio_pci_intrs.c 2024-05-02 14:23:46.000000000 +0000 @@ -29,15 +29,22 @@ { struct vfio_pci_device *vdev = opaque; - if (likely(is_intx(vdev) && !vdev->virq_disabled)) - eventfd_signal(vdev->ctx[0].trigger, 1); + if (likely(is_intx(vdev) && !vdev->virq_disabled)) { + struct eventfd_ctx *trigger; + + trigger = READ_ONCE(vdev->ctx[0].trigger); + if (likely(trigger)) + eventfd_signal(trigger, 1); + } } -void vfio_pci_intx_mask(struct vfio_pci_device *vdev) +static void __vfio_pci_intx_mask(struct vfio_pci_device *vdev) { struct pci_dev *pdev = vdev->pdev; unsigned long flags; + lockdep_assert_held(&vdev->igate); + spin_lock_irqsave(&vdev->irqlock, flags); /* @@ -65,6 +72,13 @@ spin_unlock_irqrestore(&vdev->irqlock, flags); } +void vfio_pci_intx_mask(struct vfio_pci_device *vdev) +{ + mutex_lock(&vdev->igate); + __vfio_pci_intx_mask(vdev); + mutex_unlock(&vdev->igate); +} + /* * If this is triggered by an eventfd, we can't call eventfd_signal * or else we'll deadlock on the eventfd wait queue. Return >0 when @@ -107,12 +121,21 @@ return ret; } -void vfio_pci_intx_unmask(struct vfio_pci_device *vdev) +static void __vfio_pci_intx_unmask(struct vfio_pci_device *vdev) { + lockdep_assert_held(&vdev->igate); + if (vfio_pci_intx_unmask_handler(vdev, NULL) > 0) vfio_send_intx_eventfd(vdev, NULL); } +void vfio_pci_intx_unmask(struct vfio_pci_device *vdev) +{ + mutex_lock(&vdev->igate); + __vfio_pci_intx_unmask(vdev); + mutex_unlock(&vdev->igate); +} + static irqreturn_t vfio_intx_handler(int irq, void *dev_id) { struct vfio_pci_device *vdev = dev_id; @@ -139,95 +162,104 @@ return ret; } -static int vfio_intx_enable(struct vfio_pci_device *vdev) +static int vfio_intx_enable(struct vfio_pci_device *vdev, + struct eventfd_ctx *trigger) { + struct pci_dev *pdev = vdev->pdev; + unsigned long irqflags; + char *name; + int ret; + if (!is_irq_none(vdev)) return -EINVAL; - if (!vdev->pdev->irq) + if (!pdev->irq) return -ENODEV; + name = kasprintf(GFP_KERNEL, "vfio-intx(%s)", pci_name(pdev)); + if (!name) + return -ENOMEM; + vdev->ctx = kzalloc(sizeof(struct vfio_pci_irq_ctx), GFP_KERNEL); if (!vdev->ctx) return -ENOMEM; vdev->num_ctx = 1; + vdev->ctx[0].name = name; + vdev->ctx[0].trigger = trigger; + /* - * If the virtual interrupt is masked, restore it. Devices - * supporting DisINTx can be masked at the hardware level - * here, non-PCI-2.3 devices will have to wait until the - * interrupt is enabled. + * Fill the initial masked state based on virq_disabled. After + * enable, changing the DisINTx bit in vconfig directly changes INTx + * masking. igate prevents races during setup, once running masked + * is protected via irqlock. + * + * Devices supporting DisINTx also reflect the current mask state in + * the physical DisINTx bit, which is not affected during IRQ setup. + * + * Devices without DisINTx support require an exclusive interrupt. + * IRQ masking is performed at the IRQ chip. Again, igate protects + * against races during setup and IRQ handlers and irqfds are not + * yet active, therefore masked is stable and can be used to + * conditionally auto-enable the IRQ. + * + * irq_type must be stable while the IRQ handler is registered, + * therefore it must be set before request_irq(). */ vdev->ctx[0].masked = vdev->virq_disabled; - if (vdev->pci_2_3) - pci_intx(vdev->pdev, !vdev->ctx[0].masked); + if (vdev->pci_2_3) { + pci_intx(pdev, !vdev->ctx[0].masked); + irqflags = IRQF_SHARED; + } else { + irqflags = vdev->ctx[0].masked ? IRQF_NO_AUTOEN : 0; + } vdev->irq_type = VFIO_PCI_INTX_IRQ_INDEX; + ret = request_irq(pdev->irq, vfio_intx_handler, + irqflags, vdev->ctx[0].name, vdev); + if (ret) { + vdev->irq_type = VFIO_PCI_NUM_IRQS; + kfree(name); + vdev->num_ctx = 0; + kfree(vdev->ctx); + return ret; + } + return 0; } -static int vfio_intx_set_signal(struct vfio_pci_device *vdev, int fd) +static int vfio_intx_set_signal(struct vfio_pci_device *vdev, + struct eventfd_ctx *trigger) { struct pci_dev *pdev = vdev->pdev; - unsigned long irqflags = IRQF_SHARED; - struct eventfd_ctx *trigger; - unsigned long flags; - int ret; - - if (vdev->ctx[0].trigger) { - free_irq(pdev->irq, vdev); - kfree(vdev->ctx[0].name); - eventfd_ctx_put(vdev->ctx[0].trigger); - vdev->ctx[0].trigger = NULL; - } - - if (fd < 0) /* Disable only */ - return 0; + struct eventfd_ctx *old; - vdev->ctx[0].name = kasprintf(GFP_KERNEL, "vfio-intx(%s)", - pci_name(pdev)); - if (!vdev->ctx[0].name) - return -ENOMEM; - - trigger = eventfd_ctx_fdget(fd); - if (IS_ERR(trigger)) { - kfree(vdev->ctx[0].name); - return PTR_ERR(trigger); - } - - vdev->ctx[0].trigger = trigger; + old = vdev->ctx[0].trigger; - if (!vdev->pci_2_3) - irqflags = 0; + WRITE_ONCE(vdev->ctx[0].trigger, trigger); - ret = request_irq(pdev->irq, vfio_intx_handler, - irqflags, vdev->ctx[0].name, vdev); - if (ret) { - vdev->ctx[0].trigger = NULL; - kfree(vdev->ctx[0].name); - eventfd_ctx_put(trigger); - return ret; + /* Releasing an old ctx requires synchronizing in-flight users */ + if (old) { + synchronize_irq(pdev->irq); + vfio_virqfd_flush_thread(&vdev->ctx[0].unmask); + eventfd_ctx_put(old); } - /* - * INTx disable will stick across the new irq setup, - * disable_irq won't. - */ - spin_lock_irqsave(&vdev->irqlock, flags); - if (!vdev->pci_2_3 && vdev->ctx[0].masked) - disable_irq_nosync(pdev->irq); - spin_unlock_irqrestore(&vdev->irqlock, flags); - return 0; } static void vfio_intx_disable(struct vfio_pci_device *vdev) { + struct pci_dev *pdev = vdev->pdev; + vfio_virqfd_disable(&vdev->ctx[0].unmask); vfio_virqfd_disable(&vdev->ctx[0].mask); - vfio_intx_set_signal(vdev, -1); + free_irq(pdev->irq, vdev); + if (vdev->ctx[0].trigger) + eventfd_ctx_put(vdev->ctx[0].trigger); + kfree(vdev->ctx[0].name); vdev->irq_type = VFIO_PCI_NUM_IRQS; vdev->num_ctx = 0; kfree(vdev->ctx); @@ -425,11 +457,11 @@ return -EINVAL; if (flags & VFIO_IRQ_SET_DATA_NONE) { - vfio_pci_intx_unmask(vdev); + __vfio_pci_intx_unmask(vdev); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t unmask = *(uint8_t *)data; if (unmask) - vfio_pci_intx_unmask(vdev); + __vfio_pci_intx_unmask(vdev); } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { int32_t fd = *(int32_t *)data; if (fd >= 0) @@ -452,11 +484,11 @@ return -EINVAL; if (flags & VFIO_IRQ_SET_DATA_NONE) { - vfio_pci_intx_mask(vdev); + __vfio_pci_intx_mask(vdev); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t mask = *(uint8_t *)data; if (mask) - vfio_pci_intx_mask(vdev); + __vfio_pci_intx_mask(vdev); } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { return -ENOTTY; /* XXX implement me */ } @@ -477,19 +509,23 @@ return -EINVAL; if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { + struct eventfd_ctx *trigger = NULL; int32_t fd = *(int32_t *)data; int ret; + if (fd >= 0) { + trigger = eventfd_ctx_fdget(fd); + if (IS_ERR(trigger)) + return PTR_ERR(trigger); + } + if (is_intx(vdev)) - return vfio_intx_set_signal(vdev, fd); + ret = vfio_intx_set_signal(vdev, trigger); + else + ret = vfio_intx_enable(vdev, trigger); - ret = vfio_intx_enable(vdev); - if (ret) - return ret; - - ret = vfio_intx_set_signal(vdev, fd); - if (ret) - vfio_intx_disable(vdev); + if (ret && trigger) + eventfd_ctx_put(trigger); return ret; } diff -Nru linux-5.10.209/drivers/vfio/platform/vfio_platform_irq.c linux-5.10.216/drivers/vfio/platform/vfio_platform_irq.c --- linux-5.10.209/drivers/vfio/platform/vfio_platform_irq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/vfio/platform/vfio_platform_irq.c 2024-05-02 14:23:46.000000000 +0000 @@ -136,6 +136,16 @@ return 0; } +/* + * The trigger eventfd is guaranteed valid in the interrupt path + * and protected by the igate mutex when triggered via ioctl. + */ +static void vfio_send_eventfd(struct vfio_platform_irq *irq_ctx) +{ + if (likely(irq_ctx->trigger)) + eventfd_signal(irq_ctx->trigger, 1); +} + static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; @@ -155,7 +165,7 @@ spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + vfio_send_eventfd(irq_ctx); return ret; } @@ -164,22 +174,19 @@ { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + vfio_send_eventfd(irq_ctx); return IRQ_HANDLED; } static int vfio_set_trigger(struct vfio_platform_device *vdev, int index, - int fd, irq_handler_t handler) + int fd) { struct vfio_platform_irq *irq = &vdev->irqs[index]; struct eventfd_ctx *trigger; - int ret; if (irq->trigger) { - irq_clear_status_flags(irq->hwirq, IRQ_NOAUTOEN); - free_irq(irq->hwirq, irq); - kfree(irq->name); + disable_irq(irq->hwirq); eventfd_ctx_put(irq->trigger); irq->trigger = NULL; } @@ -187,30 +194,20 @@ if (fd < 0) /* Disable only */ return 0; - irq->name = kasprintf(GFP_KERNEL, "vfio-irq[%d](%s)", - irq->hwirq, vdev->name); - if (!irq->name) - return -ENOMEM; - trigger = eventfd_ctx_fdget(fd); - if (IS_ERR(trigger)) { - kfree(irq->name); + if (IS_ERR(trigger)) return PTR_ERR(trigger); - } irq->trigger = trigger; - irq_set_status_flags(irq->hwirq, IRQ_NOAUTOEN); - ret = request_irq(irq->hwirq, handler, 0, irq->name, irq); - if (ret) { - kfree(irq->name); - eventfd_ctx_put(trigger); - irq->trigger = NULL; - return ret; - } - - if (!irq->masked) - enable_irq(irq->hwirq); + /* + * irq->masked effectively provides nested disables within the overall + * enable relative to trigger. Specifically request_irq() is called + * with NO_AUTOEN, therefore the IRQ is initially disabled. The user + * may only further disable the IRQ with a MASK operations because + * irq->masked is initially false. + */ + enable_irq(irq->hwirq); return 0; } @@ -229,7 +226,7 @@ handler = vfio_irq_handler; if (!count && (flags & VFIO_IRQ_SET_DATA_NONE)) - return vfio_set_trigger(vdev, index, -1, handler); + return vfio_set_trigger(vdev, index, -1); if (start != 0 || count != 1) return -EINVAL; @@ -237,7 +234,7 @@ if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { int32_t fd = *(int32_t *)data; - return vfio_set_trigger(vdev, index, fd, handler); + return vfio_set_trigger(vdev, index, fd); } if (flags & VFIO_IRQ_SET_DATA_NONE) { @@ -261,6 +258,14 @@ unsigned start, unsigned count, uint32_t flags, void *data) = NULL; + /* + * For compatibility, errors from request_irq() are local to the + * SET_IRQS path and reflected in the name pointer. This allows, + * for example, polling mode fallback for an exclusive IRQ failure. + */ + if (IS_ERR(vdev->irqs[index].name)) + return PTR_ERR(vdev->irqs[index].name); + switch (flags & VFIO_IRQ_SET_ACTION_TYPE_MASK) { case VFIO_IRQ_SET_ACTION_MASK: func = vfio_platform_set_irq_mask; @@ -281,7 +286,7 @@ int vfio_platform_irq_init(struct vfio_platform_device *vdev) { - int cnt = 0, i; + int cnt = 0, i, ret = 0; while (vdev->get_irq(vdev, cnt) >= 0) cnt++; @@ -292,37 +297,70 @@ for (i = 0; i < cnt; i++) { int hwirq = vdev->get_irq(vdev, i); + irq_handler_t handler = vfio_irq_handler; - if (hwirq < 0) + if (hwirq < 0) { + ret = -EINVAL; goto err; + } spin_lock_init(&vdev->irqs[i].lock); vdev->irqs[i].flags = VFIO_IRQ_INFO_EVENTFD; - if (irq_get_trigger_type(hwirq) & IRQ_TYPE_LEVEL_MASK) + if (irq_get_trigger_type(hwirq) & IRQ_TYPE_LEVEL_MASK) { vdev->irqs[i].flags |= VFIO_IRQ_INFO_MASKABLE | VFIO_IRQ_INFO_AUTOMASKED; + handler = vfio_automasked_irq_handler; + } vdev->irqs[i].count = 1; vdev->irqs[i].hwirq = hwirq; vdev->irqs[i].masked = false; + vdev->irqs[i].name = kasprintf(GFP_KERNEL, + "vfio-irq[%d](%s)", hwirq, + vdev->name); + if (!vdev->irqs[i].name) { + ret = -ENOMEM; + goto err; + } + + ret = request_irq(hwirq, handler, IRQF_NO_AUTOEN, + vdev->irqs[i].name, &vdev->irqs[i]); + if (ret) { + kfree(vdev->irqs[i].name); + vdev->irqs[i].name = ERR_PTR(ret); + } } vdev->num_irqs = cnt; return 0; err: + for (--i; i >= 0; i--) { + if (!IS_ERR(vdev->irqs[i].name)) { + free_irq(vdev->irqs[i].hwirq, &vdev->irqs[i]); + kfree(vdev->irqs[i].name); + } + } kfree(vdev->irqs); - return -EINVAL; + return ret; } void vfio_platform_irq_cleanup(struct vfio_platform_device *vdev) { int i; - for (i = 0; i < vdev->num_irqs; i++) - vfio_set_trigger(vdev, i, -1, NULL); + for (i = 0; i < vdev->num_irqs; i++) { + vfio_virqfd_disable(&vdev->irqs[i].mask); + vfio_virqfd_disable(&vdev->irqs[i].unmask); + if (!IS_ERR(vdev->irqs[i].name)) { + free_irq(vdev->irqs[i].hwirq, &vdev->irqs[i]); + if (vdev->irqs[i].trigger) + eventfd_ctx_put(vdev->irqs[i].trigger); + kfree(vdev->irqs[i].name); + } + } vdev->num_irqs = 0; kfree(vdev->irqs); diff -Nru linux-5.10.209/drivers/vfio/virqfd.c linux-5.10.216/drivers/vfio/virqfd.c --- linux-5.10.209/drivers/vfio/virqfd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/vfio/virqfd.c 2024-05-02 14:23:46.000000000 +0000 @@ -101,6 +101,13 @@ virqfd->thread(virqfd->opaque, virqfd->data); } +static void virqfd_flush_inject(struct work_struct *work) +{ + struct virqfd *virqfd = container_of(work, struct virqfd, flush_inject); + + flush_work(&virqfd->inject); +} + int vfio_virqfd_enable(void *opaque, int (*handler)(void *, void *), void (*thread)(void *, void *), @@ -124,6 +131,7 @@ INIT_WORK(&virqfd->shutdown, virqfd_shutdown); INIT_WORK(&virqfd->inject, virqfd_inject); + INIT_WORK(&virqfd->flush_inject, virqfd_flush_inject); irqfd = fdget(fd); if (!irqfd.file) { @@ -214,6 +222,19 @@ } EXPORT_SYMBOL_GPL(vfio_virqfd_disable); +void vfio_virqfd_flush_thread(struct virqfd **pvirqfd) +{ + unsigned long flags; + + spin_lock_irqsave(&virqfd_lock, flags); + if (*pvirqfd && (*pvirqfd)->thread) + queue_work(vfio_irqfd_cleanup_wq, &(*pvirqfd)->flush_inject); + spin_unlock_irqrestore(&virqfd_lock, flags); + + flush_workqueue(vfio_irqfd_cleanup_wq); +} +EXPORT_SYMBOL_GPL(vfio_virqfd_flush_thread); + module_init(vfio_virqfd_init); module_exit(vfio_virqfd_exit); diff -Nru linux-5.10.209/drivers/vhost/vhost.c linux-5.10.216/drivers/vhost/vhost.c --- linux-5.10.209/drivers/vhost/vhost.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/vhost/vhost.c 2024-05-02 14:23:46.000000000 +0000 @@ -2513,9 +2513,19 @@ r = vhost_get_avail_idx(vq, &avail_idx); if (unlikely(r)) return false; + vq->avail_idx = vhost16_to_cpu(vq, avail_idx); + if (vq->avail_idx != vq->last_avail_idx) { + /* Since we have updated avail_idx, the following + * call to vhost_get_vq_desc() will read available + * ring entries. Make sure that read happens after + * the avail_idx read. + */ + smp_rmb(); + return false; + } - return vq->avail_idx == vq->last_avail_idx; + return true; } EXPORT_SYMBOL_GPL(vhost_vq_avail_empty); @@ -2577,12 +2587,11 @@ /* Create a new message. */ struct vhost_msg_node *vhost_new_msg(struct vhost_virtqueue *vq, int type) { - struct vhost_msg_node *node = kmalloc(sizeof *node, GFP_KERNEL); + /* Make sure all padding within the structure is initialized. */ + struct vhost_msg_node *node = kzalloc(sizeof(*node), GFP_KERNEL); if (!node) return NULL; - /* Make sure all padding within the structure is initialized. */ - memset(&node->msg, 0, sizeof node->msg); node->vq = vq; node->msg.type = type; return node; diff -Nru linux-5.10.209/drivers/video/backlight/da9052_bl.c linux-5.10.216/drivers/video/backlight/da9052_bl.c --- linux-5.10.209/drivers/video/backlight/da9052_bl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/backlight/da9052_bl.c 2024-05-02 14:23:46.000000000 +0000 @@ -117,6 +117,7 @@ wleds->led_reg = platform_get_device_id(pdev)->driver_data; wleds->state = DA9052_WLEDS_OFF; + memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_RAW; props.max_brightness = DA9052_MAX_BRIGHTNESS; diff -Nru linux-5.10.209/drivers/video/backlight/lm3630a_bl.c linux-5.10.216/drivers/video/backlight/lm3630a_bl.c --- linux-5.10.209/drivers/video/backlight/lm3630a_bl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/backlight/lm3630a_bl.c 2024-05-02 14:23:46.000000000 +0000 @@ -229,7 +229,7 @@ if (rval < 0) goto out_i2c_err; brightness |= rval; - goto out; + return brightness; } /* disable sleep */ @@ -240,11 +240,8 @@ rval = lm3630a_read(pchip, REG_BRT_A); if (rval < 0) goto out_i2c_err; - brightness = rval; + return rval; -out: - bl->props.brightness = brightness; - return bl->props.brightness; out_i2c_err: dev_err(pchip->dev, "i2c failed to access register\n"); return 0; @@ -306,7 +303,7 @@ if (rval < 0) goto out_i2c_err; brightness |= rval; - goto out; + return brightness; } /* disable sleep */ @@ -317,11 +314,8 @@ rval = lm3630a_read(pchip, REG_BRT_B); if (rval < 0) goto out_i2c_err; - brightness = rval; + return rval; -out: - bl->props.brightness = brightness; - return bl->props.brightness; out_i2c_err: dev_err(pchip->dev, "i2c failed to access register\n"); return 0; @@ -339,6 +333,7 @@ struct backlight_properties props; const char *label; + memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_RAW; if (pdata->leda_ctrl != LM3630A_LEDA_DISABLE) { props.brightness = pdata->leda_init_brt; diff -Nru linux-5.10.209/drivers/video/backlight/lm3639_bl.c linux-5.10.216/drivers/video/backlight/lm3639_bl.c --- linux-5.10.209/drivers/video/backlight/lm3639_bl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/backlight/lm3639_bl.c 2024-05-02 14:23:46.000000000 +0000 @@ -339,6 +339,7 @@ } /* backlight */ + memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_RAW; props.brightness = pdata->init_brt_led; props.max_brightness = pdata->max_brt_led; diff -Nru linux-5.10.209/drivers/video/backlight/lp8788_bl.c linux-5.10.216/drivers/video/backlight/lp8788_bl.c --- linux-5.10.209/drivers/video/backlight/lp8788_bl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/backlight/lp8788_bl.c 2024-05-02 14:23:46.000000000 +0000 @@ -191,6 +191,7 @@ int init_brt; char *name; + memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_PLATFORM; props.max_brightness = MAX_BRIGHTNESS; diff -Nru linux-5.10.209/drivers/video/fbdev/core/fbmon.c linux-5.10.216/drivers/video/fbdev/core/fbmon.c --- linux-5.10.209/drivers/video/fbdev/core/fbmon.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/fbdev/core/fbmon.c 2024-05-02 14:23:46.000000000 +0000 @@ -1311,7 +1311,7 @@ int fb_videomode_from_videomode(const struct videomode *vm, struct fb_videomode *fbmode) { - unsigned int htotal, vtotal; + unsigned int htotal, vtotal, total; fbmode->xres = vm->hactive; fbmode->left_margin = vm->hback_porch; @@ -1344,8 +1344,9 @@ vtotal = vm->vactive + vm->vfront_porch + vm->vback_porch + vm->vsync_len; /* prevent division by zero */ - if (htotal && vtotal) { - fbmode->refresh = vm->pixelclock / (htotal * vtotal); + total = htotal * vtotal; + if (total) { + fbmode->refresh = vm->pixelclock / total; /* a mode must have htotal and vtotal != 0 or it is invalid */ } else { fbmode->refresh = 0; diff -Nru linux-5.10.209/drivers/video/fbdev/savage/savagefb_driver.c linux-5.10.216/drivers/video/fbdev/savage/savagefb_driver.c --- linux-5.10.209/drivers/video/fbdev/savage/savagefb_driver.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/fbdev/savage/savagefb_driver.c 2024-05-02 14:23:46.000000000 +0000 @@ -868,6 +868,9 @@ DBG("savagefb_check_var"); + if (!var->pixclock) + return -EINVAL; + var->transp.offset = 0; var->transp.length = 0; switch (var->bits_per_pixel) { diff -Nru linux-5.10.209/drivers/video/fbdev/sis/sis_main.c linux-5.10.216/drivers/video/fbdev/sis/sis_main.c --- linux-5.10.209/drivers/video/fbdev/sis/sis_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/fbdev/sis/sis_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1474,6 +1474,8 @@ vtotal = var->upper_margin + var->lower_margin + var->vsync_len; + if (!var->pixclock) + return -EINVAL; pixclock = var->pixclock; if((var->vmode & FB_VMODE_MASK) == FB_VMODE_NONINTERLACED) { diff -Nru linux-5.10.209/drivers/video/fbdev/via/accel.c linux-5.10.216/drivers/video/fbdev/via/accel.c --- linux-5.10.209/drivers/video/fbdev/via/accel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/video/fbdev/via/accel.c 2024-05-02 14:23:46.000000000 +0000 @@ -115,7 +115,7 @@ if (op != VIA_BITBLT_FILL) { tmp = src_mem ? 0 : src_addr; - if (dst_addr & 0xE0000007) { + if (tmp & 0xE0000007) { printk(KERN_WARNING "hw_bitblt_1: Unsupported source " "address %X\n", tmp); return -EINVAL; @@ -260,7 +260,7 @@ writel(tmp, engine + 0x18); tmp = src_mem ? 0 : src_addr; - if (dst_addr & 0xE0000007) { + if (tmp & 0xE0000007) { printk(KERN_WARNING "hw_bitblt_2: Unsupported source " "address %X\n", tmp); return -EINVAL; diff -Nru linux-5.10.209/drivers/virtio/virtio.c linux-5.10.216/drivers/virtio/virtio.c --- linux-5.10.209/drivers/virtio/virtio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/virtio/virtio.c 2024-05-02 14:23:46.000000000 +0000 @@ -403,13 +403,19 @@ int virtio_device_freeze(struct virtio_device *dev) { struct virtio_driver *drv = drv_to_virtio(dev->dev.driver); + int ret; virtio_config_disable(dev); dev->failed = dev->config->get_status(dev) & VIRTIO_CONFIG_S_FAILED; - if (drv && drv->freeze) - return drv->freeze(dev); + if (drv && drv->freeze) { + ret = drv->freeze(dev); + if (ret) { + virtio_config_enable(dev); + return ret; + } + } return 0; } diff -Nru linux-5.10.209/drivers/watchdog/it87_wdt.c linux-5.10.216/drivers/watchdog/it87_wdt.c --- linux-5.10.209/drivers/watchdog/it87_wdt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/watchdog/it87_wdt.c 2024-05-02 14:23:46.000000000 +0000 @@ -263,6 +263,7 @@ static int __init it87_wdt_init(void) { u8 chip_rev; + u8 ctrl; int rc; rc = superio_enter(); @@ -321,7 +322,18 @@ superio_select(GPIO); superio_outb(WDT_TOV1, WDTCFG); - superio_outb(0x00, WDTCTRL); + + switch (chip_type) { + case IT8784_ID: + case IT8786_ID: + ctrl = superio_inb(WDTCTRL); + ctrl &= 0x08; + superio_outb(ctrl, WDTCTRL); + break; + default: + superio_outb(0x00, WDTCTRL); + } + superio_exit(); if (timeout < 1 || timeout > max_units * 60) { diff -Nru linux-5.10.209/drivers/watchdog/stm32_iwdg.c linux-5.10.216/drivers/watchdog/stm32_iwdg.c --- linux-5.10.209/drivers/watchdog/stm32_iwdg.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/watchdog/stm32_iwdg.c 2024-05-02 14:23:46.000000000 +0000 @@ -21,6 +21,8 @@ #include #include +#define DEFAULT_TIMEOUT 10 + /* IWDG registers */ #define IWDG_KR 0x00 /* Key register */ #define IWDG_PR 0x04 /* Prescaler Register */ @@ -254,6 +256,7 @@ wdd->parent = dev; wdd->info = &stm32_iwdg_info; wdd->ops = &stm32_iwdg_ops; + wdd->timeout = DEFAULT_TIMEOUT; wdd->min_timeout = DIV_ROUND_UP((RLR_MIN + 1) * PR_MIN, wdt->rate); wdd->max_hw_heartbeat_ms = ((RLR_MAX + 1) * wdt->data->max_prescaler * 1000) / wdt->rate; diff -Nru linux-5.10.209/drivers/xen/events/events_base.c linux-5.10.216/drivers/xen/events/events_base.c --- linux-5.10.209/drivers/xen/events/events_base.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/xen/events/events_base.c 2024-05-02 14:23:46.000000000 +0000 @@ -885,8 +885,8 @@ return; do_mask(info, EVT_MASK_REASON_EXPLICIT); - xen_evtchn_close(evtchn); xen_irq_info_cleanup(info); + xen_evtchn_close(evtchn); } static void enable_pirq(struct irq_data *data) @@ -929,8 +929,6 @@ if (VALID_EVTCHN(evtchn)) { unsigned int cpu = cpu_from_irq(irq); - xen_evtchn_close(evtchn); - switch (type_from_irq(irq)) { case IRQT_VIRQ: per_cpu(virq_to_irq, cpu)[virq_from_irq(irq)] = -1; @@ -943,6 +941,7 @@ } xen_irq_info_cleanup(info); + xen_evtchn_close(evtchn); } xen_free_irq(irq); diff -Nru linux-5.10.209/drivers/xen/gntdev-dmabuf.c linux-5.10.216/drivers/xen/gntdev-dmabuf.c --- linux-5.10.209/drivers/xen/gntdev-dmabuf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/drivers/xen/gntdev-dmabuf.c 2024-05-02 14:23:46.000000000 +0000 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -56,7 +57,7 @@ /* Number of pages this buffer has. */ int nr_pages; - /* Pages of this buffer. */ + /* Pages of this buffer (only for dma-buf export). */ struct page **pages; }; @@ -490,7 +491,7 @@ /* DMA buffer import support. */ static int -dmabuf_imp_grant_foreign_access(struct page **pages, u32 *refs, +dmabuf_imp_grant_foreign_access(unsigned long *gfns, u32 *refs, int count, int domid) { grant_ref_t priv_gref_head; @@ -513,7 +514,7 @@ } gnttab_grant_foreign_access_ref(cur_ref, domid, - xen_page_to_gfn(pages[i]), 0); + gfns[i], 0); refs[i] = cur_ref; } @@ -535,7 +536,6 @@ static void dmabuf_imp_free_storage(struct gntdev_dmabuf *gntdev_dmabuf) { - kfree(gntdev_dmabuf->pages); kfree(gntdev_dmabuf->u.imp.refs); kfree(gntdev_dmabuf); } @@ -555,12 +555,6 @@ if (!gntdev_dmabuf->u.imp.refs) goto fail; - gntdev_dmabuf->pages = kcalloc(count, - sizeof(gntdev_dmabuf->pages[0]), - GFP_KERNEL); - if (!gntdev_dmabuf->pages) - goto fail; - gntdev_dmabuf->nr_pages = count; for (i = 0; i < count; i++) @@ -582,7 +576,8 @@ struct dma_buf *dma_buf; struct dma_buf_attachment *attach; struct sg_table *sgt; - struct sg_page_iter sg_iter; + struct sg_dma_page_iter sg_iter; + unsigned long *gfns; int i; dma_buf = dma_buf_get(fd); @@ -630,26 +625,31 @@ gntdev_dmabuf->u.imp.sgt = sgt; - /* Now convert sgt to array of pages and check for page validity. */ + gfns = kcalloc(count, sizeof(*gfns), GFP_KERNEL); + if (!gfns) { + ret = ERR_PTR(-ENOMEM); + goto fail_unmap; + } + + /* + * Now convert sgt to array of gfns without accessing underlying pages. + * It is not allowed to access the underlying struct page of an sg table + * exported by DMA-buf, but since we deal with special Xen dma device here + * (not a normal physical one) look at the dma addresses in the sg table + * and then calculate gfns directly from them. + */ i = 0; - for_each_sgtable_page(sgt, &sg_iter, 0) { - struct page *page = sg_page_iter_page(&sg_iter); - /* - * Check if page is valid: this can happen if we are given - * a page from VRAM or other resources which are not backed - * by a struct page. - */ - if (!pfn_valid(page_to_pfn(page))) { - ret = ERR_PTR(-EINVAL); - goto fail_unmap; - } + for_each_sgtable_dma_page(sgt, &sg_iter, 0) { + dma_addr_t addr = sg_page_iter_dma_address(&sg_iter); + unsigned long pfn = bfn_to_pfn(XEN_PFN_DOWN(dma_to_phys(dev, addr))); - gntdev_dmabuf->pages[i++] = page; + gfns[i++] = pfn_to_gfn(pfn); } - ret = ERR_PTR(dmabuf_imp_grant_foreign_access(gntdev_dmabuf->pages, + ret = ERR_PTR(dmabuf_imp_grant_foreign_access(gfns, gntdev_dmabuf->u.imp.refs, count, domid)); + kfree(gfns); if (IS_ERR(ret)) goto fail_end_access; diff -Nru linux-5.10.209/fs/afs/callback.c linux-5.10.216/fs/afs/callback.c --- linux-5.10.209/fs/afs/callback.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/afs/callback.c 2024-05-02 14:23:46.000000000 +0000 @@ -70,13 +70,14 @@ { struct afs_volume *volume = NULL; struct rb_node *p; - int seq = 0; + int seq = 1; do { /* Unfortunately, rbtree walking doesn't give reliable results * under just the RCU read lock, so we have to check for * changes. */ + seq++; /* 2 on the 1st/lockless path, otherwise odd */ read_seqbegin_or_lock(&cell->volume_lock, &seq); p = rcu_dereference_raw(cell->volumes.rb_node); diff -Nru linux-5.10.209/fs/afs/server.c linux-5.10.216/fs/afs/server.c --- linux-5.10.209/fs/afs/server.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/afs/server.c 2024-05-02 14:23:46.000000000 +0000 @@ -27,7 +27,7 @@ const struct afs_addr_list *alist; struct afs_server *server = NULL; unsigned int i; - int seq = 0, diff; + int seq = 1, diff; rcu_read_lock(); @@ -35,6 +35,7 @@ if (server) afs_unuse_server_notime(net, server, afs_server_trace_put_find_rsq); server = NULL; + seq++; /* 2 on the 1st/lockless path, otherwise odd */ read_seqbegin_or_lock(&net->fs_addr_lock, &seq); if (srx->transport.family == AF_INET6) { @@ -90,7 +91,7 @@ { struct afs_server *server = NULL; struct rb_node *p; - int diff, seq = 0; + int diff, seq = 1; _enter("%pU", uuid); @@ -102,7 +103,7 @@ if (server) afs_unuse_server(net, server, afs_server_trace_put_uuid_rsq); server = NULL; - + seq++; /* 2 on the 1st/lockless path, otherwise odd */ read_seqbegin_or_lock(&net->fs_lock, &seq); p = net->fs_servers.rb_node; diff -Nru linux-5.10.209/fs/afs/volume.c linux-5.10.216/fs/afs/volume.c --- linux-5.10.209/fs/afs/volume.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/afs/volume.c 2024-05-02 14:23:46.000000000 +0000 @@ -302,7 +302,7 @@ { struct afs_server_list *new, *old, *discard; struct afs_vldb_entry *vldb; - char idbuf[16]; + char idbuf[24]; int ret, idsz; _enter(""); @@ -310,7 +310,7 @@ /* We look up an ID by passing it as a decimal string in the * operation's name parameter. */ - idsz = sprintf(idbuf, "%llu", volume->vid); + idsz = snprintf(idbuf, sizeof(idbuf), "%llu", volume->vid); vldb = afs_vl_lookup_vldb(volume->cell, key, idbuf, idsz); if (IS_ERR(vldb)) { diff -Nru linux-5.10.209/fs/aio.c linux-5.10.216/fs/aio.c --- linux-5.10.209/fs/aio.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/aio.c 2024-05-02 14:23:46.000000000 +0000 @@ -565,13 +565,24 @@ void kiocb_set_cancel_fn(struct kiocb *iocb, kiocb_cancel_fn *cancel) { - struct aio_kiocb *req = container_of(iocb, struct aio_kiocb, rw); - struct kioctx *ctx = req->ki_ctx; + struct aio_kiocb *req; + struct kioctx *ctx; unsigned long flags; + /* + * kiocb didn't come from aio or is neither a read nor a write, hence + * ignore it. + */ + if (!(iocb->ki_flags & IOCB_AIO_RW)) + return; + + req = container_of(iocb, struct aio_kiocb, rw); + if (WARN_ON_ONCE(!list_empty(&req->ki_list))) return; + ctx = req->ki_ctx; + spin_lock_irqsave(&ctx->ctx_lock, flags); list_add_tail(&req->ki_list, &ctx->active_reqs); req->ki_cancel = cancel; @@ -1454,7 +1465,7 @@ req->ki_complete = aio_complete_rw; req->private = NULL; req->ki_pos = iocb->aio_offset; - req->ki_flags = iocb_flags(req->ki_filp); + req->ki_flags = iocb_flags(req->ki_filp) | IOCB_AIO_RW; if (iocb->aio_flags & IOCB_FLAG_RESFD) req->ki_flags |= IOCB_EVENTFD; req->ki_hint = ki_hint_validate(file_write_hint(req->ki_filp)); diff -Nru linux-5.10.209/fs/btrfs/backref.c linux-5.10.216/fs/btrfs/backref.c --- linux-5.10.209/fs/btrfs/backref.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/backref.c 2024-05-02 14:23:46.000000000 +0000 @@ -2315,20 +2315,14 @@ size_t alloc_bytes; alloc_bytes = max_t(size_t, total_bytes, sizeof(*data)); - data = kvmalloc(alloc_bytes, GFP_KERNEL); + data = kvzalloc(alloc_bytes, GFP_KERNEL); if (!data) return ERR_PTR(-ENOMEM); - if (total_bytes >= sizeof(*data)) { + if (total_bytes >= sizeof(*data)) data->bytes_left = total_bytes - sizeof(*data); - data->bytes_missing = 0; - } else { + else data->bytes_missing = sizeof(*data) - total_bytes; - data->bytes_left = 0; - } - - data->elem_cnt = 0; - data->elem_missed = 0; return data; } diff -Nru linux-5.10.209/fs/btrfs/ctree.h linux-5.10.216/fs/btrfs/ctree.h --- linux-5.10.209/fs/btrfs/ctree.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/ctree.h 2024-05-02 14:23:46.000000000 +0000 @@ -2879,7 +2879,7 @@ btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct btrfs_path *path, u64 dir, - u64 objectid, const char *name, int name_len, + u64 index, const char *name, int name_len, int mod); struct btrfs_dir_item * btrfs_search_dir_index_item(struct btrfs_root *root, diff -Nru linux-5.10.209/fs/btrfs/delayed-inode.c linux-5.10.216/fs/btrfs/delayed-inode.c --- linux-5.10.209/fs/btrfs/delayed-inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/delayed-inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -1135,6 +1135,9 @@ if (ret) return ret; + ret = btrfs_record_root_in_trans(trans, node->root); + if (ret) + return ret; ret = btrfs_update_delayed_inode(trans, node->root, path, node); return ret; } diff -Nru linux-5.10.209/fs/btrfs/dev-replace.c linux-5.10.216/fs/btrfs/dev-replace.c --- linux-5.10.209/fs/btrfs/dev-replace.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/dev-replace.c 2024-05-02 14:23:46.000000000 +0000 @@ -566,6 +566,23 @@ return ret; } +static int btrfs_check_replace_dev_names(struct btrfs_ioctl_dev_replace_args *args) +{ + if (args->start.srcdevid == 0) { + if (memchr(args->start.srcdev_name, 0, + sizeof(args->start.srcdev_name)) == NULL) + return -ENAMETOOLONG; + } else { + args->start.srcdev_name[0] = 0; + } + + if (memchr(args->start.tgtdev_name, 0, + sizeof(args->start.tgtdev_name)) == NULL) + return -ENAMETOOLONG; + + return 0; +} + int btrfs_dev_replace_by_ioctl(struct btrfs_fs_info *fs_info, struct btrfs_ioctl_dev_replace_args *args) { @@ -578,10 +595,9 @@ default: return -EINVAL; } - - if ((args->start.srcdevid == 0 && args->start.srcdev_name[0] == '\0') || - args->start.tgtdev_name[0] == '\0') - return -EINVAL; + ret = btrfs_check_replace_dev_names(args); + if (ret < 0) + return ret; ret = btrfs_dev_replace_start(fs_info, args->start.tgtdev_name, args->start.srcdevid, diff -Nru linux-5.10.209/fs/btrfs/dir-item.c linux-5.10.216/fs/btrfs/dir-item.c --- linux-5.10.209/fs/btrfs/dir-item.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/dir-item.c 2024-05-02 14:23:46.000000000 +0000 @@ -171,10 +171,40 @@ return 0; } +static struct btrfs_dir_item *btrfs_lookup_match_dir( + struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct btrfs_path *path, + struct btrfs_key *key, const char *name, + int name_len, int mod) +{ + const int ins_len = (mod < 0 ? -1 : 0); + const int cow = (mod != 0); + int ret; + + ret = btrfs_search_slot(trans, root, key, path, ins_len, cow); + if (ret < 0) + return ERR_PTR(ret); + if (ret > 0) + return ERR_PTR(-ENOENT); + + return btrfs_match_dir_item_name(root->fs_info, path, name, name_len); +} + /* - * lookup a directory item based on name. 'dir' is the objectid - * we're searching in, and 'mod' tells us if you plan on deleting the - * item (use mod < 0) or changing the options (use mod > 0) + * Lookup for a directory item by name. + * + * @trans: The transaction handle to use. Can be NULL if @mod is 0. + * @root: The root of the target tree. + * @path: Path to use for the search. + * @dir: The inode number (objectid) of the directory. + * @name: The name associated to the directory entry we are looking for. + * @name_len: The length of the name. + * @mod: Used to indicate if the tree search is meant for a read only + * lookup, for a modification lookup or for a deletion lookup, so + * its value should be 0, 1 or -1, respectively. + * + * Returns: NULL if the dir item does not exists, an error pointer if an error + * happened, or a pointer to a dir item if a dir item exists for the given name. */ struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root *root, @@ -182,23 +212,18 @@ const char *name, int name_len, int mod) { - int ret; struct btrfs_key key; - int ins_len = mod < 0 ? -1 : 0; - int cow = mod != 0; + struct btrfs_dir_item *di; key.objectid = dir; key.type = BTRFS_DIR_ITEM_KEY; - key.offset = btrfs_name_hash(name, name_len); - ret = btrfs_search_slot(trans, root, &key, path, ins_len, cow); - if (ret < 0) - return ERR_PTR(ret); - if (ret > 0) + di = btrfs_lookup_match_dir(trans, root, path, &key, name, name_len, mod); + if (IS_ERR(di) && PTR_ERR(di) == -ENOENT) return NULL; - return btrfs_match_dir_item_name(root->fs_info, path, name, name_len); + return di; } int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir, @@ -212,7 +237,6 @@ int slot; struct btrfs_path *path; - path = btrfs_alloc_path(); if (!path) return -ENOMEM; @@ -221,20 +245,20 @@ key.type = BTRFS_DIR_ITEM_KEY; key.offset = btrfs_name_hash(name, name_len); - ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); - - /* return back any errors */ - if (ret < 0) - goto out; + di = btrfs_lookup_match_dir(NULL, root, path, &key, name, name_len, 0); + if (IS_ERR(di)) { + ret = PTR_ERR(di); + /* Nothing found, we're safe */ + if (ret == -ENOENT) { + ret = 0; + goto out; + } - /* nothing found, we're safe */ - if (ret > 0) { - ret = 0; - goto out; + if (ret < 0) + goto out; } /* we found an item, look for our name in the item */ - di = btrfs_match_dir_item_name(root->fs_info, path, name, name_len); if (di) { /* our exact name was found */ ret = -EEXIST; @@ -261,35 +285,42 @@ } /* - * lookup a directory item based on index. 'dir' is the objectid - * we're searching in, and 'mod' tells us if you plan on deleting the - * item (use mod < 0) or changing the options (use mod > 0) + * Lookup for a directory index item by name and index number. + * + * @trans: The transaction handle to use. Can be NULL if @mod is 0. + * @root: The root of the target tree. + * @path: Path to use for the search. + * @dir: The inode number (objectid) of the directory. + * @index: The index number. + * @name: The name associated to the directory entry we are looking for. + * @name_len: The length of the name. + * @mod: Used to indicate if the tree search is meant for a read only + * lookup, for a modification lookup or for a deletion lookup, so + * its value should be 0, 1 or -1, respectively. * - * The name is used to make sure the index really points to the name you were - * looking for. + * Returns: NULL if the dir index item does not exists, an error pointer if an + * error happened, or a pointer to a dir item if the dir index item exists and + * matches the criteria (name and index number). */ struct btrfs_dir_item * btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct btrfs_path *path, u64 dir, - u64 objectid, const char *name, int name_len, + u64 index, const char *name, int name_len, int mod) { - int ret; + struct btrfs_dir_item *di; struct btrfs_key key; - int ins_len = mod < 0 ? -1 : 0; - int cow = mod != 0; key.objectid = dir; key.type = BTRFS_DIR_INDEX_KEY; - key.offset = objectid; + key.offset = index; - ret = btrfs_search_slot(trans, root, &key, path, ins_len, cow); - if (ret < 0) - return ERR_PTR(ret); - if (ret > 0) - return ERR_PTR(-ENOENT); - return btrfs_match_dir_item_name(root->fs_info, path, name, name_len); + di = btrfs_lookup_match_dir(trans, root, path, &key, name, name_len, mod); + if (di == ERR_PTR(-ENOENT)) + return NULL; + + return di; } struct btrfs_dir_item * @@ -346,21 +377,18 @@ const char *name, u16 name_len, int mod) { - int ret; struct btrfs_key key; - int ins_len = mod < 0 ? -1 : 0; - int cow = mod != 0; + struct btrfs_dir_item *di; key.objectid = dir; key.type = BTRFS_XATTR_ITEM_KEY; key.offset = btrfs_name_hash(name, name_len); - ret = btrfs_search_slot(trans, root, &key, path, ins_len, cow); - if (ret < 0) - return ERR_PTR(ret); - if (ret > 0) + + di = btrfs_lookup_match_dir(trans, root, path, &key, name, name_len, mod); + if (IS_ERR(di) && PTR_ERR(di) == -ENOENT) return NULL; - return btrfs_match_dir_item_name(root->fs_info, path, name, name_len); + return di; } /* diff -Nru linux-5.10.209/fs/btrfs/disk-io.c linux-5.10.216/fs/btrfs/disk-io.c --- linux-5.10.209/fs/btrfs/disk-io.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/disk-io.c 2024-05-02 14:23:46.000000000 +0000 @@ -1553,8 +1553,17 @@ again: root = btrfs_lookup_fs_root(fs_info, objectid); if (root) { - /* Shouldn't get preallocated anon_dev for cached roots */ - ASSERT(!anon_dev); + /* + * Some other caller may have read out the newly inserted + * subvolume already (for things like backref walk etc). Not + * that common but still possible. In that case, we just need + * to free the anon_dev. + */ + if (unlikely(anon_dev)) { + free_anon_bdev(anon_dev); + anon_dev = 0; + } + if (check_ref && btrfs_root_refs(&root->root_item) == 0) { btrfs_put_root(root); return ERR_PTR(-ENOENT); diff -Nru linux-5.10.209/fs/btrfs/export.c linux-5.10.216/fs/btrfs/export.c --- linux-5.10.209/fs/btrfs/export.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/export.c 2024-05-02 14:23:46.000000000 +0000 @@ -161,8 +161,15 @@ ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); if (ret < 0) goto fail; + if (ret == 0) { + /* + * Key with offset of -1 found, there would have to exist an + * inode with such number or a root with such id. + */ + ret = -EUCLEAN; + goto fail; + } - BUG_ON(ret == 0); /* Key with offset of -1 found */ if (path->slots[0] == 0) { ret = -ENOENT; goto fail; diff -Nru linux-5.10.209/fs/btrfs/extent-tree.c linux-5.10.216/fs/btrfs/extent-tree.c --- linux-5.10.209/fs/btrfs/extent-tree.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/extent-tree.c 2024-05-02 14:23:46.000000000 +0000 @@ -1202,7 +1202,8 @@ u64 bytes_left, end; u64 aligned_start = ALIGN(start, 1 << 9); - if (WARN_ON(start != aligned_start)) { + /* Adjust the range to be aligned to 512B sectors if necessary. */ + if (start != aligned_start) { len -= aligned_start - start; len = round_down(len, 1 << 9); start = aligned_start; diff -Nru linux-5.10.209/fs/btrfs/inode.c linux-5.10.216/fs/btrfs/inode.c --- linux-5.10.209/fs/btrfs/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -4007,7 +4007,8 @@ struct btrfs_block_rsv block_rsv; u64 root_flags; int ret; - int err; + + down_write(&fs_info->subvol_sem); /* * Don't allow to delete a subvolume with send in progress. This is @@ -4020,25 +4021,25 @@ btrfs_warn(fs_info, "attempt to delete subvolume %llu during send", dest->root_key.objectid); - return -EPERM; + ret = -EPERM; + goto out_up_write; } if (atomic_read(&dest->nr_swapfiles)) { spin_unlock(&dest->root_item_lock); btrfs_warn(fs_info, "attempt to delete subvolume %llu with active swapfile", root->root_key.objectid); - return -EPERM; + ret = -EPERM; + goto out_up_write; } root_flags = btrfs_root_flags(&dest->root_item); btrfs_set_root_flags(&dest->root_item, root_flags | BTRFS_ROOT_SUBVOL_DEAD); spin_unlock(&dest->root_item_lock); - down_write(&fs_info->subvol_sem); - - err = may_destroy_subvol(dest); - if (err) - goto out_up_write; + ret = may_destroy_subvol(dest); + if (ret) + goto out_undead; btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); /* @@ -4046,13 +4047,13 @@ * two for dir entries, * two for root ref/backref. */ - err = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true); - if (err) - goto out_up_write; + ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true); + if (ret) + goto out_undead; trans = btrfs_start_transaction(root, 0); if (IS_ERR(trans)) { - err = PTR_ERR(trans); + ret = PTR_ERR(trans); goto out_release; } trans->block_rsv = &block_rsv; @@ -4062,7 +4063,6 @@ ret = btrfs_unlink_subvol(trans, dir, dentry); if (ret) { - err = ret; btrfs_abort_transaction(trans, ret); goto out_end_trans; } @@ -4080,7 +4080,6 @@ dest->root_key.objectid); if (ret) { btrfs_abort_transaction(trans, ret); - err = ret; goto out_end_trans; } } @@ -4090,7 +4089,6 @@ dest->root_key.objectid); if (ret && ret != -ENOENT) { btrfs_abort_transaction(trans, ret); - err = ret; goto out_end_trans; } if (!btrfs_is_empty_uuid(dest->root_item.received_uuid)) { @@ -4100,7 +4098,6 @@ dest->root_key.objectid); if (ret && ret != -ENOENT) { btrfs_abort_transaction(trans, ret); - err = ret; goto out_end_trans; } } @@ -4111,20 +4108,20 @@ trans->block_rsv = NULL; trans->bytes_reserved = 0; ret = btrfs_end_transaction(trans); - if (ret && !err) - err = ret; inode->i_flags |= S_DEAD; out_release: btrfs_subvolume_release_metadata(root, &block_rsv); -out_up_write: - up_write(&fs_info->subvol_sem); - if (err) { +out_undead: + if (ret) { spin_lock(&dest->root_item_lock); root_flags = btrfs_root_flags(&dest->root_item); btrfs_set_root_flags(&dest->root_item, root_flags & ~BTRFS_ROOT_SUBVOL_DEAD); spin_unlock(&dest->root_item_lock); - } else { + } +out_up_write: + up_write(&fs_info->subvol_sem); + if (!ret) { d_invalidate(dentry); btrfs_prune_dentries(dest); ASSERT(dest->send_in_progress == 0); @@ -4136,7 +4133,7 @@ } } - return err; + return ret; } static int btrfs_rmdir(struct inode *dir, struct dentry *dentry) @@ -8971,8 +8968,6 @@ /* force full log commit if subvolume involved. */ btrfs_set_log_full_commit(trans); } else { - btrfs_pin_log_trans(root); - root_log_pinned = true; ret = btrfs_insert_inode_ref(trans, dest, new_dentry->d_name.name, new_dentry->d_name.len, @@ -8989,8 +8984,6 @@ /* force full log commit if subvolume involved. */ btrfs_set_log_full_commit(trans); } else { - btrfs_pin_log_trans(dest); - dest_log_pinned = true; ret = btrfs_insert_inode_ref(trans, root, old_dentry->d_name.name, old_dentry->d_name.len, @@ -9021,6 +9014,29 @@ BTRFS_I(new_inode), 1); } + /* + * Now pin the logs of the roots. We do it to ensure that no other task + * can sync the logs while we are in progress with the rename, because + * that could result in an inconsistency in case any of the inodes that + * are part of this rename operation were logged before. + * + * We pin the logs even if at this precise moment none of the inodes was + * logged before. This is because right after we checked for that, some + * other task fsyncing some other inode not involved with this rename + * operation could log that one of our inodes exists. + * + * We don't need to pin the logs before the above calls to + * btrfs_insert_inode_ref(), since those don't ever need to change a log. + */ + if (old_ino != BTRFS_FIRST_FREE_OBJECTID) { + btrfs_pin_log_trans(root); + root_log_pinned = true; + } + if (new_ino != BTRFS_FIRST_FREE_OBJECTID) { + btrfs_pin_log_trans(dest); + dest_log_pinned = true; + } + /* src is a subvolume */ if (old_ino == BTRFS_FIRST_FREE_OBJECTID) { ret = btrfs_unlink_subvol(trans, old_dir, old_dentry); @@ -9270,8 +9286,6 @@ /* force full log commit if subvolume involved. */ btrfs_set_log_full_commit(trans); } else { - btrfs_pin_log_trans(root); - log_pinned = true; ret = btrfs_insert_inode_ref(trans, dest, new_dentry->d_name.name, new_dentry->d_name.len, @@ -9295,6 +9309,25 @@ if (unlikely(old_ino == BTRFS_FIRST_FREE_OBJECTID)) { ret = btrfs_unlink_subvol(trans, old_dir, old_dentry); } else { + /* + * Now pin the log. We do it to ensure that no other task can + * sync the log while we are in progress with the rename, as + * that could result in an inconsistency in case any of the + * inodes that are part of this rename operation were logged + * before. + * + * We pin the log even if at this precise moment none of the + * inodes was logged before. This is because right after we + * checked for that, some other task fsyncing some other inode + * not involved with this rename operation could log that one of + * our inodes exists. + * + * We don't need to pin the logs before the above call to + * btrfs_insert_inode_ref(), since that does not need to change + * a log. + */ + btrfs_pin_log_trans(root); + log_pinned = true; ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), BTRFS_I(d_inode(old_dentry)), old_dentry->d_name.name, diff -Nru linux-5.10.209/fs/btrfs/ioctl.c linux-5.10.216/fs/btrfs/ioctl.c --- linux-5.10.209/fs/btrfs/ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -798,6 +798,9 @@ struct btrfs_trans_handle *trans; int ret; + if (btrfs_root_refs(&root->root_item) == 0) + return -ENOENT; + if (!test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) return -EINVAL; @@ -3145,7 +3148,7 @@ { struct inode *inode = file_inode(file); struct btrfs_root *root = BTRFS_I(inode)->root; - struct btrfs_ioctl_defrag_range_args *range; + struct btrfs_ioctl_defrag_range_args range = {0}; int ret; ret = mnt_want_write_file(file); @@ -3177,33 +3180,28 @@ goto out; } - range = kzalloc(sizeof(*range), GFP_KERNEL); - if (!range) { - ret = -ENOMEM; - goto out; - } - if (argp) { - if (copy_from_user(range, argp, - sizeof(*range))) { + if (copy_from_user(&range, argp, sizeof(range))) { ret = -EFAULT; - kfree(range); + goto out; + } + if (range.flags & ~BTRFS_DEFRAG_RANGE_FLAGS_SUPP) { + ret = -EOPNOTSUPP; goto out; } /* compression requires us to start the IO */ - if ((range->flags & BTRFS_DEFRAG_RANGE_COMPRESS)) { - range->flags |= BTRFS_DEFRAG_RANGE_START_IO; - range->extent_thresh = (u32)-1; + if ((range.flags & BTRFS_DEFRAG_RANGE_COMPRESS)) { + range.flags |= BTRFS_DEFRAG_RANGE_START_IO; + range.extent_thresh = (u32)-1; } } else { /* the rest are all set to zero by kzalloc */ - range->len = (u64)-1; + range.len = (u64)-1; } ret = btrfs_defrag_file(file_inode(file), file, - range, BTRFS_OLDEST_GENERATION, 0); + &range, BTRFS_OLDEST_GENERATION, 0); if (ret > 0) ret = 0; - kfree(range); break; default: ret = -EINVAL; @@ -4317,6 +4315,11 @@ ret = -EINVAL; goto out; } + + if (sa->create && is_fstree(sa->qgroupid)) { + ret = -EINVAL; + goto out; + } trans = btrfs_join_transaction(root); if (IS_ERR(trans)) { diff -Nru linux-5.10.209/fs/btrfs/qgroup.c linux-5.10.216/fs/btrfs/qgroup.c --- linux-5.10.209/fs/btrfs/qgroup.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/qgroup.c 2024-05-02 14:23:46.000000000 +0000 @@ -1608,6 +1608,15 @@ return ret; } +static bool qgroup_has_usage(struct btrfs_qgroup *qgroup) +{ + return (qgroup->rfer > 0 || qgroup->rfer_cmpr > 0 || + qgroup->excl > 0 || qgroup->excl_cmpr > 0 || + qgroup->rsv.values[BTRFS_QGROUP_RSV_DATA] > 0 || + qgroup->rsv.values[BTRFS_QGROUP_RSV_META_PREALLOC] > 0 || + qgroup->rsv.values[BTRFS_QGROUP_RSV_META_PERTRANS] > 0); +} + int btrfs_remove_qgroup(struct btrfs_trans_handle *trans, u64 qgroupid) { struct btrfs_fs_info *fs_info = trans->fs_info; @@ -1627,6 +1636,11 @@ goto out; } + if (is_fstree(qgroupid) && qgroup_has_usage(qgroup)) { + ret = -EBUSY; + goto out; + } + /* Check if there are no children of this qgroup */ if (!list_empty(&qgroup->members)) { ret = -EBUSY; @@ -4100,6 +4114,8 @@ BTRFS_QGROUP_RSV_META_PREALLOC); trace_qgroup_meta_convert(root, num_bytes); qgroup_convert_meta(fs_info, root->root_key.objectid, num_bytes); + if (!sb_rdonly(fs_info->sb)) + add_root_meta_rsv(root, num_bytes, BTRFS_QGROUP_RSV_META_PERTRANS); } /* diff -Nru linux-5.10.209/fs/btrfs/ref-verify.c linux-5.10.216/fs/btrfs/ref-verify.c --- linux-5.10.209/fs/btrfs/ref-verify.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/ref-verify.c 2024-05-02 14:23:46.000000000 +0000 @@ -899,8 +899,10 @@ out_unlock: spin_unlock(&fs_info->ref_verify_lock); out: - if (ret) + if (ret) { + btrfs_free_ref_cache(fs_info); btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); + } return ret; } @@ -1029,8 +1031,8 @@ } } if (ret) { - btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); btrfs_free_ref_cache(fs_info); + btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); } btrfs_free_path(path); return ret; diff -Nru linux-5.10.209/fs/btrfs/send.c linux-5.10.216/fs/btrfs/send.c --- linux-5.10.209/fs/btrfs/send.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/send.c 2024-05-02 14:23:46.000000000 +0000 @@ -966,7 +966,15 @@ ret = PTR_ERR(start); goto out; } - BUG_ON(start < p->buf); + if (unlikely(start < p->buf)) { + btrfs_err(root->fs_info, + "send: path ref buffer underflow for key (%llu %u %llu)", + found_key->objectid, + found_key->type, + found_key->offset); + ret = -EINVAL; + goto out; + } } p->start = start; } else { @@ -7285,7 +7293,7 @@ } if (arg->flags & ~BTRFS_SEND_FLAG_MASK) { - ret = -EINVAL; + ret = -EOPNOTSUPP; goto out; } diff -Nru linux-5.10.209/fs/btrfs/tree-checker.c linux-5.10.216/fs/btrfs/tree-checker.c --- linux-5.10.209/fs/btrfs/tree-checker.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/tree-checker.c 2024-05-02 14:23:46.000000000 +0000 @@ -1189,7 +1189,8 @@ } static int check_extent_item(struct extent_buffer *leaf, - struct btrfs_key *key, int slot) + struct btrfs_key *key, int slot, + struct btrfs_key *prev_key) { struct btrfs_fs_info *fs_info = leaf->fs_info; struct btrfs_extent_item *ei; @@ -1334,7 +1335,7 @@ if (ptr + btrfs_extent_inline_ref_size(inline_type) > end) { extent_err(leaf, slot, "inline ref item overflows extent item, ptr %lu iref size %u end %lu", - ptr, inline_type, end); + ptr, btrfs_extent_inline_ref_size(inline_type), end); return -EUCLEAN; } @@ -1400,6 +1401,26 @@ total_refs, inline_refs); return -EUCLEAN; } + + if ((prev_key->type == BTRFS_EXTENT_ITEM_KEY) || + (prev_key->type == BTRFS_METADATA_ITEM_KEY)) { + u64 prev_end = prev_key->objectid; + + if (prev_key->type == BTRFS_METADATA_ITEM_KEY) + prev_end += fs_info->nodesize; + else + prev_end += prev_key->offset; + + if (unlikely(prev_end > key->objectid)) { + extent_err(leaf, slot, + "previous extent [%llu %u %llu] overlaps current extent [%llu %u %llu]", + prev_key->objectid, prev_key->type, + prev_key->offset, key->objectid, key->type, + key->offset); + return -EUCLEAN; + } + } + return 0; } @@ -1568,7 +1589,7 @@ break; case BTRFS_EXTENT_ITEM_KEY: case BTRFS_METADATA_ITEM_KEY: - ret = check_extent_item(leaf, key, slot); + ret = check_extent_item(leaf, key, slot, prev_key); break; case BTRFS_TREE_BLOCK_REF_KEY: case BTRFS_SHARED_DATA_REF_KEY: diff -Nru linux-5.10.209/fs/btrfs/tree-log.c linux-5.10.216/fs/btrfs/tree-log.c --- linux-5.10.209/fs/btrfs/tree-log.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/tree-log.c 2024-05-02 14:23:46.000000000 +0000 @@ -912,8 +912,7 @@ di = btrfs_lookup_dir_index_item(NULL, root, path, dirid, index, name, name_len, 0); if (IS_ERR(di)) { - if (PTR_ERR(di) != -ENOENT) - ret = PTR_ERR(di); + ret = PTR_ERR(di); goto out; } else if (di) { btrfs_dir_item_key_to_cpu(path->nodes[0], di, &location); @@ -1149,8 +1148,7 @@ di = btrfs_lookup_dir_index_item(trans, root, path, btrfs_ino(dir), ref_index, name, namelen, 0); if (IS_ERR(di)) { - if (PTR_ERR(di) != -ENOENT) - return PTR_ERR(di); + return PTR_ERR(di); } else if (di) { ret = drop_one_dir_item(trans, root, path, dir, di); if (ret) @@ -1976,9 +1974,6 @@ goto out; } - if (dst_di == ERR_PTR(-ENOENT)) - dst_di = NULL; - if (IS_ERR(dst_di)) { ret = PTR_ERR(dst_di); goto out; @@ -2286,7 +2281,7 @@ dir_key->offset, name, name_len, 0); } - if (!log_di || log_di == ERR_PTR(-ENOENT)) { + if (!log_di) { btrfs_dir_item_key_to_cpu(eb, di, &location); btrfs_release_path(path); btrfs_release_path(log_path); @@ -3495,8 +3490,7 @@ if (err == -ENOSPC) { btrfs_set_log_full_commit(trans); err = 0; - } else if (err < 0 && err != -ENOENT) { - /* ENOENT can be returned if the entry hasn't been fsynced yet */ + } else if (err < 0) { btrfs_abort_transaction(trans, err); } diff -Nru linux-5.10.209/fs/btrfs/volumes.c linux-5.10.216/fs/btrfs/volumes.c --- linux-5.10.209/fs/btrfs/volumes.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/btrfs/volumes.c 2024-05-02 14:23:46.000000000 +0000 @@ -1471,7 +1471,7 @@ if (in_range(physical_start, *start, len) || in_range(*start, physical_start, - physical_end - physical_start)) { + physical_end + 1 - physical_start)) { *start = physical_end + 1; return true; } @@ -3178,7 +3178,17 @@ mutex_unlock(&fs_info->delete_unused_bgs_mutex); goto error; } - BUG_ON(ret == 0); /* Corruption */ + if (ret == 0) { + /* + * On the first search we would find chunk tree with + * offset -1, which is not possible. On subsequent + * loops this would find an existing item on an invalid + * offset (one less than the previous one, wrong + * alignment and size). + */ + ret = -EUCLEAN; + goto error; + } ret = btrfs_previous_item(chunk_root, path, key.objectid, key.type); diff -Nru linux-5.10.209/fs/cachefiles/bind.c linux-5.10.216/fs/cachefiles/bind.c --- linux-5.10.209/fs/cachefiles/bind.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cachefiles/bind.c 2024-05-02 14:23:46.000000000 +0000 @@ -245,6 +245,8 @@ kmem_cache_free(cachefiles_object_jar, fsdef); error_root_object: cachefiles_end_secure(cache, saved_cred); + put_cred(cache->cache_cred); + cache->cache_cred = NULL; pr_err("Failed to register: %d\n", ret); return ret; } @@ -265,6 +267,7 @@ dput(cache->graveyard); mntput(cache->mnt); + put_cred(cache->cache_cred); kfree(cache->rootdirname); kfree(cache->secctx); diff -Nru linux-5.10.209/fs/ceph/caps.c linux-5.10.216/fs/ceph/caps.c --- linux-5.10.209/fs/ceph/caps.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ceph/caps.c 2024-05-02 14:23:46.000000000 +0000 @@ -1402,7 +1402,7 @@ if (flushing & CEPH_CAP_XATTR_EXCL) { arg->old_xattr_buf = __ceph_build_xattrs_blob(ci); arg->xattr_version = ci->i_xattrs.version; - arg->xattr_buf = ci->i_xattrs.blob; + arg->xattr_buf = ceph_buffer_get(ci->i_xattrs.blob); } else { arg->xattr_buf = NULL; arg->old_xattr_buf = NULL; @@ -1468,6 +1468,7 @@ encode_cap_msg(msg, arg); ceph_con_send(&arg->session->s_con, msg); ceph_buffer_put(arg->old_xattr_buf); + ceph_buffer_put(arg->xattr_buf); if (arg->wake) wake_up_all(&ci->i_cap_wq); } @@ -4598,12 +4599,14 @@ struct inode *dir, int mds, int drop, int unless) { - struct dentry *parent = NULL; struct ceph_mds_request_release *rel = *p; struct ceph_dentry_info *di = ceph_dentry(dentry); int force = 0; int ret; + /* This shouldn't happen */ + BUG_ON(!dir); + /* * force an record for the directory caps if we have a dentry lease. * this is racy (can't take i_ceph_lock and d_lock together), but it @@ -4613,14 +4616,9 @@ spin_lock(&dentry->d_lock); if (di->lease_session && di->lease_session->s_mds == mds) force = 1; - if (!dir) { - parent = dget(dentry->d_parent); - dir = d_inode(parent); - } spin_unlock(&dentry->d_lock); ret = ceph_encode_inode_release(p, dir, mds, drop, unless, force); - dput(parent); spin_lock(&dentry->d_lock); if (ret && di->lease_session && di->lease_session->s_mds == mds) { diff -Nru linux-5.10.209/fs/cifs/smb2misc.c linux-5.10.216/fs/cifs/smb2misc.c --- linux-5.10.209/fs/cifs/smb2misc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cifs/smb2misc.c 2024-05-02 14:23:46.000000000 +0000 @@ -117,7 +117,7 @@ } else if (nc_offset + 1 == non_ctxlen) { cifs_dbg(FYI, "no SPNEGO security blob in negprot rsp\n"); size_of_pad_before_neg_ctxts = 0; - } else if (non_ctxlen == SMB311_NEGPROT_BASE_SIZE) + } else if (non_ctxlen == SMB311_NEGPROT_BASE_SIZE + 1) /* has padding, but no SPNEGO blob */ size_of_pad_before_neg_ctxts = nc_offset - non_ctxlen + 1; else diff -Nru linux-5.10.209/fs/cifs/smb2ops.c linux-5.10.216/fs/cifs/smb2ops.c --- linux-5.10.209/fs/cifs/smb2ops.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cifs/smb2ops.c 2024-05-02 14:23:46.000000000 +0000 @@ -82,6 +82,7 @@ *val = 65000; /* Don't get near 64K credits, avoid srv bugs */ pr_warn_once("server overflowed SMB3 credits\n"); } + WARN_ON_ONCE(server->in_flight == 0); server->in_flight--; if (server->in_flight == 0 && (optype & CIFS_OP_MASK) != CIFS_NEG_OP) rc = change_conf(server); @@ -818,10 +819,12 @@ if (o_rsp->OplockLevel == SMB2_OPLOCK_LEVEL_LEASE) { kref_get(&tcon->crfid.refcount); tcon->crfid.has_lease = true; - smb2_parse_contexts(server, o_rsp, + rc = smb2_parse_contexts(server, rsp_iov, &oparms.fid->epoch, oparms.fid->lease_key, &oplock, NULL, NULL); + if (rc) + goto oshr_exit; } else goto oshr_exit; @@ -4892,6 +4895,7 @@ struct smb2_sync_hdr *shdr; unsigned int pdu_length = server->pdu_size; unsigned int buf_size; + unsigned int next_cmd; struct mid_q_entry *mid_entry; int next_is_large; char *next_buffer = NULL; @@ -4920,14 +4924,15 @@ next_is_large = server->large_buf; one_more: shdr = (struct smb2_sync_hdr *)buf; - if (shdr->NextCommand) { + next_cmd = le32_to_cpu(shdr->NextCommand); + if (next_cmd) { + if (WARN_ON_ONCE(next_cmd > pdu_length)) + return -1; if (next_is_large) next_buffer = (char *)cifs_buf_get(); else next_buffer = (char *)cifs_small_buf_get(); - memcpy(next_buffer, - buf + le32_to_cpu(shdr->NextCommand), - pdu_length - le32_to_cpu(shdr->NextCommand)); + memcpy(next_buffer, buf + next_cmd, pdu_length - next_cmd); } mid_entry = smb2_find_mid(server, buf); @@ -4951,8 +4956,8 @@ else ret = cifs_handle_standard(server, mid_entry); - if (ret == 0 && shdr->NextCommand) { - pdu_length -= le32_to_cpu(shdr->NextCommand); + if (ret == 0 && next_cmd) { + pdu_length -= next_cmd; server->large_buf = next_is_large; if (next_is_large) server->bigbuf = buf = next_buffer; @@ -5561,7 +5566,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5583,7 +5588,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5604,7 +5609,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5625,7 +5630,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5646,7 +5651,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5667,7 +5672,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, @@ -5688,7 +5693,7 @@ .header_size = sizeof(struct smb2_sync_hdr), .header_preamble_size = 0, .max_header_size = MAX_SMB2_HDR_SIZE, - .read_rsp_size = sizeof(struct smb2_read_rsp) - 1, + .read_rsp_size = sizeof(struct smb2_read_rsp), .lock_cmd = SMB2_LOCK, .cap_unix = 0, .cap_nt_find = SMB2_NT_FIND, diff -Nru linux-5.10.209/fs/cifs/smb2pdu.c linux-5.10.216/fs/cifs/smb2pdu.c --- linux-5.10.209/fs/cifs/smb2pdu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cifs/smb2pdu.c 2024-05-02 14:23:46.000000000 +0000 @@ -1261,7 +1261,7 @@ /* Testing shows that buffer offset must be at location of Buffer[0] */ req->SecurityBufferOffset = - cpu_to_le16(sizeof(struct smb2_sess_setup_req) - 1 /* pad */); + cpu_to_le16(sizeof(struct smb2_sess_setup_req)); req->SecurityBufferLength = cpu_to_le16(sess_data->iov[1].iov_len); memset(&rqst, 0, sizeof(struct smb_rqst)); @@ -1760,8 +1760,7 @@ iov[0].iov_len = total_len - 1; /* Testing shows that buffer offset must be at location of Buffer[0] */ - req->PathOffset = cpu_to_le16(sizeof(struct smb2_tree_connect_req) - - 1 /* pad */); + req->PathOffset = cpu_to_le16(sizeof(struct smb2_tree_connect_req)); req->PathLength = cpu_to_le16(unc_path_len - 2); iov[1].iov_base = unc_path; iov[1].iov_len = unc_path_len; @@ -1992,17 +1991,18 @@ posix->nlink, posix->mode, posix->reparse_tag); } -void -smb2_parse_contexts(struct TCP_Server_Info *server, - struct smb2_create_rsp *rsp, - unsigned int *epoch, char *lease_key, __u8 *oplock, - struct smb2_file_all_info *buf, - struct create_posix_rsp *posix) +int smb2_parse_contexts(struct TCP_Server_Info *server, + struct kvec *rsp_iov, + unsigned int *epoch, + char *lease_key, __u8 *oplock, + struct smb2_file_all_info *buf, + struct create_posix_rsp *posix) { - char *data_offset; + struct smb2_create_rsp *rsp = rsp_iov->iov_base; struct create_context *cc; - unsigned int next; - unsigned int remaining; + size_t rem, off, len; + size_t doff, dlen; + size_t noff, nlen; char *name; static const char smb3_create_tag_posix[] = { 0x93, 0xAD, 0x25, 0x50, 0x9C, @@ -2011,45 +2011,63 @@ }; *oplock = 0; - data_offset = (char *)rsp + le32_to_cpu(rsp->CreateContextsOffset); - remaining = le32_to_cpu(rsp->CreateContextsLength); - cc = (struct create_context *)data_offset; + + off = le32_to_cpu(rsp->CreateContextsOffset); + rem = le32_to_cpu(rsp->CreateContextsLength); + if (check_add_overflow(off, rem, &len) || len > rsp_iov->iov_len) + return -EINVAL; + cc = (struct create_context *)((u8 *)rsp + off); /* Initialize inode number to 0 in case no valid data in qfid context */ if (buf) buf->IndexNumber = 0; - while (remaining >= sizeof(struct create_context)) { - name = le16_to_cpu(cc->NameOffset) + (char *)cc; - if (le16_to_cpu(cc->NameLength) == 4 && - strncmp(name, SMB2_CREATE_REQUEST_LEASE, 4) == 0) - *oplock = server->ops->parse_lease_buf(cc, epoch, - lease_key); - else if (buf && (le16_to_cpu(cc->NameLength) == 4) && - strncmp(name, SMB2_CREATE_QUERY_ON_DISK_ID, 4) == 0) - parse_query_id_ctxt(cc, buf); - else if ((le16_to_cpu(cc->NameLength) == 16)) { - if (posix && - memcmp(name, smb3_create_tag_posix, 16) == 0) + while (rem >= sizeof(*cc)) { + doff = le16_to_cpu(cc->DataOffset); + dlen = le32_to_cpu(cc->DataLength); + if (check_add_overflow(doff, dlen, &len) || len > rem) + return -EINVAL; + + noff = le16_to_cpu(cc->NameOffset); + nlen = le16_to_cpu(cc->NameLength); + if (noff + nlen > doff) + return -EINVAL; + + name = (char *)cc + noff; + switch (nlen) { + case 4: + if (!strncmp(name, SMB2_CREATE_REQUEST_LEASE, 4)) { + *oplock = server->ops->parse_lease_buf(cc, epoch, + lease_key); + } else if (buf && + !strncmp(name, SMB2_CREATE_QUERY_ON_DISK_ID, 4)) { + parse_query_id_ctxt(cc, buf); + } + break; + case 16: + if (posix && !memcmp(name, smb3_create_tag_posix, 16)) parse_posix_ctxt(cc, buf, posix); + break; + default: + cifs_dbg(FYI, "%s: unhandled context (nlen=%zu dlen=%zu)\n", + __func__, nlen, dlen); + if (IS_ENABLED(CONFIG_CIFS_DEBUG2)) + cifs_dump_mem("context data: ", cc, dlen); + break; } - /* else { - cifs_dbg(FYI, "Context not matched with len %d\n", - le16_to_cpu(cc->NameLength)); - cifs_dump_mem("Cctxt name: ", name, 4); - } */ - next = le32_to_cpu(cc->Next); - if (!next) + off = le32_to_cpu(cc->Next); + if (!off) break; - remaining -= next; - cc = (struct create_context *)((char *)cc + next); + if (check_sub_overflow(rem, off, &rem)) + return -EINVAL; + cc = (struct create_context *)((u8 *)cc + off); } if (rsp->OplockLevel != SMB2_OPLOCK_LEVEL_LEASE) *oplock = rsp->OplockLevel; - return; + return 0; } static int @@ -2916,8 +2934,8 @@ } - smb2_parse_contexts(server, rsp, &oparms->fid->epoch, - oparms->fid->lease_key, oplock, buf, posix); + rc = smb2_parse_contexts(server, &rsp_iov, &oparms->fid->epoch, + oparms->fid->lease_key, oplock, buf, posix); creat_exit: SMB2_open_free(&rqst); free_rsp_buf(resp_buftype, rsp); @@ -4676,7 +4694,7 @@ memcpy(bufptr, &asteriks, len); req->FileNameOffset = - cpu_to_le16(sizeof(struct smb2_query_directory_req) - 1); + cpu_to_le16(sizeof(struct smb2_query_directory_req)); req->FileNameLength = cpu_to_le16(len); /* * BB could be 30 bytes or so longer if we used SMB2 specific @@ -4873,7 +4891,7 @@ req->AdditionalInformation = cpu_to_le32(additional_info); req->BufferOffset = - cpu_to_le16(sizeof(struct smb2_set_info_req) - 1); + cpu_to_le16(sizeof(struct smb2_set_info_req)); req->BufferLength = cpu_to_le32(*size); memcpy(req->Buffer, *data, *size); @@ -5105,9 +5123,9 @@ req->VolatileFileId = volatile_fid; /* 1 for pad */ req->InputBufferOffset = - cpu_to_le16(sizeof(struct smb2_query_info_req) - 1); + cpu_to_le16(sizeof(struct smb2_query_info_req)); req->OutputBufferLength = cpu_to_le32( - outbuf_len + sizeof(struct smb2_query_info_rsp) - 1); + outbuf_len + sizeof(struct smb2_query_info_rsp)); iov->iov_base = (char *)req; iov->iov_len = total_len; diff -Nru linux-5.10.209/fs/cifs/smb2pdu.h linux-5.10.216/fs/cifs/smb2pdu.h --- linux-5.10.209/fs/cifs/smb2pdu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cifs/smb2pdu.h 2024-05-02 14:23:46.000000000 +0000 @@ -220,7 +220,7 @@ __le16 StructureSize; __le16 Reserved; /* MBZ */ __le32 ByteCount; /* even if zero, at least one byte follows */ - __u8 ErrorData[1]; /* variable length */ + __u8 ErrorData[]; /* variable length */ } __packed; #define SYMLINK_ERROR_TAG 0x4c4d5953 @@ -464,7 +464,7 @@ __le16 SecurityBufferOffset; __le16 SecurityBufferLength; __le32 NegotiateContextOffset; /* Pre:SMB3.1.1 was reserved/ignored */ - __u8 Buffer[1]; /* variable length GSS security buffer */ + __u8 Buffer[]; /* variable length GSS security buffer */ } __packed; /* Flags */ @@ -481,7 +481,7 @@ __le16 SecurityBufferOffset; __le16 SecurityBufferLength; __u64 PreviousSessionId; - __u8 Buffer[1]; /* variable length GSS security buffer */ + __u8 Buffer[]; /* variable length GSS security buffer */ } __packed; /* Currently defined SessionFlags */ @@ -494,7 +494,7 @@ __le16 SessionFlags; __le16 SecurityBufferOffset; __le16 SecurityBufferLength; - __u8 Buffer[1]; /* variable length GSS security buffer */ + __u8 Buffer[]; /* variable length GSS security buffer */ } __packed; struct smb2_logoff_req { @@ -520,7 +520,7 @@ __le16 Flags; /* Reserved MBZ for dialects prior to SMB3.1.1 */ __le16 PathOffset; __le16 PathLength; - __u8 Buffer[1]; /* variable length */ + __u8 Buffer[]; /* variable length */ } __packed; /* See MS-SMB2 section 2.2.9.2 */ @@ -828,7 +828,7 @@ __u64 VolatileFileId; /* opaque endianness */ __le32 CreateContextsOffset; __le32 CreateContextsLength; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; struct create_context { @@ -1289,7 +1289,7 @@ __le32 RemainingBytes; __le16 ReadChannelInfoOffset; __le16 ReadChannelInfoLength; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; /* Read flags */ @@ -1304,7 +1304,7 @@ __le32 DataLength; __le32 DataRemaining; __u32 Flags; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; /* For write request Flags field below the following flags are defined: */ @@ -1324,7 +1324,7 @@ __le16 WriteChannelInfoOffset; __le16 WriteChannelInfoLength; __le32 Flags; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; struct smb2_write_rsp { @@ -1335,7 +1335,7 @@ __le32 DataLength; __le32 DataRemaining; __u32 Reserved2; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; /* notify flags */ @@ -1371,7 +1371,7 @@ __le16 StructureSize; /* Must be 9 */ __le16 OutputBufferOffset; __le32 OutputBufferLength; - __u8 Buffer[1]; /* array of file notify structs */ + __u8 Buffer[]; /* array of file notify structs */ } __packed; #define SMB2_LOCKFLAG_SHARED_LOCK 0x0001 @@ -1394,7 +1394,10 @@ __u64 PersistentFileId; /* opaque endianness */ __u64 VolatileFileId; /* opaque endianness */ /* Followed by at least one */ - struct smb2_lock_element locks[1]; + union { + struct smb2_lock_element lock; + DECLARE_FLEX_ARRAY(struct smb2_lock_element, locks); + }; } __packed; struct smb2_lock_rsp { @@ -1434,7 +1437,7 @@ __le16 FileNameOffset; __le16 FileNameLength; __le32 OutputBufferLength; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; struct smb2_query_directory_rsp { @@ -1442,7 +1445,7 @@ __le16 StructureSize; /* Must be 9 */ __le16 OutputBufferOffset; __le32 OutputBufferLength; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; /* Possible InfoType values */ @@ -1483,7 +1486,7 @@ __le32 Flags; __u64 PersistentFileId; /* opaque endianness */ __u64 VolatileFileId; /* opaque endianness */ - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; struct smb2_query_info_rsp { @@ -1491,7 +1494,7 @@ __le16 StructureSize; /* Must be 9 */ __le16 OutputBufferOffset; __le32 OutputBufferLength; - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; /* @@ -1514,7 +1517,7 @@ __le32 AdditionalInformation; __u64 PersistentFileId; /* opaque endianness */ __u64 VolatileFileId; /* opaque endianness */ - __u8 Buffer[1]; + __u8 Buffer[]; } __packed; struct smb2_set_info_rsp { @@ -1716,7 +1719,10 @@ __le32 Mode; __le32 AlignmentRequirement; __le32 FileNameLength; - char FileName[1]; + union { + char __pad; /* Legacy structure padding */ + DECLARE_FLEX_ARRAY(char, FileName); + }; } __packed; /* level 18 Query */ struct smb2_file_eof_info { /* encoding of request for level 10 */ diff -Nru linux-5.10.209/fs/cifs/smb2proto.h linux-5.10.216/fs/cifs/smb2proto.h --- linux-5.10.209/fs/cifs/smb2proto.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/cifs/smb2proto.h 2024-05-02 14:23:46.000000000 +0000 @@ -270,11 +270,13 @@ extern enum securityEnum smb2_select_sectype(struct TCP_Server_Info *, enum securityEnum); -extern void smb2_parse_contexts(struct TCP_Server_Info *server, - struct smb2_create_rsp *rsp, - unsigned int *epoch, char *lease_key, - __u8 *oplock, struct smb2_file_all_info *buf, - struct create_posix_rsp *posix); +int smb2_parse_contexts(struct TCP_Server_Info *server, + struct kvec *rsp_iov, + unsigned int *epoch, + char *lease_key, __u8 *oplock, + struct smb2_file_all_info *buf, + struct create_posix_rsp *posix); + extern int smb3_encryption_required(const struct cifs_tcon *tcon); extern int smb2_validate_iov(unsigned int offset, unsigned int buffer_length, struct kvec *iov, unsigned int min_buf_size); diff -Nru linux-5.10.209/fs/dcache.c linux-5.10.216/fs/dcache.c --- linux-5.10.209/fs/dcache.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/dcache.c 2024-05-02 14:23:46.000000000 +0000 @@ -759,12 +759,12 @@ */ if (unlikely(ret < 0)) { spin_lock(&dentry->d_lock); - if (dentry->d_lockref.count > 1) { - dentry->d_lockref.count--; + if (WARN_ON_ONCE(dentry->d_lockref.count <= 0)) { spin_unlock(&dentry->d_lock); return true; } - return false; + dentry->d_lockref.count--; + goto locked; } /* @@ -815,6 +815,7 @@ * else could have killed it and marked it dead. Either way, we * don't need to do anything else. */ +locked: if (dentry->d_lockref.count) { spin_unlock(&dentry->d_lock); return true; diff -Nru linux-5.10.209/fs/ecryptfs/inode.c linux-5.10.216/fs/ecryptfs/inode.c --- linux-5.10.209/fs/ecryptfs/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ecryptfs/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -76,6 +76,14 @@ if (lower_inode->i_sb != ecryptfs_superblock_to_lower(sb)) return ERR_PTR(-EXDEV); + + /* Reject dealing with casefold directories. */ + if (IS_CASEFOLDED(lower_inode)) { + pr_err_ratelimited("%s: Can't handle casefolded directory.\n", + __func__); + return ERR_PTR(-EREMOTE); + } + if (!igrab(lower_inode)) return ERR_PTR(-ESTALE); inode = iget5_locked(sb, (unsigned long)lower_inode, diff -Nru linux-5.10.209/fs/erofs/decompressor.c linux-5.10.216/fs/erofs/decompressor.c --- linux-5.10.209/fs/erofs/decompressor.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/erofs/decompressor.c 2024-05-02 14:23:46.000000000 +0000 @@ -24,7 +24,8 @@ */ int (*prepare_destpages)(struct z_erofs_decompress_req *rq, struct list_head *pagepool); - int (*decompress)(struct z_erofs_decompress_req *rq, u8 *out); + int (*decompress)(struct z_erofs_decompress_req *rq, u8 *out, + u8 *obase); char *name; }; @@ -114,10 +115,13 @@ return tmp; } -static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq, u8 *out) +static int z_erofs_lz4_decompress(struct z_erofs_decompress_req *rq, u8 *out, + u8 *obase) { + const uint nrpages_out = PAGE_ALIGN(rq->pageofs_out + + rq->outputsize) >> PAGE_SHIFT; unsigned int inputmargin, inlen; - u8 *src; + u8 *src, *src2; bool copied, support_0padding; int ret; @@ -125,6 +129,7 @@ return -EOPNOTSUPP; src = kmap_atomic(*rq->in); + src2 = src; inputmargin = 0; support_0padding = false; @@ -148,16 +153,15 @@ if (rq->inplace_io) { const uint oend = (rq->pageofs_out + rq->outputsize) & ~PAGE_MASK; - const uint nr = PAGE_ALIGN(rq->pageofs_out + - rq->outputsize) >> PAGE_SHIFT; - if (rq->partial_decoding || !support_0padding || - rq->out[nr - 1] != rq->in[0] || + rq->out[nrpages_out - 1] != rq->in[0] || rq->inputsize - oend < LZ4_DECOMPRESS_INPLACE_MARGIN(inlen)) { src = generic_copy_inplace_data(rq, src, inputmargin); inputmargin = 0; copied = true; + } else { + src = obase + ((nrpages_out - 1) << PAGE_SHIFT); } } @@ -187,7 +191,7 @@ if (copied) erofs_put_pcpubuf(src); else - kunmap_atomic(src); + kunmap_atomic(src2); return ret; } @@ -257,7 +261,7 @@ return PTR_ERR(dst); rq->inplace_io = false; - ret = alg->decompress(rq, dst); + ret = alg->decompress(rq, dst, NULL); if (!ret) copy_from_pcpubuf(rq->out, dst, rq->pageofs_out, rq->outputsize); @@ -291,7 +295,7 @@ dst_maptype = 2; dstmap_out: - ret = alg->decompress(rq, dst + rq->pageofs_out); + ret = alg->decompress(rq, dst + rq->pageofs_out, dst); if (!dst_maptype) kunmap_atomic(dst); diff -Nru linux-5.10.209/fs/exec.c linux-5.10.216/fs/exec.c --- linux-5.10.209/fs/exec.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/exec.c 2024-05-02 14:23:46.000000000 +0000 @@ -888,6 +888,7 @@ goto out; } + bprm->exec += *sp_location - MAX_ARG_PAGES * PAGE_SIZE; *sp_location = sp; out: @@ -1392,6 +1393,9 @@ out_unlock: up_write(&me->signal->exec_update_lock); + if (!bprm->cred) + mutex_unlock(&me->signal->cred_guard_mutex); + out: return retval; } diff -Nru linux-5.10.209/fs/ext4/extents.c linux-5.10.216/fs/ext4/extents.c --- linux-5.10.209/fs/ext4/extents.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/extents.c 2024-05-02 14:23:46.000000000 +0000 @@ -2222,7 +2222,7 @@ /* - * ext4_ext_determine_hole - determine hole around given block + * ext4_ext_find_hole - find hole around given block according to the given path * @inode: inode we lookup in * @path: path in extent tree to @lblk * @lblk: pointer to logical block around which we want to determine hole @@ -2234,9 +2234,9 @@ * The function returns the length of a hole starting at @lblk. We update @lblk * to the beginning of the hole if we managed to find it. */ -static ext4_lblk_t ext4_ext_determine_hole(struct inode *inode, - struct ext4_ext_path *path, - ext4_lblk_t *lblk) +static ext4_lblk_t ext4_ext_find_hole(struct inode *inode, + struct ext4_ext_path *path, + ext4_lblk_t *lblk) { int depth = ext_depth(inode); struct ext4_extent *ex; @@ -2264,30 +2264,6 @@ } /* - * ext4_ext_put_gap_in_cache: - * calculate boundaries of the gap that the requested block fits into - * and cache this gap - */ -static void -ext4_ext_put_gap_in_cache(struct inode *inode, ext4_lblk_t hole_start, - ext4_lblk_t hole_len) -{ - struct extent_status es; - - ext4_es_find_extent_range(inode, &ext4_es_is_delayed, hole_start, - hole_start + hole_len - 1, &es); - if (es.es_len) { - /* There's delayed extent containing lblock? */ - if (es.es_lblk <= hole_start) - return; - hole_len = min(es.es_lblk - hole_start, hole_len); - } - ext_debug(inode, " -> %u:%u\n", hole_start, hole_len); - ext4_es_insert_extent(inode, hole_start, hole_len, ~0, - EXTENT_STATUS_HOLE); -} - -/* * ext4_ext_rm_idx: * removes index from the index block. */ @@ -3131,8 +3107,9 @@ if (ee_len == 0) return 0; - return ext4_es_insert_extent(inode, ee_block, ee_len, ee_pblock, - EXTENT_STATUS_WRITTEN); + ext4_es_insert_extent(inode, ee_block, ee_len, ee_pblock, + EXTENT_STATUS_WRITTEN); + return 0; } /* FIXME!! we need to try to merge to left or right after zero-out */ @@ -4058,6 +4035,69 @@ return 0; } +/* + * Determine hole length around the given logical block, first try to + * locate and expand the hole from the given @path, and then adjust it + * if it's partially or completely converted to delayed extents, insert + * it into the extent cache tree if it's indeed a hole, finally return + * the length of the determined extent. + */ +static ext4_lblk_t ext4_ext_determine_insert_hole(struct inode *inode, + struct ext4_ext_path *path, + ext4_lblk_t lblk) +{ + ext4_lblk_t hole_start, len; + struct extent_status es; + + hole_start = lblk; + len = ext4_ext_find_hole(inode, path, &hole_start); +again: + ext4_es_find_extent_range(inode, &ext4_es_is_delayed, hole_start, + hole_start + len - 1, &es); + if (!es.es_len) + goto insert_hole; + + /* + * There's a delalloc extent in the hole, handle it if the delalloc + * extent is in front of, behind and straddle the queried range. + */ + if (lblk >= es.es_lblk + es.es_len) { + /* + * The delalloc extent is in front of the queried range, + * find again from the queried start block. + */ + len -= lblk - hole_start; + hole_start = lblk; + goto again; + } else if (in_range(lblk, es.es_lblk, es.es_len)) { + /* + * The delalloc extent containing lblk, it must have been + * added after ext4_map_blocks() checked the extent status + * tree, adjust the length to the delalloc extent's after + * lblk. + */ + len = es.es_lblk + es.es_len - lblk; + return len; + } else { + /* + * The delalloc extent is partially or completely behind + * the queried range, update hole length until the + * beginning of the delalloc extent. + */ + len = min(es.es_lblk - hole_start, len); + } + +insert_hole: + /* Put just found gap into cache to speed up subsequent requests */ + ext_debug(inode, " -> %u:%u\n", hole_start, len); + ext4_es_insert_extent(inode, hole_start, len, ~0, EXTENT_STATUS_HOLE); + + /* Update hole_len to reflect hole size after lblk */ + if (hole_start != lblk) + len -= lblk - hole_start; + + return len; +} /* * Block allocation/map/preallocation routine for extents based files @@ -4175,22 +4215,12 @@ * we couldn't try to create block if create flag is zero */ if ((flags & EXT4_GET_BLOCKS_CREATE) == 0) { - ext4_lblk_t hole_start, hole_len; + ext4_lblk_t len; - hole_start = map->m_lblk; - hole_len = ext4_ext_determine_hole(inode, path, &hole_start); - /* - * put just found gap into cache to speed up - * subsequent requests - */ - ext4_ext_put_gap_in_cache(inode, hole_start, hole_len); + len = ext4_ext_determine_insert_hole(inode, path, map->m_lblk); - /* Update hole_len to reflect hole size after map->m_lblk */ - if (hole_start != map->m_lblk) - hole_len -= map->m_lblk - hole_start; map->m_pblk = 0; - map->m_len = min_t(unsigned int, map->m_len, hole_len); - + map->m_len = min_t(unsigned int, map->m_len, len); goto out; } diff -Nru linux-5.10.209/fs/ext4/extents_status.c linux-5.10.216/fs/ext4/extents_status.c --- linux-5.10.209/fs/ext4/extents_status.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/extents_status.c 2024-05-02 14:23:46.000000000 +0000 @@ -846,12 +846,10 @@ /* * ext4_es_insert_extent() adds information to an inode's extent * status tree. - * - * Return 0 on success, error code on failure. */ -int ext4_es_insert_extent(struct inode *inode, ext4_lblk_t lblk, - ext4_lblk_t len, ext4_fsblk_t pblk, - unsigned int status) +void ext4_es_insert_extent(struct inode *inode, ext4_lblk_t lblk, + ext4_lblk_t len, ext4_fsblk_t pblk, + unsigned int status) { struct extent_status newes; ext4_lblk_t end = lblk + len - 1; @@ -863,13 +861,13 @@ bool revise_pending = false; if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY) - return 0; + return; es_debug("add [%u/%u) %llu %x to extent status tree of inode %lu\n", lblk, len, pblk, status, inode->i_ino); if (!len) - return 0; + return; BUG_ON(end < lblk); @@ -938,7 +936,7 @@ goto retry; ext4_es_print_tree(inode); - return 0; + return; } /* diff -Nru linux-5.10.209/fs/ext4/extents_status.h linux-5.10.216/fs/ext4/extents_status.h --- linux-5.10.209/fs/ext4/extents_status.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/extents_status.h 2024-05-02 14:23:46.000000000 +0000 @@ -127,9 +127,9 @@ extern void ext4_exit_es(void); extern void ext4_es_init_tree(struct ext4_es_tree *tree); -extern int ext4_es_insert_extent(struct inode *inode, ext4_lblk_t lblk, - ext4_lblk_t len, ext4_fsblk_t pblk, - unsigned int status); +extern void ext4_es_insert_extent(struct inode *inode, ext4_lblk_t lblk, + ext4_lblk_t len, ext4_fsblk_t pblk, + unsigned int status); extern void ext4_es_cache_extent(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len, ext4_fsblk_t pblk, unsigned int status); diff -Nru linux-5.10.209/fs/ext4/inode.c linux-5.10.216/fs/ext4/inode.c --- linux-5.10.209/fs/ext4/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -589,10 +589,8 @@ ext4_es_scan_range(inode, &ext4_es_is_delayed, map->m_lblk, map->m_lblk + map->m_len - 1)) status |= EXTENT_STATUS_DELAYED; - ret = ext4_es_insert_extent(inode, map->m_lblk, - map->m_len, map->m_pblk, status); - if (ret < 0) - retval = ret; + ext4_es_insert_extent(inode, map->m_lblk, map->m_len, + map->m_pblk, status); } up_read((&EXT4_I(inode)->i_data_sem)); @@ -701,12 +699,8 @@ ext4_es_scan_range(inode, &ext4_es_is_delayed, map->m_lblk, map->m_lblk + map->m_len - 1)) status |= EXTENT_STATUS_DELAYED; - ret = ext4_es_insert_extent(inode, map->m_lblk, map->m_len, - map->m_pblk, status); - if (ret < 0) { - retval = ret; - goto out_sem; - } + ext4_es_insert_extent(inode, map->m_lblk, map->m_len, + map->m_pblk, status); } out_sem: @@ -1734,11 +1728,8 @@ /* Lookup extent status tree firstly */ if (ext4_es_lookup_extent(inode, iblock, NULL, &es)) { - if (ext4_es_is_hole(&es)) { - retval = 0; - down_read(&EXT4_I(inode)->i_data_sem); + if (ext4_es_is_hole(&es)) goto add_delayed; - } /* * Delayed extent could be allocated by fallocate. @@ -1780,27 +1771,11 @@ retval = ext4_ext_map_blocks(NULL, inode, map, 0); else retval = ext4_ind_map_blocks(NULL, inode, map, 0); - -add_delayed: - if (retval == 0) { - int ret; - - /* - * XXX: __block_prepare_write() unmaps passed block, - * is it OK? - */ - - ret = ext4_insert_delayed_block(inode, map->m_lblk); - if (ret != 0) { - retval = ret; - goto out_unlock; - } - - map_bh(bh, inode->i_sb, invalid_block); - set_buffer_new(bh); - set_buffer_delay(bh); - } else if (retval > 0) { - int ret; + if (retval < 0) { + up_read(&EXT4_I(inode)->i_data_sem); + return retval; + } + if (retval > 0) { unsigned int status; if (unlikely(retval != map->m_len)) { @@ -1813,15 +1788,23 @@ status = map->m_flags & EXT4_MAP_UNWRITTEN ? EXTENT_STATUS_UNWRITTEN : EXTENT_STATUS_WRITTEN; - ret = ext4_es_insert_extent(inode, map->m_lblk, map->m_len, - map->m_pblk, status); - if (ret != 0) - retval = ret; + ext4_es_insert_extent(inode, map->m_lblk, map->m_len, + map->m_pblk, status); + up_read(&EXT4_I(inode)->i_data_sem); + return retval; } + up_read(&EXT4_I(inode)->i_data_sem); -out_unlock: - up_read((&EXT4_I(inode)->i_data_sem)); +add_delayed: + down_write(&EXT4_I(inode)->i_data_sem); + retval = ext4_insert_delayed_block(inode, map->m_lblk); + up_write(&EXT4_I(inode)->i_data_sem); + if (retval) + return retval; + map_bh(bh, inode->i_sb, invalid_block); + set_buffer_new(bh); + set_buffer_delay(bh); return retval; } diff -Nru linux-5.10.209/fs/ext4/mballoc.c linux-5.10.216/fs/ext4/mballoc.c --- linux-5.10.209/fs/ext4/mballoc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/mballoc.c 2024-05-02 14:23:46.000000000 +0000 @@ -823,6 +823,24 @@ atomic64_add(period, &sbi->s_mb_generation_time); } +static void mb_regenerate_buddy(struct ext4_buddy *e4b) +{ + int count; + int order = 1; + void *buddy; + + while ((buddy = mb_find_buddy(e4b, order++, &count))) + ext4_set_bits(buddy, 0, count); + + e4b->bd_info->bb_fragments = 0; + memset(e4b->bd_info->bb_counters, 0, + sizeof(*e4b->bd_info->bb_counters) * + (e4b->bd_sb->s_blocksize_bits + 2)); + + ext4_mb_generate_buddy(e4b->bd_sb, e4b->bd_buddy, + e4b->bd_bitmap, e4b->bd_group, e4b->bd_info); +} + /* The buddy information is attached the buddy cache inode * for convenience. The information regarding each group * is loaded via ext4_mb_load_buddy. The information involve @@ -1476,11 +1494,6 @@ mb_check_buddy(e4b); mb_free_blocks_double(inode, e4b, first, count); - this_cpu_inc(discard_pa_seq); - e4b->bd_info->bb_free += count; - if (first < e4b->bd_info->bb_first_free) - e4b->bd_info->bb_first_free = first; - /* access memory sequentially: check left neighbour, * clear range and then check right neighbour */ @@ -1494,21 +1507,31 @@ struct ext4_sb_info *sbi = EXT4_SB(sb); ext4_fsblk_t blocknr; + /* + * Fastcommit replay can free already freed blocks which + * corrupts allocation info. Regenerate it. + */ + if (sbi->s_mount_state & EXT4_FC_REPLAY) { + mb_regenerate_buddy(e4b); + goto check; + } + blocknr = ext4_group_first_block_no(sb, e4b->bd_group); blocknr += EXT4_C2B(sbi, block); - if (!(sbi->s_mount_state & EXT4_FC_REPLAY)) { - ext4_grp_locked_error(sb, e4b->bd_group, - inode ? inode->i_ino : 0, - blocknr, - "freeing already freed block (bit %u); block bitmap corrupt.", - block); - ext4_mark_group_bitmap_corrupted( - sb, e4b->bd_group, + ext4_grp_locked_error(sb, e4b->bd_group, + inode ? inode->i_ino : 0, blocknr, + "freeing already freed block (bit %u); block bitmap corrupt.", + block); + ext4_mark_group_bitmap_corrupted(sb, e4b->bd_group, EXT4_GROUP_INFO_BBITMAP_CORRUPT); - } - goto done; + return; } + this_cpu_inc(discard_pa_seq); + e4b->bd_info->bb_free += count; + if (first < e4b->bd_info->bb_first_free) + e4b->bd_info->bb_first_free = first; + /* let's maintain fragments counter */ if (left_is_free && right_is_free) e4b->bd_info->bb_fragments--; @@ -1533,8 +1556,8 @@ if (first <= last) mb_buddy_mark_free(e4b, first >> 1, last >> 1); -done: mb_set_largest_free_order(sb, e4b->bd_info); +check: mb_check_buddy(e4b); } @@ -1854,6 +1877,9 @@ return err; ext4_lock_group(ac->ac_sb, group); + if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info))) + goto out; + max = mb_find_extent(e4b, ex.fe_start, ex.fe_len, &ex); if (max > 0) { @@ -1861,6 +1887,7 @@ ext4_mb_use_best_found(ac, e4b); } +out: ext4_unlock_group(ac->ac_sb, group); ext4_mb_unload_buddy(e4b); @@ -1889,12 +1916,10 @@ if (err) return err; - if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info))) { - ext4_mb_unload_buddy(e4b); - return 0; - } - ext4_lock_group(ac->ac_sb, group); + if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info))) + goto out; + max = mb_find_extent(e4b, ac->ac_g_ex.fe_start, ac->ac_g_ex.fe_len, &ex); ex.fe_logical = 0xDEADFA11; /* debug value */ @@ -1927,6 +1952,7 @@ ac->ac_b_ex = ex; ext4_mb_use_best_found(ac, e4b); } +out: ext4_unlock_group(ac->ac_sb, group); ext4_mb_unload_buddy(e4b); @@ -2565,7 +2591,10 @@ for (i = 0; i <= 13; i++) seq_printf(seq, " %-5u", i <= blocksize_bits + 1 ? sg.info.bb_counters[i] : 0); - seq_puts(seq, " ]\n"); + seq_puts(seq, " ]"); + if (EXT4_MB_GRP_BBITMAP_CORRUPT(&sg.info)) + seq_puts(seq, " Block bitmap corrupted!"); + seq_puts(seq, "\n"); return 0; } @@ -4136,10 +4165,16 @@ .fe_len = ac->ac_g_ex.fe_len, }; loff_t orig_goal_end = extent_logical_end(sbi, &ex); + loff_t o_ex_end = extent_logical_end(sbi, &ac->ac_o_ex); - /* we can't allocate as much as normalizer wants. - * so, found space must get proper lstart - * to cover original request */ + /* + * We can't allocate as much as normalizer wants, so we try + * to get proper lstart to cover the original request, except + * when the goal doesn't cover the original request as below: + * + * orig_ex:2045/2055(10), isize:8417280 -> normalized:0/2048 + * best_ex:0/200(200) -> adjusted: 1848/2048(200) + */ BUG_ON(ac->ac_g_ex.fe_logical > ac->ac_o_ex.fe_logical); BUG_ON(ac->ac_g_ex.fe_len < ac->ac_o_ex.fe_len); @@ -4151,7 +4186,7 @@ * 1. Check if best ex can be kept at end of goal and still * cover original start * 2. Else, check if best ex can be kept at start of goal and - * still cover original start + * still cover original end * 3. Else, keep the best ex at start of original request. */ ex.fe_len = ac->ac_b_ex.fe_len; @@ -4161,7 +4196,7 @@ goto adjust_bex; ex.fe_logical = ac->ac_g_ex.fe_logical; - if (ac->ac_o_ex.fe_logical < extent_logical_end(sbi, &ex)) + if (o_ex_end <= extent_logical_end(sbi, &ex)) goto adjust_bex; ex.fe_logical = ac->ac_o_ex.fe_logical; @@ -4169,7 +4204,6 @@ ac->ac_b_ex.fe_logical = ex.fe_logical; BUG_ON(ac->ac_o_ex.fe_logical < ac->ac_b_ex.fe_logical); - BUG_ON(ac->ac_o_ex.fe_len > ac->ac_b_ex.fe_len); BUG_ON(extent_logical_end(sbi, &ex) > orig_goal_end); } @@ -5895,11 +5929,16 @@ static ext4_grpblk_t ext4_last_grp_cluster(struct super_block *sb, ext4_group_t grp) { - if (grp < ext4_get_groups_count(sb)) - return EXT4_CLUSTERS_PER_GROUP(sb) - 1; - return (ext4_blocks_count(EXT4_SB(sb)->s_es) - - ext4_group_first_block_no(sb, grp) - 1) >> - EXT4_CLUSTER_BITS(sb); + unsigned long nr_clusters_in_group; + + if (grp < (ext4_get_groups_count(sb) - 1)) + nr_clusters_in_group = EXT4_CLUSTERS_PER_GROUP(sb); + else + nr_clusters_in_group = (ext4_blocks_count(EXT4_SB(sb)->s_es) - + ext4_group_first_block_no(sb, grp)) + >> EXT4_CLUSTER_BITS(sb); + + return nr_clusters_in_group - 1; } static bool ext4_trim_interrupted(void) @@ -5911,13 +5950,15 @@ struct ext4_buddy *e4b, ext4_grpblk_t start, ext4_grpblk_t max, ext4_grpblk_t minblocks) { - ext4_grpblk_t next, count, free_count; + ext4_grpblk_t next, count, free_count, last, origin_start; bool set_trimmed = false; void *bitmap; + last = ext4_last_grp_cluster(sb, e4b->bd_group); bitmap = e4b->bd_bitmap; - if (start == 0 && max >= ext4_last_grp_cluster(sb, e4b->bd_group)) + if (start == 0 && max >= last) set_trimmed = true; + origin_start = start; start = max(e4b->bd_info->bb_first_free, start); count = 0; free_count = 0; @@ -5926,7 +5967,10 @@ start = mb_find_next_zero_bit(bitmap, max + 1, start); if (start > max) break; - next = mb_find_next_bit(bitmap, max + 1, start); + + next = mb_find_next_bit(bitmap, last + 1, start); + if (origin_start == 0 && next >= last) + set_trimmed = true; if ((next - start) >= minblocks) { int ret = ext4_trim_extent(sb, start, next - start, e4b); diff -Nru linux-5.10.209/fs/ext4/move_extent.c linux-5.10.216/fs/ext4/move_extent.c --- linux-5.10.209/fs/ext4/move_extent.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/move_extent.c 2024-05-02 14:23:46.000000000 +0000 @@ -615,6 +615,7 @@ goto out; o_end = o_start + len; + *moved_len = 0; while (o_start < o_end) { struct ext4_extent *ex; ext4_lblk_t cur_blk, next_blk; @@ -670,7 +671,7 @@ */ ext4_double_up_write_data_sem(orig_inode, donor_inode); /* Swap original branches with new branches */ - move_extent_per_page(o_filp, donor_inode, + *moved_len += move_extent_per_page(o_filp, donor_inode, orig_page_index, donor_page_index, offset_in_page, cur_len, unwritten, &ret); @@ -680,9 +681,6 @@ o_start += cur_len; d_start += cur_len; } - *moved_len = o_start - orig_blk; - if (*moved_len > len) - *moved_len = len; out: if (*moved_len) { diff -Nru linux-5.10.209/fs/ext4/resize.c linux-5.10.216/fs/ext4/resize.c --- linux-5.10.209/fs/ext4/resize.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/resize.c 2024-05-02 14:23:46.000000000 +0000 @@ -227,17 +227,24 @@ in the flex group */ __u16 *bg_flags; /* block group flags of groups in @groups */ + ext4_group_t resize_bg; /* number of allocated + new_group_data */ ext4_group_t count; /* number of groups in @groups */ }; /* + * Avoiding memory allocation failures due to too many groups added each time. + */ +#define MAX_RESIZE_BG 16384 + +/* * alloc_flex_gd() allocates a ext4_new_flex_group_data with size of * @flexbg_size. * * Returns NULL on failure otherwise address of the allocated structure. */ -static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned long flexbg_size) +static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned int flexbg_size) { struct ext4_new_flex_group_data *flex_gd; @@ -245,17 +252,18 @@ if (flex_gd == NULL) goto out3; - if (flexbg_size >= UINT_MAX / sizeof(struct ext4_new_group_data)) - goto out2; - flex_gd->count = flexbg_size; + if (unlikely(flexbg_size > MAX_RESIZE_BG)) + flex_gd->resize_bg = MAX_RESIZE_BG; + else + flex_gd->resize_bg = flexbg_size; - flex_gd->groups = kmalloc_array(flexbg_size, + flex_gd->groups = kmalloc_array(flex_gd->resize_bg, sizeof(struct ext4_new_group_data), GFP_NOFS); if (flex_gd->groups == NULL) goto out2; - flex_gd->bg_flags = kmalloc_array(flexbg_size, sizeof(__u16), + flex_gd->bg_flags = kmalloc_array(flex_gd->resize_bg, sizeof(__u16), GFP_NOFS); if (flex_gd->bg_flags == NULL) goto out1; @@ -292,7 +300,7 @@ */ static int ext4_alloc_group_tables(struct super_block *sb, struct ext4_new_flex_group_data *flex_gd, - int flexbg_size) + unsigned int flexbg_size) { struct ext4_new_group_data *group_data = flex_gd->groups; ext4_fsblk_t start_blk; @@ -393,12 +401,12 @@ group = group_data[0].group; printk(KERN_DEBUG "EXT4-fs: adding a flex group with " - "%d groups, flexbg size is %d:\n", flex_gd->count, + "%u groups, flexbg size is %u:\n", flex_gd->count, flexbg_size); for (i = 0; i < flex_gd->count; i++) { ext4_debug( - "adding %s group %u: %u blocks (%d free, %d mdata blocks)\n", + "adding %s group %u: %u blocks (%u free, %u mdata blocks)\n", ext4_bg_has_super(sb, group + i) ? "normal" : "no-super", group + i, group_data[i].blocks_count, @@ -1537,7 +1545,8 @@ int gdb_num = group / EXT4_DESC_PER_BLOCK(sb); int gdb_num_end = ((group + flex_gd->count - 1) / EXT4_DESC_PER_BLOCK(sb)); - int meta_bg = ext4_has_feature_meta_bg(sb); + int meta_bg = ext4_has_feature_meta_bg(sb) && + gdb_num >= le32_to_cpu(es->s_first_meta_bg); sector_t padding_blocks = meta_bg ? 0 : sbi->s_sbh->b_blocknr - ext4_group_first_block_no(sb, 0); sector_t old_gdb = 0; @@ -1562,8 +1571,7 @@ static int ext4_setup_next_flex_gd(struct super_block *sb, struct ext4_new_flex_group_data *flex_gd, - ext4_fsblk_t n_blocks_count, - unsigned long flexbg_size) + ext4_fsblk_t n_blocks_count) { struct ext4_sb_info *sbi = EXT4_SB(sb); struct ext4_super_block *es = sbi->s_es; @@ -1587,7 +1595,7 @@ BUG_ON(last); ext4_get_group_no_and_offset(sb, n_blocks_count - 1, &n_group, &last); - last_group = group | (flexbg_size - 1); + last_group = group | (flex_gd->resize_bg - 1); if (last_group > n_group) last_group = n_group; @@ -1941,8 +1949,9 @@ ext4_fsblk_t o_blocks_count; ext4_fsblk_t n_blocks_count_retry = 0; unsigned long last_update_time = 0; - int err = 0, flexbg_size = 1 << sbi->s_log_groups_per_flex; + int err = 0; int meta_bg; + unsigned int flexbg_size = ext4_flex_bg_size(sbi); /* See if the device is actually as big as what was requested */ bh = ext4_sb_bread(sb, n_blocks_count - 1, 0); @@ -2083,8 +2092,7 @@ /* Add flex groups. Note that a regular group is a * flex group with 1 group. */ - while (ext4_setup_next_flex_gd(sb, flex_gd, n_blocks_count, - flexbg_size)) { + while (ext4_setup_next_flex_gd(sb, flex_gd, n_blocks_count)) { if (jiffies - last_update_time > HZ * 10) { if (last_update_time) ext4_msg(sb, KERN_INFO, diff -Nru linux-5.10.209/fs/ext4/super.c linux-5.10.216/fs/ext4/super.c --- linux-5.10.209/fs/ext4/super.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ext4/super.c 2024-05-02 14:23:46.000000000 +0000 @@ -6205,6 +6205,10 @@ if (IS_ERR(handle)) return PTR_ERR(handle); ret = dquot_commit(dquot); + if (ret < 0) + ext4_error_err(dquot->dq_sb, -ret, + "Failed to commit dquot type %d", + dquot->dq_id.type); err = ext4_journal_stop(handle); if (!ret) ret = err; @@ -6221,6 +6225,10 @@ if (IS_ERR(handle)) return PTR_ERR(handle); ret = dquot_acquire(dquot); + if (ret < 0) + ext4_error_err(dquot->dq_sb, -ret, + "Failed to acquire dquot type %d", + dquot->dq_id.type); err = ext4_journal_stop(handle); if (!ret) ret = err; @@ -6240,6 +6248,10 @@ return PTR_ERR(handle); } ret = dquot_release(dquot); + if (ret < 0) + ext4_error_err(dquot->dq_sb, -ret, + "Failed to release dquot type %d", + dquot->dq_id.type); err = ext4_journal_stop(handle); if (!ret) ret = err; diff -Nru linux-5.10.209/fs/f2fs/file.c linux-5.10.216/fs/f2fs/file.c --- linux-5.10.209/fs/f2fs/file.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/f2fs/file.c 2024-05-02 14:23:46.000000000 +0000 @@ -3663,7 +3663,13 @@ goto next; } - if (__is_valid_data_blkaddr(blkaddr)) { + /* + * compressed cluster was not released due to it + * fails in release_compress_blocks(), so NEW_ADDR + * is a possible case. + */ + if (blkaddr == NEW_ADDR || + __is_valid_data_blkaddr(blkaddr)) { compr_blocks++; continue; } @@ -3673,6 +3679,11 @@ } reserved = cluster_size - compr_blocks; + + /* for the case all blocks in cluster were reserved */ + if (reserved == 1) + goto next; + ret = inc_valid_block_count(sbi, dn->inode, &reserved); if (ret) return ret; diff -Nru linux-5.10.209/fs/f2fs/recovery.c linux-5.10.216/fs/f2fs/recovery.c --- linux-5.10.209/fs/f2fs/recovery.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/f2fs/recovery.c 2024-05-02 14:23:46.000000000 +0000 @@ -641,7 +641,16 @@ */ if (dest == NEW_ADDR) { f2fs_truncate_data_blocks_range(&dn, 1); - f2fs_reserve_new_block(&dn); + do { + err = f2fs_reserve_new_block(&dn); + if (err == -ENOSPC) { + f2fs_bug_on(sbi, 1); + break; + } + } while (err && + IS_ENABLED(CONFIG_F2FS_FAULT_INJECTION)); + if (err) + goto err; continue; } @@ -649,12 +658,14 @@ if (f2fs_is_valid_blkaddr(sbi, dest, META_POR)) { if (src == NULL_ADDR) { - err = f2fs_reserve_new_block(&dn); - while (err && - IS_ENABLED(CONFIG_F2FS_FAULT_INJECTION)) + do { err = f2fs_reserve_new_block(&dn); - /* We should not get -ENOSPC */ - f2fs_bug_on(sbi, err); + if (err == -ENOSPC) { + f2fs_bug_on(sbi, 1); + break; + } + } while (err && + IS_ENABLED(CONFIG_F2FS_FAULT_INJECTION)); if (err) goto err; } @@ -844,6 +855,8 @@ if (!err && fix_curseg_write_pointer && !f2fs_readonly(sbi->sb) && f2fs_sb_has_blkzoned(sbi)) { err = f2fs_fix_curseg_write_pointer(sbi); + if (!err) + err = f2fs_check_write_pointer(sbi); ret = err; } diff -Nru linux-5.10.209/fs/fat/nfs.c linux-5.10.216/fs/fat/nfs.c --- linux-5.10.209/fs/fat/nfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/fat/nfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -130,6 +130,12 @@ fid->parent_i_gen = parent->i_generation; type = FILEID_FAT_WITH_PARENT; *lenp = FAT_FID_SIZE_WITH_PARENT; + } else { + /* + * We need to initialize this field because the fh is actually + * 12 bytes long + */ + fid->parent_i_pos_hi = 0; } return type; diff -Nru linux-5.10.209/fs/fhandle.c linux-5.10.216/fs/fhandle.c --- linux-5.10.209/fs/fhandle.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/fhandle.c 2024-05-02 14:23:46.000000000 +0000 @@ -37,7 +37,7 @@ if (f_handle.handle_bytes > MAX_HANDLE_SZ) return -EINVAL; - handle = kmalloc(sizeof(struct file_handle) + f_handle.handle_bytes, + handle = kzalloc(sizeof(struct file_handle) + f_handle.handle_bytes, GFP_KERNEL); if (!handle) return -ENOMEM; diff -Nru linux-5.10.209/fs/fuse/dir.c linux-5.10.216/fs/fuse/dir.c --- linux-5.10.209/fs/fuse/dir.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/fuse/dir.c 2024-05-02 14:23:46.000000000 +0000 @@ -451,6 +451,10 @@ goto out_put_forget; if (fuse_invalid_attr(&outarg->attr)) goto out_put_forget; + if (outarg->nodeid == FUSE_ROOT_ID && outarg->generation != 0) { + pr_warn_once("root generation should be zero\n"); + outarg->generation = 0; + } *inode = fuse_iget(sb, outarg->nodeid, outarg->generation, &outarg->attr, entry_attr_timeout(outarg), diff -Nru linux-5.10.209/fs/fuse/fuse_i.h linux-5.10.216/fs/fuse/fuse_i.h --- linux-5.10.209/fs/fuse/fuse_i.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/fuse/fuse_i.h 2024-05-02 14:23:46.000000000 +0000 @@ -873,7 +873,6 @@ static inline void fuse_make_bad(struct inode *inode) { - remove_inode_hash(inode); set_bit(FUSE_I_BAD, &get_fuse_inode(inode)->state); } diff -Nru linux-5.10.209/fs/fuse/inode.c linux-5.10.216/fs/fuse/inode.c --- linux-5.10.209/fs/fuse/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/fuse/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -352,8 +352,11 @@ } else if (fuse_stale_inode(inode, generation, attr)) { /* nodeid was reused, any I/O on the old inode should fail */ fuse_make_bad(inode); - iput(inode); - goto retry; + if (inode != d_inode(sb->s_root)) { + remove_inode_hash(inode); + iput(inode); + goto retry; + } } done: fi = get_fuse_inode(inode); diff -Nru linux-5.10.209/fs/hugetlbfs/inode.c linux-5.10.216/fs/hugetlbfs/inode.c --- linux-5.10.209/fs/hugetlbfs/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/hugetlbfs/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -135,6 +135,7 @@ loff_t len, vma_len; int ret; struct hstate *h = hstate_file(file); + vm_flags_t vm_flags; /* * vma address alignment (but not the pgoff alignment) has @@ -176,10 +177,20 @@ file_accessed(file); ret = -ENOMEM; - if (hugetlb_reserve_pages(inode, + + vm_flags = vma->vm_flags; + /* + * for SHM_HUGETLB, the pages are reserved in the shmget() call so skip + * reserving here. Note: only for SHM hugetlbfs file, the inode + * flag S_PRIVATE is set. + */ + if (inode->i_flags & S_PRIVATE) + vm_flags |= VM_NORESERVE; + + if (!hugetlb_reserve_pages(inode, vma->vm_pgoff >> huge_page_order(h), len >> huge_page_shift(h), vma, - vma->vm_flags)) + vm_flags)) goto out; ret = 0; @@ -1234,6 +1245,7 @@ { struct hugetlbfs_fs_context *ctx = fc->fs_private; struct fs_parse_result result; + struct hstate *h; char *rest; unsigned long ps; int opt; @@ -1278,11 +1290,12 @@ case Opt_pagesize: ps = memparse(param->string, &rest); - ctx->hstate = size_to_hstate(ps); - if (!ctx->hstate) { + h = size_to_hstate(ps); + if (!h) { pr_err("Unsupported page size %lu MB\n", ps >> 20); return -EINVAL; } + ctx->hstate = h; return 0; case Opt_min_size: @@ -1498,7 +1511,7 @@ inode->i_size = size; clear_nlink(inode); - if (hugetlb_reserve_pages(inode, 0, + if (!hugetlb_reserve_pages(inode, 0, size >> huge_page_shift(hstate_inode(inode)), NULL, acctflag)) file = ERR_PTR(-ENOMEM); diff -Nru linux-5.10.209/fs/ioctl.c linux-5.10.216/fs/ioctl.c --- linux-5.10.209/fs/ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -799,8 +799,7 @@ if (!f.file) return -EBADF; - /* RED-PEN how should LSM module know it's handling 32bit? */ - error = security_file_ioctl(f.file, cmd, arg); + error = security_file_ioctl_compat(f.file, cmd, arg); if (error) goto out; diff -Nru linux-5.10.209/fs/isofs/inode.c linux-5.10.216/fs/isofs/inode.c --- linux-5.10.209/fs/isofs/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/isofs/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -907,8 +907,22 @@ * we then decide whether to use the Joliet descriptor. */ inode = isofs_iget(s, sbi->s_firstdatazone, 0); - if (IS_ERR(inode)) - goto out_no_root; + + /* + * Fix for broken CDs with a corrupt root inode but a correct Joliet + * root directory. + */ + if (IS_ERR(inode)) { + if (joliet_level && sbi->s_firstdatazone != first_data_zone) { + printk(KERN_NOTICE + "ISOFS: root inode is unusable. " + "Disabling Rock Ridge and switching to Joliet."); + sbi->s_rock = 0; + inode = NULL; + } else { + goto out_no_root; + } + } /* * Fix for broken CDs with Rock Ridge and empty ISO root directory but diff -Nru linux-5.10.209/fs/jbd2/checkpoint.c linux-5.10.216/fs/jbd2/checkpoint.c --- linux-5.10.209/fs/jbd2/checkpoint.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/jbd2/checkpoint.c 2024-05-02 14:23:46.000000000 +0000 @@ -58,28 +58,6 @@ } /* - * Move a buffer from the checkpoint list to the checkpoint io list - * - * Called with j_list_lock held - */ -static inline void __buffer_relink_io(struct journal_head *jh) -{ - transaction_t *transaction = jh->b_cp_transaction; - - __buffer_unlink_first(jh); - - if (!transaction->t_checkpoint_io_list) { - jh->b_cpnext = jh->b_cpprev = jh; - } else { - jh->b_cpnext = transaction->t_checkpoint_io_list; - jh->b_cpprev = transaction->t_checkpoint_io_list->b_cpprev; - jh->b_cpprev->b_cpnext = jh; - jh->b_cpnext->b_cpprev = jh; - } - transaction->t_checkpoint_io_list = jh; -} - -/* * Try to release a checkpointed buffer from its transaction. * Returns 1 if we released it and 2 if we also released the * whole transaction. @@ -91,8 +69,7 @@ int ret = 0; struct buffer_head *bh = jh2bh(jh); - if (jh->b_transaction == NULL && !buffer_locked(bh) && - !buffer_dirty(bh) && !buffer_write_io_error(bh)) { + if (!jh->b_transaction && !buffer_locked(bh) && !buffer_dirty(bh)) { JBUFFER_TRACE(jh, "remove from checkpoint list"); ret = __jbd2_journal_remove_checkpoint(jh) + 1; } @@ -191,6 +168,7 @@ struct buffer_head *bh = journal->j_chkpt_bhs[i]; BUFFER_TRACE(bh, "brelse"); __brelse(bh); + journal->j_chkpt_bhs[i] = NULL; } *batch_count = 0; } @@ -228,7 +206,6 @@ * OK, we need to start writing disk blocks. Take one transaction * and write it. */ - result = 0; spin_lock(&journal->j_list_lock); if (!journal->j_checkpoint_transactions) goto out; @@ -251,15 +228,6 @@ jh = transaction->t_checkpoint_list; bh = jh2bh(jh); - if (buffer_locked(bh)) { - get_bh(bh); - spin_unlock(&journal->j_list_lock); - wait_on_buffer(bh); - /* the journal_head may have gone by now */ - BUFFER_TRACE(bh, "brelse"); - __brelse(bh); - goto retry; - } if (jh->b_transaction != NULL) { transaction_t *t = jh->b_transaction; tid_t tid = t->t_tid; @@ -294,32 +262,50 @@ spin_lock(&journal->j_list_lock); goto restart; } - if (!buffer_dirty(bh)) { - if (unlikely(buffer_write_io_error(bh)) && !result) - result = -EIO; + if (!trylock_buffer(bh)) { + /* + * The buffer is locked, it may be writing back, or + * flushing out in the last couple of cycles, or + * re-adding into a new transaction, need to check + * it again until it's unlocked. + */ + get_bh(bh); + spin_unlock(&journal->j_list_lock); + wait_on_buffer(bh); + /* the journal_head may have gone by now */ + BUFFER_TRACE(bh, "brelse"); + __brelse(bh); + goto retry; + } else if (!buffer_dirty(bh)) { + unlock_buffer(bh); BUFFER_TRACE(bh, "remove from checkpoint"); - if (__jbd2_journal_remove_checkpoint(jh)) - /* The transaction was released; we're done */ + /* + * If the transaction was released or the checkpoint + * list was empty, we're done. + */ + if (__jbd2_journal_remove_checkpoint(jh) || + !transaction->t_checkpoint_list) goto out; - continue; + } else { + unlock_buffer(bh); + /* + * We are about to write the buffer, it could be + * raced by some other transaction shrink or buffer + * re-log logic once we release the j_list_lock, + * leave it on the checkpoint list and check status + * again to make sure it's clean. + */ + BUFFER_TRACE(bh, "queue"); + get_bh(bh); + J_ASSERT_BH(bh, !buffer_jwrite(bh)); + journal->j_chkpt_bhs[batch_count++] = bh; + transaction->t_chp_stats.cs_written++; + transaction->t_checkpoint_list = jh->b_cpnext; } - /* - * Important: we are about to write the buffer, and - * possibly block, while still holding the journal - * lock. We cannot afford to let the transaction - * logic start messing around with this buffer before - * we write it to disk, as that would break - * recoverability. - */ - BUFFER_TRACE(bh, "queue"); - get_bh(bh); - J_ASSERT_BH(bh, !buffer_jwrite(bh)); - journal->j_chkpt_bhs[batch_count++] = bh; - __buffer_relink_io(jh); - transaction->t_chp_stats.cs_written++; + if ((batch_count == JBD2_NR_BATCH) || - need_resched() || - spin_needbreak(&journal->j_list_lock)) + need_resched() || spin_needbreak(&journal->j_list_lock) || + jh2bh(transaction->t_checkpoint_list) == journal->j_chkpt_bhs[0]) goto unlock_and_flush; } @@ -333,46 +319,9 @@ goto restart; } - /* - * Now we issued all of the transaction's buffers, let's deal - * with the buffers that are out for I/O. - */ -restart2: - /* Did somebody clean up the transaction in the meanwhile? */ - if (journal->j_checkpoint_transactions != transaction || - transaction->t_tid != this_tid) - goto out; - - while (transaction->t_checkpoint_io_list) { - jh = transaction->t_checkpoint_io_list; - bh = jh2bh(jh); - if (buffer_locked(bh)) { - get_bh(bh); - spin_unlock(&journal->j_list_lock); - wait_on_buffer(bh); - /* the journal_head may have gone by now */ - BUFFER_TRACE(bh, "brelse"); - __brelse(bh); - spin_lock(&journal->j_list_lock); - goto restart2; - } - if (unlikely(buffer_write_io_error(bh)) && !result) - result = -EIO; - - /* - * Now in whatever state the buffer currently is, we - * know that it has been written out and so we can - * drop it from the list - */ - if (__jbd2_journal_remove_checkpoint(jh)) - break; - } out: spin_unlock(&journal->j_list_lock); - if (result < 0) - jbd2_journal_abort(journal, result); - else - result = jbd2_cleanup_journal_tail(journal); + result = jbd2_cleanup_journal_tail(journal); return (result < 0) ? result : 0; } diff -Nru linux-5.10.209/fs/jfs/jfs_dmap.c linux-5.10.216/fs/jfs/jfs_dmap.c --- linux-5.10.209/fs/jfs/jfs_dmap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/jfs/jfs_dmap.c 2024-05-02 14:23:46.000000000 +0000 @@ -63,10 +63,10 @@ */ static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, int nblocks); -static void dbSplit(dmtree_t * tp, int leafno, int splitsz, int newval); -static int dbBackSplit(dmtree_t * tp, int leafno); -static int dbJoin(dmtree_t * tp, int leafno, int newval); -static void dbAdjTree(dmtree_t * tp, int leafno, int newval); +static void dbSplit(dmtree_t *tp, int leafno, int splitsz, int newval, bool is_ctl); +static int dbBackSplit(dmtree_t *tp, int leafno, bool is_ctl); +static int dbJoin(dmtree_t *tp, int leafno, int newval, bool is_ctl); +static void dbAdjTree(dmtree_t *tp, int leafno, int newval, bool is_ctl); static int dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level); static int dbAllocAny(struct bmap * bmp, s64 nblocks, int l2nb, s64 * results); @@ -2171,7 +2171,7 @@ * system. */ if (dp->tree.stree[word] == NOFREE) - dbBackSplit((dmtree_t *) & dp->tree, word); + dbBackSplit((dmtree_t *)&dp->tree, word, false); dbAllocBits(bmp, dp, blkno, nblocks); } @@ -2257,7 +2257,7 @@ * the binary system of the leaves if need be. */ dbSplit(tp, word, BUDMIN, - dbMaxBud((u8 *) & dp->wmap[word])); + dbMaxBud((u8 *)&dp->wmap[word]), false); word += 1; } else { @@ -2297,7 +2297,7 @@ * system of the leaves to reflect the current * allocation (size). */ - dbSplit(tp, word, size, NOFREE); + dbSplit(tp, word, size, NOFREE, false); /* get the number of dmap words handled */ nw = BUDSIZE(size, BUDMIN); @@ -2404,7 +2404,7 @@ /* update the leaf for this dmap word. */ rc = dbJoin(tp, word, - dbMaxBud((u8 *) & dp->wmap[word])); + dbMaxBud((u8 *)&dp->wmap[word]), false); if (rc) return rc; @@ -2437,7 +2437,7 @@ /* update the leaf. */ - rc = dbJoin(tp, word, size); + rc = dbJoin(tp, word, size, false); if (rc) return rc; @@ -2589,14 +2589,14 @@ * that it is at the front of a binary buddy system. */ if (oldval == NOFREE) { - rc = dbBackSplit((dmtree_t *) dcp, leafno); + rc = dbBackSplit((dmtree_t *)dcp, leafno, true); if (rc) return rc; oldval = dcp->stree[ti]; } - dbSplit((dmtree_t *) dcp, leafno, dcp->budmin, newval); + dbSplit((dmtree_t *) dcp, leafno, dcp->budmin, newval, true); } else { - rc = dbJoin((dmtree_t *) dcp, leafno, newval); + rc = dbJoin((dmtree_t *) dcp, leafno, newval, true); if (rc) return rc; } @@ -2625,7 +2625,7 @@ */ if (alloc) { dbJoin((dmtree_t *) dcp, leafno, - oldval); + oldval, true); } else { /* the dbJoin() above might have * caused a larger binary buddy system @@ -2635,9 +2635,9 @@ */ if (dcp->stree[ti] == NOFREE) dbBackSplit((dmtree_t *) - dcp, leafno); + dcp, leafno, true); dbSplit((dmtree_t *) dcp, leafno, - dcp->budmin, oldval); + dcp->budmin, oldval, true); } /* release the buffer and return the error. @@ -2685,7 +2685,7 @@ * * serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit; */ -static void dbSplit(dmtree_t * tp, int leafno, int splitsz, int newval) +static void dbSplit(dmtree_t *tp, int leafno, int splitsz, int newval, bool is_ctl) { int budsz; int cursz; @@ -2707,7 +2707,7 @@ while (cursz >= splitsz) { /* update the buddy's leaf with its new value. */ - dbAdjTree(tp, leafno ^ budsz, cursz); + dbAdjTree(tp, leafno ^ budsz, cursz, is_ctl); /* on to the next size and buddy. */ @@ -2719,7 +2719,7 @@ /* adjust the dmap tree to reflect the specified leaf's new * value. */ - dbAdjTree(tp, leafno, newval); + dbAdjTree(tp, leafno, newval, is_ctl); } @@ -2750,7 +2750,7 @@ * * serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit; */ -static int dbBackSplit(dmtree_t * tp, int leafno) +static int dbBackSplit(dmtree_t *tp, int leafno, bool is_ctl) { int budsz, bud, w, bsz, size; int cursz; @@ -2801,7 +2801,7 @@ * system in two. */ cursz = leaf[bud] - 1; - dbSplit(tp, bud, cursz, cursz); + dbSplit(tp, bud, cursz, cursz, is_ctl); break; } } @@ -2829,7 +2829,7 @@ * * RETURN VALUES: none */ -static int dbJoin(dmtree_t * tp, int leafno, int newval) +static int dbJoin(dmtree_t *tp, int leafno, int newval, bool is_ctl) { int budsz, buddy; s8 *leaf; @@ -2884,12 +2884,12 @@ if (leafno < buddy) { /* leafno is the left buddy. */ - dbAdjTree(tp, buddy, NOFREE); + dbAdjTree(tp, buddy, NOFREE, is_ctl); } else { /* buddy is the left buddy and becomes * leafno. */ - dbAdjTree(tp, leafno, NOFREE); + dbAdjTree(tp, leafno, NOFREE, is_ctl); leafno = buddy; } @@ -2902,7 +2902,7 @@ /* update the leaf value. */ - dbAdjTree(tp, leafno, newval); + dbAdjTree(tp, leafno, newval, is_ctl); return 0; } @@ -2923,15 +2923,20 @@ * * RETURN VALUES: none */ -static void dbAdjTree(dmtree_t * tp, int leafno, int newval) +static void dbAdjTree(dmtree_t *tp, int leafno, int newval, bool is_ctl) { int lp, pp, k; - int max; + int max, size; + + size = is_ctl ? CTLTREESIZE : TREESIZE; /* pick up the index of the leaf for this leafno. */ lp = leafno + le32_to_cpu(tp->dmt_leafidx); + if (WARN_ON_ONCE(lp >= size || lp < 0)) + return; + /* is the current value the same as the old value ? if so, * there is nothing to do. */ diff -Nru linux-5.10.209/fs/jfs/jfs_dtree.c linux-5.10.216/fs/jfs/jfs_dtree.c --- linux-5.10.209/fs/jfs/jfs_dtree.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/jfs/jfs_dtree.c 2024-05-02 14:23:46.000000000 +0000 @@ -633,6 +633,11 @@ for (base = 0, lim = p->header.nextindex; lim; lim >>= 1) { index = base + (lim >> 1); + if (stbl[index] < 0) { + rc = -EIO; + goto out; + } + if (p->header.flag & BT_LEAF) { /* uppercase leaf name to compare */ cmp = @@ -1970,7 +1975,7 @@ do { f = &rp->slot[fsi]; fsi = f->next; - } while (fsi != -1); + } while (fsi >= 0); f->next = n; } diff -Nru linux-5.10.209/fs/jfs/jfs_imap.c linux-5.10.216/fs/jfs/jfs_imap.c --- linux-5.10.209/fs/jfs/jfs_imap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/jfs/jfs_imap.c 2024-05-02 14:23:46.000000000 +0000 @@ -2181,6 +2181,9 @@ /* get the ag and iag numbers for this iag. */ agno = BLKTOAG(le64_to_cpu(iagp->agstart), sbi); + if (agno >= MAXAG || agno < 0) + return -EIO; + iagno = le32_to_cpu(iagp->iagnum); /* check if this is the last free extent within the diff -Nru linux-5.10.209/fs/jfs/jfs_mount.c linux-5.10.216/fs/jfs/jfs_mount.c --- linux-5.10.209/fs/jfs/jfs_mount.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/jfs/jfs_mount.c 2024-05-02 14:23:46.000000000 +0000 @@ -172,15 +172,15 @@ } jfs_info("jfs_mount: ipimap:0x%p", ipimap); - /* map further access of per fileset inodes by the fileset inode */ - sbi->ipimap = ipimap; - /* initialize fileset inode allocation map */ if ((rc = diMount(ipimap))) { jfs_err("jfs_mount: diMount failed w/rc = %d", rc); goto err_ipimap; } + /* map further access of per fileset inodes by the fileset inode */ + sbi->ipimap = ipimap; + return rc; /* diff -Nru linux-5.10.209/fs/kernfs/dir.c linux-5.10.216/fs/kernfs/dir.c --- linux-5.10.209/fs/kernfs/dir.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/kernfs/dir.c 2024-05-02 14:23:46.000000000 +0000 @@ -696,6 +696,18 @@ { struct kernfs_node *kn; + if (parent->mode & S_ISGID) { + /* this code block imitates inode_init_owner() for + * kernfs + */ + + if (parent->iattr) + gid = parent->iattr->ia_gid; + + if (flags & KERNFS_DIR) + mode |= S_ISGID; + } + kn = __kernfs_new_node(kernfs_root(parent), parent, name, mode, uid, gid, flags); if (kn) { diff -Nru linux-5.10.209/fs/namei.c linux-5.10.216/fs/namei.c --- linux-5.10.209/fs/namei.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/namei.c 2024-05-02 14:23:46.000000000 +0000 @@ -2771,20 +2771,14 @@ p = d_ancestor(p2, p1); if (p) { inode_lock_nested(p2->d_inode, I_MUTEX_PARENT); - inode_lock_nested(p1->d_inode, I_MUTEX_CHILD); + inode_lock_nested(p1->d_inode, I_MUTEX_PARENT2); return p; } p = d_ancestor(p1, p2); - if (p) { - inode_lock_nested(p1->d_inode, I_MUTEX_PARENT); - inode_lock_nested(p2->d_inode, I_MUTEX_CHILD); - return p; - } - - lock_two_inodes(p1->d_inode, p2->d_inode, - I_MUTEX_PARENT, I_MUTEX_PARENT2); - return NULL; + inode_lock_nested(p1->d_inode, I_MUTEX_PARENT); + inode_lock_nested(p2->d_inode, I_MUTEX_PARENT2); + return p; } EXPORT_SYMBOL(lock_rename); @@ -4260,11 +4254,12 @@ * * a) we can get into loop creation. * b) race potential - two innocent renames can create a loop together. - * That's where 4.4 screws up. Current fix: serialization on + * That's where 4.4BSD screws up. Current fix: serialization on * sb->s_vfs_rename_mutex. We might be more accurate, but that's another * story. - * c) we have to lock _four_ objects - parents and victim (if it exists), - * and source. + * c) we may have to lock up to _four_ objects - parents and victim (if it exists), + * and source (if it's a non-directory or a subdirectory that moves to + * different parent). * And that - after we got ->i_mutex on parents (until then we don't know * whether the target exists). Solution: try to be smart with locking * order for inodes. We rely on the fact that tree topology may change @@ -4293,6 +4288,7 @@ bool new_is_dir = false; unsigned max_links = new_dir->i_sb->s_max_links; struct name_snapshot old_name; + bool lock_old_subdir, lock_new_subdir; if (source == target) return 0; @@ -4342,15 +4338,32 @@ take_dentry_name_snapshot(&old_name, old_dentry); dget(new_dentry); /* - * Lock all moved children. Moved directories may need to change parent - * pointer so they need the lock to prevent against concurrent - * directory changes moving parent pointer. For regular files we've - * historically always done this. The lockdep locking subclasses are - * somewhat arbitrary but RENAME_EXCHANGE in particular can swap - * regular files and directories so it's difficult to tell which - * subclasses to use. + * Lock children. + * The source subdirectory needs to be locked on cross-directory + * rename or cross-directory exchange since its parent changes. + * The target subdirectory needs to be locked on cross-directory + * exchange due to parent change and on any rename due to becoming + * a victim. + * Non-directories need locking in all cases (for NFS reasons); + * they get locked after any subdirectories (in inode address order). + * + * NOTE: WE ONLY LOCK UNRELATED DIRECTORIES IN CROSS-DIRECTORY CASE. + * NEVER, EVER DO THAT WITHOUT ->s_vfs_rename_mutex. */ - lock_two_inodes(source, target, I_MUTEX_NORMAL, I_MUTEX_NONDIR2); + lock_old_subdir = new_dir != old_dir; + lock_new_subdir = new_dir != old_dir || !(flags & RENAME_EXCHANGE); + if (is_dir) { + if (lock_old_subdir) + inode_lock_nested(source, I_MUTEX_CHILD); + if (target && (!new_is_dir || lock_new_subdir)) + inode_lock(target); + } else if (new_is_dir) { + if (lock_new_subdir) + inode_lock_nested(target, I_MUTEX_CHILD); + inode_lock(source); + } else { + lock_two_nondirectories(source, target); + } error = -EBUSY; if (is_local_mountpoint(old_dentry) || is_local_mountpoint(new_dentry)) @@ -4394,8 +4407,9 @@ d_exchange(old_dentry, new_dentry); } out: - inode_unlock(source); - if (target) + if (!is_dir || lock_old_subdir) + inode_unlock(source); + if (target && (!new_is_dir || lock_new_subdir)) inode_unlock(target); dput(new_dentry); if (!error) { diff -Nru linux-5.10.209/fs/nfs/direct.c linux-5.10.216/fs/nfs/direct.c --- linux-5.10.209/fs/nfs/direct.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nfs/direct.c 2024-05-02 14:23:46.000000000 +0000 @@ -678,10 +678,17 @@ LIST_HEAD(mds_list); nfs_init_cinfo_from_dreq(&cinfo, dreq); + nfs_commit_begin(cinfo.mds); nfs_scan_commit(dreq->inode, &mds_list, &cinfo); res = nfs_generic_commit_list(dreq->inode, &mds_list, 0, &cinfo); - if (res < 0) /* res == -ENOMEM */ - nfs_direct_write_reschedule(dreq); + if (res < 0) { /* res == -ENOMEM */ + spin_lock(&dreq->lock); + if (dreq->flags == 0) + dreq->flags = NFS_ODIRECT_RESCHED_WRITES; + spin_unlock(&dreq->lock); + } + if (nfs_commit_end(cinfo.mds)) + nfs_direct_write_complete(dreq); } static void nfs_direct_write_clear_reqs(struct nfs_direct_req *dreq) diff -Nru linux-5.10.209/fs/nfs/nfs42.h linux-5.10.216/fs/nfs/nfs42.h --- linux-5.10.209/fs/nfs/nfs42.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nfs/nfs42.h 2024-05-02 14:23:46.000000000 +0000 @@ -54,11 +54,14 @@ * They would be 7 bytes long in the eventual buffer ("user.x\0"), and * 8 bytes long XDR-encoded. * - * Include the trailing eof word as well. + * Include the trailing eof word as well and make the result a multiple + * of 4 bytes. */ static inline u32 nfs42_listxattr_xdrsize(u32 buflen) { - return ((buflen / (XATTR_USER_PREFIX_LEN + 2)) * 8) + 4; + u32 size = 8 * buflen / (XATTR_USER_PREFIX_LEN + 2) + 4; + + return (size + 3) & ~3; } #endif /* CONFIG_NFS_V4_2 */ #endif /* __LINUX_FS_NFS_NFS4_2_H */ diff -Nru linux-5.10.209/fs/nfs/nfs4proc.c linux-5.10.216/fs/nfs/nfs4proc.c --- linux-5.10.209/fs/nfs/nfs4proc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nfs/nfs4proc.c 2024-05-02 14:23:46.000000000 +0000 @@ -10370,29 +10370,33 @@ static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t size) { ssize_t error, error2, error3; + size_t left = size; - error = generic_listxattr(dentry, list, size); + error = generic_listxattr(dentry, list, left); if (error < 0) return error; if (list) { list += error; - size -= error; + left -= error; } - error2 = nfs4_listxattr_nfs4_label(d_inode(dentry), list, size); + error2 = nfs4_listxattr_nfs4_label(d_inode(dentry), list, left); if (error2 < 0) return error2; if (list) { list += error2; - size -= error2; + left -= error2; } - error3 = nfs4_listxattr_nfs4_user(d_inode(dentry), list, size); + error3 = nfs4_listxattr_nfs4_user(d_inode(dentry), list, left); if (error3 < 0) return error3; - return error + error2 + error3; + error += error2 + error3; + if (size && error > size) + return -ERANGE; + return error; } static void nfs4_enable_swap(struct inode *inode) diff -Nru linux-5.10.209/fs/nfs/nfsroot.c linux-5.10.216/fs/nfs/nfsroot.c --- linux-5.10.209/fs/nfs/nfsroot.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nfs/nfsroot.c 2024-05-02 14:23:46.000000000 +0000 @@ -175,10 +175,10 @@ size_t len = strlen(dest); if (len && dest[len - 1] != ',') - if (strlcat(dest, ",", destlen) > destlen) + if (strlcat(dest, ",", destlen) >= destlen) return -1; - if (strlcat(dest, src, destlen) > destlen) + if (strlcat(dest, src, destlen) >= destlen) return -1; return 0; } diff -Nru linux-5.10.209/fs/nfs/write.c linux-5.10.216/fs/nfs/write.c --- linux-5.10.209/fs/nfs/write.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nfs/write.c 2024-05-02 14:23:46.000000000 +0000 @@ -1637,7 +1637,7 @@ !atomic_read(&cinfo->rpcs_out)); } -static void nfs_commit_begin(struct nfs_mds_commit_info *cinfo) +void nfs_commit_begin(struct nfs_mds_commit_info *cinfo) { atomic_inc(&cinfo->rpcs_out); } diff -Nru linux-5.10.209/fs/nilfs2/btree.c linux-5.10.216/fs/nilfs2/btree.c --- linux-5.10.209/fs/nilfs2/btree.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/btree.c 2024-05-02 14:23:46.000000000 +0000 @@ -724,7 +724,7 @@ dat = nilfs_bmap_get_dat(btree); ret = nilfs_dat_translate(dat, ptr, &blocknr); if (ret < 0) - goto out; + goto dat_error; ptr = blocknr; } cnt = 1; @@ -743,7 +743,7 @@ if (dat) { ret = nilfs_dat_translate(dat, ptr2, &blocknr); if (ret < 0) - goto out; + goto dat_error; ptr2 = blocknr; } if (ptr2 != ptr + cnt || ++cnt == maxblocks) @@ -782,6 +782,11 @@ out: nilfs_btree_free_path(path); return ret; + + dat_error: + if (ret == -ENOENT) + ret = -EINVAL; /* Notify bmap layer of metadata corruption */ + goto out; } static void nilfs_btree_promote_key(struct nilfs_bmap *btree, diff -Nru linux-5.10.209/fs/nilfs2/dat.c linux-5.10.216/fs/nilfs2/dat.c --- linux-5.10.209/fs/nilfs2/dat.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/dat.c 2024-05-02 14:23:46.000000000 +0000 @@ -40,8 +40,21 @@ static int nilfs_dat_prepare_entry(struct inode *dat, struct nilfs_palloc_req *req, int create) { - return nilfs_palloc_get_entry_block(dat, req->pr_entry_nr, - create, &req->pr_entry_bh); + int ret; + + ret = nilfs_palloc_get_entry_block(dat, req->pr_entry_nr, + create, &req->pr_entry_bh); + if (unlikely(ret == -ENOENT)) { + nilfs_err(dat->i_sb, + "DAT doesn't have a block to manage vblocknr = %llu", + (unsigned long long)req->pr_entry_nr); + /* + * Return internal code -EINVAL to notify bmap layer of + * metadata corruption. + */ + ret = -EINVAL; + } + return ret; } static void nilfs_dat_commit_entry(struct inode *dat, @@ -123,11 +136,7 @@ int nilfs_dat_prepare_start(struct inode *dat, struct nilfs_palloc_req *req) { - int ret; - - ret = nilfs_dat_prepare_entry(dat, req, 0); - WARN_ON(ret == -ENOENT); - return ret; + return nilfs_dat_prepare_entry(dat, req, 0); } void nilfs_dat_commit_start(struct inode *dat, struct nilfs_palloc_req *req, @@ -154,10 +163,8 @@ int ret; ret = nilfs_dat_prepare_entry(dat, req, 0); - if (ret < 0) { - WARN_ON(ret == -ENOENT); + if (ret < 0) return ret; - } kaddr = kmap_atomic(req->pr_entry_bh->b_page); entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr, diff -Nru linux-5.10.209/fs/nilfs2/dir.c linux-5.10.216/fs/nilfs2/dir.c --- linux-5.10.209/fs/nilfs2/dir.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/dir.c 2024-05-02 14:23:46.000000000 +0000 @@ -243,7 +243,7 @@ #define S_SHIFT 12 static unsigned char -nilfs_type_by_mode[S_IFMT >> S_SHIFT] = { +nilfs_type_by_mode[(S_IFMT >> S_SHIFT) + 1] = { [S_IFREG >> S_SHIFT] = NILFS_FT_REG_FILE, [S_IFDIR >> S_SHIFT] = NILFS_FT_DIR, [S_IFCHR >> S_SHIFT] = NILFS_FT_CHRDEV, diff -Nru linux-5.10.209/fs/nilfs2/direct.c linux-5.10.216/fs/nilfs2/direct.c --- linux-5.10.209/fs/nilfs2/direct.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/direct.c 2024-05-02 14:23:46.000000000 +0000 @@ -66,7 +66,7 @@ dat = nilfs_bmap_get_dat(direct); ret = nilfs_dat_translate(dat, ptr, &blocknr); if (ret < 0) - return ret; + goto dat_error; ptr = blocknr; } @@ -79,7 +79,7 @@ if (dat) { ret = nilfs_dat_translate(dat, ptr2, &blocknr); if (ret < 0) - return ret; + goto dat_error; ptr2 = blocknr; } if (ptr2 != ptr + cnt) @@ -87,6 +87,11 @@ } *ptrp = ptr; return cnt; + + dat_error: + if (ret == -ENOENT) + ret = -EINVAL; /* Notify bmap layer of metadata corruption */ + return ret; } static __u64 diff -Nru linux-5.10.209/fs/nilfs2/file.c linux-5.10.216/fs/nilfs2/file.c --- linux-5.10.209/fs/nilfs2/file.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/file.c 2024-05-02 14:23:46.000000000 +0000 @@ -105,7 +105,13 @@ nilfs_transaction_commit(inode->i_sb); mapped: - wait_for_stable_page(page); + /* + * Since checksumming including data blocks is performed to determine + * the validity of the log to be written and used for recovery, it is + * necessary to wait for writeback to finish here, regardless of the + * stable write requirement of the backing device. + */ + wait_on_page_writeback(page); out: sb_end_pagefault(inode->i_sb); return block_page_mkwrite_return(ret); diff -Nru linux-5.10.209/fs/nilfs2/inode.c linux-5.10.216/fs/nilfs2/inode.c --- linux-5.10.209/fs/nilfs2/inode.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/inode.c 2024-05-02 14:23:46.000000000 +0000 @@ -112,7 +112,7 @@ "%s (ino=%lu): a race condition while inserting a data block at offset=%llu", __func__, inode->i_ino, (unsigned long long)blkoff); - err = 0; + err = -EAGAIN; } nilfs_transaction_abort(inode->i_sb); goto out; diff -Nru linux-5.10.209/fs/nilfs2/recovery.c linux-5.10.216/fs/nilfs2/recovery.c --- linux-5.10.209/fs/nilfs2/recovery.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/recovery.c 2024-05-02 14:23:46.000000000 +0000 @@ -472,9 +472,10 @@ static int nilfs_recovery_copy_block(struct the_nilfs *nilfs, struct nilfs_recovery_block *rb, - struct page *page) + loff_t pos, struct page *page) { struct buffer_head *bh_org; + size_t from = pos & ~PAGE_MASK; void *kaddr; bh_org = __bread(nilfs->ns_bdev, rb->blocknr, nilfs->ns_blocksize); @@ -482,7 +483,7 @@ return -EIO; kaddr = kmap_atomic(page); - memcpy(kaddr + bh_offset(bh_org), bh_org->b_data, bh_org->b_size); + memcpy(kaddr + from, bh_org->b_data, bh_org->b_size); kunmap_atomic(kaddr); brelse(bh_org); return 0; @@ -521,7 +522,7 @@ goto failed_inode; } - err = nilfs_recovery_copy_block(nilfs, rb, page); + err = nilfs_recovery_copy_block(nilfs, rb, pos, page); if (unlikely(err)) goto failed_page; diff -Nru linux-5.10.209/fs/nilfs2/segment.c linux-5.10.216/fs/nilfs2/segment.c --- linux-5.10.209/fs/nilfs2/segment.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/nilfs2/segment.c 2024-05-02 14:23:46.000000000 +0000 @@ -1707,7 +1707,6 @@ list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { - set_buffer_async_write(bh); if (bh == segbuf->sb_super_root) { if (bh->b_page != bd_page) { lock_page(bd_page); @@ -1718,6 +1717,7 @@ } break; } + set_buffer_async_write(bh); if (bh->b_page != fs_page) { nilfs_begin_page_io(fs_page); fs_page = bh->b_page; @@ -1803,7 +1803,6 @@ list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { - clear_buffer_async_write(bh); if (bh == segbuf->sb_super_root) { clear_buffer_uptodate(bh); if (bh->b_page != bd_page) { @@ -1812,6 +1811,7 @@ } break; } + clear_buffer_async_write(bh); if (bh->b_page != fs_page) { nilfs_end_page_io(fs_page, err); fs_page = bh->b_page; @@ -1899,8 +1899,9 @@ BIT(BH_Delay) | BIT(BH_NILFS_Volatile) | BIT(BH_NILFS_Redirected)); - set_mask_bits(&bh->b_state, clear_bits, set_bits); if (bh == segbuf->sb_super_root) { + set_buffer_uptodate(bh); + clear_buffer_dirty(bh); if (bh->b_page != bd_page) { end_page_writeback(bd_page); bd_page = bh->b_page; @@ -1908,6 +1909,7 @@ update_sr = true; break; } + set_mask_bits(&bh->b_state, clear_bits, set_bits); if (bh->b_page != fs_page) { nilfs_end_page_io(fs_page, 0); fs_page = bh->b_page; diff -Nru linux-5.10.209/fs/pipe.c linux-5.10.216/fs/pipe.c --- linux-5.10.209/fs/pipe.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/pipe.c 2024-05-02 14:23:46.000000000 +0000 @@ -435,12 +435,10 @@ goto out; } -#ifdef CONFIG_WATCH_QUEUE - if (pipe->watch_queue) { + if (pipe_has_watch_queue(pipe)) { ret = -EXDEV; goto out; } -#endif /* * If it wasn't empty we try to merge new data into @@ -1302,6 +1300,11 @@ pipe->tail = tail; pipe->head = head; + if (!pipe_has_watch_queue(pipe)) { + pipe->max_usage = nr_slots; + pipe->nr_accounted = nr_slots; + } + spin_unlock_irq(&pipe->rd_wait.lock); /* This might have made more room for writers */ @@ -1319,10 +1322,8 @@ unsigned int nr_slots, size; long ret = 0; -#ifdef CONFIG_WATCH_QUEUE - if (pipe->watch_queue) + if (pipe_has_watch_queue(pipe)) return -EBUSY; -#endif size = round_pipe_size(arg); nr_slots = size >> PAGE_SHIFT; @@ -1355,8 +1356,6 @@ if (ret < 0) goto out_revert_acct; - pipe->max_usage = nr_slots; - pipe->nr_accounted = nr_slots; return pipe->max_usage * PAGE_SIZE; out_revert_acct: @@ -1375,10 +1374,8 @@ if (file->f_op != &pipefifo_fops || !pipe) return NULL; -#ifdef CONFIG_WATCH_QUEUE - if (for_splice && pipe->watch_queue) + if (for_splice && pipe_has_watch_queue(pipe)) return NULL; -#endif return pipe; } diff -Nru linux-5.10.209/fs/pstore/ram.c linux-5.10.216/fs/pstore/ram.c --- linux-5.10.209/fs/pstore/ram.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/pstore/ram.c 2024-05-02 14:23:46.000000000 +0000 @@ -519,6 +519,7 @@ } zone_sz = mem_sz / *cnt; + zone_sz = ALIGN_DOWN(zone_sz, 2); if (!zone_sz) { dev_err(dev, "%s zone size == 0\n", name); goto fail; diff -Nru linux-5.10.209/fs/pstore/zone.c linux-5.10.216/fs/pstore/zone.c --- linux-5.10.209/fs/pstore/zone.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/pstore/zone.c 2024-05-02 14:23:46.000000000 +0000 @@ -973,6 +973,8 @@ char *buf = kasprintf(GFP_KERNEL, "%s: Total %d times\n", kmsg_dump_reason_str(record->reason), record->count); + if (!buf) + return -ENOMEM; hlen = strlen(buf); record->buf = krealloc(buf, hlen + size, GFP_KERNEL); if (!record->buf) { diff -Nru linux-5.10.209/fs/quota/dquot.c linux-5.10.216/fs/quota/dquot.c --- linux-5.10.209/fs/quota/dquot.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/quota/dquot.c 2024-05-02 14:23:46.000000000 +0000 @@ -401,15 +401,17 @@ EXPORT_SYMBOL(dquot_mark_dquot_dirty); /* Dirtify all the dquots - this can block when journalling */ -static inline int mark_all_dquot_dirty(struct dquot * const *dquot) +static inline int mark_all_dquot_dirty(struct dquot __rcu * const *dquots) { int ret, err, cnt; + struct dquot *dquot; ret = err = 0; for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - if (dquot[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) /* Even in case of error we have to continue */ - ret = mark_dquot_dirty(dquot[cnt]); + ret = mark_dquot_dirty(dquot); if (!err) err = ret; } @@ -1006,14 +1008,15 @@ } EXPORT_SYMBOL(dqget); -static inline struct dquot **i_dquot(struct inode *inode) +static inline struct dquot __rcu **i_dquot(struct inode *inode) { - return inode->i_sb->s_op->get_dquots(inode); + /* Force __rcu for now until filesystems are fixed */ + return (struct dquot __rcu **)inode->i_sb->s_op->get_dquots(inode); } static int dqinit_needed(struct inode *inode, int type) { - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; int cnt; if (IS_NOQUOTA(inode)) @@ -1086,59 +1089,7 @@ return err; } -/* - * Remove references to dquots from inode and add dquot to list for freeing - * if we have the last reference to dquot - */ -static void remove_inode_dquot_ref(struct inode *inode, int type, - struct list_head *tofree_head) -{ - struct dquot **dquots = i_dquot(inode); - struct dquot *dquot = dquots[type]; - - if (!dquot) - return; - - dquots[type] = NULL; - if (list_empty(&dquot->dq_free)) { - /* - * The inode still has reference to dquot so it can't be in the - * free list - */ - spin_lock(&dq_list_lock); - list_add(&dquot->dq_free, tofree_head); - spin_unlock(&dq_list_lock); - } else { - /* - * Dquot is already in a list to put so we won't drop the last - * reference here. - */ - dqput(dquot); - } -} - -/* - * Free list of dquots - * Dquots are removed from inodes and no new references can be got so we are - * the only ones holding reference - */ -static void put_dquot_list(struct list_head *tofree_head) -{ - struct list_head *act_head; - struct dquot *dquot; - - act_head = tofree_head->next; - while (act_head != tofree_head) { - dquot = list_entry(act_head, struct dquot, dq_free); - act_head = act_head->next; - /* Remove dquot from the list so we won't have problems... */ - list_del_init(&dquot->dq_free); - dqput(dquot); - } -} - -static void remove_dquot_ref(struct super_block *sb, int type, - struct list_head *tofree_head) +static void remove_dquot_ref(struct super_block *sb, int type) { struct inode *inode; #ifdef CONFIG_QUOTA_DEBUG @@ -1155,11 +1106,18 @@ */ spin_lock(&dq_data_lock); if (!IS_NOQUOTA(inode)) { + struct dquot __rcu **dquots = i_dquot(inode); + struct dquot *dquot = srcu_dereference_check( + dquots[type], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); + #ifdef CONFIG_QUOTA_DEBUG if (unlikely(inode_get_rsv_space(inode) > 0)) reserved = 1; #endif - remove_inode_dquot_ref(inode, type, tofree_head); + rcu_assign_pointer(dquots[type], NULL); + if (dquot) + dqput(dquot); } spin_unlock(&dq_data_lock); } @@ -1176,13 +1134,8 @@ /* Gather all references from inodes and drop them */ static void drop_dquot_ref(struct super_block *sb, int type) { - LIST_HEAD(tofree_head); - - if (sb->dq_op) { - remove_dquot_ref(sb, type, &tofree_head); - synchronize_srcu(&dquot_srcu); - put_dquot_list(&tofree_head); - } + if (sb->dq_op) + remove_dquot_ref(sb, type); } static inline @@ -1515,7 +1468,8 @@ static int __dquot_initialize(struct inode *inode, int type) { int cnt, init_needed = 0; - struct dquot **dquots, *got[MAXQUOTAS] = {}; + struct dquot __rcu **dquots; + struct dquot *got[MAXQUOTAS] = {}; struct super_block *sb = inode->i_sb; qsize_t rsv; int ret = 0; @@ -1590,7 +1544,7 @@ if (!got[cnt]) continue; if (!dquots[cnt]) { - dquots[cnt] = got[cnt]; + rcu_assign_pointer(dquots[cnt], got[cnt]); got[cnt] = NULL; /* * Make quota reservation system happy if someone @@ -1598,12 +1552,16 @@ */ rsv = inode_get_rsv_space(inode); if (unlikely(rsv)) { + struct dquot *dquot = srcu_dereference_check( + dquots[cnt], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); + spin_lock(&inode->i_lock); /* Get reservation again under proper lock */ rsv = __inode_get_rsv_space(inode); - spin_lock(&dquots[cnt]->dq_dqb_lock); - dquots[cnt]->dq_dqb.dqb_rsvspace += rsv; - spin_unlock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); + dquot->dq_dqb.dqb_rsvspace += rsv; + spin_unlock(&dquot->dq_dqb_lock); spin_unlock(&inode->i_lock); } } @@ -1625,7 +1583,7 @@ bool dquot_initialize_needed(struct inode *inode) { - struct dquot **dquots; + struct dquot __rcu **dquots; int i; if (!inode_quota_active(inode)) @@ -1650,13 +1608,14 @@ static void __dquot_drop(struct inode *inode) { int cnt; - struct dquot **dquots = i_dquot(inode); + struct dquot __rcu **dquots = i_dquot(inode); struct dquot *put[MAXQUOTAS]; spin_lock(&dq_data_lock); for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - put[cnt] = dquots[cnt]; - dquots[cnt] = NULL; + put[cnt] = srcu_dereference_check(dquots[cnt], &dquot_srcu, + lockdep_is_held(&dq_data_lock)); + rcu_assign_pointer(dquots[cnt], NULL); } spin_unlock(&dq_data_lock); dqput_all(put); @@ -1664,7 +1623,7 @@ void dquot_drop(struct inode *inode) { - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; int cnt; if (IS_NOQUOTA(inode)) @@ -1737,7 +1696,8 @@ int cnt, ret = 0, index; struct dquot_warn warn[MAXQUOTAS]; int reserve = flags & DQUOT_SPACE_RESERVE; - struct dquot **dquots; + struct dquot __rcu **dquots; + struct dquot *dquot; if (!inode_quota_active(inode)) { if (reserve) { @@ -1757,27 +1717,26 @@ index = srcu_read_lock(&dquot_srcu); spin_lock(&inode->i_lock); for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; if (reserve) { - ret = dquot_add_space(dquots[cnt], 0, number, flags, - &warn[cnt]); + ret = dquot_add_space(dquot, 0, number, flags, &warn[cnt]); } else { - ret = dquot_add_space(dquots[cnt], number, 0, flags, - &warn[cnt]); + ret = dquot_add_space(dquot, number, 0, flags, &warn[cnt]); } if (ret) { /* Back out changes we already did */ for (cnt--; cnt >= 0; cnt--) { - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); if (reserve) - dquot_free_reserved_space(dquots[cnt], - number); + dquot_free_reserved_space(dquot, number); else - dquot_decr_space(dquots[cnt], number); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + dquot_decr_space(dquot, number); + spin_unlock(&dquot->dq_dqb_lock); } spin_unlock(&inode->i_lock); goto out_flush_warn; @@ -1807,7 +1766,8 @@ { int cnt, ret = 0, index; struct dquot_warn warn[MAXQUOTAS]; - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; + struct dquot *dquot; if (!inode_quota_active(inode)) return 0; @@ -1818,17 +1778,19 @@ index = srcu_read_lock(&dquot_srcu); spin_lock(&inode->i_lock); for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - ret = dquot_add_inodes(dquots[cnt], 1, &warn[cnt]); + ret = dquot_add_inodes(dquot, 1, &warn[cnt]); if (ret) { for (cnt--; cnt >= 0; cnt--) { - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; /* Back out changes we already did */ - spin_lock(&dquots[cnt]->dq_dqb_lock); - dquot_decr_inodes(dquots[cnt], 1); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + spin_lock(&dquot->dq_dqb_lock); + dquot_decr_inodes(dquot, 1); + spin_unlock(&dquot->dq_dqb_lock); } goto warn_put_all; } @@ -1849,7 +1811,8 @@ */ int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) { - struct dquot **dquots; + struct dquot __rcu **dquots; + struct dquot *dquot; int cnt, index; if (!inode_quota_active(inode)) { @@ -1865,9 +1828,8 @@ spin_lock(&inode->i_lock); /* Claim reserved quotas to allocated quotas */ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - if (dquots[cnt]) { - struct dquot *dquot = dquots[cnt]; - + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) { spin_lock(&dquot->dq_dqb_lock); if (WARN_ON_ONCE(dquot->dq_dqb.dqb_rsvspace < number)) number = dquot->dq_dqb.dqb_rsvspace; @@ -1891,7 +1853,8 @@ */ void dquot_reclaim_space_nodirty(struct inode *inode, qsize_t number) { - struct dquot **dquots; + struct dquot __rcu **dquots; + struct dquot *dquot; int cnt, index; if (!inode_quota_active(inode)) { @@ -1907,9 +1870,8 @@ spin_lock(&inode->i_lock); /* Claim reserved quotas to allocated quotas */ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { - if (dquots[cnt]) { - struct dquot *dquot = dquots[cnt]; - + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (dquot) { spin_lock(&dquot->dq_dqb_lock); if (WARN_ON_ONCE(dquot->dq_dqb.dqb_curspace < number)) number = dquot->dq_dqb.dqb_curspace; @@ -1935,7 +1897,8 @@ { unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; - struct dquot **dquots; + struct dquot __rcu **dquots; + struct dquot *dquot; int reserve = flags & DQUOT_SPACE_RESERVE, index; if (!inode_quota_active(inode)) { @@ -1956,17 +1919,18 @@ int wtype; warn[cnt].w_type = QUOTA_NL_NOWARN; - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); - wtype = info_bdq_free(dquots[cnt], number); + spin_lock(&dquot->dq_dqb_lock); + wtype = info_bdq_free(dquot, number); if (wtype != QUOTA_NL_NOWARN) - prepare_warning(&warn[cnt], dquots[cnt], wtype); + prepare_warning(&warn[cnt], dquot, wtype); if (reserve) - dquot_free_reserved_space(dquots[cnt], number); + dquot_free_reserved_space(dquot, number); else - dquot_decr_space(dquots[cnt], number); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + dquot_decr_space(dquot, number); + spin_unlock(&dquot->dq_dqb_lock); } if (reserve) *inode_reserved_space(inode) -= number; @@ -1990,7 +1954,8 @@ { unsigned int cnt; struct dquot_warn warn[MAXQUOTAS]; - struct dquot * const *dquots; + struct dquot __rcu * const *dquots; + struct dquot *dquot; int index; if (!inode_quota_active(inode)) @@ -2001,16 +1966,16 @@ spin_lock(&inode->i_lock); for (cnt = 0; cnt < MAXQUOTAS; cnt++) { int wtype; - warn[cnt].w_type = QUOTA_NL_NOWARN; - if (!dquots[cnt]) + dquot = srcu_dereference(dquots[cnt], &dquot_srcu); + if (!dquot) continue; - spin_lock(&dquots[cnt]->dq_dqb_lock); - wtype = info_idq_free(dquots[cnt], 1); + spin_lock(&dquot->dq_dqb_lock); + wtype = info_idq_free(dquot, 1); if (wtype != QUOTA_NL_NOWARN) - prepare_warning(&warn[cnt], dquots[cnt], wtype); - dquot_decr_inodes(dquots[cnt], 1); - spin_unlock(&dquots[cnt]->dq_dqb_lock); + prepare_warning(&warn[cnt], dquot, wtype); + dquot_decr_inodes(dquot, 1); + spin_unlock(&dquot->dq_dqb_lock); } spin_unlock(&inode->i_lock); mark_all_dquot_dirty(dquots); @@ -2036,8 +2001,9 @@ qsize_t cur_space; qsize_t rsv_space = 0; qsize_t inode_usage = 1; + struct dquot __rcu **dquots; struct dquot *transfer_from[MAXQUOTAS] = {}; - int cnt, ret = 0; + int cnt, index, ret = 0; char is_valid[MAXQUOTAS] = {}; struct dquot_warn warn_to[MAXQUOTAS]; struct dquot_warn warn_from_inodes[MAXQUOTAS]; @@ -2068,6 +2034,7 @@ } cur_space = __inode_get_bytes(inode); rsv_space = __inode_get_rsv_space(inode); + dquots = i_dquot(inode); /* * Build the transfer_from list, check limits, and update usage in * the target structures. @@ -2082,7 +2049,8 @@ if (!sb_has_quota_active(inode->i_sb, cnt)) continue; is_valid[cnt] = 1; - transfer_from[cnt] = i_dquot(inode)[cnt]; + transfer_from[cnt] = srcu_dereference_check(dquots[cnt], + &dquot_srcu, lockdep_is_held(&dq_data_lock)); ret = dquot_add_inodes(transfer_to[cnt], inode_usage, &warn_to[cnt]); if (ret) @@ -2121,13 +2089,21 @@ rsv_space); spin_unlock(&transfer_from[cnt]->dq_dqb_lock); } - i_dquot(inode)[cnt] = transfer_to[cnt]; + rcu_assign_pointer(dquots[cnt], transfer_to[cnt]); } spin_unlock(&inode->i_lock); spin_unlock(&dq_data_lock); - mark_all_dquot_dirty(transfer_from); - mark_all_dquot_dirty(transfer_to); + /* + * These arrays are local and we hold dquot references so we don't need + * the srcu protection but still take dquot_srcu to avoid warning in + * mark_all_dquot_dirty(). + */ + index = srcu_read_lock(&dquot_srcu); + mark_all_dquot_dirty((struct dquot __rcu **)transfer_from); + mark_all_dquot_dirty((struct dquot __rcu **)transfer_to); + srcu_read_unlock(&dquot_srcu, index); + flush_warnings(warn_to); flush_warnings(warn_from_inodes); flush_warnings(warn_from_space); diff -Nru linux-5.10.209/fs/select.c linux-5.10.216/fs/select.c --- linux-5.10.209/fs/select.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/select.c 2024-05-02 14:23:46.000000000 +0000 @@ -475,7 +475,7 @@ wait->_key |= POLLOUT_SET; } -static int do_select(int n, fd_set_bits *fds, struct timespec64 *end_time) +static noinline_for_stack int do_select(int n, fd_set_bits *fds, struct timespec64 *end_time) { ktime_t expire, *to = NULL; struct poll_wqueues table; diff -Nru linux-5.10.209/fs/sysfs/file.c linux-5.10.216/fs/sysfs/file.c --- linux-5.10.209/fs/sysfs/file.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/sysfs/file.c 2024-05-02 14:23:46.000000000 +0000 @@ -429,6 +429,8 @@ kn = kernfs_find_and_get(kobj->sd, attr->name); if (kn) kernfs_break_active_protection(kn); + else + kobject_put(kobj); return kn; } EXPORT_SYMBOL_GPL(sysfs_break_active_protection); diff -Nru linux-5.10.209/fs/sysv/itree.c linux-5.10.216/fs/sysv/itree.c --- linux-5.10.209/fs/sysv/itree.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/sysv/itree.c 2024-05-02 14:23:46.000000000 +0000 @@ -82,9 +82,6 @@ return (sysv_zone_t*)((char*)bh->b_data + bh->b_size); } -/* - * Requires read_lock(&pointers_lock) or write_lock(&pointers_lock) - */ static Indirect *get_branch(struct inode *inode, int depth, int offsets[], @@ -104,15 +101,18 @@ bh = sb_bread(sb, block); if (!bh) goto failure; + read_lock(&pointers_lock); if (!verify_chain(chain, p)) goto changed; add_chain(++p, bh, (sysv_zone_t*)bh->b_data + *++offsets); + read_unlock(&pointers_lock); if (!p->key) goto no_block; } return NULL; changed: + read_unlock(&pointers_lock); brelse(bh); *err = -EAGAIN; goto no_block; @@ -218,9 +218,7 @@ goto out; reread: - read_lock(&pointers_lock); partial = get_branch(inode, depth, offsets, chain, &err); - read_unlock(&pointers_lock); /* Simplest case - block found, no allocation needed */ if (!partial) { @@ -290,9 +288,9 @@ *top = 0; for (k = depth; k > 1 && !offsets[k-1]; k--) ; + partial = get_branch(inode, k, offsets, chain, &err); write_lock(&pointers_lock); - partial = get_branch(inode, k, offsets, chain, &err); if (!partial) partial = chain + k-1; /* diff -Nru linux-5.10.209/fs/ubifs/dir.c linux-5.10.216/fs/ubifs/dir.c --- linux-5.10.209/fs/ubifs/dir.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ubifs/dir.c 2024-05-02 14:23:46.000000000 +0000 @@ -1198,6 +1198,8 @@ dir_ui->ui_size = dir->i_size; mutex_unlock(&dir_ui->ui_mutex); out_inode: + /* Free inode->i_link before inode is marked as bad. */ + fscrypt_free_inode(inode); make_bad_inode(inode); iput(inode); out_fname: diff -Nru linux-5.10.209/fs/ubifs/file.c linux-5.10.216/fs/ubifs/file.c --- linux-5.10.209/fs/ubifs/file.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/ubifs/file.c 2024-05-02 14:23:46.000000000 +0000 @@ -262,9 +262,6 @@ return err; } } - - SetPageUptodate(page); - ClearPageError(page); } if (PagePrivate(page)) @@ -463,9 +460,6 @@ return err; } } - - SetPageUptodate(page); - ClearPageError(page); } err = allocate_budget(c, page, ui, appending); @@ -475,10 +469,8 @@ * If we skipped reading the page because we were going to * write all of it, then it is not up to date. */ - if (skipped_read) { + if (skipped_read) ClearPageChecked(page); - ClearPageUptodate(page); - } /* * Budgeting failed which means it would have to force * write-back but didn't, because we set the @fast flag in the @@ -569,6 +561,9 @@ goto out; } + if (len == PAGE_SIZE) + SetPageUptodate(page); + if (!PagePrivate(page)) { attach_page_private(page, (void *)1); atomic_long_inc(&c->dirty_pg_cnt); diff -Nru linux-5.10.209/fs/vboxsf/super.c linux-5.10.216/fs/vboxsf/super.c --- linux-5.10.209/fs/vboxsf/super.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/vboxsf/super.c 2024-05-02 14:23:46.000000000 +0000 @@ -151,7 +151,7 @@ if (!sbi->nls) { vbg_err("vboxsf: Count not load '%s' nls\n", nls_name); err = -EINVAL; - goto fail_free; + goto fail_destroy_idr; } } @@ -224,6 +224,7 @@ ida_simple_remove(&vboxsf_bdi_ida, sbi->bdi_id); if (sbi->nls) unload_nls(sbi->nls); +fail_destroy_idr: idr_destroy(&sbi->ino_idr); kfree(sbi); return err; diff -Nru linux-5.10.209/fs/zonefs/super.c linux-5.10.216/fs/zonefs/super.c --- linux-5.10.209/fs/zonefs/super.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/fs/zonefs/super.c 2024-05-02 14:23:46.000000000 +0000 @@ -319,16 +319,18 @@ } } -struct zonefs_ioerr_data { - struct inode *inode; - bool write; -}; - static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, void *data) { - struct zonefs_ioerr_data *err = data; - struct inode *inode = err->inode; + struct blk_zone *z = data; + + *z = *zone; + return 0; +} + +static void zonefs_handle_io_error(struct inode *inode, struct blk_zone *zone, + bool write) +{ struct zonefs_inode_info *zi = ZONEFS_I(inode); struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); @@ -344,8 +346,8 @@ isize = i_size_read(inode); if (zone->cond != BLK_ZONE_COND_OFFLINE && zone->cond != BLK_ZONE_COND_READONLY && - !err->write && isize == data_size) - return 0; + !write && isize == data_size) + return; /* * At this point, we detected either a bad zone or an inconsistency @@ -366,8 +368,9 @@ * In all cases, warn about inode size inconsistency and handle the * IO error according to the zone condition and to the mount options. */ - if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size) - zonefs_warn(sb, "inode %lu: invalid size %lld (should be %lld)\n", + if (isize != data_size) + zonefs_warn(sb, + "inode %lu: invalid size %lld (should be %lld)\n", inode->i_ino, isize, data_size); /* @@ -427,8 +430,6 @@ zonefs_update_stats(inode, data_size); zonefs_i_size_write(inode, data_size); zi->i_wpoffset = data_size; - - return 0; } /* @@ -442,23 +443,25 @@ { struct zonefs_inode_info *zi = ZONEFS_I(inode); struct super_block *sb = inode->i_sb; - struct zonefs_sb_info *sbi = ZONEFS_SB(sb); unsigned int noio_flag; - unsigned int nr_zones = 1; - struct zonefs_ioerr_data err = { - .inode = inode, - .write = write, - }; + struct blk_zone zone; int ret; /* - * The only files that have more than one zone are conventional zone - * files with aggregated conventional zones, for which the inode zone - * size is always larger than the device zone size. - */ - if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev)) - nr_zones = zi->i_zone_size >> - (sbi->s_zone_sectors_shift + SECTOR_SHIFT); + * Conventional zone have no write pointer and cannot become read-only + * or offline. So simply fake a report for a single or aggregated zone + * and let zonefs_handle_io_error() correct the zone inode information + * according to the mount options. + */ + if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) { + zone.start = zi->i_zsector; + zone.len = zi->i_max_size >> SECTOR_SHIFT; + zone.wp = zone.start + zone.len; + zone.type = BLK_ZONE_TYPE_CONVENTIONAL; + zone.cond = BLK_ZONE_COND_NOT_WP; + zone.capacity = zone.len; + goto handle_io_error; + } /* * Memory allocations in blkdev_report_zones() can trigger a memory @@ -469,12 +472,19 @@ * the GFP_NOIO context avoids both problems. */ noio_flag = memalloc_noio_save(); - ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones, - zonefs_io_error_cb, &err); - if (ret != nr_zones) + ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, 1, + zonefs_io_error_cb, &zone); + memalloc_noio_restore(noio_flag); + if (ret != 1) { zonefs_err(sb, "Get inode %lu zone information failed %d\n", inode->i_ino, ret); - memalloc_noio_restore(noio_flag); + zonefs_warn(sb, "remounting filesystem read-only\n"); + sb->s_flags |= SB_RDONLY; + return; + } + +handle_io_error: + zonefs_handle_io_error(inode, &zone, write); } static void zonefs_io_error(struct inode *inode, bool write) diff -Nru linux-5.10.209/include/drm/drm_color_mgmt.h linux-5.10.216/include/drm/drm_color_mgmt.h --- linux-5.10.209/include/drm/drm_color_mgmt.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/drm/drm_color_mgmt.h 2024-05-02 14:23:46.000000000 +0000 @@ -24,6 +24,7 @@ #define __DRM_COLOR_MGMT_H__ #include +#include #include struct drm_crtc; diff -Nru linux-5.10.209/include/drm/drm_fixed.h linux-5.10.216/include/drm/drm_fixed.h --- linux-5.10.209/include/drm/drm_fixed.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/drm/drm_fixed.h 2024-05-02 14:23:46.000000000 +0000 @@ -88,7 +88,7 @@ static inline int drm_fixp2int_ceil(s64 a) { - if (a > 0) + if (a >= 0) return drm_fixp2int(a + DRM_FIXED_ALMOST_ONE); else return drm_fixp2int(a - DRM_FIXED_ALMOST_ONE); diff -Nru linux-5.10.209/include/drm/drm_mipi_dsi.h linux-5.10.216/include/drm/drm_mipi_dsi.h --- linux-5.10.209/include/drm/drm_mipi_dsi.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/drm/drm_mipi_dsi.h 2024-05-02 14:23:46.000000000 +0000 @@ -161,6 +161,7 @@ * struct mipi_dsi_device - DSI peripheral device * @host: DSI host for this peripheral * @dev: driver model device node for this peripheral + * @attached: the DSI device has been successfully attached * @name: DSI peripheral chip type * @channel: virtual channel assigned to the peripheral * @format: pixel format for video mode @@ -176,6 +177,7 @@ struct mipi_dsi_device { struct mipi_dsi_host *host; struct device dev; + bool attached; char name[DSI_DEV_NAME_SIZE]; unsigned int channel; diff -Nru linux-5.10.209/include/dt-bindings/input/linux-event-codes.h linux-5.10.216/include/dt-bindings/input/linux-event-codes.h --- linux-5.10.209/include/dt-bindings/input/linux-event-codes.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/dt-bindings/input/linux-event-codes.h 2024-05-02 14:23:46.000000000 +0000 @@ -602,6 +602,7 @@ #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ diff -Nru linux-5.10.209/include/linux/async.h linux-5.10.216/include/linux/async.h --- linux-5.10.209/include/linux/async.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/async.h 2024-05-02 14:23:46.000000000 +0000 @@ -90,6 +90,8 @@ return async_schedule_node(func, dev, dev_to_node(dev)); } +bool async_schedule_dev_nocall(async_func_t func, struct device *dev); + /** * async_schedule_dev_domain - A device specific version of async_schedule_domain * @func: function to execute asynchronously diff -Nru linux-5.10.209/include/linux/blkdev.h linux-5.10.216/include/linux/blkdev.h --- linux-5.10.209/include/linux/blkdev.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/blkdev.h 2024-05-02 14:23:46.000000000 +0000 @@ -345,6 +345,7 @@ unsigned int max_zone_append_sectors; unsigned int discard_granularity; unsigned int discard_alignment; + unsigned int zone_write_granularity; unsigned short max_segments; unsigned short max_integrity_segments; @@ -1169,6 +1170,8 @@ extern void blk_queue_max_zone_append_sectors(struct request_queue *q, unsigned int max_zone_append_sectors); extern void blk_queue_physical_block_size(struct request_queue *, unsigned int); +void blk_queue_zone_write_granularity(struct request_queue *q, + unsigned int size); extern void blk_queue_alignment_offset(struct request_queue *q, unsigned int alignment); void blk_queue_update_readahead(struct request_queue *q); @@ -1480,6 +1483,18 @@ return queue_io_opt(bdev_get_queue(bdev)); } +static inline unsigned int +queue_zone_write_granularity(const struct request_queue *q) +{ + return q->limits.zone_write_granularity; +} + +static inline unsigned int +bdev_zone_write_granularity(struct block_device *bdev) +{ + return queue_zone_write_granularity(bdev_get_queue(bdev)); +} + static inline int queue_alignment_offset(const struct request_queue *q) { if (q->limits.misaligned) @@ -1883,6 +1898,7 @@ void (*unlock_native_capacity) (struct gendisk *); int (*revalidate_disk) (struct gendisk *); int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *bdev, bool ro); /* this callback is with swap_lock and sometimes page table lock held */ void (*swap_slot_free_notify) (struct block_device *, unsigned long); int (*report_zones)(struct gendisk *, sector_t sector, diff -Nru linux-5.10.209/include/linux/bpf.h linux-5.10.216/include/linux/bpf.h --- linux-5.10.209/include/linux/bpf.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/bpf.h 2024-05-02 14:23:46.000000000 +0000 @@ -82,7 +82,11 @@ /* funcs called by prog_array and perf_event_array map */ void *(*map_fd_get_ptr)(struct bpf_map *map, struct file *map_file, int fd); - void (*map_fd_put_ptr)(void *ptr); + /* If need_defer is true, the implementation should guarantee that + * the to-be-put element is still alive before the bpf program, which + * may manipulate it, exists. + */ + void (*map_fd_put_ptr)(struct bpf_map *map, void *ptr, bool need_defer); int (*map_gen_lookup)(struct bpf_map *map, struct bpf_insn *insn_buf); u32 (*map_fd_sys_lookup_elem)(void *ptr); void (*map_seq_show_elem)(struct bpf_map *map, void *key, @@ -171,9 +175,14 @@ */ atomic64_t refcnt ____cacheline_aligned; atomic64_t usercnt; - struct work_struct work; + /* rcu is used before freeing and work is only used during freeing */ + union { + struct work_struct work; + struct rcu_head rcu; + }; struct mutex freeze_mutex; atomic64_t writecnt; + bool free_after_mult_rcu_gp; }; static inline bool map_value_has_spin_lock(const struct bpf_map *map) diff -Nru linux-5.10.209/include/linux/cpu.h linux-5.10.216/include/linux/cpu.h --- linux-5.10.209/include/linux/cpu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/cpu.h 2024-05-02 14:23:46.000000000 +0000 @@ -74,6 +74,8 @@ struct device_attribute *attr, char *buf); extern ssize_t cpu_show_gds(struct device *dev, struct device_attribute *attr, char *buf); +extern ssize_t cpu_show_reg_file_data_sampling(struct device *dev, + struct device_attribute *attr, char *buf); extern __printf(4, 5) struct device *cpu_device_create(struct device *parent, void *drvdata, diff -Nru linux-5.10.209/include/linux/device.h linux-5.10.216/include/linux/device.h --- linux-5.10.209/include/linux/device.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/device.h 2024-05-02 14:23:46.000000000 +0000 @@ -973,6 +973,7 @@ void device_link_remove(void *consumer, struct device *supplier); void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); +void device_link_wait_removal(void); extern __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); diff -Nru linux-5.10.209/include/linux/dmaengine.h linux-5.10.216/include/linux/dmaengine.h --- linux-5.10.209/include/linux/dmaengine.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/dmaengine.h 2024-05-02 14:23:46.000000000 +0000 @@ -949,7 +949,8 @@ static inline bool is_slave_direction(enum dma_transfer_direction direction) { - return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM); + return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM) || + (direction == DMA_DEV_TO_DEV); } static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single( diff -Nru linux-5.10.209/include/linux/etherdevice.h linux-5.10.216/include/linux/etherdevice.h --- linux-5.10.209/include/linux/etherdevice.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/etherdevice.h 2024-05-02 14:23:46.000000000 +0000 @@ -543,6 +543,31 @@ } /** + * eth_skb_pkt_type - Assign packet type if destination address does not match + * @skb: Assigned a packet type if address does not match @dev address + * @dev: Network device used to compare packet address against + * + * If the destination MAC address of the packet does not match the network + * device address, assign an appropriate packet type. + */ +static inline void eth_skb_pkt_type(struct sk_buff *skb, + const struct net_device *dev) +{ + const struct ethhdr *eth = eth_hdr(skb); + + if (unlikely(!ether_addr_equal_64bits(eth->h_dest, dev->dev_addr))) { + if (unlikely(is_multicast_ether_addr_64bits(eth->h_dest))) { + if (ether_addr_equal_64bits(eth->h_dest, dev->broadcast)) + skb->pkt_type = PACKET_BROADCAST; + else + skb->pkt_type = PACKET_MULTICAST; + } else { + skb->pkt_type = PACKET_OTHERHOST; + } + } +} + +/** * eth_skb_pad - Pad buffer to mininum number of octets for Ethernet frame * @skb: Buffer to pad * diff -Nru linux-5.10.209/include/linux/filter.h linux-5.10.216/include/linux/filter.h --- linux-5.10.209/include/linux/filter.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/filter.h 2024-05-02 14:23:46.000000000 +0000 @@ -480,24 +480,27 @@ __BPF_MAP(n, __BPF_DECL_ARGS, __BPF_N, u64, __ur_1, u64, __ur_2, \ u64, __ur_3, u64, __ur_4, u64, __ur_5) -#define BPF_CALL_x(x, name, ...) \ +#define BPF_CALL_x(x, attr, name, ...) \ static __always_inline \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)); \ typedef u64 (*btf_##name)(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)); \ - u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); \ - u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) \ + attr u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); \ + attr u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) \ { \ return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BPF_N,__VA_ARGS__));\ } \ static __always_inline \ u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__)) -#define BPF_CALL_0(name, ...) BPF_CALL_x(0, name, __VA_ARGS__) -#define BPF_CALL_1(name, ...) BPF_CALL_x(1, name, __VA_ARGS__) -#define BPF_CALL_2(name, ...) BPF_CALL_x(2, name, __VA_ARGS__) -#define BPF_CALL_3(name, ...) BPF_CALL_x(3, name, __VA_ARGS__) -#define BPF_CALL_4(name, ...) BPF_CALL_x(4, name, __VA_ARGS__) -#define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__) +#define __NOATTR +#define BPF_CALL_0(name, ...) BPF_CALL_x(0, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_1(name, ...) BPF_CALL_x(1, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_2(name, ...) BPF_CALL_x(2, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_3(name, ...) BPF_CALL_x(3, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_4(name, ...) BPF_CALL_x(4, __NOATTR, name, __VA_ARGS__) +#define BPF_CALL_5(name, ...) BPF_CALL_x(5, __NOATTR, name, __VA_ARGS__) + +#define NOTRACE_BPF_CALL_1(name, ...) BPF_CALL_x(1, notrace, name, __VA_ARGS__) #define bpf_ctx_range(TYPE, MEMBER) \ offsetof(TYPE, MEMBER) ... offsetofend(TYPE, MEMBER) - 1 @@ -892,8 +895,7 @@ int sk_reuseport_attach_bpf(u32 ufd, struct sock *sk); void sk_reuseport_prog_free(struct bpf_prog *prog); int sk_detach_filter(struct sock *sk); -int sk_get_filter(struct sock *sk, struct sock_filter __user *filter, - unsigned int len); +int sk_get_filter(struct sock *sk, sockptr_t optval, unsigned int len); bool sk_filter_charge(struct sock *sk, struct sk_filter *fp); void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp); diff -Nru linux-5.10.209/include/linux/fs.h linux-5.10.216/include/linux/fs.h --- linux-5.10.209/include/linux/fs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/fs.h 2024-05-02 14:23:46.000000000 +0000 @@ -316,6 +316,8 @@ /* iocb->ki_waitq is valid */ #define IOCB_WAITQ (1 << 19) #define IOCB_NOIO (1 << 20) +/* kiocb is a read or write operation submitted by fs/aio.c. */ +#define IOCB_AIO_RW (1 << 23) struct kiocb { struct file *ki_filp; diff -Nru linux-5.10.209/include/linux/gfp.h linux-5.10.216/include/linux/gfp.h --- linux-5.10.209/include/linux/gfp.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/gfp.h 2024-05-02 14:23:46.000000000 +0000 @@ -623,6 +623,15 @@ } #endif /* CONFIG_PM_SLEEP */ +/* + * Check if the gfp flags allow compaction - GFP_NOIO is a really + * tricky context because the migration might require IO. + */ +static inline bool gfp_compaction_allowed(gfp_t gfp_mask) +{ + return IS_ENABLED(CONFIG_COMPACTION) && (gfp_mask & __GFP_IO); +} + #ifdef CONFIG_CONTIG_ALLOC /* The below functions must be run on a range from a single zone. */ extern int alloc_contig_range(unsigned long start, unsigned long end, diff -Nru linux-5.10.209/include/linux/hrtimer.h linux-5.10.216/include/linux/hrtimer.h --- linux-5.10.209/include/linux/hrtimer.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/hrtimer.h 2024-05-02 14:23:46.000000000 +0000 @@ -197,6 +197,7 @@ * @max_hang_time: Maximum time spent in hrtimer_interrupt * @softirq_expiry_lock: Lock which is taken while softirq based hrtimer are * expired + * @online: CPU is online from an hrtimers point of view * @timer_waiters: A hrtimer_cancel() invocation waits for the timer * callback to finish. * @expires_next: absolute time of the next event, is required for remote @@ -219,7 +220,8 @@ unsigned int hres_active : 1, in_hrtirq : 1, hang_detected : 1, - softirq_activated : 1; + softirq_activated : 1, + online : 1; #ifdef CONFIG_HIGH_RES_TIMERS unsigned int nr_events; unsigned short nr_retries; diff -Nru linux-5.10.209/include/linux/hugetlb.h linux-5.10.216/include/linux/hugetlb.h --- linux-5.10.209/include/linux/hugetlb.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/hugetlb.h 2024-05-02 14:23:46.000000000 +0000 @@ -140,7 +140,7 @@ unsigned long dst_addr, unsigned long src_addr, struct page **pagep); -int hugetlb_reserve_pages(struct inode *inode, long from, long to, +bool hugetlb_reserve_pages(struct inode *inode, long from, long to, struct vm_area_struct *vma, vm_flags_t vm_flags); long hugetlb_unreserve_pages(struct inode *inode, long start, long end, diff -Nru linux-5.10.209/include/linux/hyperv.h linux-5.10.216/include/linux/hyperv.h --- linux-5.10.209/include/linux/hyperv.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/hyperv.h 2024-05-02 14:23:46.000000000 +0000 @@ -164,8 +164,28 @@ u8 buffer[]; } __packed; + +/* + * If the requested ring buffer size is at least 8 times the size of the + * header, steal space from the ring buffer for the header. Otherwise, add + * space for the header so that is doesn't take too much of the ring buffer + * space. + * + * The factor of 8 is somewhat arbitrary. The goal is to prevent adding a + * relatively small header (4 Kbytes on x86) to a large-ish power-of-2 ring + * buffer size (such as 128 Kbytes) and so end up making a nearly twice as + * large allocation that will be almost half wasted. As a contrasting example, + * on ARM64 with 64 Kbyte page size, we don't want to take 64 Kbytes for the + * header from a 128 Kbyte allocation, leaving only 64 Kbytes for the ring. + * In this latter case, we must add 64 Kbytes for the header and not worry + * about what's wasted. + */ +#define VMBUS_HEADER_ADJ(payload_sz) \ + ((payload_sz) >= 8 * sizeof(struct hv_ring_buffer) ? \ + 0 : sizeof(struct hv_ring_buffer)) + /* Calculate the proper size of a ringbuffer, it must be page-aligned */ -#define VMBUS_RING_SIZE(payload_sz) PAGE_ALIGN(sizeof(struct hv_ring_buffer) + \ +#define VMBUS_RING_SIZE(payload_sz) PAGE_ALIGN(VMBUS_HEADER_ADJ(payload_sz) + \ (payload_sz)) struct hv_ring_buffer_info { @@ -764,6 +784,23 @@ HV_UNKNOWN, }; +/* + * Provides request ids for VMBus. Encapsulates guest memory + * addresses and stores the next available slot in req_arr + * to generate new ids in constant time. + */ +struct vmbus_requestor { + u64 *req_arr; + unsigned long *req_bitmap; /* is a given slot available? */ + u32 size; + u64 next_request_id; + spinlock_t req_lock; /* provides atomicity */ +}; + +#define VMBUS_NO_RQSTOR U64_MAX +#define VMBUS_RQST_ERROR (U64_MAX - 1) +#define VMBUS_RQST_ID_NO_RESPONSE (U64_MAX - 2) + struct vmbus_device { u16 dev_type; guid_t guid; @@ -988,8 +1025,14 @@ u32 fuzz_testing_interrupt_delay; u32 fuzz_testing_message_delay; + /* request/transaction ids for VMBus */ + struct vmbus_requestor requestor; + u32 rqstor_size; }; +u64 vmbus_next_request_id(struct vmbus_requestor *rqstor, u64 rqst_addr); +u64 vmbus_request_addr(struct vmbus_requestor *rqstor, u64 trans_id); + static inline bool is_hvsock_channel(const struct vmbus_channel *c) { return !!(c->offermsg.offer.chn_flags & diff -Nru linux-5.10.209/include/linux/igmp.h linux-5.10.216/include/linux/igmp.h --- linux-5.10.209/include/linux/igmp.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/igmp.h 2024-05-02 14:23:46.000000000 +0000 @@ -121,9 +121,9 @@ struct ip_mreq_source *mreqs, int ifindex); extern int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf,int ifindex); extern int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf, - struct ip_msfilter __user *optval, int __user *optlen); + sockptr_t optval, sockptr_t optlen); extern int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf, - struct sockaddr_storage __user *p); + sockptr_t optval, size_t offset); extern int ip_mc_sf_allow(struct sock *sk, __be32 local, __be32 rmt, int dif, int sdif); extern void ip_mc_init_dev(struct in_device *); diff -Nru linux-5.10.209/include/linux/io_uring.h linux-5.10.216/include/linux/io_uring.h --- linux-5.10.209/include/linux/io_uring.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/io_uring.h 2024-05-02 14:23:46.000000000 +0000 @@ -6,9 +6,9 @@ #include #if defined(CONFIG_IO_URING) -struct sock *io_uring_get_socket(struct file *file); void __io_uring_cancel(bool cancel_all); void __io_uring_free(struct task_struct *tsk); +bool io_is_uring_fops(struct file *file); static inline void io_uring_files_cancel(void) { @@ -26,10 +26,6 @@ __io_uring_free(tsk); } #else -static inline struct sock *io_uring_get_socket(struct file *file) -{ - return NULL; -} static inline void io_uring_task_cancel(void) { } @@ -39,6 +35,10 @@ static inline void io_uring_free(struct task_struct *tsk) { } +static inline bool io_is_uring_fops(struct file *file) +{ + return false; +} #endif #endif diff -Nru linux-5.10.209/include/linux/irqflags.h linux-5.10.216/include/linux/irqflags.h --- linux-5.10.209/include/linux/irqflags.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/irqflags.h 2024-05-02 14:23:46.000000000 +0000 @@ -133,7 +133,7 @@ # define lockdep_softirq_enter() do { } while (0) # define lockdep_softirq_exit() do { } while (0) # define lockdep_hrtimer_enter(__hrtimer) false -# define lockdep_hrtimer_exit(__context) do { } while (0) +# define lockdep_hrtimer_exit(__context) do { (void)(__context); } while (0) # define lockdep_posixtimer_enter() do { } while (0) # define lockdep_posixtimer_exit() do { } while (0) # define lockdep_irq_work_enter(__work) do { } while (0) diff -Nru linux-5.10.209/include/linux/lockdep.h linux-5.10.216/include/linux/lockdep.h --- linux-5.10.209/include/linux/lockdep.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/lockdep.h 2024-05-02 14:23:46.000000000 +0000 @@ -321,6 +321,10 @@ WARN_ON_ONCE(debug_locks && !lockdep_is_held(l)); \ } while (0) +#define lockdep_assert_none_held_once() do { \ + WARN_ON_ONCE(debug_locks && current->lockdep_depth); \ + } while (0) + #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) #define lockdep_pin_lock(l) lock_pin_lock(&(l)->dep_map) @@ -394,6 +398,7 @@ #define lockdep_assert_held_write(l) do { (void)(l); } while (0) #define lockdep_assert_held_read(l) do { (void)(l); } while (0) #define lockdep_assert_held_once(l) do { (void)(l); } while (0) +#define lockdep_assert_none_held_once() do { } while (0) #define lockdep_recursing(tsk) (0) diff -Nru linux-5.10.209/include/linux/lsm_hook_defs.h linux-5.10.216/include/linux/lsm_hook_defs.h --- linux-5.10.209/include/linux/lsm_hook_defs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/lsm_hook_defs.h 2024-05-02 14:23:46.000000000 +0000 @@ -158,6 +158,8 @@ LSM_HOOK(void, LSM_RET_VOID, file_free_security, struct file *file) LSM_HOOK(int, 0, file_ioctl, struct file *file, unsigned int cmd, unsigned long arg) +LSM_HOOK(int, 0, file_ioctl_compat, struct file *file, unsigned int cmd, + unsigned long arg) LSM_HOOK(int, 0, mmap_addr, unsigned long addr) LSM_HOOK(int, 0, mmap_file, struct file *file, unsigned long reqprot, unsigned long prot, unsigned long flags) @@ -291,9 +293,9 @@ LSM_HOOK(int, 0, socket_setsockopt, struct socket *sock, int level, int optname) LSM_HOOK(int, 0, socket_shutdown, struct socket *sock, int how) LSM_HOOK(int, 0, socket_sock_rcv_skb, struct sock *sk, struct sk_buff *skb) -LSM_HOOK(int, 0, socket_getpeersec_stream, struct socket *sock, - char __user *optval, int __user *optlen, unsigned len) -LSM_HOOK(int, 0, socket_getpeersec_dgram, struct socket *sock, +LSM_HOOK(int, -ENOPROTOOPT, socket_getpeersec_stream, struct socket *sock, + sockptr_t optval, sockptr_t optlen, unsigned int len) +LSM_HOOK(int, -ENOPROTOOPT, socket_getpeersec_dgram, struct socket *sock, struct sk_buff *skb, u32 *secid) LSM_HOOK(int, 0, sk_alloc_security, struct sock *sk, int family, gfp_t priority) LSM_HOOK(void, LSM_RET_VOID, sk_free_security, struct sock *sk) diff -Nru linux-5.10.209/include/linux/lsm_hooks.h linux-5.10.216/include/linux/lsm_hooks.h --- linux-5.10.209/include/linux/lsm_hooks.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/lsm_hooks.h 2024-05-02 14:23:46.000000000 +0000 @@ -926,8 +926,8 @@ * SO_GETPEERSEC. For tcp sockets this can be meaningful if the * socket is associated with an ipsec SA. * @sock is the local socket. - * @optval userspace memory where the security state is to be copied. - * @optlen userspace int where the module should copy the actual length + * @optval memory where the security state is to be copied. + * @optlen memory where the module should copy the actual length * of the security state. * @len as input is the maximum length to copy to userspace provided * by the caller. diff -Nru linux-5.10.209/include/linux/mlx5/qp.h linux-5.10.216/include/linux/mlx5/qp.h --- linux-5.10.209/include/linux/mlx5/qp.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/mlx5/qp.h 2024-05-02 14:23:46.000000000 +0000 @@ -261,7 +261,10 @@ union { struct { __be16 sz; - u8 start[2]; + union { + u8 start[2]; + DECLARE_FLEX_ARRAY(u8, data); + }; } inline_hdr; struct { __be16 type; diff -Nru linux-5.10.209/include/linux/mmzone.h linux-5.10.216/include/linux/mmzone.h --- linux-5.10.209/include/linux/mmzone.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/mmzone.h 2024-05-02 14:23:46.000000000 +0000 @@ -1188,6 +1188,7 @@ #define SUBSECTION_ALIGN_DOWN(pfn) ((pfn) & PAGE_SUBSECTION_MASK) struct mem_section_usage { + struct rcu_head rcu; #ifdef CONFIG_SPARSEMEM_VMEMMAP DECLARE_BITMAP(subsection_map, SUBSECTIONS_PER_SECTION); #endif @@ -1353,7 +1354,7 @@ { int idx = subsection_map_index(pfn); - return test_bit(idx, ms->usage->subsection_map); + return test_bit(idx, READ_ONCE(ms->usage)->subsection_map); } #else static inline int pfn_section_valid(struct mem_section *ms, unsigned long pfn) @@ -1366,17 +1367,24 @@ static inline int pfn_valid(unsigned long pfn) { struct mem_section *ms; + int ret; if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS) return 0; - ms = __nr_to_section(pfn_to_section_nr(pfn)); - if (!valid_section(ms)) + ms = __pfn_to_section(pfn); + rcu_read_lock(); + if (!valid_section(ms)) { + rcu_read_unlock(); return 0; + } /* * Traditionally early sections always returned pfn_valid() for * the entire section-sized span. */ - return early_section(ms) || pfn_section_valid(ms, pfn); + ret = early_section(ms) || pfn_section_valid(ms, pfn); + rcu_read_unlock(); + + return ret; } #endif @@ -1384,7 +1392,7 @@ { if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS) return 0; - return present_section(__nr_to_section(pfn_to_section_nr(pfn))); + return present_section(__pfn_to_section(pfn)); } static inline unsigned long next_present_section_nr(unsigned long section_nr) diff -Nru linux-5.10.209/include/linux/mroute.h linux-5.10.216/include/linux/mroute.h --- linux-5.10.209/include/linux/mroute.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/mroute.h 2024-05-02 14:23:46.000000000 +0000 @@ -17,7 +17,7 @@ } int ip_mroute_setsockopt(struct sock *, int, sockptr_t, unsigned int); -int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); +int ip_mroute_getsockopt(struct sock *, int, sockptr_t, sockptr_t); int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); int ipmr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); int ip_mr_init(void); @@ -29,8 +29,8 @@ return -ENOPROTOOPT; } -static inline int ip_mroute_getsockopt(struct sock *sock, int optname, - char __user *optval, int __user *optlen) +static inline int ip_mroute_getsockopt(struct sock *sk, int optname, + sockptr_t optval, sockptr_t optlen) { return -ENOPROTOOPT; } diff -Nru linux-5.10.209/include/linux/netfilter/ipset/ip_set.h linux-5.10.216/include/linux/netfilter/ipset/ip_set.h --- linux-5.10.209/include/linux/netfilter/ipset/ip_set.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/netfilter/ipset/ip_set.h 2024-05-02 14:23:46.000000000 +0000 @@ -188,6 +188,8 @@ /* Return true if "b" set is the same as "a" * according to the create set parameters */ bool (*same_set)(const struct ip_set *a, const struct ip_set *b); + /* Cancel ongoing garbage collectors before destroying the set*/ + void (*cancel_gc)(struct ip_set *set); /* Region-locking is used */ bool region_lock; }; @@ -239,6 +241,8 @@ /* A generic IP set */ struct ip_set { + /* For call_cru in destroy */ + struct rcu_head rcu; /* The name of the set */ char name[IPSET_MAXNAMELEN]; /* Lock protecting the set data */ diff -Nru linux-5.10.209/include/linux/nfs_fs.h linux-5.10.216/include/linux/nfs_fs.h --- linux-5.10.209/include/linux/nfs_fs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/nfs_fs.h 2024-05-02 14:23:46.000000000 +0000 @@ -553,6 +553,7 @@ extern int nfs_commit_inode(struct inode *, int); extern struct nfs_commit_data *nfs_commitdata_alloc(void); extern void nfs_commit_free(struct nfs_commit_data *data); +void nfs_commit_begin(struct nfs_mds_commit_info *cinfo); bool nfs_commit_end(struct nfs_mds_commit_info *cinfo); static inline int diff -Nru linux-5.10.209/include/linux/objtool.h linux-5.10.216/include/linux/objtool.h --- linux-5.10.209/include/linux/objtool.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/objtool.h 2024-05-02 14:23:46.000000000 +0000 @@ -141,6 +141,12 @@ .popsection .endm +.macro STACK_FRAME_NON_STANDARD func:req + .pushsection .discard.func_stack_frame_non_standard, "aw" + .long \func - . + .popsection +.endm + #endif /* __ASSEMBLY__ */ #else /* !CONFIG_STACK_VALIDATION */ @@ -158,6 +164,8 @@ .endm .macro ANNOTATE_NOENDBR .endm +.macro STACK_FRAME_NON_STANDARD func:req +.endm #endif #endif /* CONFIG_STACK_VALIDATION */ diff -Nru linux-5.10.209/include/linux/pci.h linux-5.10.216/include/linux/pci.h --- linux-5.10.209/include/linux/pci.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/pci.h 2024-05-02 14:23:46.000000000 +0000 @@ -306,6 +306,7 @@ struct pci_vpd; struct pci_sriov; struct pci_p2pdma; +struct rcec_ea; /* The pci_dev structure describes PCI devices */ struct pci_dev { @@ -329,6 +330,10 @@ u16 aer_cap; /* AER capability offset */ struct aer_stats *aer_stats; /* AER stats for this device */ #endif +#ifdef CONFIG_PCIEPORTBUS + struct rcec_ea *rcec_ea; /* RCEC cached endpoint association */ +#endif + u32 devcap; /* PCIe Device Capabilities */ u8 pcie_cap; /* PCIe capability offset */ u8 msi_cap; /* MSI capability offset */ u8 msix_cap; /* MSI-X capability offset */ @@ -449,6 +454,7 @@ unsigned int link_active_reporting:1;/* Device capable of reporting link active */ unsigned int no_vf_scan:1; /* Don't scan for VFs after IOV enablement */ unsigned int no_command_memory:1; /* No PCI_COMMAND_MEMORY */ + unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */ pci_dev_flags_t dev_flags; atomic_t enable_cnt; /* pci_enable_device has been called */ @@ -2191,6 +2197,11 @@ return NULL; } +static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) +{ + return dev->error_state == pci_channel_io_perm_failure; +} + void pci_request_acs(void); bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags); bool pci_acs_path_enabled(struct pci_dev *start, diff -Nru linux-5.10.209/include/linux/pci_ids.h linux-5.10.216/include/linux/pci_ids.h --- linux-5.10.209/include/linux/pci_ids.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/pci_ids.h 2024-05-02 14:23:46.000000000 +0000 @@ -3020,6 +3020,7 @@ #define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0 #define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2 #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 +#define PCI_DEVICE_ID_INTEL_HDA_ARL 0x7728 #define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119 #define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a #define PCI_DEVICE_ID_INTEL_E6XX_CU 0x8183 diff -Nru linux-5.10.209/include/linux/phy/tegra/xusb.h linux-5.10.216/include/linux/phy/tegra/xusb.h --- linux-5.10.209/include/linux/phy/tegra/xusb.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/phy/tegra/xusb.h 2024-05-02 14:23:46.000000000 +0000 @@ -23,4 +23,6 @@ int tegra_phy_xusb_utmi_port_reset(struct phy *phy); int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, unsigned int port); +int tegra_xusb_padctl_get_port_number(struct phy *phy); + #endif /* PHY_TEGRA_XUSB_H */ diff -Nru linux-5.10.209/include/linux/pipe_fs_i.h linux-5.10.216/include/linux/pipe_fs_i.h --- linux-5.10.209/include/linux/pipe_fs_i.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/pipe_fs_i.h 2024-05-02 14:23:46.000000000 +0000 @@ -125,6 +125,22 @@ }; /** + * pipe_has_watch_queue - Check whether the pipe is a watch_queue, + * i.e. it was created with O_NOTIFICATION_PIPE + * @pipe: The pipe to check + * + * Return: true if pipe is a watch queue, false otherwise. + */ +static inline bool pipe_has_watch_queue(const struct pipe_inode_info *pipe) +{ +#ifdef CONFIG_WATCH_QUEUE + return pipe->watch_queue != NULL; +#else + return false; +#endif +} + +/** * pipe_empty - Return true if the pipe is empty * @head: The pipe ring head pointer * @tail: The pipe ring tail pointer diff -Nru linux-5.10.209/include/linux/pm_runtime.h linux-5.10.216/include/linux/pm_runtime.h --- linux-5.10.209/include/linux/pm_runtime.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/pm_runtime.h 2024-05-02 14:23:46.000000000 +0000 @@ -60,6 +60,8 @@ extern void pm_runtime_drop_link(struct device_link *link); extern void pm_runtime_release_supplier(struct device_link *link); +extern int devm_pm_runtime_enable(struct device *dev); + /** * pm_runtime_get_if_in_use - Conditionally bump up runtime PM usage counter. * @dev: Target device. @@ -254,6 +256,8 @@ static inline void pm_runtime_allow(struct device *dev) {} static inline void pm_runtime_forbid(struct device *dev) {} +static inline int devm_pm_runtime_enable(struct device *dev) { return 0; } + static inline void pm_suspend_ignore_children(struct device *dev, bool enable) {} static inline void pm_runtime_get_noresume(struct device *dev) {} static inline void pm_runtime_put_noidle(struct device *dev) {} @@ -535,6 +539,10 @@ * Allow the runtime PM autosuspend mechanism to be used for @dev whenever * requested (or "autosuspend" will be handled as direct runtime-suspend for * it). + * + * NOTE: It's important to undo this with pm_runtime_dont_use_autosuspend() + * at driver exit time unless your driver initially enabled pm_runtime + * with devm_pm_runtime_enable() (which handles it for you). */ static inline void pm_runtime_use_autosuspend(struct device *dev) { diff -Nru linux-5.10.209/include/linux/poll.h linux-5.10.216/include/linux/poll.h --- linux-5.10.209/include/linux/poll.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/poll.h 2024-05-02 14:23:46.000000000 +0000 @@ -16,11 +16,7 @@ extern struct ctl_table epoll_table[]; /* for sysctl */ /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating additional memory. */ -#ifdef __clang__ -#define MAX_STACK_ALLOC 768 -#else #define MAX_STACK_ALLOC 832 -#endif #define FRONTEND_STACK_ALLOC 256 #define SELECT_STACK_ALLOC FRONTEND_STACK_ALLOC #define POLL_STACK_ALLOC FRONTEND_STACK_ALLOC diff -Nru linux-5.10.209/include/linux/rcupdate.h linux-5.10.216/include/linux/rcupdate.h --- linux-5.10.209/include/linux/rcupdate.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/rcupdate.h 2024-05-02 14:23:46.000000000 +0000 @@ -202,6 +202,18 @@ #endif /* #else #ifdef CONFIG_TASKS_RCU_GENERIC */ /** + * rcu_trace_implies_rcu_gp - does an RCU Tasks Trace grace period imply an RCU grace period? + * + * As an accident of implementation, an RCU Tasks Trace grace period also + * acts as an RCU grace period. However, this could change at any time. + * Code relying on this accident must call this function to verify that + * this accident is still happening. + * + * You have been warned! + */ +static inline bool rcu_trace_implies_rcu_gp(void) { return true; } + +/** * cond_resched_tasks_rcu_qs - Report potential quiescent states to RCU * * This macro resembles cond_resched(), except that it is defined to @@ -214,6 +226,37 @@ cond_resched(); \ } while (0) +/** + * rcu_softirq_qs_periodic - Report RCU and RCU-Tasks quiescent states + * @old_ts: jiffies at start of processing. + * + * This helper is for long-running softirq handlers, such as NAPI threads in + * networking. The caller should initialize the variable passed in as @old_ts + * at the beginning of the softirq handler. When invoked frequently, this macro + * will invoke rcu_softirq_qs() every 100 milliseconds thereafter, which will + * provide both RCU and RCU-Tasks quiescent states. Note that this macro + * modifies its old_ts argument. + * + * Because regions of code that have disabled softirq act as RCU read-side + * critical sections, this macro should be invoked with softirq (and + * preemption) enabled. + * + * The macro is not needed when CONFIG_PREEMPT_RT is defined. RT kernels would + * have more chance to invoke schedule() calls and provide necessary quiescent + * states. As a contrast, calling cond_resched() only won't achieve the same + * effect because cond_resched() does not provide RCU-Tasks quiescent states. + */ +#define rcu_softirq_qs_periodic(old_ts) \ +do { \ + if (!IS_ENABLED(CONFIG_PREEMPT_RT) && \ + time_after(jiffies, (old_ts) + HZ / 10)) { \ + preempt_disable(); \ + rcu_softirq_qs(); \ + preempt_enable(); \ + (old_ts) = jiffies; \ + } \ +} while (0) + /* * Infrastructure to implement the synchronize_() primitives in * TREE_RCU and rcu_barrier_() primitives in TINY_RCU. diff -Nru linux-5.10.209/include/linux/regmap.h linux-5.10.216/include/linux/regmap.h --- linux-5.10.209/include/linux/regmap.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/regmap.h 2024-05-02 14:23:46.000000000 +0000 @@ -289,6 +289,17 @@ * read operation on a bus such as SPI, I2C, etc. Most of the * devices do not need this. * @reg_write: Same as above for writing. + * @reg_update_bits: Optional callback that if filled will be used to perform + * all the update_bits(rmw) operation. Should only be provided + * if the function require special handling with lock and reg + * handling and the operation cannot be represented as a simple + * update_bits operation on a bus such as SPI, I2C, etc. + * @read: Optional callback that if filled will be used to perform all the + * bulk reads from the registers. Data is returned in the buffer used + * to transmit data. + * @write: Same as above for writing. + * @max_raw_read: Max raw read size that can be used on the device. + * @max_raw_write: Max raw write size that can be used on the device. * @fast_io: Register IO is fast. Use a spinlock instead of a mutex * to perform locking. This field is ignored if custom lock/unlock * functions are used (see fields lock/unlock of struct regmap_config). @@ -366,6 +377,14 @@ int (*reg_read)(void *context, unsigned int reg, unsigned int *val); int (*reg_write)(void *context, unsigned int reg, unsigned int val); + int (*reg_update_bits)(void *context, unsigned int reg, + unsigned int mask, unsigned int val); + /* Bulk read/write */ + int (*read)(void *context, const void *reg_buf, size_t reg_size, + void *val_buf, size_t val_size); + int (*write)(void *context, const void *data, size_t count); + size_t max_raw_read; + size_t max_raw_write; bool fast_io; diff -Nru linux-5.10.209/include/linux/remoteproc.h linux-5.10.216/include/linux/remoteproc.h --- linux-5.10.209/include/linux/remoteproc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/remoteproc.h 2024-05-02 14:23:46.000000000 +0000 @@ -368,7 +368,9 @@ * RSC_HANDLED if resource was handled, RSC_IGNORED if not handled and a * negative value on error * @load_rsc_table: load resource table from firmware image - * @find_loaded_rsc_table: find the loaded resouce table + * @find_loaded_rsc_table: find the loaded resource table from firmware image + * @get_loaded_rsc_table: get resource table installed in memory + * by external entity * @load: load firmware to memory, where the remote processor * expects to find it * @sanity_check: sanity check the fw image @@ -389,6 +391,8 @@ int offset, int avail); struct resource_table *(*find_loaded_rsc_table)( struct rproc *rproc, const struct firmware *fw); + struct resource_table *(*get_loaded_rsc_table)( + struct rproc *rproc, size_t *size); int (*load)(struct rproc *rproc, const struct firmware *fw); int (*sanity_check)(struct rproc *rproc, const struct firmware *fw); u64 (*get_boot_addr)(struct rproc *rproc, const struct firmware *fw); diff -Nru linux-5.10.209/include/linux/sched/task_stack.h linux-5.10.216/include/linux/sched/task_stack.h --- linux-5.10.209/include/linux/sched/task_stack.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/sched/task_stack.h 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ * try_get_task_stack() instead. task_stack_page will return a pointer * that could get freed out from under you. */ -static inline void *task_stack_page(const struct task_struct *task) +static __always_inline void *task_stack_page(const struct task_struct *task) { return task->stack; } diff -Nru linux-5.10.209/include/linux/security.h linux-5.10.216/include/linux/security.h --- linux-5.10.209/include/linux/security.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/security.h 2024-05-02 14:23:46.000000000 +0000 @@ -31,6 +31,7 @@ #include #include #include +#include struct linux_binprm; struct cred; @@ -368,6 +369,8 @@ int security_file_alloc(struct file *file); void security_file_free(struct file *file); int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg); +int security_file_ioctl_compat(struct file *file, unsigned int cmd, + unsigned long arg); int security_mmap_file(struct file *file, unsigned long prot, unsigned long flags); int security_mmap_addr(unsigned long addr); @@ -925,6 +928,13 @@ return 0; } +static inline int security_file_ioctl_compat(struct file *file, + unsigned int cmd, + unsigned long arg) +{ + return 0; +} + static inline int security_mmap_file(struct file *file, unsigned long prot, unsigned long flags) { @@ -1357,8 +1367,8 @@ int security_socket_setsockopt(struct socket *sock, int level, int optname); int security_socket_shutdown(struct socket *sock, int how); int security_sock_rcv_skb(struct sock *sk, struct sk_buff *skb); -int security_socket_getpeersec_stream(struct socket *sock, char __user *optval, - int __user *optlen, unsigned len); +int security_socket_getpeersec_stream(struct socket *sock, sockptr_t optval, + sockptr_t optlen, unsigned int len); int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid); int security_sk_alloc(struct sock *sk, int family, gfp_t priority); void security_sk_free(struct sock *sk); @@ -1492,8 +1502,10 @@ return 0; } -static inline int security_socket_getpeersec_stream(struct socket *sock, char __user *optval, - int __user *optlen, unsigned len) +static inline int security_socket_getpeersec_stream(struct socket *sock, + sockptr_t optval, + sockptr_t optlen, + unsigned int len) { return -ENOPROTOOPT; } diff -Nru linux-5.10.209/include/linux/serial_core.h linux-5.10.216/include/linux/serial_core.h --- linux-5.10.209/include/linux/serial_core.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/serial_core.h 2024-05-02 14:23:46.000000000 +0000 @@ -254,11 +254,91 @@ struct attribute_group *attr_group; /* port specific attributes */ const struct attribute_group **tty_groups; /* all attributes (serial core use only) */ struct serial_rs485 rs485; + const struct serial_rs485 *rs485_supported; /* Supported mask for serial_rs485 */ struct gpio_desc *rs485_term_gpio; /* enable RS485 bus termination */ struct serial_iso7816 iso7816; void *private_data; /* generic platform data pointer */ }; +/** + * uart_port_lock - Lock the UART port + * @up: Pointer to UART port structure + */ +static inline void uart_port_lock(struct uart_port *up) +{ + spin_lock(&up->lock); +} + +/** + * uart_port_lock_irq - Lock the UART port and disable interrupts + * @up: Pointer to UART port structure + */ +static inline void uart_port_lock_irq(struct uart_port *up) +{ + spin_lock_irq(&up->lock); +} + +/** + * uart_port_lock_irqsave - Lock the UART port, save and disable interrupts + * @up: Pointer to UART port structure + * @flags: Pointer to interrupt flags storage + */ +static inline void uart_port_lock_irqsave(struct uart_port *up, unsigned long *flags) +{ + spin_lock_irqsave(&up->lock, *flags); +} + +/** + * uart_port_trylock - Try to lock the UART port + * @up: Pointer to UART port structure + * + * Returns: True if lock was acquired, false otherwise + */ +static inline bool uart_port_trylock(struct uart_port *up) +{ + return spin_trylock(&up->lock); +} + +/** + * uart_port_trylock_irqsave - Try to lock the UART port, save and disable interrupts + * @up: Pointer to UART port structure + * @flags: Pointer to interrupt flags storage + * + * Returns: True if lock was acquired, false otherwise + */ +static inline bool uart_port_trylock_irqsave(struct uart_port *up, unsigned long *flags) +{ + return spin_trylock_irqsave(&up->lock, *flags); +} + +/** + * uart_port_unlock - Unlock the UART port + * @up: Pointer to UART port structure + */ +static inline void uart_port_unlock(struct uart_port *up) +{ + spin_unlock(&up->lock); +} + +/** + * uart_port_unlock_irq - Unlock the UART port and re-enable interrupts + * @up: Pointer to UART port structure + */ +static inline void uart_port_unlock_irq(struct uart_port *up) +{ + spin_unlock_irq(&up->lock); +} + +/** + * uart_port_unlock_irqrestore - Unlock the UART port, restore interrupts + * @up: Pointer to UART port structure + * @flags: The saved interrupt flags for restore + */ +static inline void uart_port_unlock_irqrestore(struct uart_port *up, unsigned long flags) +{ + spin_unlock_irqrestore(&up->lock, flags); +} + static inline int serial_port_in(struct uart_port *up, int offset) { return up->serial_in(up, offset); diff -Nru linux-5.10.209/include/linux/socket.h linux-5.10.216/include/linux/socket.h --- linux-5.10.209/include/linux/socket.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/socket.h 2024-05-02 14:23:46.000000000 +0000 @@ -31,7 +31,10 @@ struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ - char sa_data[14]; /* 14 bytes of protocol address */ + union { + char sa_data_min[14]; /* Minimum 14 bytes of protocol address */ + DECLARE_FLEX_ARRAY(char, sa_data); + }; }; struct linger { diff -Nru linux-5.10.209/include/linux/sockptr.h linux-5.10.216/include/linux/sockptr.h --- linux-5.10.209/include/linux/sockptr.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/sockptr.h 2024-05-02 14:23:46.000000000 +0000 @@ -64,6 +64,11 @@ return 0; } +static inline int copy_to_sockptr(sockptr_t dst, const void *src, size_t size) +{ + return copy_to_sockptr_offset(dst, 0, src, size); +} + static inline void *memdup_sockptr(sockptr_t src, size_t len) { void *p = kmalloc_track_caller(len, GFP_USER | __GFP_NOWARN); diff -Nru linux-5.10.209/include/linux/spi/spi.h linux-5.10.216/include/linux/spi/spi.h --- linux-5.10.209/include/linux/spi/spi.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/spi/spi.h 2024-05-02 14:23:46.000000000 +0000 @@ -171,6 +171,7 @@ #define SPI_MODE_1 (0|SPI_CPHA) #define SPI_MODE_2 (SPI_CPOL|0) #define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) +#define SPI_MODE_X_MASK (SPI_CPOL|SPI_CPHA) #define SPI_CS_HIGH 0x04 /* chipselect active high? */ #define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */ #define SPI_3WIRE 0x10 /* SI/SO signals shared */ diff -Nru linux-5.10.209/include/linux/stddef.h linux-5.10.216/include/linux/stddef.h --- linux-5.10.209/include/linux/stddef.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/stddef.h 2024-05-02 14:23:46.000000000 +0000 @@ -84,4 +84,17 @@ #define struct_group_tagged(TAG, NAME, MEMBERS...) \ __struct_group(TAG, NAME, /* no attrs */, MEMBERS) +/** + * DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union + * + * @TYPE: The type of each flexible array element + * @NAME: The name of the flexible array member + * + * In order to have a flexible array member in a union or alone in a + * struct, it needs to be wrapped in an anonymous struct with at least 1 + * named member, but that member can be empty. + */ +#define DECLARE_FLEX_ARRAY(TYPE, NAME) \ + __DECLARE_FLEX_ARRAY(TYPE, NAME) + #endif diff -Nru linux-5.10.209/include/linux/sunrpc/sched.h linux-5.10.216/include/linux/sunrpc/sched.h --- linux-5.10.209/include/linux/sunrpc/sched.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/sunrpc/sched.h 2024-05-02 14:23:46.000000000 +0000 @@ -197,7 +197,7 @@ unsigned char maxpriority; /* maximum priority (0 if queue is not a priority queue) */ unsigned char priority; /* current priority */ unsigned char nr; /* # tasks remaining for cookie */ - unsigned short qlen; /* total # tasks waiting in queue */ + unsigned int qlen; /* total # tasks waiting in queue */ struct rpc_timer timer_list; #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS) const char * name; diff -Nru linux-5.10.209/include/linux/syscalls.h linux-5.10.216/include/linux/syscalls.h --- linux-5.10.209/include/linux/syscalls.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/syscalls.h 2024-05-02 14:23:46.000000000 +0000 @@ -119,6 +119,7 @@ #define __TYPE_IS_LL(t) (__TYPE_AS(t, 0LL) || __TYPE_AS(t, 0ULL)) #define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a #define __SC_CAST(t, a) (__force t) a +#define __SC_TYPE(t, a) t #define __SC_ARGS(t, a) a #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long)) diff -Nru linux-5.10.209/include/linux/timer.h linux-5.10.216/include/linux/timer.h --- linux-5.10.209/include/linux/timer.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/timer.h 2024-05-02 14:23:46.000000000 +0000 @@ -183,12 +183,20 @@ extern void add_timer(struct timer_list *timer); extern int try_to_del_timer_sync(struct timer_list *timer); +extern int timer_delete_sync(struct timer_list *timer); -#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT) - extern int del_timer_sync(struct timer_list *timer); -#else -# define del_timer_sync(t) del_timer(t) -#endif +/** + * del_timer_sync - Delete a pending timer and wait for a running callback + * @timer: The timer to be deleted + * + * See timer_delete_sync() for detailed explanation. + * + * Do not use in new code. Use timer_delete_sync() instead. + */ +static inline int del_timer_sync(struct timer_list *timer) +{ + return timer_delete_sync(timer); +} #define del_singleshot_timer_sync(t) del_timer_sync(t) diff -Nru linux-5.10.209/include/linux/trace_events.h linux-5.10.216/include/linux/trace_events.h --- linux-5.10.209/include/linux/trace_events.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/trace_events.h 2024-05-02 14:23:46.000000000 +0000 @@ -577,7 +577,7 @@ } \ early_initcall(trace_init_perf_perm_##name); -#define PERF_MAX_TRACE_SIZE 2048 +#define PERF_MAX_TRACE_SIZE 8192 #define MAX_FILTER_STR_VAL 256U /* Should handle KSYM_SYMBOL_LEN */ diff -Nru linux-5.10.209/include/linux/u64_stats_sync.h linux-5.10.216/include/linux/u64_stats_sync.h --- linux-5.10.209/include/linux/u64_stats_sync.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/u64_stats_sync.h 2024-05-02 14:23:46.000000000 +0000 @@ -116,7 +116,11 @@ #endif #if BITS_PER_LONG == 32 && defined(CONFIG_SMP) -#define u64_stats_init(syncp) seqcount_init(&(syncp)->seq) +#define u64_stats_init(syncp) \ + do { \ + struct u64_stats_sync *__s = (syncp); \ + seqcount_init(&__s->seq); \ + } while (0) #else static inline void u64_stats_init(struct u64_stats_sync *syncp) { diff -Nru linux-5.10.209/include/linux/udp.h linux-5.10.216/include/linux/udp.h --- linux-5.10.209/include/linux/udp.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/udp.h 2024-05-02 14:23:46.000000000 +0000 @@ -131,6 +131,24 @@ } } +DECLARE_STATIC_KEY_FALSE(udp_encap_needed_key); +#if IS_ENABLED(CONFIG_IPV6) +DECLARE_STATIC_KEY_FALSE(udpv6_encap_needed_key); +#endif + +static inline bool udp_encap_needed(void) +{ + if (static_branch_unlikely(&udp_encap_needed_key)) + return true; + +#if IS_ENABLED(CONFIG_IPV6) + if (static_branch_unlikely(&udpv6_encap_needed_key)) + return true; +#endif + + return false; +} + static inline bool udp_unexpected_gso(struct sock *sk, struct sk_buff *skb) { if (!skb_is_gso(skb)) @@ -142,6 +160,16 @@ if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST && !udp_sk(sk)->accept_udp_fraglist) return true; + /* GSO packets lacking the SKB_GSO_UDP_TUNNEL/_CSUM bits might still + * land in a tunnel as the socket check in udp_gro_receive cannot be + * foolproof. + */ + if (udp_encap_needed() && + READ_ONCE(udp_sk(sk)->encap_rcv) && + !(skb_shinfo(skb)->gso_type & + (SKB_GSO_UDP_TUNNEL | SKB_GSO_UDP_TUNNEL_CSUM))) + return true; + return false; } diff -Nru linux-5.10.209/include/linux/units.h linux-5.10.216/include/linux/units.h --- linux-5.10.209/include/linux/units.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/units.h 2024-05-02 14:23:46.000000000 +0000 @@ -20,9 +20,13 @@ #define PICO 1000000000000ULL #define FEMTO 1000000000000000ULL -#define MILLIWATT_PER_WATT 1000L -#define MICROWATT_PER_MILLIWATT 1000L -#define MICROWATT_PER_WATT 1000000L +#define HZ_PER_KHZ 1000UL +#define KHZ_PER_MHZ 1000UL +#define HZ_PER_MHZ 1000000UL + +#define MILLIWATT_PER_WATT 1000UL +#define MICROWATT_PER_MILLIWATT 1000UL +#define MICROWATT_PER_WATT 1000000UL #define ABSOLUTE_ZERO_MILLICELSIUS -273150 diff -Nru linux-5.10.209/include/linux/vfio.h linux-5.10.216/include/linux/vfio.h --- linux-5.10.209/include/linux/vfio.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/vfio.h 2024-05-02 14:23:46.000000000 +0000 @@ -221,6 +221,7 @@ wait_queue_entry_t wait; poll_table pt; struct work_struct shutdown; + struct work_struct flush_inject; struct virqfd **pvirqfd; }; @@ -229,5 +230,6 @@ void (*thread)(void *, void *), void *data, struct virqfd **pvirqfd, int fd); extern void vfio_virqfd_disable(struct virqfd **pvirqfd); +void vfio_virqfd_flush_thread(struct virqfd **pvirqfd); #endif /* VFIO_H */ diff -Nru linux-5.10.209/include/linux/vmalloc.h linux-5.10.216/include/linux/vmalloc.h --- linux-5.10.209/include/linux/vmalloc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/linux/vmalloc.h 2024-05-02 14:23:46.000000000 +0000 @@ -112,6 +112,11 @@ void *__vmalloc_node(unsigned long size, unsigned long align, gfp_t gfp_mask, int node, const void *caller); +extern void *__vmalloc_array(size_t n, size_t size, gfp_t flags); +extern void *vmalloc_array(size_t n, size_t size); +extern void *__vcalloc(size_t n, size_t size, gfp_t flags); +extern void *vcalloc(size_t n, size_t size); + extern void vfree(const void *addr); extern void vfree_atomic(const void *addr); diff -Nru linux-5.10.209/include/net/addrconf.h linux-5.10.216/include/net/addrconf.h --- linux-5.10.209/include/net/addrconf.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/addrconf.h 2024-05-02 14:23:46.000000000 +0000 @@ -437,6 +437,10 @@ refcount_inc(&ifp->refcnt); } +static inline bool in6_ifa_hold_safe(struct inet6_ifaddr *ifp) +{ + return refcount_inc_not_zero(&ifp->refcnt); +} /* * compute link-local solicited-node multicast address diff -Nru linux-5.10.209/include/net/af_unix.h linux-5.10.216/include/net/af_unix.h --- linux-5.10.209/include/net/af_unix.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/af_unix.h 2024-05-02 14:23:46.000000000 +0000 @@ -47,12 +47,6 @@ #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb)) -#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock) -#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock) -#define unix_state_lock_nested(s) \ - spin_lock_nested(&unix_sk(s)->lock, \ - SINGLE_DEPTH_NESTING) - /* The AF_UNIX socket */ struct unix_sock { /* WARNING: sk has to be the first member */ @@ -62,7 +56,7 @@ struct mutex iolock, bindlock; struct sock *peer; struct list_head link; - atomic_long_t inflight; + unsigned long inflight; spinlock_t lock; unsigned long gc_flags; #define UNIX_GC_CANDIDATE 0 @@ -77,6 +71,23 @@ return (struct unix_sock *)sk; } +#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock) +#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock) +enum unix_socket_lock_class { + U_LOCK_NORMAL, + U_LOCK_SECOND, /* for double locking, see unix_state_double_lock(). */ + U_LOCK_DIAG, /* used while dumping icons, see sk_diag_dump_icons(). */ + U_LOCK_GC_LISTENER, /* used for listening socket while determining gc + * candidates to close a small race window. + */ +}; + +static inline void unix_state_lock_nested(struct sock *sk, + enum unix_socket_lock_class subclass) +{ + spin_lock_nested(&unix_sk(sk)->lock, subclass); +} + #define peer_wait peer_wq.wait long unix_inq_len(struct sock *sk); diff -Nru linux-5.10.209/include/net/bluetooth/bluetooth.h linux-5.10.216/include/net/bluetooth/bluetooth.h --- linux-5.10.209/include/net/bluetooth/bluetooth.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/bluetooth/bluetooth.h 2024-05-02 14:23:46.000000000 +0000 @@ -487,6 +487,15 @@ return skb; } +static inline int bt_copy_from_sockptr(void *dst, size_t dst_size, + sockptr_t src, size_t src_size) +{ + if (dst_size > src_size) + return -EINVAL; + + return copy_from_sockptr(dst, src, dst_size); +} + int bt_to_errno(u16 code); void hci_sock_set_flag(struct sock *sk, int nr); diff -Nru linux-5.10.209/include/net/cfg802154.h linux-5.10.216/include/net/cfg802154.h --- linux-5.10.209/include/net/cfg802154.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/cfg802154.h 2024-05-02 14:23:46.000000000 +0000 @@ -257,6 +257,7 @@ struct ieee802154_llsec_key_entry { struct list_head list; + struct rcu_head rcu; struct ieee802154_llsec_key_id id; struct ieee802154_llsec_key *key; diff -Nru linux-5.10.209/include/net/compat.h linux-5.10.216/include/net/compat.h --- linux-5.10.209/include/net/compat.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/compat.h 2024-05-02 14:23:46.000000000 +0000 @@ -81,13 +81,26 @@ } __packed; struct compat_group_filter { - __u32 gf_interface; - struct __kernel_sockaddr_storage gf_group - __aligned(4); - __u32 gf_fmode; - __u32 gf_numsrc; - struct __kernel_sockaddr_storage gf_slist[1] - __aligned(4); + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux + __aligned(4); + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1] + __aligned(4); + } __packed; + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group + __aligned(4); + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[] + __aligned(4); + } __packed; + }; } __packed; #endif /* NET_COMPAT_H */ diff -Nru linux-5.10.209/include/net/inet_connection_sock.h linux-5.10.216/include/net/inet_connection_sock.h --- linux-5.10.209/include/net/inet_connection_sock.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/inet_connection_sock.h 2024-05-02 14:23:46.000000000 +0000 @@ -172,6 +172,7 @@ void (*delack_handler)(struct timer_list *), void (*keepalive_handler)(struct timer_list *)); void inet_csk_clear_xmit_timers(struct sock *sk); +void inet_csk_clear_xmit_timers_sync(struct sock *sk); static inline void inet_csk_schedule_ack(struct sock *sk) { @@ -339,4 +340,12 @@ return inet_sk(sk)->is_icsk && !!inet_csk(sk)->icsk_ulp_ops; } +static inline void inet_init_csk_locks(struct sock *sk) +{ + struct inet_connection_sock *icsk = inet_csk(sk); + + spin_lock_init(&icsk->icsk_accept_queue.rskq_lock); + spin_lock_init(&icsk->icsk_accept_queue.fastopenq.lock); +} + #endif /* _INET_CONNECTION_SOCK_H */ diff -Nru linux-5.10.209/include/net/ip_tunnels.h linux-5.10.216/include/net/ip_tunnels.h --- linux-5.10.209/include/net/ip_tunnels.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/ip_tunnels.h 2024-05-02 14:23:46.000000000 +0000 @@ -333,6 +333,39 @@ return pskb_network_may_pull(skb, nhlen); } +/* Variant of pskb_inet_may_pull(). + */ +static inline bool skb_vlan_inet_prepare(struct sk_buff *skb) +{ + int nhlen = 0, maclen = ETH_HLEN; + __be16 type = skb->protocol; + + /* Essentially this is skb_protocol(skb, true) + * And we get MAC len. + */ + if (eth_type_vlan(type)) + type = __vlan_get_protocol(skb, type, &maclen); + + switch (type) { +#if IS_ENABLED(CONFIG_IPV6) + case htons(ETH_P_IPV6): + nhlen = sizeof(struct ipv6hdr); + break; +#endif + case htons(ETH_P_IP): + nhlen = sizeof(struct iphdr); + break; + } + /* For ETH_P_IPV6/ETH_P_IP we make sure to pull + * a base network header in skb->head. + */ + if (!pskb_may_pull(skb, maclen + nhlen)) + return false; + + skb_set_network_header(skb, maclen); + return true; +} + static inline int ip_encap_hlen(struct ip_tunnel_encap *e) { const struct ip_tunnel_encap_ops *ops; diff -Nru linux-5.10.209/include/net/llc_pdu.h linux-5.10.216/include/net/llc_pdu.h --- linux-5.10.209/include/net/llc_pdu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/llc_pdu.h 2024-05-02 14:23:46.000000000 +0000 @@ -262,8 +262,7 @@ */ static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa) { - if (skb->protocol == htons(ETH_P_802_2)) - memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN); + memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN); } /** @@ -275,8 +274,7 @@ */ static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da) { - if (skb->protocol == htons(ETH_P_802_2)) - memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN); + memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN); } /** diff -Nru linux-5.10.209/include/net/netfilter/nf_tables.h linux-5.10.216/include/net/netfilter/nf_tables.h --- linux-5.10.209/include/net/netfilter/nf_tables.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/netfilter/nf_tables.h 2024-05-02 14:23:46.000000000 +0000 @@ -142,9 +142,9 @@ return *(u16 *)sreg; } -static inline void nft_reg_store64(u32 *dreg, u64 val) +static inline void nft_reg_store64(u64 *dreg, u64 val) { - put_unaligned(val, (u64 *)dreg); + put_unaligned(val, dreg); } static inline u64 nft_reg_load64(const u32 *sreg) diff -Nru linux-5.10.209/include/net/sock.h linux-5.10.216/include/net/sock.h --- linux-5.10.209/include/net/sock.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/sock.h 2024-05-02 14:23:46.000000000 +0000 @@ -1681,6 +1681,13 @@ #endif } +static inline void sock_not_owned_by_me(const struct sock *sk) +{ +#ifdef CONFIG_LOCKDEP + WARN_ON_ONCE(lockdep_sock_is_held(sk) && debug_locks); +#endif +} + static inline bool sock_owned_by_user(const struct sock *sk) { sock_owned_by_me(sk); diff -Nru linux-5.10.209/include/net/tcp.h linux-5.10.216/include/net/tcp.h --- linux-5.10.209/include/net/tcp.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/net/tcp.h 2024-05-02 14:23:46.000000000 +0000 @@ -2224,7 +2224,7 @@ /* cleanup ulp */ void (*release)(struct sock *sk); /* diagnostic */ - int (*get_info)(const struct sock *sk, struct sk_buff *skb); + int (*get_info)(struct sock *sk, struct sk_buff *skb); size_t (*get_info_size)(const struct sock *sk); /* clone ulp */ void (*clone)(const struct request_sock *req, struct sock *newsk, diff -Nru linux-5.10.209/include/scsi/scsi.h linux-5.10.216/include/scsi/scsi.h --- linux-5.10.209/include/scsi/scsi.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/scsi/scsi.h 2024-05-02 14:23:46.000000000 +0000 @@ -178,16 +178,17 @@ /* * Internal return values. */ - -#define NEEDS_RETRY 0x2001 -#define SUCCESS 0x2002 -#define FAILED 0x2003 -#define QUEUED 0x2004 -#define SOFT_ERROR 0x2005 -#define ADD_TO_MLQUEUE 0x2006 -#define TIMEOUT_ERROR 0x2007 -#define SCSI_RETURN_NOT_HANDLED 0x2008 -#define FAST_IO_FAIL 0x2009 +enum scsi_disposition { + NEEDS_RETRY = 0x2001, + SUCCESS = 0x2002, + FAILED = 0x2003, + QUEUED = 0x2004, + SOFT_ERROR = 0x2005, + ADD_TO_MLQUEUE = 0x2006, + TIMEOUT_ERROR = 0x2007, + SCSI_RETURN_NOT_HANDLED = 0x2008, + FAST_IO_FAIL = 0x2009, +}; /* * Midlevel queue return values. diff -Nru linux-5.10.209/include/scsi/scsi_dh.h linux-5.10.216/include/scsi/scsi_dh.h --- linux-5.10.209/include/scsi/scsi_dh.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/scsi/scsi_dh.h 2024-05-02 14:23:46.000000000 +0000 @@ -52,7 +52,8 @@ /* Filled by the hardware handler */ struct module *module; const char *name; - int (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); + enum scsi_disposition (*check_sense)(struct scsi_device *, + struct scsi_sense_hdr *); int (*attach)(struct scsi_device *); void (*detach)(struct scsi_device *); int (*activate)(struct scsi_device *, activate_complete, void *); diff -Nru linux-5.10.209/include/scsi/scsi_eh.h linux-5.10.216/include/scsi/scsi_eh.h --- linux-5.10.209/include/scsi/scsi_eh.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/scsi/scsi_eh.h 2024-05-02 14:23:46.000000000 +0000 @@ -17,7 +17,7 @@ extern int scsi_block_when_processing_errors(struct scsi_device *); extern bool scsi_command_normalize_sense(const struct scsi_cmnd *cmd, struct scsi_sense_hdr *sshdr); -extern int scsi_check_sense(struct scsi_cmnd *); +extern enum scsi_disposition scsi_check_sense(struct scsi_cmnd *); static inline bool scsi_sense_is_deferred(const struct scsi_sense_hdr *sshdr) { diff -Nru linux-5.10.209/include/soc/fsl/qman.h linux-5.10.216/include/soc/fsl/qman.h --- linux-5.10.209/include/soc/fsl/qman.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/soc/fsl/qman.h 2024-05-02 14:23:46.000000000 +0000 @@ -1171,6 +1171,15 @@ void qman_delete_cgr_safe(struct qman_cgr *cgr); /** + * qman_update_cgr_safe - Modifies a congestion group object from any CPU + * @cgr: the 'cgr' object to modify + * @opts: state of the CGR settings + * + * This will select the proper CPU and modify the CGR settings. + */ +int qman_update_cgr_safe(struct qman_cgr *cgr, struct qm_mcc_initcgr *opts); + +/** * qman_query_cgr_congested - Queries CGR's congestion status * @cgr: the 'cgr' object to query * @result: returns 'cgr's congestion status, 1 (true) if congested diff -Nru linux-5.10.209/include/trace/events/qdisc.h linux-5.10.216/include/trace/events/qdisc.h --- linux-5.10.209/include/trace/events/qdisc.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/trace/events/qdisc.h 2024-05-02 14:23:46.000000000 +0000 @@ -53,14 +53,14 @@ TP_ARGS(q), TP_STRUCT__entry( - __string( dev, qdisc_dev(q) ) - __string( kind, q->ops->id ) - __field( u32, parent ) - __field( u32, handle ) + __string( dev, qdisc_dev(q)->name ) + __string( kind, q->ops->id ) + __field( u32, parent ) + __field( u32, handle ) ), TP_fast_assign( - __assign_str(dev, qdisc_dev(q)); + __assign_str(dev, qdisc_dev(q)->name); __assign_str(kind, q->ops->id); __entry->parent = q->parent; __entry->handle = q->handle; @@ -78,14 +78,14 @@ TP_ARGS(q), TP_STRUCT__entry( - __string( dev, qdisc_dev(q) ) - __string( kind, q->ops->id ) - __field( u32, parent ) - __field( u32, handle ) + __string( dev, qdisc_dev(q)->name ) + __string( kind, q->ops->id ) + __field( u32, parent ) + __field( u32, handle ) ), TP_fast_assign( - __assign_str(dev, qdisc_dev(q)); + __assign_str(dev, qdisc_dev(q)->name); __assign_str(kind, q->ops->id); __entry->parent = q->parent; __entry->handle = q->handle; diff -Nru linux-5.10.209/include/uapi/linux/btrfs.h linux-5.10.216/include/uapi/linux/btrfs.h --- linux-5.10.209/include/uapi/linux/btrfs.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/linux/btrfs.h 2024-05-02 14:23:46.000000000 +0000 @@ -576,6 +576,9 @@ */ #define BTRFS_DEFRAG_RANGE_COMPRESS 1 #define BTRFS_DEFRAG_RANGE_START_IO 2 +#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \ + BTRFS_DEFRAG_RANGE_START_IO) + struct btrfs_ioctl_defrag_range_args { /* start of the defrag operation */ __u64 start; diff -Nru linux-5.10.209/include/uapi/linux/in.h linux-5.10.216/include/uapi/linux/in.h --- linux-5.10.209/include/uapi/linux/in.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/linux/in.h 2024-05-02 14:23:46.000000000 +0000 @@ -190,11 +190,22 @@ }; struct ip_msfilter { - __be32 imsf_multiaddr; - __be32 imsf_interface; - __u32 imsf_fmode; - __u32 imsf_numsrc; - __be32 imsf_slist[1]; + union { + struct { + __be32 imsf_multiaddr_aux; + __be32 imsf_interface_aux; + __u32 imsf_fmode_aux; + __u32 imsf_numsrc_aux; + __be32 imsf_slist[1]; + }; + struct { + __be32 imsf_multiaddr; + __be32 imsf_interface; + __u32 imsf_fmode; + __u32 imsf_numsrc; + __be32 imsf_slist_flex[]; + }; + }; }; #define IP_MSFILTER_SIZE(numsrc) \ @@ -213,11 +224,22 @@ }; struct group_filter { - __u32 gf_interface; /* interface index */ - struct __kernel_sockaddr_storage gf_group; /* multicast address */ - __u32 gf_fmode; /* filter mode */ - __u32 gf_numsrc; /* number of sources */ - struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ + union { + struct { + __u32 gf_interface_aux; /* interface index */ + struct __kernel_sockaddr_storage gf_group_aux; /* multicast address */ + __u32 gf_fmode_aux; /* filter mode */ + __u32 gf_numsrc_aux; /* number of sources */ + struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ + }; + struct { + __u32 gf_interface; /* interface index */ + struct __kernel_sockaddr_storage gf_group; /* multicast address */ + __u32 gf_fmode; /* filter mode */ + __u32 gf_numsrc; /* number of sources */ + struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */ + }; + }; }; #define GROUP_FILTER_SIZE(numsrc) \ diff -Nru linux-5.10.209/include/uapi/linux/input-event-codes.h linux-5.10.216/include/uapi/linux/input-event-codes.h --- linux-5.10.209/include/uapi/linux/input-event-codes.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/linux/input-event-codes.h 2024-05-02 14:23:46.000000000 +0000 @@ -602,6 +602,7 @@ #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ diff -Nru linux-5.10.209/include/uapi/linux/netfilter/nf_tables.h linux-5.10.216/include/uapi/linux/netfilter/nf_tables.h --- linux-5.10.209/include/uapi/linux/netfilter/nf_tables.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/linux/netfilter/nf_tables.h 2024-05-02 14:23:46.000000000 +0000 @@ -262,9 +262,11 @@ /** * enum nft_rule_compat_flags - nf_tables rule compat flags * + * @NFT_RULE_COMPAT_F_UNUSED: unused * @NFT_RULE_COMPAT_F_INV: invert the check result */ enum nft_rule_compat_flags { + NFT_RULE_COMPAT_F_UNUSED = (1 << 0), NFT_RULE_COMPAT_F_INV = (1 << 1), NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV, }; diff -Nru linux-5.10.209/include/uapi/linux/stddef.h linux-5.10.216/include/uapi/linux/stddef.h --- linux-5.10.209/include/uapi/linux/stddef.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/linux/stddef.h 2024-05-02 14:23:46.000000000 +0000 @@ -28,4 +28,27 @@ struct { MEMBERS } ATTRS; \ struct TAG { MEMBERS } ATTRS NAME; \ } + +#ifdef __cplusplus +/* sizeof(struct{}) is 1 in C++, not 0, can't use C version of the macro. */ +#define __DECLARE_FLEX_ARRAY(T, member) \ + T member[0] +#else +/** + * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union + * + * @TYPE: The type of each flexible array element + * @NAME: The name of the flexible array member + * + * In order to have a flexible array member in a union or alone in a + * struct, it needs to be wrapped in an anonymous struct with at least 1 + * named member, but that member can be empty. + */ +#define __DECLARE_FLEX_ARRAY(TYPE, NAME) \ + struct { \ + struct { } __empty_ ## NAME; \ + TYPE NAME[]; \ + } +#endif + #endif diff -Nru linux-5.10.209/include/uapi/scsi/fc/fc_els.h linux-5.10.216/include/uapi/scsi/fc/fc_els.h --- linux-5.10.209/include/uapi/scsi/fc/fc_els.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/include/uapi/scsi/fc/fc_els.h 2024-05-02 14:23:46.000000000 +0000 @@ -916,7 +916,9 @@ ELS_CLID_IC_LIP = 8, /* receiving LIP */ }; - +/* + * Link Integrity event types + */ enum fc_fpin_li_event_types { FPIN_LI_UNKNOWN = 0x0, FPIN_LI_LINK_FAILURE = 0x1, @@ -943,6 +945,54 @@ { FPIN_LI_DEVICE_SPEC, "Device Specific" }, \ } +/* + * Delivery event types + */ +enum fc_fpin_deli_event_types { + FPIN_DELI_UNKNOWN = 0x0, + FPIN_DELI_TIMEOUT = 0x1, + FPIN_DELI_UNABLE_TO_ROUTE = 0x2, + FPIN_DELI_DEVICE_SPEC = 0xF, +}; + +/* + * Initializer useful for decoding table. + * Please keep this in sync with the above definitions. + */ +#define FC_FPIN_DELI_EVT_TYPES_INIT { \ + { FPIN_DELI_UNKNOWN, "Unknown" }, \ + { FPIN_DELI_TIMEOUT, "Timeout" }, \ + { FPIN_DELI_UNABLE_TO_ROUTE, "Unable to Route" }, \ + { FPIN_DELI_DEVICE_SPEC, "Device Specific" }, \ +} + +/* + * Congestion event types + */ +enum fc_fpin_congn_event_types { + FPIN_CONGN_CLEAR = 0x0, + FPIN_CONGN_LOST_CREDIT = 0x1, + FPIN_CONGN_CREDIT_STALL = 0x2, + FPIN_CONGN_OVERSUBSCRIPTION = 0x3, + FPIN_CONGN_DEVICE_SPEC = 0xF, +}; + +/* + * Initializer useful for decoding table. + * Please keep this in sync with the above definitions. + */ +#define FC_FPIN_CONGN_EVT_TYPES_INIT { \ + { FPIN_CONGN_CLEAR, "Clear" }, \ + { FPIN_CONGN_LOST_CREDIT, "Lost Credit" }, \ + { FPIN_CONGN_CREDIT_STALL, "Credit Stall" }, \ + { FPIN_CONGN_OVERSUBSCRIPTION, "Oversubscription" }, \ + { FPIN_CONGN_DEVICE_SPEC, "Device Specific" }, \ +} + +enum fc_fpin_congn_severity_types { + FPIN_CONGN_SEVERITY_WARNING = 0xF1, + FPIN_CONGN_SEVERITY_ERROR = 0xF7, +}; /* * Link Integrity Notification Descriptor @@ -975,6 +1025,68 @@ }; /* + * Delivery Notification Descriptor + */ +struct fc_fn_deli_desc { + __be32 desc_tag; /* Descriptor Tag (0x00020002) */ + __be32 desc_len; /* Length of Descriptor (in bytes). + * Size of descriptor excluding + * desc_tag and desc_len fields. + */ + __be64 detecting_wwpn; /* Port Name that detected event */ + __be64 attached_wwpn; /* Port Name of device attached to + * detecting Port Name + */ + __be32 deli_reason_code;/* see enum fc_fpin_deli_event_types */ +}; + +/* + * Peer Congestion Notification Descriptor + */ +struct fc_fn_peer_congn_desc { + __be32 desc_tag; /* Descriptor Tag (0x00020003) */ + __be32 desc_len; /* Length of Descriptor (in bytes). + * Size of descriptor excluding + * desc_tag and desc_len fields. + */ + __be64 detecting_wwpn; /* Port Name that detected event */ + __be64 attached_wwpn; /* Port Name of device attached to + * detecting Port Name + */ + __be16 event_type; /* see enum fc_fpin_congn_event_types */ + __be16 event_modifier; /* Implementation specific value + * describing the event type + */ + __be32 event_period; /* duration (ms) of the detected + * congestion event + */ + __be32 pname_count; /* number of portname_list elements */ + __be64 pname_list[0]; /* list of N_Port_Names accessible + * through the attached port + */ +}; + +/* + * Congestion Notification Descriptor + */ +struct fc_fn_congn_desc { + __be32 desc_tag; /* Descriptor Tag (0x00020004) */ + __be32 desc_len; /* Length of Descriptor (in bytes). + * Size of descriptor excluding + * desc_tag and desc_len fields. + */ + __be16 event_type; /* see enum fc_fpin_congn_event_types */ + __be16 event_modifier; /* Implementation specific value + * describing the event type + */ + __be32 event_period; /* duration (ms) of the detected + * congestion event + */ + __u8 severity; /* command */ + __u8 resv[3]; /* reserved - must be zero */ +}; + +/* * ELS_FPIN - Fabric Performance Impact Notification */ struct fc_els_fpin { diff -Nru linux-5.10.209/init/initramfs.c linux-5.10.216/init/initramfs.c --- linux-5.10.209/init/initramfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/init/initramfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -589,7 +589,7 @@ printk(KERN_INFO "rootfs image is not initramfs (%s); looks like an initrd\n", err); - file = filp_open("/initrd.image", O_WRONLY | O_CREAT, 0700); + file = filp_open("/initrd.image", O_WRONLY|O_CREAT|O_LARGEFILE, 0700); if (IS_ERR(file)) return; diff -Nru linux-5.10.209/init/main.c linux-5.10.216/init/main.c --- linux-5.10.209/init/main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/init/main.c 2024-05-02 14:23:46.000000000 +0000 @@ -627,6 +627,8 @@ if (!saved_command_line) panic("%s: Failed to allocate %zu bytes\n", __func__, len + ilen); + len = xlen + strlen(command_line) + 1; + static_command_line = memblock_alloc(len, SMP_CACHE_BYTES); if (!static_command_line) panic("%s: Failed to allocate %zu bytes\n", __func__, len); diff -Nru linux-5.10.209/io_uring/io_uring.c linux-5.10.216/io_uring/io_uring.c --- linux-5.10.209/io_uring/io_uring.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/io_uring/io_uring.c 2024-05-02 14:23:46.000000000 +0000 @@ -62,7 +62,6 @@ #include #include #include -#include #include #include #include @@ -440,9 +439,6 @@ /* Keep this last, we don't need it for the fast path */ struct { - #if defined(CONFIG_UNIX) - struct socket *ring_sock; - #endif /* hashed buffered write serialization */ struct io_wq_hash *hash_map; @@ -1113,19 +1109,6 @@ static const struct file_operations io_uring_fops; -struct sock *io_uring_get_socket(struct file *file) -{ -#if defined(CONFIG_UNIX) - if (file->f_op == &io_uring_fops) { - struct io_ring_ctx *ctx = file->private_data; - - return ctx->ring_sock->sk; - } -#endif - return NULL; -} -EXPORT_SYMBOL(io_uring_get_socket); - static inline void io_tw_lock(struct io_ring_ctx *ctx, bool *locked) { if (!*locked) { @@ -7657,7 +7640,7 @@ struct io_wait_queue *iowq, ktime_t *timeout) { - int io_wait, ret; + int ret; /* make sure we run task_work before checking for signals */ ret = io_run_task_work_sig(); @@ -7672,13 +7655,12 @@ * can take into account that the task is waiting for IO - turns out * to be important for low QD IO. */ - io_wait = current->in_iowait; if (current_pending_io()) current->in_iowait = 1; ret = 1; if (!schedule_hrtimeout(timeout, HRTIMER_MODE_ABS)) ret = -ETIME; - current->in_iowait = io_wait; + current->in_iowait = 0; return ret; } @@ -7989,15 +7971,6 @@ static void __io_sqe_files_unregister(struct io_ring_ctx *ctx) { -#if defined(CONFIG_UNIX) - if (ctx->ring_sock) { - struct sock *sock = ctx->ring_sock->sk; - struct sk_buff *skb; - - while ((skb = skb_dequeue(&sock->sk_receive_queue)) != NULL) - kfree_skb(skb); - } -#else int i; for (i = 0; i < ctx->nr_user_files; i++) { @@ -8007,7 +7980,6 @@ if (file) fput(file); } -#endif io_free_file_tables(&ctx->file_table); io_rsrc_data_free(ctx->file_data); ctx->file_data = NULL; @@ -8159,170 +8131,11 @@ return sqd; } -#if defined(CONFIG_UNIX) -/* - * Ensure the UNIX gc is aware of our file set, so we are certain that - * the io_uring can be safely unregistered on process exit, even if we have - * loops in the file referencing. - */ -static int __io_sqe_files_scm(struct io_ring_ctx *ctx, int nr, int offset) -{ - struct sock *sk = ctx->ring_sock->sk; - struct scm_fp_list *fpl; - struct sk_buff *skb; - int i, nr_files; - - fpl = kzalloc(sizeof(*fpl), GFP_KERNEL); - if (!fpl) - return -ENOMEM; - - skb = alloc_skb(0, GFP_KERNEL); - if (!skb) { - kfree(fpl); - return -ENOMEM; - } - - skb->sk = sk; - skb->scm_io_uring = 1; - - nr_files = 0; - fpl->user = get_uid(current_user()); - for (i = 0; i < nr; i++) { - struct file *file = io_file_from_index(ctx, i + offset); - - if (!file) - continue; - fpl->fp[nr_files] = get_file(file); - unix_inflight(fpl->user, fpl->fp[nr_files]); - nr_files++; - } - - if (nr_files) { - fpl->max = SCM_MAX_FD; - fpl->count = nr_files; - UNIXCB(skb).fp = fpl; - skb->destructor = unix_destruct_scm; - refcount_add(skb->truesize, &sk->sk_wmem_alloc); - skb_queue_head(&sk->sk_receive_queue, skb); - - for (i = 0; i < nr; i++) { - struct file *file = io_file_from_index(ctx, i + offset); - - if (file) - fput(file); - } - } else { - kfree_skb(skb); - free_uid(fpl->user); - kfree(fpl); - } - - return 0; -} - -/* - * If UNIX sockets are enabled, fd passing can cause a reference cycle which - * causes regular reference counting to break down. We rely on the UNIX - * garbage collection to take care of this problem for us. - */ -static int io_sqe_files_scm(struct io_ring_ctx *ctx) -{ - unsigned left, total; - int ret = 0; - - total = 0; - left = ctx->nr_user_files; - while (left) { - unsigned this_files = min_t(unsigned, left, SCM_MAX_FD); - - ret = __io_sqe_files_scm(ctx, this_files, total); - if (ret) - break; - left -= this_files; - total += this_files; - } - - if (!ret) - return 0; - - while (total < ctx->nr_user_files) { - struct file *file = io_file_from_index(ctx, total); - - if (file) - fput(file); - total++; - } - - return ret; -} -#else -static int io_sqe_files_scm(struct io_ring_ctx *ctx) -{ - return 0; -} -#endif - static void io_rsrc_file_put(struct io_ring_ctx *ctx, struct io_rsrc_put *prsrc) { struct file *file = prsrc->file; -#if defined(CONFIG_UNIX) - struct sock *sock = ctx->ring_sock->sk; - struct sk_buff_head list, *head = &sock->sk_receive_queue; - struct sk_buff *skb; - int i; - - __skb_queue_head_init(&list); - - /* - * Find the skb that holds this file in its SCM_RIGHTS. When found, - * remove this entry and rearrange the file array. - */ - skb = skb_dequeue(head); - while (skb) { - struct scm_fp_list *fp; - - fp = UNIXCB(skb).fp; - for (i = 0; i < fp->count; i++) { - int left; - - if (fp->fp[i] != file) - continue; - - unix_notinflight(fp->user, fp->fp[i]); - left = fp->count - 1 - i; - if (left) { - memmove(&fp->fp[i], &fp->fp[i + 1], - left * sizeof(struct file *)); - } - fp->count--; - if (!fp->count) { - kfree_skb(skb); - skb = NULL; - } else { - __skb_queue_tail(&list, skb); - } - fput(file); - file = NULL; - break; - } - - if (!file) - break; - - __skb_queue_tail(&list, skb); - - skb = skb_dequeue(head); - } - if (skb_peek(&list)) { - spin_lock_irq(&head->lock); - while ((skb = __skb_dequeue(&list)) != NULL) - __skb_queue_tail(head, skb); - spin_unlock_irq(&head->lock); - } -#else fput(file); -#endif } static void __io_rsrc_put_work(struct io_rsrc_node *ref_node) @@ -8433,14 +8246,8 @@ io_fixed_file_set(io_fixed_file_slot(&ctx->file_table, i), file); } - ret = io_sqe_files_scm(ctx); - if (ret) { - __io_sqe_files_unregister(ctx); - return ret; - } - io_rsrc_node_switch(ctx, NULL); - return ret; + return 0; out_fput: for (i = 0; i < ctx->nr_user_files; i++) { file = io_file_from_index(ctx, i); @@ -9395,12 +9202,6 @@ WARN_ON_ONCE(!list_empty(&ctx->rsrc_ref_list)); WARN_ON_ONCE(!llist_empty(&ctx->rsrc_put_llist)); -#if defined(CONFIG_UNIX) - if (ctx->ring_sock) { - ctx->ring_sock->file = NULL; /* so that iput() is called */ - sock_release(ctx->ring_sock); - } -#endif WARN_ON_ONCE(!list_empty(&ctx->ltimeout_list)); if (ctx->mm_account) { @@ -10275,6 +10076,11 @@ #endif }; +bool io_is_uring_fops(struct file *file) +{ + return file->f_op == &io_uring_fops; +} + static int io_allocate_scq_urings(struct io_ring_ctx *ctx, struct io_uring_params *p) { @@ -10337,32 +10143,12 @@ /* * Allocate an anonymous fd, this is what constitutes the application * visible backing of an io_uring instance. The application mmaps this - * fd to gain access to the SQ/CQ ring details. If UNIX sockets are enabled, - * we have to tie this fd to a socket for file garbage collection purposes. + * fd to gain access to the SQ/CQ ring details. */ static struct file *io_uring_get_file(struct io_ring_ctx *ctx) { - struct file *file; -#if defined(CONFIG_UNIX) - int ret; - - ret = sock_create_kern(&init_net, PF_UNIX, SOCK_RAW, IPPROTO_IP, - &ctx->ring_sock); - if (ret) - return ERR_PTR(ret); -#endif - - file = anon_inode_getfile("[io_uring]", &io_uring_fops, ctx, - O_RDWR | O_CLOEXEC); -#if defined(CONFIG_UNIX) - if (IS_ERR(file)) { - sock_release(ctx->ring_sock); - ctx->ring_sock = NULL; - } else { - ctx->ring_sock->file = file; - } -#endif - return file; + return anon_inode_getfile("[io_uring]", &io_uring_fops, ctx, + O_RDWR | O_CLOEXEC); } static int io_uring_create(unsigned entries, struct io_uring_params *p, diff -Nru linux-5.10.209/kernel/async.c linux-5.10.216/kernel/async.c --- linux-5.10.209/kernel/async.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/async.c 2024-05-02 14:23:46.000000000 +0000 @@ -145,6 +145,39 @@ wake_up(&async_done); } +static async_cookie_t __async_schedule_node_domain(async_func_t func, + void *data, int node, + struct async_domain *domain, + struct async_entry *entry) +{ + async_cookie_t newcookie; + unsigned long flags; + + INIT_LIST_HEAD(&entry->domain_list); + INIT_LIST_HEAD(&entry->global_list); + INIT_WORK(&entry->work, async_run_entry_fn); + entry->func = func; + entry->data = data; + entry->domain = domain; + + spin_lock_irqsave(&async_lock, flags); + + /* allocate cookie and queue */ + newcookie = entry->cookie = next_cookie++; + + list_add_tail(&entry->domain_list, &domain->pending); + if (domain->registered) + list_add_tail(&entry->global_list, &async_global_pending); + + atomic_inc(&entry_count); + spin_unlock_irqrestore(&async_lock, flags); + + /* schedule for execution */ + queue_work_node(node, system_unbound_wq, &entry->work); + + return newcookie; +} + /** * async_schedule_node_domain - NUMA specific version of async_schedule_domain * @func: function to execute asynchronously @@ -186,29 +219,8 @@ func(data, newcookie); return newcookie; } - INIT_LIST_HEAD(&entry->domain_list); - INIT_LIST_HEAD(&entry->global_list); - INIT_WORK(&entry->work, async_run_entry_fn); - entry->func = func; - entry->data = data; - entry->domain = domain; - - spin_lock_irqsave(&async_lock, flags); - - /* allocate cookie and queue */ - newcookie = entry->cookie = next_cookie++; - - list_add_tail(&entry->domain_list, &domain->pending); - if (domain->registered) - list_add_tail(&entry->global_list, &async_global_pending); - - atomic_inc(&entry_count); - spin_unlock_irqrestore(&async_lock, flags); - - /* schedule for execution */ - queue_work_node(node, system_unbound_wq, &entry->work); - return newcookie; + return __async_schedule_node_domain(func, data, node, domain, entry); } EXPORT_SYMBOL_GPL(async_schedule_node_domain); @@ -232,6 +244,35 @@ EXPORT_SYMBOL_GPL(async_schedule_node); /** + * async_schedule_dev_nocall - A simplified variant of async_schedule_dev() + * @func: function to execute asynchronously + * @dev: device argument to be passed to function + * + * @dev is used as both the argument for the function and to provide NUMA + * context for where to run the function. + * + * If the asynchronous execution of @func is scheduled successfully, return + * true. Otherwise, do nothing and return false, unlike async_schedule_dev() + * that will run the function synchronously then. + */ +bool async_schedule_dev_nocall(async_func_t func, struct device *dev) +{ + struct async_entry *entry; + + entry = kzalloc(sizeof(struct async_entry), GFP_KERNEL); + + /* Give up if there is no memory or too much work. */ + if (!entry || atomic_read(&entry_count) > MAX_WORK) { + kfree(entry); + return false; + } + + __async_schedule_node_domain(func, dev, dev_to_node(dev), + &async_dfl_domain, entry); + return true; +} + +/** * async_synchronize_full - synchronize all asynchronous function calls * * This function waits until all asynchronous function calls have been done. diff -Nru linux-5.10.209/kernel/audit.c linux-5.10.216/kernel/audit.c --- linux-5.10.209/kernel/audit.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/audit.c 2024-05-02 14:23:46.000000000 +0000 @@ -490,15 +490,19 @@ * @pid: auditd PID * @portid: auditd netlink portid * @net: auditd network namespace pointer + * @skb: the netlink command from the audit daemon + * @ack: netlink ack flag, cleared if ack'd here * * Description: * This function will obtain and drop network namespace references as * necessary. Returns zero on success, negative values on failure. */ -static int auditd_set(struct pid *pid, u32 portid, struct net *net) +static int auditd_set(struct pid *pid, u32 portid, struct net *net, + struct sk_buff *skb, bool *ack) { unsigned long flags; struct auditd_connection *ac_old, *ac_new; + struct nlmsghdr *nlh; if (!pid || !net) return -EINVAL; @@ -510,6 +514,13 @@ ac_new->portid = portid; ac_new->net = get_net(net); + /* send the ack now to avoid a race with the queue backlog */ + if (*ack) { + nlh = nlmsg_hdr(skb); + netlink_ack(skb, nlh, 0, NULL); + *ack = false; + } + spin_lock_irqsave(&auditd_conn_lock, flags); ac_old = rcu_dereference_protected(auditd_conn, lockdep_is_held(&auditd_conn_lock)); @@ -1203,7 +1214,8 @@ return auditd_send_unicast_skb(skb); } -static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) +static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh, + bool *ack) { u32 seq; void *data; @@ -1296,7 +1308,8 @@ /* register a new auditd connection */ err = auditd_set(req_pid, NETLINK_CB(skb).portid, - sock_net(NETLINK_CB(skb).sk)); + sock_net(NETLINK_CB(skb).sk), + skb, ack); if (audit_enabled != AUDIT_OFF) audit_log_config_change("audit_pid", new_pid, @@ -1541,9 +1554,10 @@ * Parse the provided skb and deal with any messages that may be present, * malformed skbs are discarded. */ -static void audit_receive(struct sk_buff *skb) +static void audit_receive(struct sk_buff *skb) { struct nlmsghdr *nlh; + bool ack; /* * len MUST be signed for nlmsg_next to be able to dec it below 0 * if the nlmsg_len was not aligned @@ -1556,9 +1570,12 @@ audit_ctl_lock(); while (nlmsg_ok(nlh, len)) { - err = audit_receive_msg(skb, nlh); - /* if err or if this message says it wants a response */ - if (err || (nlh->nlmsg_flags & NLM_F_ACK)) + ack = nlh->nlmsg_flags & NLM_F_ACK; + err = audit_receive_msg(skb, nlh, &ack); + + /* send an ack if the user asked for one and audit_receive_msg + * didn't already do it, or if there was an error. */ + if (ack || err) netlink_ack(skb, nlh, err, NULL); nlh = nlmsg_next(nlh, &len); diff -Nru linux-5.10.209/kernel/bounds.c linux-5.10.216/kernel/bounds.c --- linux-5.10.209/kernel/bounds.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bounds.c 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES); #ifdef CONFIG_SMP - DEFINE(NR_CPUS_BITS, ilog2(CONFIG_NR_CPUS)); + DEFINE(NR_CPUS_BITS, order_base_2(CONFIG_NR_CPUS)); #endif DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t)); /* End of constants */ diff -Nru linux-5.10.209/kernel/bpf/arraymap.c linux-5.10.216/kernel/bpf/arraymap.c --- linux-5.10.209/kernel/bpf/arraymap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/arraymap.c 2024-05-02 14:23:46.000000000 +0000 @@ -764,7 +764,7 @@ } if (old_ptr) - map->ops->map_fd_put_ptr(old_ptr); + map->ops->map_fd_put_ptr(map, old_ptr, true); return 0; } @@ -787,7 +787,7 @@ } if (old_ptr) { - map->ops->map_fd_put_ptr(old_ptr); + map->ops->map_fd_put_ptr(map, old_ptr, true); return 0; } else { return -ENOENT; @@ -811,8 +811,9 @@ return prog; } -static void prog_fd_array_put_ptr(void *ptr) +static void prog_fd_array_put_ptr(struct bpf_map *map, void *ptr, bool need_defer) { + /* bpf_prog is freed after one RCU or tasks trace grace period */ bpf_prog_put(ptr); } @@ -1139,8 +1140,9 @@ return ee; } -static void perf_event_fd_array_put_ptr(void *ptr) +static void perf_event_fd_array_put_ptr(struct bpf_map *map, void *ptr, bool need_defer) { + /* bpf_perf_event is freed after one RCU grace period */ bpf_event_entry_free_rcu(ptr); } @@ -1195,7 +1197,7 @@ return cgroup_get_from_fd(fd); } -static void cgroup_fd_array_put_ptr(void *ptr) +static void cgroup_fd_array_put_ptr(struct bpf_map *map, void *ptr, bool need_defer) { /* cgroup_put free cgrp after a rcu grace period */ cgroup_put(ptr); diff -Nru linux-5.10.209/kernel/bpf/cpumap.c linux-5.10.216/kernel/bpf/cpumap.c --- linux-5.10.209/kernel/bpf/cpumap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/cpumap.c 2024-05-02 14:23:46.000000000 +0000 @@ -229,7 +229,7 @@ void **frames, int n, struct xdp_cpumap_stats *stats) { - struct xdp_rxq_info rxq; + struct xdp_rxq_info rxq = {}; struct xdp_buff xdp; int i, nframes = 0; @@ -299,6 +299,7 @@ static int cpu_map_kthread_run(void *data) { struct bpf_cpu_map_entry *rcpu = data; + unsigned long last_qs = jiffies; set_current_state(TASK_INTERRUPTIBLE); @@ -322,10 +323,12 @@ if (__ptr_ring_empty(rcpu->queue)) { schedule(); sched = 1; + last_qs = jiffies; } else { __set_current_state(TASK_RUNNING); } } else { + rcu_softirq_qs_periodic(last_qs); sched = cond_resched(); } diff -Nru linux-5.10.209/kernel/bpf/devmap.c linux-5.10.216/kernel/bpf/devmap.c --- linux-5.10.209/kernel/bpf/devmap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/devmap.c 2024-05-02 14:23:46.000000000 +0000 @@ -109,8 +109,6 @@ static int dev_map_init_map(struct bpf_dtab *dtab, union bpf_attr *attr) { u32 valsize = attr->value_size; - u64 cost = 0; - int err; /* check sanity of attributes. 2 value sizes supported: * 4 bytes: ifindex @@ -131,25 +129,18 @@ bpf_map_init_from_attr(&dtab->map, attr); if (attr->map_type == BPF_MAP_TYPE_DEVMAP_HASH) { - dtab->n_buckets = roundup_pow_of_two(dtab->map.max_entries); - - if (!dtab->n_buckets) /* Overflow check */ + /* hash table size must be power of 2; roundup_pow_of_two() can + * overflow into UB on 32-bit arches, so check that first + */ + if (dtab->map.max_entries > 1UL << 31) return -EINVAL; - cost += (u64) sizeof(struct hlist_head) * dtab->n_buckets; - } else { - cost += (u64) dtab->map.max_entries * sizeof(struct bpf_dtab_netdev *); - } - /* if map size is larger than memlock limit, reject it */ - err = bpf_map_charge_init(&dtab->map.memory, cost); - if (err) - return -EINVAL; + dtab->n_buckets = roundup_pow_of_two(dtab->map.max_entries); - if (attr->map_type == BPF_MAP_TYPE_DEVMAP_HASH) { dtab->dev_index_head = dev_map_create_hash(dtab->n_buckets, dtab->map.numa_node); if (!dtab->dev_index_head) - goto free_charge; + return -ENOMEM; spin_lock_init(&dtab->index_lock); } else { @@ -157,14 +148,10 @@ sizeof(struct bpf_dtab_netdev *), dtab->map.numa_node); if (!dtab->netdev_map) - goto free_charge; + return -ENOMEM; } return 0; - -free_charge: - bpf_map_charge_finish(&dtab->map.memory); - return -ENOMEM; } static struct bpf_map *dev_map_alloc(union bpf_attr *attr) diff -Nru linux-5.10.209/kernel/bpf/hashtab.c linux-5.10.216/kernel/bpf/hashtab.c --- linux-5.10.209/kernel/bpf/hashtab.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/hashtab.c 2024-05-02 14:23:46.000000000 +0000 @@ -443,7 +443,13 @@ num_possible_cpus()); } - /* hash table size must be power of 2 */ + /* hash table size must be power of 2; roundup_pow_of_two() can overflow + * into UB on 32-bit arches, so check that first + */ + err = -E2BIG; + if (htab->map.max_entries > 1UL << 31) + goto free_htab; + htab->n_buckets = roundup_pow_of_two(htab->map.max_entries); htab->elem_size = sizeof(struct htab_elem) + @@ -453,10 +459,8 @@ else htab->elem_size += round_up(htab->map.value_size, 8); - err = -E2BIG; - /* prevent zero size kmalloc and check for u32 overflow */ - if (htab->n_buckets == 0 || - htab->n_buckets > U32_MAX / sizeof(struct bucket)) + /* check for u32 overflow */ + if (htab->n_buckets > U32_MAX / sizeof(struct bucket)) goto free_htab; cost = (u64) htab->n_buckets * sizeof(struct bucket) + @@ -786,7 +790,7 @@ if (map->ops->map_fd_put_ptr) { ptr = fd_htab_map_get_ptr(map, l); - map->ops->map_fd_put_ptr(ptr); + map->ops->map_fd_put_ptr(map, ptr, true); } } @@ -2023,7 +2027,7 @@ hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { void *ptr = fd_htab_map_get_ptr(map, l); - map->ops->map_fd_put_ptr(ptr); + map->ops->map_fd_put_ptr(map, ptr, false); } } @@ -2064,7 +2068,7 @@ ret = htab_map_update_elem(map, key, &ptr, map_flags); if (ret) - map->ops->map_fd_put_ptr(ptr); + map->ops->map_fd_put_ptr(map, ptr, false); return ret; } diff -Nru linux-5.10.209/kernel/bpf/helpers.c linux-5.10.216/kernel/bpf/helpers.c --- linux-5.10.209/kernel/bpf/helpers.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/helpers.c 2024-05-02 14:23:46.000000000 +0000 @@ -278,13 +278,18 @@ static DEFINE_PER_CPU(unsigned long, irqsave_flags); -notrace BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock) +static inline void __bpf_spin_lock_irqsave(struct bpf_spin_lock *lock) { unsigned long flags; local_irq_save(flags); __bpf_spin_lock(lock); __this_cpu_write(irqsave_flags, flags); +} + +NOTRACE_BPF_CALL_1(bpf_spin_lock, struct bpf_spin_lock *, lock) +{ + __bpf_spin_lock_irqsave(lock); return 0; } @@ -295,13 +300,18 @@ .arg1_type = ARG_PTR_TO_SPIN_LOCK, }; -notrace BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock) +static inline void __bpf_spin_unlock_irqrestore(struct bpf_spin_lock *lock) { unsigned long flags; flags = __this_cpu_read(irqsave_flags); __bpf_spin_unlock(lock); local_irq_restore(flags); +} + +NOTRACE_BPF_CALL_1(bpf_spin_unlock, struct bpf_spin_lock *, lock) +{ + __bpf_spin_unlock_irqrestore(lock); return 0; } @@ -322,9 +332,9 @@ else lock = dst + map->spin_lock_off; preempt_disable(); - ____bpf_spin_lock(lock); + __bpf_spin_lock_irqsave(lock); copy_map_value(map, dst, src); - ____bpf_spin_unlock(lock); + __bpf_spin_unlock_irqrestore(lock); preempt_enable(); } diff -Nru linux-5.10.209/kernel/bpf/map_in_map.c linux-5.10.216/kernel/bpf/map_in_map.c --- linux-5.10.209/kernel/bpf/map_in_map.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/map_in_map.c 2024-05-02 14:23:46.000000000 +0000 @@ -100,12 +100,17 @@ return inner_map; } -void bpf_map_fd_put_ptr(void *ptr) +void bpf_map_fd_put_ptr(struct bpf_map *map, void *ptr, bool need_defer) { - /* ptr->ops->map_free() has to go through one - * rcu grace period by itself. + struct bpf_map *inner_map = ptr; + + /* The inner map may still be used by both non-sleepable and sleepable + * bpf program, so free it after one RCU grace period and one tasks + * trace RCU grace period. */ - bpf_map_put(ptr); + if (need_defer) + WRITE_ONCE(inner_map->free_after_mult_rcu_gp, true); + bpf_map_put(inner_map); } u32 bpf_map_fd_sys_lookup_elem(void *ptr) diff -Nru linux-5.10.209/kernel/bpf/map_in_map.h linux-5.10.216/kernel/bpf/map_in_map.h --- linux-5.10.209/kernel/bpf/map_in_map.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/map_in_map.h 2024-05-02 14:23:46.000000000 +0000 @@ -13,7 +13,7 @@ void bpf_map_meta_free(struct bpf_map *map_meta); void *bpf_map_fd_get_ptr(struct bpf_map *map, struct file *map_file, int ufd); -void bpf_map_fd_put_ptr(void *ptr); +void bpf_map_fd_put_ptr(struct bpf_map *map, void *ptr, bool need_defer); u32 bpf_map_fd_sys_lookup_elem(void *ptr); #endif diff -Nru linux-5.10.209/kernel/bpf/stackmap.c linux-5.10.216/kernel/bpf/stackmap.c --- linux-5.10.209/kernel/bpf/stackmap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/stackmap.c 2024-05-02 14:23:46.000000000 +0000 @@ -115,11 +115,14 @@ } else if (value_size / 8 > sysctl_perf_event_max_stack) return ERR_PTR(-EINVAL); - /* hash table size must be power of 2 */ - n_buckets = roundup_pow_of_two(attr->max_entries); - if (!n_buckets) + /* hash table size must be power of 2; roundup_pow_of_two() can overflow + * into UB on 32-bit arches, so check that first + */ + if (attr->max_entries > 1UL << 31) return ERR_PTR(-E2BIG); + n_buckets = roundup_pow_of_two(attr->max_entries); + cost = n_buckets * sizeof(struct stack_map_bucket *) + sizeof(*smap); err = bpf_map_charge_init(&mem, cost + attr->max_entries * (sizeof(struct stack_map_bucket) + (u64)value_size)); diff -Nru linux-5.10.209/kernel/bpf/syscall.c linux-5.10.216/kernel/bpf/syscall.c --- linux-5.10.209/kernel/bpf/syscall.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/syscall.c 2024-05-02 14:23:46.000000000 +0000 @@ -493,6 +493,25 @@ } } +static void bpf_map_free_in_work(struct bpf_map *map) +{ + INIT_WORK(&map->work, bpf_map_free_deferred); + schedule_work(&map->work); +} + +static void bpf_map_free_rcu_gp(struct rcu_head *rcu) +{ + bpf_map_free_in_work(container_of(rcu, struct bpf_map, rcu)); +} + +static void bpf_map_free_mult_rcu_gp(struct rcu_head *rcu) +{ + if (rcu_trace_implies_rcu_gp()) + bpf_map_free_rcu_gp(rcu); + else + call_rcu(rcu, bpf_map_free_rcu_gp); +} + /* decrement map refcnt and schedule it for freeing via workqueue * (unrelying map implementation ops->map_free() might sleep) */ @@ -502,8 +521,11 @@ /* bpf_map_free_id() must be called first */ bpf_map_free_id(map, do_idr_lock); btf_put(map->btf); - INIT_WORK(&map->work, bpf_map_free_deferred); - schedule_work(&map->work); + + if (READ_ONCE(map->free_after_mult_rcu_gp)) + call_rcu_tasks_trace(&map->rcu, bpf_map_free_mult_rcu_gp); + else + bpf_map_free_in_work(map); } } @@ -1285,6 +1307,9 @@ if (!max_count) return 0; + if (put_user(0, &uattr->batch.count)) + return -EFAULT; + key = kmalloc(map->key_size, GFP_USER | __GFP_NOWARN); if (!key) return -ENOMEM; @@ -1343,6 +1368,9 @@ if (!max_count) return 0; + if (put_user(0, &uattr->batch.count)) + return -EFAULT; + key = kmalloc(map->key_size, GFP_USER | __GFP_NOWARN); if (!key) return -ENOMEM; diff -Nru linux-5.10.209/kernel/bpf/verifier.c linux-5.10.216/kernel/bpf/verifier.c --- linux-5.10.209/kernel/bpf/verifier.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/bpf/verifier.c 2024-05-02 14:23:46.000000000 +0000 @@ -3941,6 +3941,11 @@ err = check_stack_slot_within_bounds(min_off, state, type); if (!err && max_off > 0) err = -EINVAL; /* out of stack access into non-negative offsets */ + if (!err && access_size < 0) + /* access_size should not be negative (or overflow an int); others checks + * along the way should have prevented such an access. + */ + err = -EFAULT; /* invalid negative access size; integer overflow? */ if (err) { if (tnum_is_const(reg->var_off)) { diff -Nru linux-5.10.209/kernel/cpu.c linux-5.10.216/kernel/cpu.c --- linux-5.10.209/kernel/cpu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/cpu.c 2024-05-02 14:23:46.000000000 +0000 @@ -2600,7 +2600,8 @@ }; static enum cpu_mitigations cpu_mitigations __ro_after_init = - CPU_MITIGATIONS_AUTO; + IS_ENABLED(CONFIG_CPU_MITIGATIONS) ? CPU_MITIGATIONS_AUTO : + CPU_MITIGATIONS_OFF; static int __init mitigations_parse_cmdline(char *arg) { diff -Nru linux-5.10.209/kernel/events/core.c linux-5.10.216/kernel/events/core.c --- linux-5.10.209/kernel/events/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/events/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -6890,9 +6890,16 @@ { struct perf_event *leader = event->group_leader, *sub; u64 read_format = event->attr.read_format; + unsigned long flags; u64 values[6]; int n = 0; + /* + * Disabling interrupts avoids all counter scheduling + * (context switches, timer based rotation and IPIs). + */ + local_irq_save(flags); + values[n++] = 1 + leader->nr_siblings; if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) @@ -6928,6 +6935,8 @@ __output_copy(handle, values, n * sizeof(u64)); } + + local_irq_restore(flags); } #define PERF_FORMAT_TOTAL_TIMES (PERF_FORMAT_TOTAL_TIME_ENABLED|\ @@ -10855,9 +10864,30 @@ static struct attribute *pmu_dev_attrs[] = { &dev_attr_type.attr, &dev_attr_perf_event_mux_interval_ms.attr, + &dev_attr_nr_addr_filters.attr, + NULL, +}; + +static umode_t pmu_dev_is_visible(struct kobject *kobj, struct attribute *a, int n) +{ + struct device *dev = kobj_to_dev(kobj); + struct pmu *pmu = dev_get_drvdata(dev); + + if (n == 2 && !pmu->nr_addr_filters) + return 0; + + return a->mode; +} + +static struct attribute_group pmu_dev_attr_group = { + .is_visible = pmu_dev_is_visible, + .attrs = pmu_dev_attrs, +}; + +static const struct attribute_group *pmu_dev_groups[] = { + &pmu_dev_attr_group, NULL, }; -ATTRIBUTE_GROUPS(pmu_dev); static int pmu_bus_running; static struct bus_type pmu_bus = { @@ -10893,18 +10923,11 @@ if (ret) goto free_dev; - /* For PMUs with address filters, throw in an extra attribute: */ - if (pmu->nr_addr_filters) - ret = device_create_file(pmu->dev, &dev_attr_nr_addr_filters); - - if (ret) - goto del_dev; - - if (pmu->attr_update) + if (pmu->attr_update) { ret = sysfs_update_groups(&pmu->dev->kobj, pmu->attr_update); - - if (ret) - goto del_dev; + if (ret) + goto del_dev; + } out: return ret; diff -Nru linux-5.10.209/kernel/kprobes.c linux-5.10.216/kernel/kprobes.c --- linux-5.10.209/kernel/kprobes.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/kprobes.c 2024-05-02 14:23:46.000000000 +0000 @@ -1647,10 +1647,17 @@ jump_label_lock(); preempt_disable(); - /* Ensure it is not in reserved area nor out of text */ - if (!(core_kernel_text((unsigned long) p->addr) || - is_module_text_address((unsigned long) p->addr)) || - in_gate_area_no_mm((unsigned long) p->addr) || + /* Ensure the address is in a text area, and find a module if exists. */ + *probed_mod = NULL; + if (!core_kernel_text((unsigned long) p->addr)) { + *probed_mod = __module_text_address((unsigned long) p->addr); + if (!(*probed_mod)) { + ret = -EINVAL; + goto out; + } + } + /* Ensure it is not in reserved area. */ + if (in_gate_area_no_mm((unsigned long) p->addr) || within_kprobe_blacklist((unsigned long) p->addr) || jump_label_text_reserved(p->addr, p->addr) || static_call_text_reserved(p->addr, p->addr) || @@ -1660,8 +1667,7 @@ goto out; } - /* Check if are we probing a module */ - *probed_mod = __module_text_address((unsigned long) p->addr); + /* Get module refcount and reject __init functions for loaded modules. */ if (*probed_mod) { /* * We must hold a refcount of the probed module while updating diff -Nru linux-5.10.209/kernel/panic.c linux-5.10.216/kernel/panic.c --- linux-5.10.209/kernel/panic.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/panic.c 2024-05-02 14:23:46.000000000 +0000 @@ -427,6 +427,14 @@ /* Do not scroll important messages printed above */ suppress_printk = 1; + + /* + * The final messages may not have been printed if in a context that + * defers printing (such as NMI) and irq_work is not available. + * Explicitly flush the kernel log buffer one last time. + */ + console_flush_on_panic(CONSOLE_FLUSH_PENDING); + local_irq_enable(); for (i = 0; ; i += PANIC_TIMER_STEP) { touch_softlockup_watchdog(); diff -Nru linux-5.10.209/kernel/power/suspend.c linux-5.10.216/kernel/power/suspend.c --- linux-5.10.209/kernel/power/suspend.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/power/suspend.c 2024-05-02 14:23:46.000000000 +0000 @@ -187,6 +187,7 @@ if (mem_sleep_labels[state] && !strcmp(str, mem_sleep_labels[state])) { mem_sleep_default = state; + mem_sleep_current = state; break; } diff -Nru linux-5.10.209/kernel/power/swap.c linux-5.10.216/kernel/power/swap.c --- linux-5.10.209/kernel/power/swap.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/power/swap.c 2024-05-02 14:23:46.000000000 +0000 @@ -603,11 +603,11 @@ unsigned i; while (1) { - wait_event(d->go, atomic_read(&d->ready) || + wait_event(d->go, atomic_read_acquire(&d->ready) || kthread_should_stop()); if (kthread_should_stop()) { d->thr = NULL; - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); break; } @@ -616,7 +616,7 @@ for (i = 0; i < d->run_threads; i++) *d->crc32 = crc32_le(*d->crc32, d->unc[i], *d->unc_len[i]); - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); } return 0; @@ -646,12 +646,12 @@ struct cmp_data *d = data; while (1) { - wait_event(d->go, atomic_read(&d->ready) || + wait_event(d->go, atomic_read_acquire(&d->ready) || kthread_should_stop()); if (kthread_should_stop()) { d->thr = NULL; d->ret = -1; - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); break; } @@ -660,7 +660,7 @@ d->ret = lzo1x_1_compress(d->unc, d->unc_len, d->cmp + LZO_HEADER, &d->cmp_len, d->wrk); - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); } return 0; @@ -798,7 +798,7 @@ data[thr].unc_len = off; - atomic_set(&data[thr].ready, 1); + atomic_set_release(&data[thr].ready, 1); wake_up(&data[thr].go); } @@ -806,12 +806,12 @@ break; crc->run_threads = thr; - atomic_set(&crc->ready, 1); + atomic_set_release(&crc->ready, 1); wake_up(&crc->go); for (run_threads = thr, thr = 0; thr < run_threads; thr++) { wait_event(data[thr].done, - atomic_read(&data[thr].stop)); + atomic_read_acquire(&data[thr].stop)); atomic_set(&data[thr].stop, 0); ret = data[thr].ret; @@ -850,7 +850,7 @@ } } - wait_event(crc->done, atomic_read(&crc->stop)); + wait_event(crc->done, atomic_read_acquire(&crc->stop)); atomic_set(&crc->stop, 0); } @@ -1132,12 +1132,12 @@ struct dec_data *d = data; while (1) { - wait_event(d->go, atomic_read(&d->ready) || + wait_event(d->go, atomic_read_acquire(&d->ready) || kthread_should_stop()); if (kthread_should_stop()) { d->thr = NULL; d->ret = -1; - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); break; } @@ -1150,7 +1150,7 @@ flush_icache_range((unsigned long)d->unc, (unsigned long)d->unc + d->unc_len); - atomic_set(&d->stop, 1); + atomic_set_release(&d->stop, 1); wake_up(&d->done); } return 0; @@ -1338,7 +1338,7 @@ } if (crc->run_threads) { - wait_event(crc->done, atomic_read(&crc->stop)); + wait_event(crc->done, atomic_read_acquire(&crc->stop)); atomic_set(&crc->stop, 0); crc->run_threads = 0; } @@ -1374,7 +1374,7 @@ pg = 0; } - atomic_set(&data[thr].ready, 1); + atomic_set_release(&data[thr].ready, 1); wake_up(&data[thr].go); } @@ -1393,7 +1393,7 @@ for (run_threads = thr, thr = 0; thr < run_threads; thr++) { wait_event(data[thr].done, - atomic_read(&data[thr].stop)); + atomic_read_acquire(&data[thr].stop)); atomic_set(&data[thr].stop, 0); ret = data[thr].ret; @@ -1424,7 +1424,7 @@ ret = snapshot_write_next(snapshot); if (ret <= 0) { crc->run_threads = thr + 1; - atomic_set(&crc->ready, 1); + atomic_set_release(&crc->ready, 1); wake_up(&crc->go); goto out_finish; } @@ -1432,13 +1432,13 @@ } crc->run_threads = thr; - atomic_set(&crc->ready, 1); + atomic_set_release(&crc->ready, 1); wake_up(&crc->go); } out_finish: if (crc->run_threads) { - wait_event(crc->done, atomic_read(&crc->stop)); + wait_event(crc->done, atomic_read_acquire(&crc->stop)); atomic_set(&crc->stop, 0); } stop = ktime_get(); diff -Nru linux-5.10.209/kernel/printk/printk.c linux-5.10.216/kernel/printk/printk.c --- linux-5.10.209/kernel/printk/printk.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/printk/printk.c 2024-05-02 14:23:46.000000000 +0000 @@ -1866,6 +1866,12 @@ */ mutex_acquire(&console_lock_dep_map, 0, 1, _THIS_IP_); + /* + * Update @console_may_schedule for trylock because the previous + * owner may have been schedulable. + */ + console_may_schedule = 0; + return 1; } @@ -2684,6 +2690,21 @@ early_param("keep_bootcon", keep_bootcon_setup); +static int console_call_setup(struct console *newcon, char *options) +{ + int err; + + if (!newcon->setup) + return 0; + + /* Synchronize with possible boot console. */ + console_lock(); + err = newcon->setup(newcon, options); + console_unlock(); + + return err; +} + /* * This is called by register_console() to try to match * the newly registered console with any of the ones selected @@ -2693,7 +2714,8 @@ * Care need to be taken with consoles that are statically * enabled such as netconsole */ -static int try_enable_new_console(struct console *newcon, bool user_specified) +static int try_enable_preferred_console(struct console *newcon, + bool user_specified) { struct console_cmdline *c; int i, err; @@ -2718,8 +2740,8 @@ if (_braille_register_console(newcon, c)) return 0; - if (newcon->setup && - (err = newcon->setup(newcon, c->options)) != 0) + err = console_call_setup(newcon, c->options); + if (err) return err; } newcon->flags |= CON_ENABLED; @@ -2741,6 +2763,23 @@ return -ENOENT; } +/* Try to enable the console unconditionally */ +static void try_enable_default_console(struct console *newcon) +{ + if (newcon->index < 0) + newcon->index = 0; + + if (console_call_setup(newcon, NULL) != 0) + return; + + newcon->flags |= CON_ENABLED; + + if (newcon->device) { + newcon->flags |= CON_CONSDEV; + has_preferred_console = true; + } +} + /* * The console driver calls this routine during kernel initialization * to register the console printing procedure with printk() and to @@ -2797,25 +2836,15 @@ * didn't select a console we take the first one * that registers here. */ - if (!has_preferred_console) { - if (newcon->index < 0) - newcon->index = 0; - if (newcon->setup == NULL || - newcon->setup(newcon, NULL) == 0) { - newcon->flags |= CON_ENABLED; - if (newcon->device) { - newcon->flags |= CON_CONSDEV; - has_preferred_console = true; - } - } - } + if (!has_preferred_console) + try_enable_default_console(newcon); /* See if this console matches one we selected on the command line */ - err = try_enable_new_console(newcon, true); + err = try_enable_preferred_console(newcon, true); /* If not, try to match against the platform default(s) */ if (err == -ENOENT) - err = try_enable_new_console(newcon, false); + err = try_enable_preferred_console(newcon, false); /* printk() messages are not printed to the Braille console. */ if (err || newcon->flags & CON_BRL) diff -Nru linux-5.10.209/kernel/rcu/tasks.h linux-5.10.216/kernel/rcu/tasks.h --- linux-5.10.209/kernel/rcu/tasks.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/rcu/tasks.h 2024-05-02 14:23:46.000000000 +0000 @@ -1015,6 +1015,8 @@ // Wait for late-stage exiting tasks to finish exiting. // These might have passed the call to exit_tasks_rcu_finish(). + + // If you remove the following line, update rcu_trace_implies_rcu_gp()!!! synchronize_rcu(); // Any tasks that exit after this point will set ->trc_reader_checked. } diff -Nru linux-5.10.209/kernel/sched/membarrier.c linux-5.10.216/kernel/sched/membarrier.c --- linux-5.10.209/kernel/sched/membarrier.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/sched/membarrier.c 2024-05-02 14:23:46.000000000 +0000 @@ -34,6 +34,8 @@ | MEMBARRIER_PRIVATE_EXPEDITED_SYNC_CORE_BITMASK \ | MEMBARRIER_PRIVATE_EXPEDITED_RSEQ_BITMASK) +static DEFINE_MUTEX(membarrier_ipi_mutex); + static void ipi_mb(void *info) { smp_mb(); /* IPIs should be serializing but paranoid. */ @@ -119,6 +121,7 @@ if (!zalloc_cpumask_var(&tmpmask, GFP_KERNEL)) return -ENOMEM; + mutex_lock(&membarrier_ipi_mutex); cpus_read_lock(); rcu_read_lock(); for_each_online_cpu(cpu) { @@ -165,6 +168,8 @@ * rq->curr modification in scheduler. */ smp_mb(); /* exit from system call is not a mb */ + mutex_unlock(&membarrier_ipi_mutex); + return 0; } @@ -208,6 +213,7 @@ if (cpu_id < 0 && !zalloc_cpumask_var(&tmpmask, GFP_KERNEL)) return -ENOMEM; + mutex_lock(&membarrier_ipi_mutex); cpus_read_lock(); if (cpu_id >= 0) { @@ -280,6 +286,7 @@ * rq->curr modification in scheduler. */ smp_mb(); /* exit from system call is not a mb */ + mutex_unlock(&membarrier_ipi_mutex); return 0; } @@ -321,6 +328,7 @@ * between threads which are users of @mm has its membarrier state * updated. */ + mutex_lock(&membarrier_ipi_mutex); cpus_read_lock(); rcu_read_lock(); for_each_online_cpu(cpu) { @@ -337,6 +345,7 @@ free_cpumask_var(tmpmask); cpus_read_unlock(); + mutex_unlock(&membarrier_ipi_mutex); return 0; } diff -Nru linux-5.10.209/kernel/sched/rt.c linux-5.10.216/kernel/sched/rt.c --- linux-5.10.209/kernel/sched/rt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/sched/rt.c 2024-05-02 14:23:46.000000000 +0000 @@ -8,7 +8,7 @@ #include "pelt.h" int sched_rr_timeslice = RR_TIMESLICE; -int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE; +int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ; /* More than 4 hours if BW_SHIFT equals 20. */ static const u64 max_rt_runtime = MAX_BW; @@ -2727,9 +2727,6 @@ static int sched_rt_global_validate(void) { - if (sysctl_sched_rt_period <= 0) - return -EINVAL; - if ((sysctl_sched_rt_runtime != RUNTIME_INF) && ((sysctl_sched_rt_runtime > sysctl_sched_rt_period) || ((u64)sysctl_sched_rt_runtime * @@ -2760,7 +2757,7 @@ old_period = sysctl_sched_rt_period; old_runtime = sysctl_sched_rt_runtime; - ret = proc_dointvec(table, write, buffer, lenp, ppos); + ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (!ret && write) { ret = sched_rt_global_validate(); @@ -2804,6 +2801,9 @@ sched_rr_timeslice = sysctl_sched_rr_timeslice <= 0 ? RR_TIMESLICE : msecs_to_jiffies(sysctl_sched_rr_timeslice); + + if (sysctl_sched_rr_timeslice <= 0) + sysctl_sched_rr_timeslice = jiffies_to_msecs(RR_TIMESLICE); } mutex_unlock(&mutex); diff -Nru linux-5.10.209/kernel/seccomp.c linux-5.10.216/kernel/seccomp.c --- linux-5.10.209/kernel/seccomp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/seccomp.c 2024-05-02 14:23:46.000000000 +0000 @@ -29,6 +29,9 @@ #include #include +/* Not exposed in headers: strictly internal use only. */ +#define SECCOMP_MODE_DEAD (SECCOMP_MODE_FILTER + 1) + #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER #include #endif @@ -795,6 +798,7 @@ #ifdef SECCOMP_DEBUG dump_stack(); #endif + current->seccomp.mode = SECCOMP_MODE_DEAD; seccomp_log(this_syscall, SIGKILL, SECCOMP_RET_KILL_THREAD, true); do_exit(SIGKILL); } @@ -1023,6 +1027,7 @@ case SECCOMP_RET_KILL_THREAD: case SECCOMP_RET_KILL_PROCESS: default: + current->seccomp.mode = SECCOMP_MODE_DEAD; seccomp_log(this_syscall, SIGSYS, action, true); /* Dump core only if this is the last remaining thread. */ if (action != SECCOMP_RET_KILL_THREAD || @@ -1075,6 +1080,11 @@ return 0; case SECCOMP_MODE_FILTER: return __seccomp_filter(this_syscall, sd, false); + /* Surviving SECCOMP_RET_KILL_* must be proactively impossible. */ + case SECCOMP_MODE_DEAD: + WARN_ON_ONCE(1); + do_exit(SIGKILL); + return -1; default: BUG(); } diff -Nru linux-5.10.209/kernel/sys.c linux-5.10.216/kernel/sys.c --- linux-5.10.209/kernel/sys.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/sys.c 2024-05-02 14:23:46.000000000 +0000 @@ -1736,74 +1736,87 @@ struct task_struct *t; unsigned long flags; u64 tgutime, tgstime, utime, stime; - unsigned long maxrss = 0; + unsigned long maxrss; + struct mm_struct *mm; + struct signal_struct *sig = p->signal; + unsigned int seq = 0; - memset((char *)r, 0, sizeof (*r)); +retry: + memset(r, 0, sizeof(*r)); utime = stime = 0; + maxrss = 0; if (who == RUSAGE_THREAD) { task_cputime_adjusted(current, &utime, &stime); accumulate_thread_rusage(p, r); - maxrss = p->signal->maxrss; - goto out; + maxrss = sig->maxrss; + goto out_thread; } - if (!lock_task_sighand(p, &flags)) - return; + flags = read_seqbegin_or_lock_irqsave(&sig->stats_lock, &seq); switch (who) { case RUSAGE_BOTH: case RUSAGE_CHILDREN: - utime = p->signal->cutime; - stime = p->signal->cstime; - r->ru_nvcsw = p->signal->cnvcsw; - r->ru_nivcsw = p->signal->cnivcsw; - r->ru_minflt = p->signal->cmin_flt; - r->ru_majflt = p->signal->cmaj_flt; - r->ru_inblock = p->signal->cinblock; - r->ru_oublock = p->signal->coublock; - maxrss = p->signal->cmaxrss; + utime = sig->cutime; + stime = sig->cstime; + r->ru_nvcsw = sig->cnvcsw; + r->ru_nivcsw = sig->cnivcsw; + r->ru_minflt = sig->cmin_flt; + r->ru_majflt = sig->cmaj_flt; + r->ru_inblock = sig->cinblock; + r->ru_oublock = sig->coublock; + maxrss = sig->cmaxrss; if (who == RUSAGE_CHILDREN) break; fallthrough; case RUSAGE_SELF: - thread_group_cputime_adjusted(p, &tgutime, &tgstime); - utime += tgutime; - stime += tgstime; - r->ru_nvcsw += p->signal->nvcsw; - r->ru_nivcsw += p->signal->nivcsw; - r->ru_minflt += p->signal->min_flt; - r->ru_majflt += p->signal->maj_flt; - r->ru_inblock += p->signal->inblock; - r->ru_oublock += p->signal->oublock; - if (maxrss < p->signal->maxrss) - maxrss = p->signal->maxrss; - t = p; - do { + r->ru_nvcsw += sig->nvcsw; + r->ru_nivcsw += sig->nivcsw; + r->ru_minflt += sig->min_flt; + r->ru_majflt += sig->maj_flt; + r->ru_inblock += sig->inblock; + r->ru_oublock += sig->oublock; + if (maxrss < sig->maxrss) + maxrss = sig->maxrss; + + rcu_read_lock(); + __for_each_thread(sig, t) accumulate_thread_rusage(t, r); - } while_each_thread(p, t); + rcu_read_unlock(); + break; default: BUG(); } - unlock_task_sighand(p, &flags); -out: - r->ru_utime = ns_to_kernel_old_timeval(utime); - r->ru_stime = ns_to_kernel_old_timeval(stime); + if (need_seqretry(&sig->stats_lock, seq)) { + seq = 1; + goto retry; + } + done_seqretry_irqrestore(&sig->stats_lock, seq, flags); - if (who != RUSAGE_CHILDREN) { - struct mm_struct *mm = get_task_mm(p); + if (who == RUSAGE_CHILDREN) + goto out_children; - if (mm) { - setmax_mm_hiwater_rss(&maxrss, mm); - mmput(mm); - } + thread_group_cputime_adjusted(p, &tgutime, &tgstime); + utime += tgutime; + stime += tgstime; + +out_thread: + mm = get_task_mm(p); + if (mm) { + setmax_mm_hiwater_rss(&maxrss, mm); + mmput(mm); } + +out_children: r->ru_maxrss = maxrss * (PAGE_SIZE / 1024); /* convert pages to KBs */ + r->ru_utime = ns_to_kernel_old_timeval(utime); + r->ru_stime = ns_to_kernel_old_timeval(stime); } SYSCALL_DEFINE2(getrusage, int, who, struct rusage __user *, ru) diff -Nru linux-5.10.209/kernel/sysctl.c linux-5.10.216/kernel/sysctl.c --- linux-5.10.209/kernel/sysctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/sysctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -1859,6 +1859,8 @@ .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = sched_rt_handler, + .extra1 = SYSCTL_ONE, + .extra2 = SYSCTL_INT_MAX, }, { .procname = "sched_rt_runtime_us", @@ -1866,6 +1868,8 @@ .maxlen = sizeof(int), .mode = 0644, .proc_handler = sched_rt_handler, + .extra1 = SYSCTL_NEG_ONE, + .extra2 = SYSCTL_INT_MAX, }, { .procname = "sched_deadline_period_max_us", diff -Nru linux-5.10.209/kernel/time/clocksource.c linux-5.10.216/kernel/time/clocksource.c --- linux-5.10.209/kernel/time/clocksource.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/time/clocksource.c 2024-05-02 14:23:46.000000000 +0000 @@ -118,6 +118,7 @@ static DEFINE_SPINLOCK(watchdog_lock); static int watchdog_running; static atomic_t watchdog_reset_pending; +static int64_t watchdog_max_interval; static inline void clocksource_watchdog_lock(unsigned long *flags) { @@ -136,6 +137,7 @@ * Interval: 0.5sec. */ #define WATCHDOG_INTERVAL (HZ >> 1) +#define WATCHDOG_INTERVAL_MAX_NS ((2 * WATCHDOG_INTERVAL) * (NSEC_PER_SEC / HZ)) static void clocksource_watchdog_work(struct work_struct *work) { @@ -324,8 +326,8 @@ static void clocksource_watchdog(struct timer_list *unused) { u64 csnow, wdnow, cslast, wdlast, delta; + int64_t wd_nsec, cs_nsec, interval; int next_cpu, reset_pending; - int64_t wd_nsec, cs_nsec; struct clocksource *cs; enum wd_read_status read_ret; unsigned long extra_wait = 0; @@ -395,6 +397,27 @@ if (atomic_read(&watchdog_reset_pending)) continue; + /* + * The processing of timer softirqs can get delayed (usually + * on account of ksoftirqd not getting to run in a timely + * manner), which causes the watchdog interval to stretch. + * Skew detection may fail for longer watchdog intervals + * on account of fixed margins being used. + * Some clocksources, e.g. acpi_pm, cannot tolerate + * watchdog intervals longer than a few seconds. + */ + interval = max(cs_nsec, wd_nsec); + if (unlikely(interval > WATCHDOG_INTERVAL_MAX_NS)) { + if (system_state > SYSTEM_SCHEDULING && + interval > 2 * watchdog_max_interval) { + watchdog_max_interval = interval; + pr_warn("Long readout interval, skipping watchdog check: cs_nsec: %lld wd_nsec: %lld\n", + cs_nsec, wd_nsec); + } + watchdog_timer.expires = jiffies; + continue; + } + /* Check the deviation from the watchdog clocksource. */ md = cs->uncertainty_margin + watchdog->uncertainty_margin; if (abs(cs_nsec - wd_nsec) > md) { diff -Nru linux-5.10.209/kernel/time/hrtimer.c linux-5.10.216/kernel/time/hrtimer.c --- linux-5.10.209/kernel/time/hrtimer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/time/hrtimer.c 2024-05-02 14:23:46.000000000 +0000 @@ -980,6 +980,7 @@ enum hrtimer_mode mode) { debug_activate(timer, mode); + WARN_ON_ONCE(!base->cpu_base->online); base->cpu_base->active_bases |= 1 << base->index; @@ -2078,6 +2079,7 @@ cpu_base->softirq_next_timer = NULL; cpu_base->expires_next = KTIME_MAX; cpu_base->softirq_expires_next = KTIME_MAX; + cpu_base->online = 1; hrtimer_cpu_base_init_expiry_lock(cpu_base); return 0; } @@ -2145,6 +2147,7 @@ smp_call_function_single(ncpu, retrigger_next_event, NULL, 0); raw_spin_unlock(&new_base->lock); + old_base->online = 0; raw_spin_unlock(&old_base->lock); return 0; @@ -2161,7 +2164,7 @@ /** * schedule_hrtimeout_range_clock - sleep until timeout * @expires: timeout value (ktime_t) - * @delta: slack in expires timeout (ktime_t) + * @delta: slack in expires timeout (ktime_t) for SCHED_OTHER tasks * @mode: timer mode * @clock_id: timer clock to be used */ @@ -2188,6 +2191,13 @@ return -EINTR; } + /* + * Override any slack passed by the user if under + * rt contraints. + */ + if (rt_task(current)) + delta = 0; + hrtimer_init_sleeper_on_stack(&t, clock_id, mode); hrtimer_set_expires_range_ns(&t.timer, *expires, delta); hrtimer_sleeper_start_expires(&t, mode); @@ -2207,7 +2217,7 @@ /** * schedule_hrtimeout_range - sleep until timeout * @expires: timeout value (ktime_t) - * @delta: slack in expires timeout (ktime_t) + * @delta: slack in expires timeout (ktime_t) for SCHED_OTHER tasks * @mode: timer mode * * Make the current task sleep until the given expiry time has @@ -2215,7 +2225,8 @@ * the current task state has been set (see set_current_state()). * * The @delta argument gives the kernel the freedom to schedule the - * actual wakeup to a time that is both power and performance friendly. + * actual wakeup to a time that is both power and performance friendly + * for regular (non RT/DL) tasks. * The kernel give the normal best effort behavior for "@expires+@delta", * but may decide to fire the timer earlier, but no earlier than @expires. * diff -Nru linux-5.10.209/kernel/time/tick-sched.c linux-5.10.216/kernel/time/tick-sched.c --- linux-5.10.209/kernel/time/tick-sched.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/time/tick-sched.c 2024-05-02 14:23:46.000000000 +0000 @@ -1440,6 +1440,7 @@ { struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); ktime_t idle_sleeptime, iowait_sleeptime; + unsigned long idle_calls, idle_sleeps; # ifdef CONFIG_HIGH_RES_TIMERS if (ts->sched_timer.base) @@ -1448,9 +1449,13 @@ idle_sleeptime = ts->idle_sleeptime; iowait_sleeptime = ts->iowait_sleeptime; + idle_calls = ts->idle_calls; + idle_sleeps = ts->idle_sleeps; memset(ts, 0, sizeof(*ts)); ts->idle_sleeptime = idle_sleeptime; ts->iowait_sleeptime = iowait_sleeptime; + ts->idle_calls = idle_calls; + ts->idle_sleeps = idle_sleeps; } #endif diff -Nru linux-5.10.209/kernel/time/timekeeping.c linux-5.10.216/kernel/time/timekeeping.c --- linux-5.10.209/kernel/time/timekeeping.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/time/timekeeping.c 2024-05-02 14:23:46.000000000 +0000 @@ -1167,13 +1167,15 @@ } /* - * cycle_between - true if test occurs chronologically between before and after + * timestamp_in_interval - true if ts is chronologically in [start, end] + * + * True if ts occurs chronologically at or after start, and before or at end. */ -static bool cycle_between(u64 before, u64 test, u64 after) +static bool timestamp_in_interval(u64 start, u64 end, u64 ts) { - if (test > before && test < after) + if (ts >= start && ts <= end) return true; - if (test < before && before > after) + if (start > end && (ts >= start || ts <= end)) return true; return false; } @@ -1233,7 +1235,7 @@ */ now = tk_clock_read(&tk->tkr_mono); interval_start = tk->tkr_mono.cycle_last; - if (!cycle_between(interval_start, cycles, now)) { + if (!timestamp_in_interval(interval_start, now, cycles)) { clock_was_set_seq = tk->clock_was_set_seq; cs_was_changed_seq = tk->cs_was_changed_seq; cycles = interval_start; @@ -1246,10 +1248,8 @@ tk_core.timekeeper.offs_real); base_raw = tk->tkr_raw.base; - nsec_real = timekeeping_cycles_to_ns(&tk->tkr_mono, - system_counterval.cycles); - nsec_raw = timekeeping_cycles_to_ns(&tk->tkr_raw, - system_counterval.cycles); + nsec_real = timekeeping_cycles_to_ns(&tk->tkr_mono, cycles); + nsec_raw = timekeeping_cycles_to_ns(&tk->tkr_raw, cycles); } while (read_seqcount_retry(&tk_core.seq, seq)); xtstamp->sys_realtime = ktime_add_ns(base_real, nsec_real); @@ -1264,13 +1264,13 @@ bool discontinuity; /* - * Check that the counter value occurs after the provided + * Check that the counter value is not before the provided * history reference and that the history doesn't cross a * clocksource change */ if (!history_begin || - !cycle_between(history_begin->cycles, - system_counterval.cycles, cycles) || + !timestamp_in_interval(history_begin->cycles, + cycles, system_counterval.cycles) || history_begin->cs_was_changed_seq != cs_was_changed_seq) return -EINVAL; partial_history_cycles = cycles - system_counterval.cycles; diff -Nru linux-5.10.209/kernel/time/timer.c linux-5.10.216/kernel/time/timer.c --- linux-5.10.209/kernel/time/timer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/time/timer.c 2024-05-02 14:23:46.000000000 +0000 @@ -1030,7 +1030,7 @@ /* * We are trying to schedule the timer on the new base. * However we can't change timer's base while it is running, - * otherwise del_timer_sync() can't detect that the timer's + * otherwise timer_delete_sync() can't detect that the timer's * handler yet has not finished. This also guarantees that the * timer is serialized wrt itself. */ @@ -1068,14 +1068,16 @@ } /** - * mod_timer_pending - modify a pending timer's timeout - * @timer: the pending timer to be modified - * @expires: new timeout in jiffies - * - * mod_timer_pending() is the same for pending timers as mod_timer(), - * but will not re-activate and modify already deleted timers. - * - * It is useful for unserialized use of timers. + * mod_timer_pending - Modify a pending timer's timeout + * @timer: The pending timer to be modified + * @expires: New absolute timeout in jiffies + * + * mod_timer_pending() is the same for pending timers as mod_timer(), but + * will not activate inactive timers. + * + * Return: + * * %0 - The timer was inactive and not modified + * * %1 - The timer was active and requeued to expire at @expires */ int mod_timer_pending(struct timer_list *timer, unsigned long expires) { @@ -1084,24 +1086,27 @@ EXPORT_SYMBOL(mod_timer_pending); /** - * mod_timer - modify a timer's timeout - * @timer: the timer to be modified - * @expires: new timeout in jiffies - * - * mod_timer() is a more efficient way to update the expire field of an - * active timer (if the timer is inactive it will be activated) + * mod_timer - Modify a timer's timeout + * @timer: The timer to be modified + * @expires: New absolute timeout in jiffies * * mod_timer(timer, expires) is equivalent to: * * del_timer(timer); timer->expires = expires; add_timer(timer); * + * mod_timer() is more efficient than the above open coded sequence. In + * case that the timer is inactive, the del_timer() part is a NOP. The + * timer is in any case activated with the new expiry time @expires. + * * Note that if there are multiple unserialized concurrent users of the * same timer, then mod_timer() is the only safe way to modify the timeout, * since add_timer() cannot modify an already running timer. * - * The function returns whether it has modified a pending timer or not. - * (ie. mod_timer() of an inactive timer returns 0, mod_timer() of an - * active timer returns 1.) + * Return: + * * %0 - The timer was inactive and started + * * %1 - The timer was active and requeued to expire at @expires or + * the timer was active and not modified because @expires did + * not change the effective expiry time */ int mod_timer(struct timer_list *timer, unsigned long expires) { @@ -1112,11 +1117,18 @@ /** * timer_reduce - Modify a timer's timeout if it would reduce the timeout * @timer: The timer to be modified - * @expires: New timeout in jiffies + * @expires: New absolute timeout in jiffies * * timer_reduce() is very similar to mod_timer(), except that it will only - * modify a running timer if that would reduce the expiration time (it will - * start a timer that isn't running). + * modify an enqueued timer if that would reduce the expiration time. If + * @timer is not enqueued it starts the timer. + * + * Return: + * * %0 - The timer was inactive and started + * * %1 - The timer was active and requeued to expire at @expires or + * the timer was active and not modified because @expires + * did not change the effective expiry time such that the + * timer would expire earlier than already scheduled */ int timer_reduce(struct timer_list *timer, unsigned long expires) { @@ -1125,18 +1137,21 @@ EXPORT_SYMBOL(timer_reduce); /** - * add_timer - start a timer - * @timer: the timer to be added + * add_timer - Start a timer + * @timer: The timer to be started * - * The kernel will do a ->function(@timer) callback from the - * timer interrupt at the ->expires point in the future. The - * current time is 'jiffies'. + * Start @timer to expire at @timer->expires in the future. @timer->expires + * is the absolute expiry time measured in 'jiffies'. When the timer expires + * timer->function(timer) will be invoked from soft interrupt context. * - * The timer's ->expires, ->function fields must be set prior calling this - * function. + * The @timer->expires and @timer->function fields must be set prior + * to calling this function. * - * Timers with an ->expires field in the past will be executed in the next - * timer tick. + * If @timer->expires is already in the past @timer will be queued to + * expire at the next timer tick. + * + * This can only operate on an inactive timer. Attempts to invoke this on + * an active timer are rejected with a warning. */ void add_timer(struct timer_list *timer) { @@ -1146,11 +1161,13 @@ EXPORT_SYMBOL(add_timer); /** - * add_timer_on - start a timer on a particular CPU - * @timer: the timer to be added - * @cpu: the CPU to start it on + * add_timer_on - Start a timer on a particular CPU + * @timer: The timer to be started + * @cpu: The CPU to start it on + * + * Same as add_timer() except that it starts the timer on the given CPU. * - * This is not very scalable on SMP. Double adds are not possible. + * See add_timer() for further details. */ void add_timer_on(struct timer_list *timer, int cpu) { @@ -1185,15 +1202,18 @@ EXPORT_SYMBOL_GPL(add_timer_on); /** - * del_timer - deactivate a timer. - * @timer: the timer to be deactivated + * del_timer - Deactivate a timer. + * @timer: The timer to be deactivated * - * del_timer() deactivates a timer - this works on both active and inactive - * timers. - * - * The function returns whether it has deactivated a pending timer or not. - * (ie. del_timer() of an inactive timer returns 0, del_timer() of an - * active timer returns 1.) + * The function only deactivates a pending timer, but contrary to + * timer_delete_sync() it does not take into account whether the timer's + * callback function is concurrently executed on a different CPU or not. + * It neither prevents rearming of the timer. If @timer can be rearmed + * concurrently then the return value of this function is meaningless. + * + * Return: + * * %0 - The timer was not pending + * * %1 - The timer was pending and deactivated */ int del_timer(struct timer_list *timer) { @@ -1215,10 +1235,19 @@ /** * try_to_del_timer_sync - Try to deactivate a timer - * @timer: timer to delete + * @timer: Timer to deactivate + * + * This function tries to deactivate a timer. On success the timer is not + * queued and the timer callback function is not running on any CPU. * - * This function tries to deactivate a timer. Upon successful (ret >= 0) - * exit the timer is not queued and the handler is not running on any CPU. + * This function does not guarantee that the timer cannot be rearmed right + * after dropping the base lock. That needs to be prevented by the calling + * code if necessary. + * + * Return: + * * %0 - The timer was not pending + * * %1 - The timer was pending and deactivated + * * %-1 - The timer callback function is running on a different CPU */ int try_to_del_timer_sync(struct timer_list *timer) { @@ -1312,25 +1341,20 @@ static inline void del_timer_wait_running(struct timer_list *timer) { } #endif -#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT) /** - * del_timer_sync - deactivate a timer and wait for the handler to finish. - * @timer: the timer to be deactivated - * - * This function only differs from del_timer() on SMP: besides deactivating - * the timer it also makes sure the handler has finished executing on other - * CPUs. + * timer_delete_sync - Deactivate a timer and wait for the handler to finish. + * @timer: The timer to be deactivated * * Synchronization rules: Callers must prevent restarting of the timer, * otherwise this function is meaningless. It must not be called from * interrupt contexts unless the timer is an irqsafe one. The caller must - * not hold locks which would prevent completion of the timer's - * handler. The timer's handler must not call add_timer_on(). Upon exit the - * timer is not queued and the handler is not running on any CPU. - * - * Note: For !irqsafe timers, you must not hold locks that are held in - * interrupt context while calling this function. Even if the lock has - * nothing to do with the timer in question. Here's why:: + * not hold locks which would prevent completion of the timer's callback + * function. The timer's handler must not call add_timer_on(). Upon exit + * the timer is not queued and the handler is not running on any CPU. + * + * For !irqsafe timers, the caller must not hold locks that are held in + * interrupt context. Even if the lock has nothing to do with the timer in + * question. Here's why:: * * CPU0 CPU1 * ---- ---- @@ -1340,16 +1364,23 @@ * spin_lock_irq(somelock); * * spin_lock(somelock); - * del_timer_sync(mytimer); + * timer_delete_sync(mytimer); * while (base->running_timer == mytimer); * - * Now del_timer_sync() will never return and never release somelock. - * The interrupt on the other CPU is waiting to grab somelock but - * it has interrupted the softirq that CPU0 is waiting to finish. - * - * The function returns whether it has deactivated a pending timer or not. + * Now timer_delete_sync() will never return and never release somelock. + * The interrupt on the other CPU is waiting to grab somelock but it has + * interrupted the softirq that CPU0 is waiting to finish. + * + * This function cannot guarantee that the timer is not rearmed again by + * some concurrent or preempting code, right after it dropped the base + * lock. If there is the possibility of a concurrent rearm then the return + * value of the function is meaningless. + * + * Return: + * * %0 - The timer was not pending + * * %1 - The timer was pending and deactivated */ -int del_timer_sync(struct timer_list *timer) +int timer_delete_sync(struct timer_list *timer) { int ret; @@ -1382,8 +1413,7 @@ return ret; } -EXPORT_SYMBOL(del_timer_sync); -#endif +EXPORT_SYMBOL(timer_delete_sync); static void call_timer_fn(struct timer_list *timer, void (*fn)(struct timer_list *), @@ -1405,8 +1435,8 @@ #endif /* * Couple the lock chain with the lock chain at - * del_timer_sync() by acquiring the lock_map around the fn() - * call here and in del_timer_sync(). + * timer_delete_sync() by acquiring the lock_map around the fn() + * call here and in timer_delete_sync(). */ lock_map_acquire(&lockdep_map); diff -Nru linux-5.10.209/kernel/trace/ring_buffer.c linux-5.10.216/kernel/trace/ring_buffer.c --- linux-5.10.209/kernel/trace/ring_buffer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/trace/ring_buffer.c 2024-05-02 14:23:46.000000000 +0000 @@ -415,7 +415,6 @@ struct irq_work work; wait_queue_head_t waiters; wait_queue_head_t full_waiters; - long wait_index; bool waiters_pending; bool full_waiters_pending; bool wakeup_full; @@ -832,8 +831,19 @@ wake_up_all(&rbwork->waiters); if (rbwork->full_waiters_pending || rbwork->wakeup_full) { + /* Only cpu_buffer sets the above flags */ + struct ring_buffer_per_cpu *cpu_buffer = + container_of(rbwork, struct ring_buffer_per_cpu, irq_work); + + /* Called from interrupt context */ + raw_spin_lock(&cpu_buffer->reader_lock); rbwork->wakeup_full = false; rbwork->full_waiters_pending = false; + + /* Waking up all waiters, they will reset the shortest full */ + cpu_buffer->shortest_full = 0; + raw_spin_unlock(&cpu_buffer->reader_lock); + wake_up_all(&rbwork->full_waiters); } } @@ -862,14 +872,41 @@ rbwork = &cpu_buffer->irq_work; } - rbwork->wait_index++; - /* make sure the waiters see the new index */ - smp_wmb(); - /* This can be called in any context */ irq_work_queue(&rbwork->work); } +static bool rb_watermark_hit(struct trace_buffer *buffer, int cpu, int full) +{ + struct ring_buffer_per_cpu *cpu_buffer; + bool ret = false; + + /* Reads of all CPUs always waits for any data */ + if (cpu == RING_BUFFER_ALL_CPUS) + return !ring_buffer_empty(buffer); + + cpu_buffer = buffer->buffers[cpu]; + + if (!ring_buffer_empty_cpu(buffer, cpu)) { + unsigned long flags; + bool pagebusy; + + if (!full) + return true; + + raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + pagebusy = cpu_buffer->reader_page == cpu_buffer->commit_page; + ret = !pagebusy && full_hit(buffer, cpu, full); + + if (!ret && (!cpu_buffer->shortest_full || + cpu_buffer->shortest_full > full)) { + cpu_buffer->shortest_full = full; + } + raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + } + return ret; +} + /** * ring_buffer_wait - wait for input to the ring buffer * @buffer: buffer to wait on @@ -885,7 +922,6 @@ struct ring_buffer_per_cpu *cpu_buffer; DEFINE_WAIT(wait); struct rb_irq_work *work; - long wait_index; int ret = 0; /* @@ -904,81 +940,54 @@ work = &cpu_buffer->irq_work; } - wait_index = READ_ONCE(work->wait_index); - - while (true) { - if (full) - prepare_to_wait(&work->full_waiters, &wait, TASK_INTERRUPTIBLE); - else - prepare_to_wait(&work->waiters, &wait, TASK_INTERRUPTIBLE); - - /* - * The events can happen in critical sections where - * checking a work queue can cause deadlocks. - * After adding a task to the queue, this flag is set - * only to notify events to try to wake up the queue - * using irq_work. - * - * We don't clear it even if the buffer is no longer - * empty. The flag only causes the next event to run - * irq_work to do the work queue wake up. The worse - * that can happen if we race with !trace_empty() is that - * an event will cause an irq_work to try to wake up - * an empty queue. - * - * There's no reason to protect this flag either, as - * the work queue and irq_work logic will do the necessary - * synchronization for the wake ups. The only thing - * that is necessary is that the wake up happens after - * a task has been queued. It's OK for spurious wake ups. - */ - if (full) - work->full_waiters_pending = true; - else - work->waiters_pending = true; - - if (signal_pending(current)) { - ret = -EINTR; - break; - } - - if (cpu == RING_BUFFER_ALL_CPUS && !ring_buffer_empty(buffer)) - break; + if (full) + prepare_to_wait(&work->full_waiters, &wait, TASK_INTERRUPTIBLE); + else + prepare_to_wait(&work->waiters, &wait, TASK_INTERRUPTIBLE); - if (cpu != RING_BUFFER_ALL_CPUS && - !ring_buffer_empty_cpu(buffer, cpu)) { - unsigned long flags; - bool pagebusy; - bool done; - - if (!full) - break; - - raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); - pagebusy = cpu_buffer->reader_page == cpu_buffer->commit_page; - done = !pagebusy && full_hit(buffer, cpu, full); - - if (!cpu_buffer->shortest_full || - cpu_buffer->shortest_full > full) - cpu_buffer->shortest_full = full; - raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); - if (done) - break; - } + /* + * The events can happen in critical sections where + * checking a work queue can cause deadlocks. + * After adding a task to the queue, this flag is set + * only to notify events to try to wake up the queue + * using irq_work. + * + * We don't clear it even if the buffer is no longer + * empty. The flag only causes the next event to run + * irq_work to do the work queue wake up. The worse + * that can happen if we race with !trace_empty() is that + * an event will cause an irq_work to try to wake up + * an empty queue. + * + * There's no reason to protect this flag either, as + * the work queue and irq_work logic will do the necessary + * synchronization for the wake ups. The only thing + * that is necessary is that the wake up happens after + * a task has been queued. It's OK for spurious wake ups. + */ + if (full) + work->full_waiters_pending = true; + else + work->waiters_pending = true; - schedule(); + if (rb_watermark_hit(buffer, cpu, full)) + goto out; - /* Make sure to see the new wait index */ - smp_rmb(); - if (wait_index != work->wait_index) - break; + if (signal_pending(current)) { + ret = -EINTR; + goto out; } + schedule(); + out: if (full) finish_wait(&work->full_waiters, &wait); else finish_wait(&work->waiters, &wait); + if (!ret && !rb_watermark_hit(buffer, cpu, full) && signal_pending(current)) + ret = -EINTR; + return ret; } @@ -1001,30 +1010,51 @@ struct file *filp, poll_table *poll_table, int full) { struct ring_buffer_per_cpu *cpu_buffer; - struct rb_irq_work *work; + struct rb_irq_work *rbwork; if (cpu == RING_BUFFER_ALL_CPUS) { - work = &buffer->irq_work; + rbwork = &buffer->irq_work; full = 0; } else { if (!cpumask_test_cpu(cpu, buffer->cpumask)) - return -EINVAL; + return EPOLLERR; cpu_buffer = buffer->buffers[cpu]; - work = &cpu_buffer->irq_work; + rbwork = &cpu_buffer->irq_work; } if (full) { - poll_wait(filp, &work->full_waiters, poll_table); - work->full_waiters_pending = true; + unsigned long flags; + + poll_wait(filp, &rbwork->full_waiters, poll_table); + + raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); if (!cpu_buffer->shortest_full || cpu_buffer->shortest_full > full) cpu_buffer->shortest_full = full; - } else { - poll_wait(filp, &work->waiters, poll_table); - work->waiters_pending = true; + raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); + if (full_hit(buffer, cpu, full)) + return EPOLLIN | EPOLLRDNORM; + /* + * Only allow full_waiters_pending update to be seen after + * the shortest_full is set. If the writer sees the + * full_waiters_pending flag set, it will compare the + * amount in the ring buffer to shortest_full. If the amount + * in the ring buffer is greater than the shortest_full + * percent, it will call the irq_work handler to wake up + * this list. The irq_handler will reset shortest_full + * back to zero. That's done under the reader_lock, but + * the below smp_mb() makes sure that the update to + * full_waiters_pending doesn't leak up into the above. + */ + smp_mb(); + rbwork->full_waiters_pending = true; + return 0; } + poll_wait(filp, &rbwork->waiters, poll_table); + rbwork->waiters_pending = true; + /* * There's a tight race between setting the waiters_pending and * checking if the ring buffer is empty. Once the waiters_pending bit @@ -1040,9 +1070,6 @@ */ smp_mb(); - if (full) - return full_hit(buffer, cpu, full) ? EPOLLIN | EPOLLRDNORM : 0; - if ((cpu == RING_BUFFER_ALL_CPUS && !ring_buffer_empty(buffer)) || (cpu != RING_BUFFER_ALL_CPUS && !ring_buffer_empty_cpu(buffer, cpu))) return EPOLLIN | EPOLLRDNORM; @@ -4184,7 +4211,7 @@ cpu_buffer = iter->cpu_buffer; reader = cpu_buffer->reader_page; head_page = cpu_buffer->head_page; - commit_page = cpu_buffer->commit_page; + commit_page = READ_ONCE(cpu_buffer->commit_page); commit_ts = commit_page->page->time_stamp; /* diff -Nru linux-5.10.209/kernel/trace/trace.c linux-5.10.216/kernel/trace/trace.c --- linux-5.10.209/kernel/trace/trace.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/trace/trace.c 2024-05-02 14:23:46.000000000 +0000 @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -2239,7 +2240,7 @@ unsigned *map_cmdline_to_pid; unsigned cmdline_num; int cmdline_idx; - char *saved_cmdlines; + char saved_cmdlines[]; }; static struct saved_cmdlines_buffer *savedcmd; @@ -2253,47 +2254,60 @@ strncpy(get_saved_cmdlines(idx), cmdline, TASK_COMM_LEN); } -static int allocate_cmdlines_buffer(unsigned int val, - struct saved_cmdlines_buffer *s) +static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s) { + int order = get_order(sizeof(*s) + s->cmdline_num * TASK_COMM_LEN); + + kfree(s->map_cmdline_to_pid); + kmemleak_free(s); + free_pages((unsigned long)s, order); +} + +static struct saved_cmdlines_buffer *allocate_cmdlines_buffer(unsigned int val) +{ + struct saved_cmdlines_buffer *s; + struct page *page; + int orig_size, size; + int order; + + /* Figure out how much is needed to hold the given number of cmdlines */ + orig_size = sizeof(*s) + val * TASK_COMM_LEN; + order = get_order(orig_size); + size = 1 << (order + PAGE_SHIFT); + page = alloc_pages(GFP_KERNEL, order); + if (!page) + return NULL; + + s = page_address(page); + kmemleak_alloc(s, size, 1, GFP_KERNEL); + memset(s, 0, sizeof(*s)); + + /* Round up to actual allocation */ + val = (size - sizeof(*s)) / TASK_COMM_LEN; + s->cmdline_num = val; + s->map_cmdline_to_pid = kmalloc_array(val, sizeof(*s->map_cmdline_to_pid), GFP_KERNEL); - if (!s->map_cmdline_to_pid) - return -ENOMEM; - - s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL); - if (!s->saved_cmdlines) { - kfree(s->map_cmdline_to_pid); - return -ENOMEM; + if (!s->map_cmdline_to_pid) { + free_saved_cmdlines_buffer(s); + return NULL; } s->cmdline_idx = 0; - s->cmdline_num = val; memset(&s->map_pid_to_cmdline, NO_CMDLINE_MAP, sizeof(s->map_pid_to_cmdline)); memset(s->map_cmdline_to_pid, NO_CMDLINE_MAP, val * sizeof(*s->map_cmdline_to_pid)); - return 0; + return s; } static int trace_create_savedcmd(void) { - int ret; + savedcmd = allocate_cmdlines_buffer(SAVED_CMDLINES_DEFAULT); - savedcmd = kmalloc(sizeof(*savedcmd), GFP_KERNEL); - if (!savedcmd) - return -ENOMEM; - - ret = allocate_cmdlines_buffer(SAVED_CMDLINES_DEFAULT, savedcmd); - if (ret < 0) { - kfree(savedcmd); - savedcmd = NULL; - return -ENOMEM; - } - - return 0; + return savedcmd ? 0 : -ENOMEM; } int is_tracing_stopped(void) @@ -5603,26 +5617,14 @@ return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); } -static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s) -{ - kfree(s->saved_cmdlines); - kfree(s->map_cmdline_to_pid); - kfree(s); -} - static int tracing_resize_saved_cmdlines(unsigned int val) { struct saved_cmdlines_buffer *s, *savedcmd_temp; - s = kmalloc(sizeof(*s), GFP_KERNEL); + s = allocate_cmdlines_buffer(val); if (!s) return -ENOMEM; - if (allocate_cmdlines_buffer(val, s) < 0) { - kfree(s); - return -ENOMEM; - } - preempt_disable(); arch_spin_lock(&trace_cmdline_lock); savedcmd_temp = savedcmd; diff -Nru linux-5.10.209/kernel/trace/trace_event_perf.c linux-5.10.216/kernel/trace/trace_event_perf.c --- linux-5.10.209/kernel/trace/trace_event_perf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/trace/trace_event_perf.c 2024-05-02 14:23:46.000000000 +0000 @@ -400,7 +400,8 @@ BUILD_BUG_ON(PERF_MAX_TRACE_SIZE % sizeof(unsigned long)); if (WARN_ONCE(size > PERF_MAX_TRACE_SIZE, - "perf buffer not large enough")) + "perf buffer not large enough, wanted %d, have %d", + size, PERF_MAX_TRACE_SIZE)) return NULL; *rctxp = rctx = perf_swevent_get_recursion_context(); diff -Nru linux-5.10.209/kernel/trace/tracing_map.c linux-5.10.216/kernel/trace/tracing_map.c --- linux-5.10.209/kernel/trace/tracing_map.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/kernel/trace/tracing_map.c 2024-05-02 14:23:46.000000000 +0000 @@ -574,7 +574,12 @@ } memcpy(elt->key, key, map->key_size); - entry->val = elt; + /* + * Ensure the initialization is visible and + * publish the elt. + */ + smp_wmb(); + WRITE_ONCE(entry->val, elt); atomic64_inc(&map->hits); return entry->val; diff -Nru linux-5.10.209/lib/debugobjects.c linux-5.10.216/lib/debugobjects.c --- linux-5.10.209/lib/debugobjects.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/lib/debugobjects.c 2024-05-02 14:23:46.000000000 +0000 @@ -612,9 +612,8 @@ static void __debug_object_init(void *addr, const struct debug_obj_descr *descr, int onstack) { - enum debug_obj_state state; + struct debug_obj *obj, o; struct debug_bucket *db; - struct debug_obj *obj; unsigned long flags; debug_objects_fill_pool(); @@ -635,24 +634,18 @@ case ODEBUG_STATE_INIT: case ODEBUG_STATE_INACTIVE: obj->state = ODEBUG_STATE_INIT; - break; - - case ODEBUG_STATE_ACTIVE: - state = obj->state; raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "init"); - debug_object_fixup(descr->fixup_init, addr, state); - return; - - case ODEBUG_STATE_DESTROYED: - raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "init"); return; default: break; } + o = *obj; raw_spin_unlock_irqrestore(&db->lock, flags); + debug_print_object(&o, "init"); + + if (o.state == ODEBUG_STATE_ACTIVE) + debug_object_fixup(descr->fixup_init, addr, o.state); } /** @@ -693,11 +686,9 @@ int debug_object_activate(void *addr, const struct debug_obj_descr *descr) { struct debug_obj o = { .object = addr, .state = ODEBUG_STATE_NOTAVAILABLE, .descr = descr }; - enum debug_obj_state state; struct debug_bucket *db; struct debug_obj *obj; unsigned long flags; - int ret; if (!debug_objects_enabled) return 0; @@ -709,49 +700,38 @@ raw_spin_lock_irqsave(&db->lock, flags); obj = lookup_object_or_alloc(addr, db, descr, false, true); - if (likely(!IS_ERR_OR_NULL(obj))) { - bool print_object = false; - + if (unlikely(!obj)) { + raw_spin_unlock_irqrestore(&db->lock, flags); + debug_objects_oom(); + return 0; + } else if (likely(!IS_ERR(obj))) { switch (obj->state) { - case ODEBUG_STATE_INIT: - case ODEBUG_STATE_INACTIVE: - obj->state = ODEBUG_STATE_ACTIVE; - ret = 0; - break; - case ODEBUG_STATE_ACTIVE: - state = obj->state; - raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "activate"); - ret = debug_object_fixup(descr->fixup_activate, addr, state); - return ret ? 0 : -EINVAL; - case ODEBUG_STATE_DESTROYED: - print_object = true; - ret = -EINVAL; + o = *obj; break; + case ODEBUG_STATE_INIT: + case ODEBUG_STATE_INACTIVE: + obj->state = ODEBUG_STATE_ACTIVE; + fallthrough; default: - ret = 0; - break; + raw_spin_unlock_irqrestore(&db->lock, flags); + return 0; } - raw_spin_unlock_irqrestore(&db->lock, flags); - if (print_object) - debug_print_object(obj, "activate"); - return ret; } raw_spin_unlock_irqrestore(&db->lock, flags); + debug_print_object(&o, "activate"); - /* If NULL the allocation has hit OOM */ - if (!obj) { - debug_objects_oom(); - return 0; + switch (o.state) { + case ODEBUG_STATE_ACTIVE: + case ODEBUG_STATE_NOTAVAILABLE: + if (debug_object_fixup(descr->fixup_activate, addr, o.state)) + return 0; + fallthrough; + default: + return -EINVAL; } - - /* Object is neither static nor tracked. It's not initialized */ - debug_print_object(&o, "activate"); - ret = debug_object_fixup(descr->fixup_activate, addr, ODEBUG_STATE_NOTAVAILABLE); - return ret ? 0 : -EINVAL; } EXPORT_SYMBOL_GPL(debug_object_activate); @@ -762,10 +742,10 @@ */ void debug_object_deactivate(void *addr, const struct debug_obj_descr *descr) { + struct debug_obj o = { .object = addr, .state = ODEBUG_STATE_NOTAVAILABLE, .descr = descr }; struct debug_bucket *db; struct debug_obj *obj; unsigned long flags; - bool print_object = false; if (!debug_objects_enabled) return; @@ -777,33 +757,24 @@ obj = lookup_object(addr, db); if (obj) { switch (obj->state) { + case ODEBUG_STATE_DESTROYED: + break; case ODEBUG_STATE_INIT: case ODEBUG_STATE_INACTIVE: case ODEBUG_STATE_ACTIVE: - if (!obj->astate) - obj->state = ODEBUG_STATE_INACTIVE; - else - print_object = true; - break; - - case ODEBUG_STATE_DESTROYED: - print_object = true; - break; + if (obj->astate) + break; + obj->state = ODEBUG_STATE_INACTIVE; + fallthrough; default: - break; + raw_spin_unlock_irqrestore(&db->lock, flags); + return; } + o = *obj; } raw_spin_unlock_irqrestore(&db->lock, flags); - if (!obj) { - struct debug_obj o = { .object = addr, - .state = ODEBUG_STATE_NOTAVAILABLE, - .descr = descr }; - - debug_print_object(&o, "deactivate"); - } else if (print_object) { - debug_print_object(obj, "deactivate"); - } + debug_print_object(&o, "deactivate"); } EXPORT_SYMBOL_GPL(debug_object_deactivate); @@ -814,11 +785,9 @@ */ void debug_object_destroy(void *addr, const struct debug_obj_descr *descr) { - enum debug_obj_state state; + struct debug_obj *obj, o; struct debug_bucket *db; - struct debug_obj *obj; unsigned long flags; - bool print_object = false; if (!debug_objects_enabled) return; @@ -828,32 +797,31 @@ raw_spin_lock_irqsave(&db->lock, flags); obj = lookup_object(addr, db); - if (!obj) - goto out_unlock; + if (!obj) { + raw_spin_unlock_irqrestore(&db->lock, flags); + return; + } switch (obj->state) { + case ODEBUG_STATE_ACTIVE: + case ODEBUG_STATE_DESTROYED: + break; case ODEBUG_STATE_NONE: case ODEBUG_STATE_INIT: case ODEBUG_STATE_INACTIVE: obj->state = ODEBUG_STATE_DESTROYED; - break; - case ODEBUG_STATE_ACTIVE: - state = obj->state; + fallthrough; + default: raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "destroy"); - debug_object_fixup(descr->fixup_destroy, addr, state); return; - - case ODEBUG_STATE_DESTROYED: - print_object = true; - break; - default: - break; } -out_unlock: + + o = *obj; raw_spin_unlock_irqrestore(&db->lock, flags); - if (print_object) - debug_print_object(obj, "destroy"); + debug_print_object(&o, "destroy"); + + if (o.state == ODEBUG_STATE_ACTIVE) + debug_object_fixup(descr->fixup_destroy, addr, o.state); } EXPORT_SYMBOL_GPL(debug_object_destroy); @@ -864,9 +832,8 @@ */ void debug_object_free(void *addr, const struct debug_obj_descr *descr) { - enum debug_obj_state state; + struct debug_obj *obj, o; struct debug_bucket *db; - struct debug_obj *obj; unsigned long flags; if (!debug_objects_enabled) @@ -877,24 +844,26 @@ raw_spin_lock_irqsave(&db->lock, flags); obj = lookup_object(addr, db); - if (!obj) - goto out_unlock; + if (!obj) { + raw_spin_unlock_irqrestore(&db->lock, flags); + return; + } switch (obj->state) { case ODEBUG_STATE_ACTIVE: - state = obj->state; - raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "free"); - debug_object_fixup(descr->fixup_free, addr, state); - return; + break; default: hlist_del(&obj->node); raw_spin_unlock_irqrestore(&db->lock, flags); free_object(obj); return; } -out_unlock: + + o = *obj; raw_spin_unlock_irqrestore(&db->lock, flags); + debug_print_object(&o, "free"); + + debug_object_fixup(descr->fixup_free, addr, o.state); } EXPORT_SYMBOL_GPL(debug_object_free); @@ -946,10 +915,10 @@ debug_object_active_state(void *addr, const struct debug_obj_descr *descr, unsigned int expect, unsigned int next) { + struct debug_obj o = { .object = addr, .state = ODEBUG_STATE_NOTAVAILABLE, .descr = descr }; struct debug_bucket *db; struct debug_obj *obj; unsigned long flags; - bool print_object = false; if (!debug_objects_enabled) return; @@ -962,28 +931,19 @@ if (obj) { switch (obj->state) { case ODEBUG_STATE_ACTIVE: - if (obj->astate == expect) - obj->astate = next; - else - print_object = true; - break; - + if (obj->astate != expect) + break; + obj->astate = next; + raw_spin_unlock_irqrestore(&db->lock, flags); + return; default: - print_object = true; break; } + o = *obj; } raw_spin_unlock_irqrestore(&db->lock, flags); - if (!obj) { - struct debug_obj o = { .object = addr, - .state = ODEBUG_STATE_NOTAVAILABLE, - .descr = descr }; - - debug_print_object(&o, "active_state"); - } else if (print_object) { - debug_print_object(obj, "active_state"); - } + debug_print_object(&o, "active_state"); } EXPORT_SYMBOL_GPL(debug_object_active_state); @@ -991,12 +951,10 @@ static void __debug_check_no_obj_freed(const void *address, unsigned long size) { unsigned long flags, oaddr, saddr, eaddr, paddr, chunks; - const struct debug_obj_descr *descr; - enum debug_obj_state state; + int cnt, objs_checked = 0; + struct debug_obj *obj, o; struct debug_bucket *db; struct hlist_node *tmp; - struct debug_obj *obj; - int cnt, objs_checked = 0; saddr = (unsigned long) address; eaddr = saddr + size; @@ -1018,12 +976,10 @@ switch (obj->state) { case ODEBUG_STATE_ACTIVE: - descr = obj->descr; - state = obj->state; + o = *obj; raw_spin_unlock_irqrestore(&db->lock, flags); - debug_print_object(obj, "free"); - debug_object_fixup(descr->fixup_free, - (void *) oaddr, state); + debug_print_object(&o, "free"); + debug_object_fixup(o.descr->fixup_free, (void *)oaddr, o.state); goto repeat; default: hlist_del(&obj->node); diff -Nru linux-5.10.209/lib/mpi/ec.c linux-5.10.216/lib/mpi/ec.c --- linux-5.10.209/lib/mpi/ec.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/lib/mpi/ec.c 2024-05-02 14:23:46.000000000 +0000 @@ -584,6 +584,9 @@ ctx->a = mpi_copy(a); ctx->b = mpi_copy(b); + ctx->d = NULL; + ctx->t.two_inv_p = NULL; + ctx->t.p_barrett = use_barrett > 0 ? mpi_barrett_init(ctx->p, 0) : NULL; mpi_ec_get_reset(ctx); diff -Nru linux-5.10.209/lib/stackdepot.c linux-5.10.216/lib/stackdepot.c --- linux-5.10.209/lib/stackdepot.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/lib/stackdepot.c 2024-05-02 14:23:46.000000000 +0000 @@ -271,10 +271,10 @@ /* * Zero out zone modifiers, as we don't have specific zone * requirements. Keep the flags related to allocation in atomic - * contexts and I/O. + * contexts, I/O, nolockdep. */ alloc_flags &= ~GFP_ZONEMASK; - alloc_flags &= (GFP_ATOMIC | GFP_KERNEL); + alloc_flags &= (GFP_ATOMIC | GFP_KERNEL | __GFP_NOLOCKDEP); alloc_flags |= __GFP_NOWARN; page = alloc_pages(alloc_flags, STACK_ALLOC_ORDER); if (page) diff -Nru linux-5.10.209/lib/test_blackhole_dev.c linux-5.10.216/lib/test_blackhole_dev.c --- linux-5.10.209/lib/test_blackhole_dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/lib/test_blackhole_dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -29,7 +29,6 @@ { struct ipv6hdr *ip6h; struct sk_buff *skb; - struct ethhdr *ethh; struct udphdr *uh; int data_len; int ret; @@ -61,7 +60,7 @@ ip6h->saddr = in6addr_loopback; ip6h->daddr = in6addr_loopback; /* Ether */ - ethh = (struct ethhdr *)skb_push(skb, sizeof(struct ethhdr)); + skb_push(skb, sizeof(struct ethhdr)); skb_set_mac_header(skb, 0); skb->protocol = htons(ETH_P_IPV6); diff -Nru linux-5.10.209/mm/compaction.c linux-5.10.216/mm/compaction.c --- linux-5.10.209/mm/compaction.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/compaction.c 2024-05-02 14:23:46.000000000 +0000 @@ -2466,16 +2466,11 @@ unsigned int alloc_flags, const struct alloc_context *ac, enum compact_priority prio, struct page **capture) { - int may_perform_io = gfp_mask & __GFP_IO; struct zoneref *z; struct zone *zone; enum compact_result rc = COMPACT_SKIPPED; - /* - * Check if the GFP flags allow compaction - GFP_NOIO is really - * tricky context because the migration might require IO - */ - if (!may_perform_io) + if (!gfp_compaction_allowed(gfp_mask)) return COMPACT_SKIPPED; trace_mm_compaction_try_to_compact_pages(order, gfp_mask, prio); diff -Nru linux-5.10.209/mm/hugetlb.c linux-5.10.216/mm/hugetlb.c --- linux-5.10.209/mm/hugetlb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/hugetlb.c 2024-05-02 14:23:46.000000000 +0000 @@ -5108,12 +5108,13 @@ return pages << h->order; } -int hugetlb_reserve_pages(struct inode *inode, +/* Return true if reservation was successful, false otherwise. */ +bool hugetlb_reserve_pages(struct inode *inode, long from, long to, struct vm_area_struct *vma, vm_flags_t vm_flags) { - long ret, chg, add = -1; + long chg, add = -1; struct hstate *h = hstate_inode(inode); struct hugepage_subpool *spool = subpool_inode(inode); struct resv_map *resv_map; @@ -5123,7 +5124,7 @@ /* This should never happen */ if (from > to) { VM_WARN(1, "%s called with a negative range\n", __func__); - return -EINVAL; + return false; } /* @@ -5132,7 +5133,7 @@ * without using reserves */ if (vm_flags & VM_NORESERVE) - return 0; + return true; /* * Shared mappings base their reservation on the number of pages that @@ -5154,7 +5155,7 @@ /* Private mapping. */ resv_map = resv_map_alloc(); if (!resv_map) - return -ENOMEM; + return false; chg = to - from; @@ -5162,18 +5163,12 @@ set_vma_resv_flags(vma, HPAGE_RESV_OWNER); } - if (chg < 0) { - ret = chg; + if (chg < 0) goto out_err; - } - - ret = hugetlb_cgroup_charge_cgroup_rsvd( - hstate_index(h), chg * pages_per_huge_page(h), &h_cg); - if (ret < 0) { - ret = -ENOMEM; + if (hugetlb_cgroup_charge_cgroup_rsvd(hstate_index(h), + chg * pages_per_huge_page(h), &h_cg) < 0) goto out_err; - } if (vma && !(vma->vm_flags & VM_MAYSHARE) && h_cg) { /* For private mappings, the hugetlb_cgroup uncharge info hangs @@ -5188,19 +5183,15 @@ * reservations already in place (gbl_reserve). */ gbl_reserve = hugepage_subpool_get_pages(spool, chg); - if (gbl_reserve < 0) { - ret = -ENOSPC; + if (gbl_reserve < 0) goto out_uncharge_cgroup; - } /* * Check enough hugepages are available for the reservation. * Hand the pages back to the subpool if there are not */ - ret = hugetlb_acct_memory(h, gbl_reserve); - if (ret < 0) { + if (hugetlb_acct_memory(h, gbl_reserve) < 0) goto out_put_pages; - } /* * Account for the reservations made. Shared mappings record regions @@ -5218,7 +5209,6 @@ if (unlikely(add < 0)) { hugetlb_acct_memory(h, -gbl_reserve); - ret = add; goto out_put_pages; } else if (unlikely(chg > add)) { /* @@ -5251,7 +5241,8 @@ hugetlb_cgroup_put_rsvd_cgroup(h_cg); } } - return 0; + return true; + out_put_pages: /* put back original number of pages, chg */ (void)hugepage_subpool_put_pages(spool, chg); @@ -5267,7 +5258,7 @@ region_abort(resv_map, from, to, regions_needed); if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER)) kref_put(&resv_map->refs, resv_map_release); - return ret; + return false; } long hugetlb_unreserve_pages(struct inode *inode, long start, long end, diff -Nru linux-5.10.209/mm/memory-failure.c linux-5.10.216/mm/memory-failure.c --- linux-5.10.209/mm/memory-failure.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/memory-failure.c 2024-05-02 14:23:46.000000000 +0000 @@ -1075,7 +1075,7 @@ unmap_success = false; } } else { - unmap_success = try_to_unmap(p, ttu); + unmap_success = try_to_unmap(hpage, ttu); } } if (!unmap_success) diff -Nru linux-5.10.209/mm/memory.c linux-5.10.216/mm/memory.c --- linux-5.10.209/mm/memory.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/memory.c 2024-05-02 14:23:46.000000000 +0000 @@ -4934,6 +4934,10 @@ goto out; pte = *ptep; + /* Never return PFNs of anon folios in COW mappings. */ + if (vm_normal_page(vma, address, pte)) + goto unlock; + if ((flags & FOLL_WRITE) && !pte_write(pte)) goto unlock; diff -Nru linux-5.10.209/mm/memtest.c linux-5.10.216/mm/memtest.c --- linux-5.10.209/mm/memtest.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/memtest.c 2024-05-02 14:23:46.000000000 +0000 @@ -46,10 +46,10 @@ last_bad = 0; for (p = start; p < end; p++) - *p = pattern; + WRITE_ONCE(*p, pattern); for (p = start; p < end; p++, start_phys_aligned += incr) { - if (*p == pattern) + if (READ_ONCE(*p) == pattern) continue; if (start_phys_aligned == last_bad + incr) { last_bad += incr; diff -Nru linux-5.10.209/mm/migrate.c linux-5.10.216/mm/migrate.c --- linux-5.10.209/mm/migrate.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/migrate.c 2024-05-02 14:23:46.000000000 +0000 @@ -447,8 +447,12 @@ if (PageSwapBacked(page)) { __SetPageSwapBacked(newpage); if (PageSwapCache(page)) { + int i; + SetPageSwapCache(newpage); - set_page_private(newpage, page_private(page)); + for (i = 0; i < (1 << compound_order(page)); i++) + set_page_private(newpage + i, + page_private(page + i)); } } else { VM_BUG_ON_PAGE(PageSwapCache(page), page); diff -Nru linux-5.10.209/mm/page-writeback.c linux-5.10.216/mm/page-writeback.c --- linux-5.10.209/mm/page-writeback.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/page-writeback.c 2024-05-02 14:23:46.000000000 +0000 @@ -1524,7 +1524,7 @@ */ dtc->wb_thresh = __wb_calc_thresh(dtc); dtc->wb_bg_thresh = dtc->thresh ? - div_u64((u64)dtc->wb_thresh * dtc->bg_thresh, dtc->thresh) : 0; + div64_u64(dtc->wb_thresh * dtc->bg_thresh, dtc->thresh) : 0; /* * In order to avoid the stacked BDI deadlock we need diff -Nru linux-5.10.209/mm/page_alloc.c linux-5.10.216/mm/page_alloc.c --- linux-5.10.209/mm/page_alloc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/page_alloc.c 2024-05-02 14:23:46.000000000 +0000 @@ -4644,6 +4644,7 @@ struct alloc_context *ac) { bool can_direct_reclaim = gfp_mask & __GFP_DIRECT_RECLAIM; + bool can_compact = gfp_compaction_allowed(gfp_mask); const bool costly_order = order > PAGE_ALLOC_COSTLY_ORDER; struct page *page = NULL; unsigned int alloc_flags; @@ -4709,7 +4710,7 @@ * Don't try this for allocations that are allowed to ignore * watermarks, as the ALLOC_NO_WATERMARKS attempt didn't yet happen. */ - if (can_direct_reclaim && + if (can_direct_reclaim && can_compact && (costly_order || (order > 0 && ac->migratetype != MIGRATE_MOVABLE)) && !gfp_pfmemalloc_allowed(gfp_mask)) { @@ -4806,9 +4807,10 @@ /* * Do not retry costly high order allocations unless they are - * __GFP_RETRY_MAYFAIL + * __GFP_RETRY_MAYFAIL and we can compact */ - if (costly_order && !(gfp_mask & __GFP_RETRY_MAYFAIL)) + if (costly_order && (!can_compact || + !(gfp_mask & __GFP_RETRY_MAYFAIL))) goto nopage; if (should_reclaim_retry(gfp_mask, order, ac, alloc_flags, @@ -4821,7 +4823,7 @@ * implementation of the compaction depends on the sufficient amount * of free memory (see __compaction_suitable) */ - if (did_some_progress > 0 && + if (did_some_progress > 0 && can_compact && should_compact_retry(ac, order, alloc_flags, compact_result, &compact_priority, &compaction_retries)) diff -Nru linux-5.10.209/mm/sparse.c linux-5.10.216/mm/sparse.c --- linux-5.10.209/mm/sparse.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/sparse.c 2024-05-02 14:23:46.000000000 +0000 @@ -810,6 +810,13 @@ unsigned long section_nr = pfn_to_section_nr(pfn); /* + * Mark the section invalid so that valid_section() + * return false. This prevents code from dereferencing + * ms->usage array. + */ + ms->section_mem_map &= ~SECTION_HAS_MEM_MAP; + + /* * When removing an early section, the usage map is kept (as the * usage maps of other sections fall into the same page). It * will be re-used when re-adding the section - which is then no @@ -817,16 +824,10 @@ * was allocated during boot. */ if (!PageReserved(virt_to_page(ms->usage))) { - kfree(ms->usage); - ms->usage = NULL; + kfree_rcu(ms->usage, rcu); + WRITE_ONCE(ms->usage, NULL); } memmap = sparse_decode_mem_map(ms->section_mem_map, section_nr); - /* - * Mark the section invalid so that valid_section() - * return false. This prevents code from dereferencing - * ms->usage array. - */ - ms->section_mem_map &= ~SECTION_HAS_MEM_MAP; } /* diff -Nru linux-5.10.209/mm/swapfile.c linux-5.10.216/mm/swapfile.c --- linux-5.10.209/mm/swapfile.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/swapfile.c 2024-05-02 14:23:46.000000000 +0000 @@ -1271,6 +1271,11 @@ } /* + * Note that when only holding the PTL, swapoff might succeed immediately + * after freeing a swap entry. Therefore, immediately after + * __swap_entry_free(), the swap info might become stale and should not + * be touched without a prior get_swap_device(). + * * Check whether swap entry is valid in the swap device. If so, * return pointer to swap_info_struct, and keep the swap entry valid * via preventing the swap device from being swapoff, until @@ -1797,13 +1802,19 @@ if (non_swap_entry(entry)) return 1; - p = _swap_info_get(entry); + p = get_swap_device(entry); if (p) { + if (WARN_ON(data_race(!p->swap_map[swp_offset(entry)]))) { + put_swap_device(p); + return 0; + } + count = __swap_entry_free(p, entry); if (count == SWAP_HAS_CACHE && !swap_page_trans_huge_swapped(p, entry)) __try_to_reclaim_swap(p, swp_offset(entry), TTRS_UNMAPPED | TTRS_FULL); + put_swap_device(p); } return p != NULL; } diff -Nru linux-5.10.209/mm/userfaultfd.c linux-5.10.216/mm/userfaultfd.c --- linux-5.10.209/mm/userfaultfd.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/userfaultfd.c 2024-05-02 14:23:46.000000000 +0000 @@ -209,6 +209,7 @@ unsigned long dst_start, unsigned long src_start, unsigned long len, + bool *mmap_changing, bool zeropage) { int vm_alloc_shared = dst_vma->vm_flags & VM_SHARED; @@ -329,6 +330,15 @@ goto out; } mmap_read_lock(dst_mm); + /* + * If memory mappings are changing because of non-cooperative + * operation (e.g. mremap) running in parallel, bail out and + * request the user to retry later + */ + if (mmap_changing && READ_ONCE(*mmap_changing)) { + err = -EAGAIN; + break; + } dst_vma = NULL; goto retry; @@ -410,6 +420,7 @@ unsigned long dst_start, unsigned long src_start, unsigned long len, + bool *mmap_changing, bool zeropage); #endif /* CONFIG_HUGETLB_PAGE */ @@ -529,7 +540,8 @@ */ if (is_vm_hugetlb_page(dst_vma)) return __mcopy_atomic_hugetlb(dst_mm, dst_vma, dst_start, - src_start, len, zeropage); + src_start, len, mmap_changing, + zeropage); if (!vma_is_anonymous(dst_vma) && !vma_is_shmem(dst_vma)) goto out_unlock; diff -Nru linux-5.10.209/mm/util.c linux-5.10.216/mm/util.c --- linux-5.10.209/mm/util.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/util.c 2024-05-02 14:23:46.000000000 +0000 @@ -686,6 +686,56 @@ return (void *)mapping; } +/** + * __vmalloc_array - allocate memory for a virtually contiguous array. + * @n: number of elements. + * @size: element size. + * @flags: the type of memory to allocate (see kmalloc). + */ +void *__vmalloc_array(size_t n, size_t size, gfp_t flags) +{ + size_t bytes; + + if (unlikely(check_mul_overflow(n, size, &bytes))) + return NULL; + return __vmalloc(bytes, flags); +} +EXPORT_SYMBOL(__vmalloc_array); + +/** + * vmalloc_array - allocate memory for a virtually contiguous array. + * @n: number of elements. + * @size: element size. + */ +void *vmalloc_array(size_t n, size_t size) +{ + return __vmalloc_array(n, size, GFP_KERNEL); +} +EXPORT_SYMBOL(vmalloc_array); + +/** + * __vcalloc - allocate and zero memory for a virtually contiguous array. + * @n: number of elements. + * @size: element size. + * @flags: the type of memory to allocate (see kmalloc). + */ +void *__vcalloc(size_t n, size_t size, gfp_t flags) +{ + return __vmalloc_array(n, size, flags | __GFP_ZERO); +} +EXPORT_SYMBOL(__vcalloc); + +/** + * vcalloc - allocate and zero memory for a virtually contiguous array. + * @n: number of elements. + * @size: element size. + */ +void *vcalloc(size_t n, size_t size) +{ + return __vmalloc_array(n, size, GFP_KERNEL | __GFP_ZERO); +} +EXPORT_SYMBOL(vcalloc); + /* Neutral page->mapping pointer to address_space or anon_vma or other */ void *page_rmapping(struct page *page) { diff -Nru linux-5.10.209/mm/vmscan.c linux-5.10.216/mm/vmscan.c --- linux-5.10.209/mm/vmscan.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/mm/vmscan.c 2024-05-02 14:23:46.000000000 +0000 @@ -2546,7 +2546,7 @@ /* Use reclaim/compaction for costly allocs or under memory pressure */ static bool in_reclaim_compaction(struct scan_control *sc) { - if (IS_ENABLED(CONFIG_COMPACTION) && sc->order && + if (gfp_compaction_allowed(sc->gfp_mask) && sc->order && (sc->order > PAGE_ALLOC_COSTLY_ORDER || sc->priority < DEF_PRIORITY - 2)) return true; @@ -2873,6 +2873,9 @@ unsigned long watermark; enum compact_result suitable; + if (!gfp_compaction_allowed(sc->gfp_mask)) + return false; + suitable = compaction_suitable(zone, sc->order, 0, sc->reclaim_idx); if (suitable == COMPACT_SUCCESS) /* Allocation should succeed already. Don't reclaim. */ diff -Nru linux-5.10.209/net/8021q/vlan_netlink.c linux-5.10.216/net/8021q/vlan_netlink.c --- linux-5.10.209/net/8021q/vlan_netlink.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/8021q/vlan_netlink.c 2024-05-02 14:23:46.000000000 +0000 @@ -118,12 +118,16 @@ } if (data[IFLA_VLAN_INGRESS_QOS]) { nla_for_each_nested(attr, data[IFLA_VLAN_INGRESS_QOS], rem) { + if (nla_type(attr) != IFLA_VLAN_QOS_MAPPING) + continue; m = nla_data(attr); vlan_dev_set_ingress_priority(dev, m->to, m->from); } } if (data[IFLA_VLAN_EGRESS_QOS]) { nla_for_each_nested(attr, data[IFLA_VLAN_EGRESS_QOS], rem) { + if (nla_type(attr) != IFLA_VLAN_QOS_MAPPING) + continue; m = nla_data(attr); err = vlan_dev_set_egress_priority(dev, m->from, m->to); if (err) diff -Nru linux-5.10.209/net/batman-adv/translation-table.c linux-5.10.216/net/batman-adv/translation-table.c --- linux-5.10.209/net/batman-adv/translation-table.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/batman-adv/translation-table.c 2024-05-02 14:23:46.000000000 +0000 @@ -4188,7 +4188,7 @@ spin_lock_bh(&bat_priv->tt.commit_lock); - while (true) { + while (timeout) { table_size = batadv_tt_local_table_transmit_size(bat_priv); if (packet_size_max >= table_size) break; diff -Nru linux-5.10.209/net/bluetooth/hci_core.c linux-5.10.216/net/bluetooth/hci_core.c --- linux-5.10.209/net/bluetooth/hci_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/hci_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -2175,7 +2175,7 @@ else flags = hdev->flags; - strcpy(di.name, hdev->name); + strscpy(di.name, hdev->name, sizeof(di.name)); di.bdaddr = hdev->bdaddr; di.type = (hdev->bus & 0x0f) | ((hdev->dev_type & 0x03) << 4); di.flags = flags; @@ -2318,6 +2318,7 @@ { struct hci_dev *hdev = container_of(work, struct hci_dev, error_reset); + hci_dev_hold(hdev); BT_DBG("%s", hdev->name); if (hdev->hw_error) @@ -2325,10 +2326,10 @@ else bt_dev_err(hdev, "hardware error 0x%2.2x", hdev->hw_error_code); - if (hci_dev_do_close(hdev)) - return; + if (!hci_dev_do_close(hdev)) + hci_dev_do_open(hdev); - hci_dev_do_open(hdev); + hci_dev_put(hdev); } void hci_uuids_clear(struct hci_dev *hdev) diff -Nru linux-5.10.209/net/bluetooth/hci_debugfs.c linux-5.10.216/net/bluetooth/hci_debugfs.c --- linux-5.10.209/net/bluetooth/hci_debugfs.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/hci_debugfs.c 2024-05-02 14:23:46.000000000 +0000 @@ -216,10 +216,12 @@ { struct hci_dev *hdev = data; - if (val == 0 || val > hdev->conn_info_max_age) + hci_dev_lock(hdev); + if (val == 0 || val > hdev->conn_info_max_age) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->conn_info_min_age = val; hci_dev_unlock(hdev); @@ -244,10 +246,12 @@ { struct hci_dev *hdev = data; - if (val == 0 || val < hdev->conn_info_min_age) + hci_dev_lock(hdev); + if (val == 0 || val < hdev->conn_info_min_age) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->conn_info_max_age = val; hci_dev_unlock(hdev); @@ -526,10 +530,12 @@ { struct hci_dev *hdev = data; - if (val == 0 || val % 2 || val > hdev->sniff_max_interval) + hci_dev_lock(hdev); + if (val == 0 || val % 2 || val > hdev->sniff_max_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->sniff_min_interval = val; hci_dev_unlock(hdev); @@ -554,10 +560,12 @@ { struct hci_dev *hdev = data; - if (val == 0 || val % 2 || val < hdev->sniff_min_interval) + hci_dev_lock(hdev); + if (val == 0 || val % 2 || val < hdev->sniff_min_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->sniff_max_interval = val; hci_dev_unlock(hdev); @@ -798,10 +806,12 @@ { struct hci_dev *hdev = data; - if (val < 0x0006 || val > 0x0c80 || val > hdev->le_conn_max_interval) + hci_dev_lock(hdev); + if (val < 0x0006 || val > 0x0c80 || val > hdev->le_conn_max_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->le_conn_min_interval = val; hci_dev_unlock(hdev); @@ -826,10 +836,12 @@ { struct hci_dev *hdev = data; - if (val < 0x0006 || val > 0x0c80 || val < hdev->le_conn_min_interval) + hci_dev_lock(hdev); + if (val < 0x0006 || val > 0x0c80 || val < hdev->le_conn_min_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->le_conn_max_interval = val; hci_dev_unlock(hdev); @@ -938,10 +950,12 @@ { struct hci_dev *hdev = data; - if (val < 0x0020 || val > 0x4000 || val > hdev->le_adv_max_interval) + hci_dev_lock(hdev); + if (val < 0x0020 || val > 0x4000 || val > hdev->le_adv_max_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->le_adv_min_interval = val; hci_dev_unlock(hdev); @@ -966,10 +980,12 @@ { struct hci_dev *hdev = data; - if (val < 0x0020 || val > 0x4000 || val < hdev->le_adv_min_interval) + hci_dev_lock(hdev); + if (val < 0x0020 || val > 0x4000 || val < hdev->le_adv_min_interval) { + hci_dev_unlock(hdev); return -EINVAL; + } - hci_dev_lock(hdev); hdev->le_adv_max_interval = val; hci_dev_unlock(hdev); diff -Nru linux-5.10.209/net/bluetooth/hci_event.c linux-5.10.216/net/bluetooth/hci_event.c --- linux-5.10.209/net/bluetooth/hci_event.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/hci_event.c 2024-05-02 14:23:46.000000000 +0000 @@ -2636,6 +2636,31 @@ if (test_bit(HCI_ENCRYPT, &hdev->flags)) set_bit(HCI_CONN_ENCRYPT, &conn->flags); + /* "Link key request" completed ahead of "connect request" completes */ + if (ev->encr_mode == 1 && !test_bit(HCI_CONN_ENCRYPT, &conn->flags) && + ev->link_type == ACL_LINK) { + struct link_key *key; + struct hci_cp_read_enc_key_size cp; + + key = hci_find_link_key(hdev, &ev->bdaddr); + if (key) { + set_bit(HCI_CONN_ENCRYPT, &conn->flags); + + if (!(hdev->commands[20] & 0x10)) { + conn->enc_key_size = HCI_LINK_KEY_SIZE; + } else { + cp.handle = cpu_to_le16(conn->handle); + if (hci_send_cmd(hdev, HCI_OP_READ_ENC_KEY_SIZE, + sizeof(cp), &cp)) { + bt_dev_err(hdev, "sending read key size failed"); + conn->enc_key_size = HCI_LINK_KEY_SIZE; + } + } + + hci_encrypt_cfm(conn, ev->status); + } + } + /* Get remote features */ if (conn->type == ACL_LINK) { struct hci_cp_read_remote_features cp; @@ -2979,8 +3004,6 @@ BT_DBG("%s", hdev->name); - hci_conn_check_pending(hdev); - hci_dev_lock(hdev); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); @@ -4612,9 +4635,12 @@ hci_dev_lock(hdev); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); - if (!conn || !hci_conn_ssp_enabled(conn)) + if (!conn || !hci_dev_test_flag(hdev, HCI_SSP_ENABLED)) goto unlock; + /* Assume remote supports SSP since it has triggered this event */ + set_bit(HCI_CONN_SSP_ENABLED, &conn->flags); + hci_conn_hold(conn); if (!hci_dev_test_flag(hdev, HCI_MGMT)) @@ -5922,6 +5948,10 @@ return send_conn_param_neg_reply(hdev, handle, HCI_ERROR_UNKNOWN_CONN_ID); + if (max > hcon->le_conn_max_interval) + return send_conn_param_neg_reply(hdev, handle, + HCI_ERROR_INVALID_LL_PARAMS); + if (hci_check_conn_params(min, max, latency, timeout)) return send_conn_param_neg_reply(hdev, handle, HCI_ERROR_INVALID_LL_PARAMS); @@ -6139,10 +6169,10 @@ * keep track of the bdaddr of the connection event that woke us up. */ if (event == HCI_EV_CONN_REQUEST) { - bacpy(&hdev->wake_addr, &conn_complete->bdaddr); + bacpy(&hdev->wake_addr, &conn_request->bdaddr); hdev->wake_addr_type = BDADDR_BREDR; } else if (event == HCI_EV_CONN_COMPLETE) { - bacpy(&hdev->wake_addr, &conn_request->bdaddr); + bacpy(&hdev->wake_addr, &conn_complete->bdaddr); hdev->wake_addr_type = BDADDR_BREDR; } else if (event == HCI_EV_LE_META) { struct hci_ev_le_meta *le_ev = (void *)skb->data; diff -Nru linux-5.10.209/net/bluetooth/hci_request.c linux-5.10.216/net/bluetooth/hci_request.c --- linux-5.10.209/net/bluetooth/hci_request.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/hci_request.c 2024-05-02 14:23:46.000000000 +0000 @@ -107,8 +107,10 @@ if (hdev->req_status == HCI_REQ_PEND) { hdev->req_result = result; hdev->req_status = HCI_REQ_DONE; - if (skb) + if (skb) { + kfree_skb(hdev->req_skb); hdev->req_skb = skb_get(skb); + } wake_up_interruptible(&hdev->req_wait_q); } } diff -Nru linux-5.10.209/net/bluetooth/l2cap_core.c linux-5.10.216/net/bluetooth/l2cap_core.c --- linux-5.10.209/net/bluetooth/l2cap_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/l2cap_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -5609,7 +5609,13 @@ memset(&rsp, 0, sizeof(rsp)); - err = hci_check_conn_params(min, max, latency, to_multiplier); + if (max > hcon->le_conn_max_interval) { + BT_DBG("requested connection interval exceeds current bounds."); + err = -EINVAL; + } else { + err = hci_check_conn_params(min, max, latency, to_multiplier); + } + if (err) rsp.result = cpu_to_le16(L2CAP_CONN_PARAM_REJECTED); else @@ -6522,7 +6528,8 @@ if (len > skb->len || !cmd->ident) { BT_DBG("corrupted command"); l2cap_sig_send_rej(conn, cmd->ident); - break; + skb_pull(skb, len > skb->len ? skb->len : len); + continue; } err = l2cap_bredr_sig_cmd(conn, cmd, len, skb->data); diff -Nru linux-5.10.209/net/bluetooth/l2cap_sock.c linux-5.10.216/net/bluetooth/l2cap_sock.c --- linux-5.10.209/net/bluetooth/l2cap_sock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/l2cap_sock.c 2024-05-02 14:23:46.000000000 +0000 @@ -456,7 +456,8 @@ struct l2cap_chan *chan = l2cap_pi(sk)->chan; struct l2cap_options opts; struct l2cap_conninfo cinfo; - int len, err = 0; + int err = 0; + size_t len; u32 opt; BT_DBG("sk %p", sk); @@ -503,7 +504,7 @@ BT_DBG("mode 0x%2.2x", chan->mode); - len = min_t(unsigned int, len, sizeof(opts)); + len = min(len, sizeof(opts)); if (copy_to_user(optval, (char *) &opts, len)) err = -EFAULT; @@ -553,7 +554,7 @@ cinfo.hci_handle = chan->conn->hcon->handle; memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3); - len = min_t(unsigned int, len, sizeof(cinfo)); + len = min(len, sizeof(cinfo)); if (copy_to_user(optval, (char *) &cinfo, len)) err = -EFAULT; diff -Nru linux-5.10.209/net/bluetooth/rfcomm/core.c linux-5.10.216/net/bluetooth/rfcomm/core.c --- linux-5.10.209/net/bluetooth/rfcomm/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/rfcomm/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1937,7 +1937,7 @@ /* Get data directly from socket receive queue without copying it. */ while ((skb = skb_dequeue(&sk->sk_receive_queue))) { skb_orphan(skb); - if (!skb_linearize(skb)) { + if (!skb_linearize(skb) && sk->sk_state != BT_CLOSED) { s = rfcomm_recv_frame(s, skb); if (!s) break; diff -Nru linux-5.10.209/net/bluetooth/sco.c linux-5.10.216/net/bluetooth/sco.c --- linux-5.10.209/net/bluetooth/sco.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bluetooth/sco.c 2024-05-02 14:23:46.000000000 +0000 @@ -825,7 +825,7 @@ sockptr_t optval, unsigned int optlen) { struct sock *sk = sock->sk; - int len, err = 0; + int err = 0; struct bt_voice voice; u32 opt; @@ -841,10 +841,9 @@ break; } - if (copy_from_sockptr(&opt, optval, sizeof(u32))) { - err = -EFAULT; + err = bt_copy_from_sockptr(&opt, sizeof(opt), optval, optlen); + if (err) break; - } if (opt) set_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags); @@ -861,11 +860,10 @@ voice.setting = sco_pi(sk)->setting; - len = min_t(unsigned int, sizeof(voice), optlen); - if (copy_from_sockptr(&voice, optval, len)) { - err = -EFAULT; + err = bt_copy_from_sockptr(&voice, sizeof(voice), optval, + optlen); + if (err) break; - } /* Explicitly check for these values */ if (voice.setting != BT_VOICE_TRANSPARENT && @@ -878,10 +876,9 @@ break; case BT_PKT_STATUS: - if (copy_from_sockptr(&opt, optval, sizeof(u32))) { - err = -EFAULT; + err = bt_copy_from_sockptr(&opt, sizeof(opt), optval, optlen); + if (err) break; - } if (opt) sco_pi(sk)->cmsg_mask |= SCO_CMSG_PKT_STATUS; @@ -904,7 +901,8 @@ struct sock *sk = sock->sk; struct sco_options opts; struct sco_conninfo cinfo; - int len, err = 0; + int err = 0; + size_t len; BT_DBG("sk %p", sk); @@ -926,7 +924,7 @@ BT_DBG("mtu %d", opts.mtu); - len = min_t(unsigned int, len, sizeof(opts)); + len = min(len, sizeof(opts)); if (copy_to_user(optval, (char *)&opts, len)) err = -EFAULT; @@ -944,7 +942,7 @@ cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle; memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3); - len = min_t(unsigned int, len, sizeof(cinfo)); + len = min(len, sizeof(cinfo)); if (copy_to_user(optval, (char *)&cinfo, len)) err = -EFAULT; diff -Nru linux-5.10.209/net/bridge/netfilter/ebtables.c linux-5.10.216/net/bridge/netfilter/ebtables.c --- linux-5.10.209/net/bridge/netfilter/ebtables.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/bridge/netfilter/ebtables.c 2024-05-02 14:23:46.000000000 +0000 @@ -1070,6 +1070,8 @@ struct ebt_table_info *newinfo; struct ebt_replace tmp; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1309,6 +1311,8 @@ { struct ebt_replace hlp; + if (len < sizeof(hlp)) + return -EINVAL; if (copy_from_sockptr(&hlp, arg, sizeof(hlp))) return -EFAULT; @@ -2238,6 +2242,8 @@ { struct compat_ebt_replace hlp; + if (len < sizeof(hlp)) + return -EINVAL; if (copy_from_sockptr(&hlp, arg, sizeof(hlp))) return -EFAULT; diff -Nru linux-5.10.209/net/can/j1939/j1939-priv.h linux-5.10.216/net/can/j1939/j1939-priv.h --- linux-5.10.209/net/can/j1939/j1939-priv.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/can/j1939/j1939-priv.h 2024-05-02 14:23:46.000000000 +0000 @@ -297,6 +297,7 @@ int ifindex; struct j1939_addr addr; + spinlock_t filters_lock; struct j1939_filter *filters; int nfilters; pgn_t pgn_rx_filter; diff -Nru linux-5.10.209/net/can/j1939/socket.c linux-5.10.216/net/can/j1939/socket.c --- linux-5.10.209/net/can/j1939/socket.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/can/j1939/socket.c 2024-05-02 14:23:46.000000000 +0000 @@ -262,12 +262,17 @@ static bool j1939_sk_match_filter(struct j1939_sock *jsk, const struct j1939_sk_buff_cb *skcb) { - const struct j1939_filter *f = jsk->filters; - int nfilter = jsk->nfilters; + const struct j1939_filter *f; + int nfilter; + + spin_lock_bh(&jsk->filters_lock); + + f = jsk->filters; + nfilter = jsk->nfilters; if (!nfilter) /* receive all when no filters are assigned */ - return true; + goto filter_match_found; for (; nfilter; ++f, --nfilter) { if ((skcb->addr.pgn & f->pgn_mask) != f->pgn) @@ -276,9 +281,15 @@ continue; if ((skcb->addr.src_name & f->name_mask) != f->name) continue; - return true; + goto filter_match_found; } + + spin_unlock_bh(&jsk->filters_lock); return false; + +filter_match_found: + spin_unlock_bh(&jsk->filters_lock); + return true; } static bool j1939_sk_recv_match_one(struct j1939_sock *jsk, @@ -401,6 +412,7 @@ atomic_set(&jsk->skb_pending, 0); spin_lock_init(&jsk->sk_session_queue_lock); INIT_LIST_HEAD(&jsk->sk_session_queue); + spin_lock_init(&jsk->filters_lock); /* j1939_sk_sock_destruct() depends on SOCK_RCU_FREE flag */ sock_set_flag(sk, SOCK_RCU_FREE); @@ -703,9 +715,11 @@ } lock_sock(&jsk->sk); + spin_lock_bh(&jsk->filters_lock); ofilters = jsk->filters; jsk->filters = filters; jsk->nfilters = count; + spin_unlock_bh(&jsk->filters_lock); release_sock(&jsk->sk); kfree(ofilters); return 0; diff -Nru linux-5.10.209/net/core/dev.c linux-5.10.216/net/core/dev.c --- linux-5.10.209/net/core/dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -2324,7 +2324,7 @@ rcu_read_lock(); again: list_for_each_entry_rcu(ptype, ptype_list, list) { - if (ptype->ignore_outgoing) + if (READ_ONCE(ptype->ignore_outgoing)) continue; /* Never send packets back to the socket @@ -8787,7 +8787,7 @@ int dev_get_mac_address(struct sockaddr *sa, struct net *net, char *dev_name) { - size_t size = sizeof(sa->sa_data); + size_t size = sizeof(sa->sa_data_min); struct net_device *dev; int ret = 0; diff -Nru linux-5.10.209/net/core/dev_ioctl.c linux-5.10.216/net/core/dev_ioctl.c --- linux-5.10.209/net/core/dev_ioctl.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/dev_ioctl.c 2024-05-02 14:23:46.000000000 +0000 @@ -245,7 +245,7 @@ if (ifr->ifr_hwaddr.sa_family != dev->type) return -EINVAL; memcpy(dev->broadcast, ifr->ifr_hwaddr.sa_data, - min(sizeof(ifr->ifr_hwaddr.sa_data), + min(sizeof(ifr->ifr_hwaddr.sa_data_min), (size_t)dev->addr_len)); call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); return 0; diff -Nru linux-5.10.209/net/core/filter.c linux-5.10.216/net/core/filter.c --- linux-5.10.209/net/core/filter.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/filter.c 2024-05-02 14:23:46.000000000 +0000 @@ -9903,8 +9903,7 @@ } EXPORT_SYMBOL_GPL(sk_detach_filter); -int sk_get_filter(struct sock *sk, struct sock_filter __user *ubuf, - unsigned int len) +int sk_get_filter(struct sock *sk, sockptr_t optval, unsigned int len) { struct sock_fprog_kern *fprog; struct sk_filter *filter; @@ -9935,7 +9934,7 @@ goto out; ret = -EFAULT; - if (copy_to_user(ubuf, fprog->filter, bpf_classic_proglen(fprog))) + if (copy_to_sockptr(optval, fprog->filter, bpf_classic_proglen(fprog))) goto out; /* Instead of bytes, the API requests to return the number diff -Nru linux-5.10.209/net/core/request_sock.c linux-5.10.216/net/core/request_sock.c --- linux-5.10.209/net/core/request_sock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/request_sock.c 2024-05-02 14:23:46.000000000 +0000 @@ -33,9 +33,6 @@ void reqsk_queue_alloc(struct request_sock_queue *queue) { - spin_lock_init(&queue->rskq_lock); - - spin_lock_init(&queue->fastopenq.lock); queue->fastopenq.rskq_rst_head = NULL; queue->fastopenq.rskq_rst_tail = NULL; queue->fastopenq.qlen = 0; diff -Nru linux-5.10.209/net/core/rtnetlink.c linux-5.10.216/net/core/rtnetlink.c --- linux-5.10.209/net/core/rtnetlink.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/rtnetlink.c 2024-05-02 14:23:46.000000000 +0000 @@ -4903,10 +4903,9 @@ struct net *net = sock_net(skb->sk); struct ifinfomsg *ifm; struct net_device *dev; - struct nlattr *br_spec, *attr = NULL; + struct nlattr *br_spec, *attr, *br_flags_attr = NULL; int rem, err = -EOPNOTSUPP; u16 flags = 0; - bool have_flags = false; if (nlmsg_len(nlh) < sizeof(*ifm)) return -EINVAL; @@ -4924,11 +4923,11 @@ br_spec = nlmsg_find_attr(nlh, sizeof(struct ifinfomsg), IFLA_AF_SPEC); if (br_spec) { nla_for_each_nested(attr, br_spec, rem) { - if (nla_type(attr) == IFLA_BRIDGE_FLAGS && !have_flags) { + if (nla_type(attr) == IFLA_BRIDGE_FLAGS && !br_flags_attr) { if (nla_len(attr) < sizeof(flags)) return -EINVAL; - have_flags = true; + br_flags_attr = attr; flags = nla_get_u16(attr); } @@ -4972,8 +4971,8 @@ } } - if (have_flags) - memcpy(nla_data(attr), &flags, sizeof(flags)); + if (br_flags_attr) + memcpy(nla_data(br_flags_attr), &flags, sizeof(flags)); out: return err; } diff -Nru linux-5.10.209/net/core/scm.c linux-5.10.216/net/core/scm.c --- linux-5.10.209/net/core/scm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/scm.c 2024-05-02 14:23:46.000000000 +0000 @@ -105,7 +105,7 @@ if (fd < 0 || !(file = fget_raw(fd))) return -EBADF; /* don't allow io_uring files */ - if (io_uring_get_socket(file)) { + if (io_is_uring_fops(file)) { fput(file); return -EINVAL; } diff -Nru linux-5.10.209/net/core/skbuff.c linux-5.10.216/net/core/skbuff.c --- linux-5.10.209/net/core/skbuff.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/skbuff.c 2024-05-02 14:23:46.000000000 +0000 @@ -3877,8 +3877,9 @@ /* GSO partial only requires that we trim off any excess that * doesn't fit into an MSS sized block, so take care of that * now. + * Cap len to not accidentally hit GSO_BY_FRAGS. */ - partial_segs = len / mss; + partial_segs = min(len, GSO_BY_FRAGS - 1U) / mss; if (partial_segs > 1) mss *= partial_segs; else diff -Nru linux-5.10.209/net/core/sock.c linux-5.10.216/net/core/sock.c --- linux-5.10.209/net/core/sock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/sock.c 2024-05-02 14:23:46.000000000 +0000 @@ -644,8 +644,8 @@ return ret; } -static int sock_getbindtodevice(struct sock *sk, char __user *optval, - int __user *optlen, int len) +static int sock_getbindtodevice(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { int ret = -ENOPROTOOPT; #ifdef CONFIG_NETDEVICES @@ -668,12 +668,12 @@ len = strlen(devname) + 1; ret = -EFAULT; - if (copy_to_user(optval, devname, len)) + if (copy_to_sockptr(optval, devname, len)) goto out; zero: ret = -EFAULT; - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) goto out; ret = 0; @@ -1281,22 +1281,25 @@ } } -static int groups_to_user(gid_t __user *dst, const struct group_info *src) +static int groups_to_user(sockptr_t dst, const struct group_info *src) { struct user_namespace *user_ns = current_user_ns(); int i; - for (i = 0; i < src->ngroups; i++) - if (put_user(from_kgid_munged(user_ns, src->gid[i]), dst + i)) + for (i = 0; i < src->ngroups; i++) { + gid_t gid = from_kgid_munged(user_ns, src->gid[i]); + + if (copy_to_sockptr_offset(dst, i * sizeof(gid), &gid, sizeof(gid))) return -EFAULT; + } return 0; } -int sock_getsockopt(struct socket *sock, int level, int optname, - char __user *optval, int __user *optlen) +static int sk_getsockopt(struct sock *sk, int level, int optname, + sockptr_t optval, sockptr_t optlen) { - struct sock *sk = sock->sk; + struct socket *sock = sk->sk_socket; union { int val; @@ -1312,7 +1315,7 @@ int lv = sizeof(int); int len; - if (get_user(len, optlen)) + if (copy_from_sockptr(&len, optlen, sizeof(int))) return -EFAULT; if (len < 0) return -EINVAL; @@ -1445,7 +1448,7 @@ cred_to_ucred(sk->sk_peer_pid, sk->sk_peer_cred, &peercred); spin_unlock(&sk->sk_peer_lock); - if (copy_to_user(optval, &peercred, len)) + if (copy_to_sockptr(optval, &peercred, len)) return -EFAULT; goto lenout; } @@ -1463,11 +1466,11 @@ if (len < n * sizeof(gid_t)) { len = n * sizeof(gid_t); put_cred(cred); - return put_user(len, optlen) ? -EFAULT : -ERANGE; + return copy_to_sockptr(optlen, &len, sizeof(int)) ? -EFAULT : -ERANGE; } len = n * sizeof(gid_t); - ret = groups_to_user((gid_t __user *)optval, cred->group_info); + ret = groups_to_user(optval, cred->group_info); put_cred(cred); if (ret) return ret; @@ -1483,7 +1486,7 @@ return -ENOTCONN; if (lv < len) return -EINVAL; - if (copy_to_user(optval, address, len)) + if (copy_to_sockptr(optval, address, len)) return -EFAULT; goto lenout; } @@ -1500,7 +1503,8 @@ break; case SO_PEERSEC: - return security_socket_getpeersec_stream(sock, optval, optlen, len); + return security_socket_getpeersec_stream(sock, + optval, optlen, len); case SO_MARK: v.val = sk->sk_mark; @@ -1528,7 +1532,7 @@ return sock_getbindtodevice(sk, optval, optlen, len); case SO_GET_FILTER: - len = sk_get_filter(sk, (struct sock_filter __user *)optval, len); + len = sk_get_filter(sk, optval, len); if (len < 0) return len; @@ -1575,7 +1579,7 @@ sk_get_meminfo(sk, meminfo); len = min_t(unsigned int, len, sizeof(meminfo)); - if (copy_to_user(optval, &meminfo, len)) + if (copy_to_sockptr(optval, &meminfo, len)) return -EFAULT; goto lenout; @@ -1625,14 +1629,22 @@ if (len > lv) len = lv; - if (copy_to_user(optval, &v, len)) + if (copy_to_sockptr(optval, &v, len)) return -EFAULT; lenout: - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; return 0; } +int sock_getsockopt(struct socket *sock, int level, int optname, + char __user *optval, int __user *optlen) +{ + return sk_getsockopt(sock->sk, level, optname, + USER_SOCKPTR(optval), + USER_SOCKPTR(optlen)); +} + /* * Initialize an sk_lock. * diff -Nru linux-5.10.209/net/core/sock_diag.c linux-5.10.216/net/core/sock_diag.c --- linux-5.10.209/net/core/sock_diag.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/sock_diag.c 2024-05-02 14:23:46.000000000 +0000 @@ -189,7 +189,7 @@ if (sock_diag_handlers[hndl->family]) err = -EBUSY; else - sock_diag_handlers[hndl->family] = hndl; + WRITE_ONCE(sock_diag_handlers[hndl->family], hndl); mutex_unlock(&sock_diag_table_mutex); return err; @@ -205,7 +205,7 @@ mutex_lock(&sock_diag_table_mutex); BUG_ON(sock_diag_handlers[family] != hnld); - sock_diag_handlers[family] = NULL; + WRITE_ONCE(sock_diag_handlers[family], NULL); mutex_unlock(&sock_diag_table_mutex); } EXPORT_SYMBOL_GPL(sock_diag_unregister); @@ -223,7 +223,7 @@ return -EINVAL; req->sdiag_family = array_index_nospec(req->sdiag_family, AF_MAX); - if (sock_diag_handlers[req->sdiag_family] == NULL) + if (READ_ONCE(sock_diag_handlers[req->sdiag_family]) == NULL) sock_load_diag_module(req->sdiag_family, 0); mutex_lock(&sock_diag_table_mutex); @@ -282,12 +282,12 @@ switch (group) { case SKNLGRP_INET_TCP_DESTROY: case SKNLGRP_INET_UDP_DESTROY: - if (!sock_diag_handlers[AF_INET]) + if (!READ_ONCE(sock_diag_handlers[AF_INET])) sock_load_diag_module(AF_INET, 0); break; case SKNLGRP_INET6_TCP_DESTROY: case SKNLGRP_INET6_UDP_DESTROY: - if (!sock_diag_handlers[AF_INET6]) + if (!READ_ONCE(sock_diag_handlers[AF_INET6])) sock_load_diag_module(AF_INET6, 0); break; } diff -Nru linux-5.10.209/net/core/sock_map.c linux-5.10.216/net/core/sock_map.c --- linux-5.10.209/net/core/sock_map.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/core/sock_map.c 2024-05-02 14:23:46.000000000 +0000 @@ -422,6 +422,9 @@ struct sock *sk; int err = 0; + if (irqs_disabled()) + return -EOPNOTSUPP; /* locks here are hardirq-unsafe */ + raw_spin_lock_bh(&stab->lock); sk = *psk; if (!sk_test || sk_test == sk) @@ -955,6 +958,9 @@ struct bpf_shtab_elem *elem; int ret = -ENOENT; + if (irqs_disabled()) + return -EOPNOTSUPP; /* locks here are hardirq-unsafe */ + hash = sock_hash_bucket_hash(key, key_size); bucket = sock_hash_select_bucket(htab, hash); diff -Nru linux-5.10.209/net/ethernet/eth.c linux-5.10.216/net/ethernet/eth.c --- linux-5.10.209/net/ethernet/eth.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ethernet/eth.c 2024-05-02 14:23:46.000000000 +0000 @@ -164,17 +164,7 @@ eth = (struct ethhdr *)skb->data; skb_pull_inline(skb, ETH_HLEN); - if (unlikely(!ether_addr_equal_64bits(eth->h_dest, - dev->dev_addr))) { - if (unlikely(is_multicast_ether_addr_64bits(eth->h_dest))) { - if (ether_addr_equal_64bits(eth->h_dest, dev->broadcast)) - skb->pkt_type = PACKET_BROADCAST; - else - skb->pkt_type = PACKET_MULTICAST; - } else { - skb->pkt_type = PACKET_OTHERHOST; - } - } + eth_skb_pkt_type(skb, dev); /* * Some variants of DSA tagging don't have an ethertype field diff -Nru linux-5.10.209/net/hsr/hsr_device.c linux-5.10.216/net/hsr/hsr_device.c --- linux-5.10.209/net/hsr/hsr_device.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/hsr/hsr_device.c 2024-05-02 14:23:46.000000000 +0000 @@ -291,7 +291,7 @@ skb = hsr_init_skb(master); if (!skb) { - WARN_ONCE(1, "HSR: Could not send supervision frame\n"); + netdev_warn_once(master->dev, "HSR: Could not send supervision frame\n"); return; } @@ -338,7 +338,7 @@ skb = hsr_init_skb(master); if (!skb) { - WARN_ONCE(1, "PRP: Could not send supervision frame\n"); + netdev_warn_once(master->dev, "PRP: Could not send supervision frame\n"); return; } diff -Nru linux-5.10.209/net/hsr/hsr_framereg.c linux-5.10.216/net/hsr/hsr_framereg.c --- linux-5.10.209/net/hsr/hsr_framereg.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/hsr/hsr_framereg.c 2024-05-02 14:23:46.000000000 +0000 @@ -237,6 +237,10 @@ */ if (ethhdr->h_proto == htons(ETH_P_PRP) || ethhdr->h_proto == htons(ETH_P_HSR)) { + /* Check if skb contains hsr_ethhdr */ + if (skb->mac_len < sizeof(struct hsr_ethhdr)) + return NULL; + /* Use the existing sequence_nr from the tag as starting point * for filtering duplicate frames. */ @@ -327,9 +331,12 @@ node_real->addr_B_port = port_rcv->type; spin_lock_bh(&hsr->list_lock); - list_del_rcu(&node_curr->mac_list); + if (!node_curr->removed) { + list_del_rcu(&node_curr->mac_list); + node_curr->removed = true; + kfree_rcu(node_curr, rcu_head); + } spin_unlock_bh(&hsr->list_lock); - kfree_rcu(node_curr, rcu_head); done: /* PRP uses v0 header */ @@ -506,9 +513,12 @@ if (time_is_before_jiffies(timestamp + msecs_to_jiffies(HSR_NODE_FORGET_TIME))) { hsr_nl_nodedown(hsr, node->macaddress_A); - list_del_rcu(&node->mac_list); - /* Note that we need to free this entry later: */ - kfree_rcu(node, rcu_head); + if (!node->removed) { + list_del_rcu(&node->mac_list); + node->removed = true; + /* Note that we need to free this entry later: */ + kfree_rcu(node, rcu_head); + } } } spin_unlock_bh(&hsr->list_lock); diff -Nru linux-5.10.209/net/hsr/hsr_framereg.h linux-5.10.216/net/hsr/hsr_framereg.h --- linux-5.10.209/net/hsr/hsr_framereg.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/hsr/hsr_framereg.h 2024-05-02 14:23:46.000000000 +0000 @@ -82,6 +82,7 @@ bool san_a; bool san_b; u16 seq_out[HSR_PT_PORTS]; + bool removed; struct rcu_head rcu_head; }; diff -Nru linux-5.10.209/net/hsr/hsr_main.c linux-5.10.216/net/hsr/hsr_main.c --- linux-5.10.209/net/hsr/hsr_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/hsr/hsr_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -137,14 +137,21 @@ static int __init hsr_init(void) { - int res; + int err; BUILD_BUG_ON(sizeof(struct hsr_tag) != HSR_HLEN); - register_netdevice_notifier(&hsr_nb); - res = hsr_netlink_init(); + err = register_netdevice_notifier(&hsr_nb); + if (err) + return err; - return res; + err = hsr_netlink_init(); + if (err) { + unregister_netdevice_notifier(&hsr_nb); + return err; + } + + return 0; } static void __exit hsr_exit(void) diff -Nru linux-5.10.209/net/ipv4/af_inet.c linux-5.10.216/net/ipv4/af_inet.c --- linux-5.10.209/net/ipv4/af_inet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/af_inet.c 2024-05-02 14:23:46.000000000 +0000 @@ -327,6 +327,9 @@ if (INET_PROTOSW_REUSE & answer_flags) sk->sk_reuse = SK_CAN_REUSE; + if (INET_PROTOSW_ICSK & answer_flags) + inet_init_csk_locks(sk); + inet = inet_sk(sk); inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) != 0; @@ -1597,10 +1600,12 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len) { - if (sk->sk_family == AF_INET) + unsigned int family = READ_ONCE(sk->sk_family); + + if (family == AF_INET) return ip_recv_error(sk, msg, len, addr_len); #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family == AF_INET6) + if (family == AF_INET6) return pingv6_ops.ipv6_recv_error(sk, msg, len, addr_len); #endif return -EINVAL; diff -Nru linux-5.10.209/net/ipv4/arp.c linux-5.10.216/net/ipv4/arp.c --- linux-5.10.209/net/ipv4/arp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/arp.c 2024-05-02 14:23:46.000000000 +0000 @@ -1104,7 +1104,8 @@ if (neigh) { if (!(neigh->nud_state & NUD_NOARP)) { read_lock_bh(&neigh->lock); - memcpy(r->arp_ha.sa_data, neigh->ha, dev->addr_len); + memcpy(r->arp_ha.sa_data, neigh->ha, + min(dev->addr_len, (unsigned char)sizeof(r->arp_ha.sa_data_min))); r->arp_flags = arp_state_to_flags(neigh); read_unlock_bh(&neigh->lock); r->arp_ha.sa_family = dev->type; diff -Nru linux-5.10.209/net/ipv4/devinet.c linux-5.10.216/net/ipv4/devinet.c --- linux-5.10.209/net/ipv4/devinet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/devinet.c 2024-05-02 14:23:46.000000000 +0000 @@ -1798,6 +1798,21 @@ return err; } +/* Combine dev_addr_genid and dev_base_seq to detect changes. + */ +static u32 inet_base_seq(const struct net *net) +{ + u32 res = atomic_read(&net->ipv4.dev_addr_genid) + + net->dev_base_seq; + + /* Must not return 0 (see nl_dump_check_consistent()). + * Chose a value far away from 0. + */ + if (!res) + res = 0x80000000; + return res; +} + static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) { const struct nlmsghdr *nlh = cb->nlh; @@ -1849,8 +1864,7 @@ idx = 0; head = &tgt_net->dev_index_head[h]; rcu_read_lock(); - cb->seq = atomic_read(&tgt_net->ipv4.dev_addr_genid) ^ - tgt_net->dev_base_seq; + cb->seq = inet_base_seq(tgt_net); hlist_for_each_entry_rcu(dev, head, index_hlist) { if (idx < s_idx) goto cont; @@ -2249,8 +2263,7 @@ idx = 0; head = &net->dev_index_head[h]; rcu_read_lock(); - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^ - net->dev_base_seq; + cb->seq = inet_base_seq(net); hlist_for_each_entry_rcu(dev, head, index_hlist) { if (idx < s_idx) goto cont; diff -Nru linux-5.10.209/net/ipv4/igmp.c linux-5.10.216/net/ipv4/igmp.c --- linux-5.10.209/net/ipv4/igmp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/igmp.c 2024-05-02 14:23:46.000000000 +0000 @@ -2493,8 +2493,8 @@ goto done; } newpsl->sl_max = newpsl->sl_count = msf->imsf_numsrc; - memcpy(newpsl->sl_addr, msf->imsf_slist, - msf->imsf_numsrc * sizeof(msf->imsf_slist[0])); + memcpy(newpsl->sl_addr, msf->imsf_slist_flex, + flex_array_size(msf, imsf_slist_flex, msf->imsf_numsrc)); err = ip_mc_add_src(in_dev, &msf->imsf_multiaddr, msf->imsf_fmode, newpsl->sl_count, newpsl->sl_addr, 0); if (err) { @@ -2526,11 +2526,10 @@ err = ip_mc_leave_group(sk, &imr); return err; } - int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf, - struct ip_msfilter __user *optval, int __user *optlen) + sockptr_t optval, sockptr_t optlen) { - int err, len, count, copycount; + int err, len, count, copycount, msf_size; struct ip_mreqn imr; __be32 addr = msf->imsf_multiaddr; struct ip_mc_socklist *pmc; @@ -2571,14 +2570,17 @@ count = psl->sl_count; } copycount = count < msf->imsf_numsrc ? count : msf->imsf_numsrc; - len = copycount * sizeof(psl->sl_addr[0]); + len = flex_array_size(psl, sl_addr, copycount); msf->imsf_numsrc = count; - if (put_user(IP_MSFILTER_SIZE(copycount), optlen) || - copy_to_user(optval, msf, IP_MSFILTER_SIZE(0))) { + msf_size = IP_MSFILTER_SIZE(copycount); + if (copy_to_sockptr(optlen, &msf_size, sizeof(int)) || + copy_to_sockptr(optval, msf, IP_MSFILTER_SIZE(0))) { return -EFAULT; } if (len && - copy_to_user(&optval->imsf_slist[0], psl->sl_addr, len)) + copy_to_sockptr_offset(optval, + offsetof(struct ip_msfilter, imsf_slist_flex), + psl->sl_addr, len)) return -EFAULT; return 0; done: @@ -2586,7 +2588,7 @@ } int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf, - struct sockaddr_storage __user *p) + sockptr_t optval, size_t ss_offset) { int i, count, copycount; struct sockaddr_in *psin; @@ -2616,15 +2618,17 @@ count = psl ? psl->sl_count : 0; copycount = count < gsf->gf_numsrc ? count : gsf->gf_numsrc; gsf->gf_numsrc = count; - for (i = 0; i < copycount; i++, p++) { + for (i = 0; i < copycount; i++) { struct sockaddr_storage ss; psin = (struct sockaddr_in *)&ss; memset(&ss, 0, sizeof(ss)); psin->sin_family = AF_INET; psin->sin_addr.s_addr = psl->sl_addr[i]; - if (copy_to_user(p, &ss, sizeof(ss))) + if (copy_to_sockptr_offset(optval, ss_offset, + &ss, sizeof(ss))) return -EFAULT; + ss_offset += sizeof(ss); } return 0; } diff -Nru linux-5.10.209/net/ipv4/inet_connection_sock.c linux-5.10.216/net/ipv4/inet_connection_sock.c --- linux-5.10.209/net/ipv4/inet_connection_sock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/inet_connection_sock.c 2024-05-02 14:23:46.000000000 +0000 @@ -536,6 +536,10 @@ } if (req) reqsk_put(req); + + if (newsk) + inet_init_csk_locks(newsk); + return newsk; out_err: newsk = NULL; @@ -576,6 +580,20 @@ } EXPORT_SYMBOL(inet_csk_clear_xmit_timers); +void inet_csk_clear_xmit_timers_sync(struct sock *sk) +{ + struct inet_connection_sock *icsk = inet_csk(sk); + + /* ongoing timer handlers need to acquire socket lock. */ + sock_not_owned_by_me(sk); + + icsk->icsk_pending = icsk->icsk_ack.pending = 0; + + sk_stop_timer_sync(sk, &icsk->icsk_retransmit_timer); + sk_stop_timer_sync(sk, &icsk->icsk_delack_timer); + sk_stop_timer_sync(sk, &sk->sk_timer); +} + void inet_csk_delete_keepalive_timer(struct sock *sk) { sk_stop_timer(sk, &sk->sk_timer); diff -Nru linux-5.10.209/net/ipv4/inet_diag.c linux-5.10.216/net/ipv4/inet_diag.c --- linux-5.10.209/net/ipv4/inet_diag.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/inet_diag.c 2024-05-02 14:23:46.000000000 +0000 @@ -57,7 +57,7 @@ return ERR_PTR(-ENOENT); } - if (!inet_diag_table[proto]) + if (!READ_ONCE(inet_diag_table[proto])) sock_load_diag_module(AF_INET, proto); mutex_lock(&inet_diag_table_mutex); @@ -1413,7 +1413,7 @@ mutex_lock(&inet_diag_table_mutex); err = -EEXIST; if (!inet_diag_table[type]) { - inet_diag_table[type] = h; + WRITE_ONCE(inet_diag_table[type], h); err = 0; } mutex_unlock(&inet_diag_table_mutex); @@ -1430,7 +1430,7 @@ return; mutex_lock(&inet_diag_table_mutex); - inet_diag_table[type] = NULL; + WRITE_ONCE(inet_diag_table[type], NULL); mutex_unlock(&inet_diag_table_mutex); } EXPORT_SYMBOL_GPL(inet_diag_unregister); diff -Nru linux-5.10.209/net/ipv4/inet_timewait_sock.c linux-5.10.216/net/ipv4/inet_timewait_sock.c --- linux-5.10.209/net/ipv4/inet_timewait_sock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/inet_timewait_sock.c 2024-05-02 14:23:46.000000000 +0000 @@ -254,12 +254,12 @@ } EXPORT_SYMBOL_GPL(__inet_twsk_schedule); +/* Remove all non full sockets (TIME_WAIT and NEW_SYN_RECV) for dead netns */ void inet_twsk_purge(struct inet_hashinfo *hashinfo, int family) { - struct inet_timewait_sock *tw; - struct sock *sk; struct hlist_nulls_node *node; unsigned int slot; + struct sock *sk; for (slot = 0; slot <= hashinfo->ehash_mask; slot++) { struct inet_ehash_bucket *head = &hashinfo->ehash[slot]; @@ -268,25 +268,35 @@ rcu_read_lock(); restart: sk_nulls_for_each_rcu(sk, node, &head->chain) { - if (sk->sk_state != TCP_TIME_WAIT) + int state = inet_sk_state_load(sk); + + if ((1 << state) & ~(TCPF_TIME_WAIT | + TCPF_NEW_SYN_RECV)) continue; - tw = inet_twsk(sk); - if ((tw->tw_family != family) || - refcount_read(&twsk_net(tw)->count)) + + if (sk->sk_family != family || + refcount_read(&sock_net(sk)->count)) continue; - if (unlikely(!refcount_inc_not_zero(&tw->tw_refcnt))) + if (unlikely(!refcount_inc_not_zero(&sk->sk_refcnt))) continue; - if (unlikely((tw->tw_family != family) || - refcount_read(&twsk_net(tw)->count))) { - inet_twsk_put(tw); + if (unlikely(sk->sk_family != family || + refcount_read(&sock_net(sk)->count))) { + sock_gen_put(sk); goto restart; } rcu_read_unlock(); local_bh_disable(); - inet_twsk_deschedule_put(tw); + if (state == TCP_TIME_WAIT) { + inet_twsk_deschedule_put(inet_twsk(sk)); + } else { + struct request_sock *req = inet_reqsk(sk); + + inet_csk_reqsk_queue_drop_and_put(req->rsk_listener, + req); + } local_bh_enable(); goto restart_rcu; } diff -Nru linux-5.10.209/net/ipv4/ip_gre.c linux-5.10.216/net/ipv4/ip_gre.c --- linux-5.10.209/net/ipv4/ip_gre.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ip_gre.c 2024-05-02 14:23:46.000000000 +0000 @@ -278,8 +278,13 @@ tpi->flags | TUNNEL_NO_KEY, iph->saddr, iph->daddr, 0); } else { + if (unlikely(!pskb_may_pull(skb, + gre_hdr_len + sizeof(*ershdr)))) + return PACKET_REJECT; + ershdr = (struct erspan_base_hdr *)(skb->data + gre_hdr_len); ver = ershdr->ver; + iph = ip_hdr(skb); tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags | TUNNEL_KEY, iph->saddr, iph->daddr, tpi->key); diff -Nru linux-5.10.209/net/ipv4/ip_output.c linux-5.10.216/net/ipv4/ip_output.c --- linux-5.10.209/net/ipv4/ip_output.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ip_output.c 2024-05-02 14:23:46.000000000 +0000 @@ -1260,6 +1260,12 @@ if (unlikely(!rt)) return -EFAULT; + cork->fragsize = ip_sk_use_pmtu(sk) ? + dst_mtu(&rt->dst) : READ_ONCE(rt->dst.dev->mtu); + + if (!inetdev_valid_mtu(cork->fragsize)) + return -ENETUNREACH; + /* * setup for corking. */ @@ -1276,12 +1282,6 @@ cork->addr = ipc->addr; } - cork->fragsize = ip_sk_use_pmtu(sk) ? - dst_mtu(&rt->dst) : READ_ONCE(rt->dst.dev->mtu); - - if (!inetdev_valid_mtu(cork->fragsize)) - return -ENETUNREACH; - cork->gso_size = ipc->gso_size; cork->dst = &rt->dst; diff -Nru linux-5.10.209/net/ipv4/ip_sockglue.c linux-5.10.216/net/ipv4/ip_sockglue.c --- linux-5.10.209/net/ipv4/ip_sockglue.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ip_sockglue.c 2024-05-02 14:23:46.000000000 +0000 @@ -670,12 +670,11 @@ struct sockaddr_storage *group, struct sockaddr_storage *list) { - int msize = IP_MSFILTER_SIZE(numsrc); struct ip_msfilter *msf; struct sockaddr_in *psin; int err, i; - msf = kmalloc(msize, GFP_KERNEL); + msf = kmalloc(IP_MSFILTER_SIZE(numsrc), GFP_KERNEL); if (!msf) return -ENOBUFS; @@ -691,7 +690,7 @@ if (psin->sin_family != AF_INET) goto Eaddrnotavail; - msf->imsf_slist[i] = psin->sin_addr.s_addr; + msf->imsf_slist_flex[i] = psin->sin_addr.s_addr; } err = ip_mc_msfilter(sk, msf, ifindex); kfree(msf); @@ -798,7 +797,8 @@ goto out_free_gsf; err = set_mcast_msfilter(sk, gsf->gf_interface, gsf->gf_numsrc, - gsf->gf_fmode, &gsf->gf_group, gsf->gf_slist); + gsf->gf_fmode, &gsf->gf_group, + gsf->gf_slist_flex); out_free_gsf: kfree(gsf); return err; @@ -807,7 +807,7 @@ static int compat_ip_set_mcast_msfilter(struct sock *sk, sockptr_t optval, int optlen) { - const int size0 = offsetof(struct compat_group_filter, gf_slist); + const int size0 = offsetof(struct compat_group_filter, gf_slist_flex); struct compat_group_filter *gf32; unsigned int n; void *p; @@ -821,7 +821,7 @@ p = kmalloc(optlen + 4, GFP_KERNEL); if (!p) return -ENOMEM; - gf32 = p + 4; /* we want ->gf_group and ->gf_slist aligned */ + gf32 = p + 4; /* we want ->gf_group and ->gf_slist_flex aligned */ err = -EFAULT; if (copy_from_sockptr(gf32, optval, optlen)) @@ -834,7 +834,7 @@ goto out_free_gsf; err = -EINVAL; - if (offsetof(struct compat_group_filter, gf_slist[n]) > optlen) + if (offsetof(struct compat_group_filter, gf_slist_flex[n]) > optlen) goto out_free_gsf; /* numsrc >= (4G-140)/128 overflow in 32 bits */ @@ -842,7 +842,7 @@ if (n > READ_ONCE(sock_net(sk)->ipv4.sysctl_igmp_max_msf)) goto out_free_gsf; err = set_mcast_msfilter(sk, gf32->gf_interface, n, gf32->gf_fmode, - &gf32->gf_group, gf32->gf_slist); + &gf32->gf_group, gf32->gf_slist_flex); out_free_gsf: kfree(p); return err; @@ -1460,37 +1460,37 @@ return false; } -static int ip_get_mcast_msfilter(struct sock *sk, void __user *optval, - int __user *optlen, int len) +static int ip_get_mcast_msfilter(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { - const int size0 = offsetof(struct group_filter, gf_slist); - struct group_filter __user *p = optval; + const int size0 = offsetof(struct group_filter, gf_slist_flex); struct group_filter gsf; - int num; + int num, gsf_size; int err; if (len < size0) return -EINVAL; - if (copy_from_user(&gsf, p, size0)) + if (copy_from_sockptr(&gsf, optval, size0)) return -EFAULT; num = gsf.gf_numsrc; - err = ip_mc_gsfget(sk, &gsf, p->gf_slist); + err = ip_mc_gsfget(sk, &gsf, optval, + offsetof(struct group_filter, gf_slist_flex)); if (err) return err; if (gsf.gf_numsrc < num) num = gsf.gf_numsrc; - if (put_user(GROUP_FILTER_SIZE(num), optlen) || - copy_to_user(p, &gsf, size0)) + gsf_size = GROUP_FILTER_SIZE(num); + if (copy_to_sockptr(optlen, &gsf_size, sizeof(int)) || + copy_to_sockptr(optval, &gsf, size0)) return -EFAULT; return 0; } -static int compat_ip_get_mcast_msfilter(struct sock *sk, void __user *optval, - int __user *optlen, int len) +static int compat_ip_get_mcast_msfilter(struct sock *sk, sockptr_t optval, + sockptr_t optlen, int len) { - const int size0 = offsetof(struct compat_group_filter, gf_slist); - struct compat_group_filter __user *p = optval; + const int size0 = offsetof(struct compat_group_filter, gf_slist_flex); struct compat_group_filter gf32; struct group_filter gf; int num; @@ -1498,7 +1498,7 @@ if (len < size0) return -EINVAL; - if (copy_from_user(&gf32, p, size0)) + if (copy_from_sockptr(&gf32, optval, size0)) return -EFAULT; gf.gf_interface = gf32.gf_interface; @@ -1506,21 +1506,24 @@ num = gf.gf_numsrc = gf32.gf_numsrc; gf.gf_group = gf32.gf_group; - err = ip_mc_gsfget(sk, &gf, p->gf_slist); + err = ip_mc_gsfget(sk, &gf, optval, + offsetof(struct compat_group_filter, gf_slist_flex)); if (err) return err; if (gf.gf_numsrc < num) num = gf.gf_numsrc; len = GROUP_FILTER_SIZE(num) - (sizeof(gf) - sizeof(gf32)); - if (put_user(len, optlen) || - put_user(gf.gf_fmode, &p->gf_fmode) || - put_user(gf.gf_numsrc, &p->gf_numsrc)) + if (copy_to_sockptr(optlen, &len, sizeof(int)) || + copy_to_sockptr_offset(optval, offsetof(struct compat_group_filter, gf_fmode), + &gf.gf_fmode, sizeof(gf.gf_fmode)) || + copy_to_sockptr_offset(optval, offsetof(struct compat_group_filter, gf_numsrc), + &gf.gf_numsrc, sizeof(gf.gf_numsrc))) return -EFAULT; return 0; } static int do_ip_getsockopt(struct sock *sk, int level, int optname, - char __user *optval, int __user *optlen) + sockptr_t optval, sockptr_t optlen) { struct inet_sock *inet = inet_sk(sk); bool needs_rtnl = getsockopt_needs_rtnl(optname); @@ -1533,7 +1536,7 @@ if (ip_mroute_opt(optname)) return ip_mroute_getsockopt(sk, optname, optval, optlen); - if (get_user(len, optlen)) + if (copy_from_sockptr(&len, optlen, sizeof(int))) return -EFAULT; if (len < 0) return -EINVAL; @@ -1558,15 +1561,17 @@ inet_opt->opt.optlen); release_sock(sk); - if (opt->optlen == 0) - return put_user(0, optlen); + if (opt->optlen == 0) { + len = 0; + return copy_to_sockptr(optlen, &len, sizeof(int)); + } ip_options_undo(opt); len = min_t(unsigned int, len, opt->optlen); - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, opt->__data, len)) + if (copy_to_sockptr(optval, opt->__data, len)) return -EFAULT; return 0; } @@ -1657,9 +1662,9 @@ addr.s_addr = inet->mc_addr; release_sock(sk); - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &addr, len)) + if (copy_to_sockptr(optval, &addr, len)) return -EFAULT; return 0; } @@ -1671,12 +1676,11 @@ err = -EINVAL; goto out; } - if (copy_from_user(&msf, optval, IP_MSFILTER_SIZE(0))) { + if (copy_from_sockptr(&msf, optval, IP_MSFILTER_SIZE(0))) { err = -EFAULT; goto out; } - err = ip_mc_msfget(sk, &msf, - (struct ip_msfilter __user *)optval, optlen); + err = ip_mc_msfget(sk, &msf, optval, optlen); goto out; } case MCAST_MSFILTER: @@ -1698,8 +1702,13 @@ if (sk->sk_type != SOCK_STREAM) return -ENOPROTOOPT; - msg.msg_control_is_user = true; - msg.msg_control_user = optval; + if (optval.is_kernel) { + msg.msg_control_is_user = false; + msg.msg_control = optval.kernel; + } else { + msg.msg_control_is_user = true; + msg.msg_control_user = optval.user; + } msg.msg_controllen = len; msg.msg_flags = in_compat_syscall() ? MSG_CMSG_COMPAT : 0; @@ -1720,7 +1729,7 @@ put_cmsg(&msg, SOL_IP, IP_TOS, sizeof(tos), &tos); } len -= msg.msg_controllen; - return put_user(len, optlen); + return copy_to_sockptr(optlen, &len, sizeof(int)); } case IP_FREEBIND: val = inet->freebind; @@ -1743,15 +1752,15 @@ if (len < sizeof(int) && len > 0 && val >= 0 && val <= 255) { unsigned char ucval = (unsigned char)val; len = 1; - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &ucval, 1)) + if (copy_to_sockptr(optval, &ucval, 1)) return -EFAULT; } else { len = min_t(unsigned int, sizeof(int), len); - if (put_user(len, optlen)) + if (copy_to_sockptr(optlen, &len, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &val, len)) + if (copy_to_sockptr(optval, &val, len)) return -EFAULT; } return 0; @@ -1768,7 +1777,8 @@ { int err; - err = do_ip_getsockopt(sk, level, optname, optval, optlen); + err = do_ip_getsockopt(sk, level, optname, + USER_SOCKPTR(optval), USER_SOCKPTR(optlen)); #if IS_ENABLED(CONFIG_BPFILTER_UMH) if (optname >= BPFILTER_IPT_SO_GET_INFO && diff -Nru linux-5.10.209/net/ipv4/ip_tunnel.c linux-5.10.216/net/ipv4/ip_tunnel.c --- linux-5.10.209/net/ipv4/ip_tunnel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ip_tunnel.c 2024-05-02 14:23:46.000000000 +0000 @@ -364,7 +364,7 @@ bool log_ecn_error) { const struct iphdr *iph = ip_hdr(skb); - int err; + int nh, err; #ifdef CONFIG_NET_IPGRE_BROADCAST if (ipv4_is_multicast(iph->daddr)) { @@ -390,8 +390,21 @@ tunnel->i_seqno = ntohl(tpi->seq) + 1; } + /* Save offset of outer header relative to skb->head, + * because we are going to reset the network header to the inner header + * and might change skb->head. + */ + nh = skb_network_header(skb) - skb->head; + skb_set_network_header(skb, (tunnel->dev->type == ARPHRD_ETHER) ? ETH_HLEN : 0); + if (!pskb_inet_may_pull(skb)) { + DEV_STATS_INC(tunnel->dev, rx_length_errors); + DEV_STATS_INC(tunnel->dev, rx_errors); + goto drop; + } + iph = (struct iphdr *)(skb->head + nh); + err = IP_ECN_decapsulate(iph, skb); if (unlikely(err)) { if (log_ecn_error) @@ -540,6 +553,20 @@ return 0; } +static void ip_tunnel_adj_headroom(struct net_device *dev, unsigned int headroom) +{ + /* we must cap headroom to some upperlimit, else pskb_expand_head + * will overflow header offsets in skb_headers_offset_update(). + */ + static const unsigned int max_allowed = 512; + + if (headroom > max_allowed) + headroom = max_allowed; + + if (headroom > READ_ONCE(dev->needed_headroom)) + WRITE_ONCE(dev->needed_headroom, headroom); +} + void ip_md_tunnel_xmit(struct sk_buff *skb, struct net_device *dev, u8 proto, int tunnel_hlen) { @@ -613,13 +640,13 @@ } headroom += LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len; - if (headroom > READ_ONCE(dev->needed_headroom)) - WRITE_ONCE(dev->needed_headroom, headroom); - - if (skb_cow_head(skb, READ_ONCE(dev->needed_headroom))) { + if (skb_cow_head(skb, headroom)) { ip_rt_put(rt); goto tx_dropped; } + + ip_tunnel_adj_headroom(dev, headroom); + iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, proto, tos, ttl, df, !net_eq(tunnel->net, dev_net(dev))); return; @@ -797,16 +824,16 @@ max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr) + rt->dst.header_len + ip_encap_hlen(&tunnel->encap); - if (max_headroom > READ_ONCE(dev->needed_headroom)) - WRITE_ONCE(dev->needed_headroom, max_headroom); - if (skb_cow_head(skb, READ_ONCE(dev->needed_headroom))) { + if (skb_cow_head(skb, max_headroom)) { ip_rt_put(rt); dev->stats.tx_dropped++; kfree_skb(skb); return; } + ip_tunnel_adj_headroom(dev, max_headroom); + iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, protocol, tos, ttl, df, !net_eq(tunnel->net, dev_net(dev))); return; diff -Nru linux-5.10.209/net/ipv4/ip_tunnel_core.c linux-5.10.216/net/ipv4/ip_tunnel_core.c --- linux-5.10.209/net/ipv4/ip_tunnel_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ip_tunnel_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -332,7 +332,7 @@ }; skb_reset_network_header(skb); - csum = csum_partial(icmp6h, len, 0); + csum = skb_checksum(skb, skb_transport_offset(skb), len, 0); icmp6h->icmp6_cksum = csum_ipv6_magic(&nip6h->saddr, &nip6h->daddr, len, IPPROTO_ICMPV6, csum); diff -Nru linux-5.10.209/net/ipv4/ipmr.c linux-5.10.216/net/ipv4/ipmr.c --- linux-5.10.209/net/ipv4/ipmr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/ipmr.c 2024-05-02 14:23:46.000000000 +0000 @@ -1540,7 +1540,8 @@ } /* Getsock opt support for the multicast routing system. */ -int ip_mroute_getsockopt(struct sock *sk, int optname, char __user *optval, int __user *optlen) +int ip_mroute_getsockopt(struct sock *sk, int optname, sockptr_t optval, + sockptr_t optlen) { int olr; int val; @@ -1571,14 +1572,16 @@ return -ENOPROTOOPT; } - if (get_user(olr, optlen)) + if (copy_from_sockptr(&olr, optlen, sizeof(int))) return -EFAULT; - olr = min_t(unsigned int, olr, sizeof(int)); if (olr < 0) return -EINVAL; - if (put_user(olr, optlen)) + + olr = min_t(unsigned int, olr, sizeof(int)); + + if (copy_to_sockptr(optlen, &olr, sizeof(int))) return -EFAULT; - if (copy_to_user(optval, &val, olr)) + if (copy_to_sockptr(optval, &val, olr)) return -EFAULT; return 0; } diff -Nru linux-5.10.209/net/ipv4/netfilter/arp_tables.c linux-5.10.216/net/ipv4/netfilter/arp_tables.c --- linux-5.10.209/net/ipv4/netfilter/arp_tables.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/netfilter/arp_tables.c 2024-05-02 14:23:46.000000000 +0000 @@ -955,6 +955,8 @@ void *loc_cpu_entry; struct arpt_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -963,6 +965,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; @@ -1253,6 +1257,8 @@ void *loc_cpu_entry; struct arpt_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1261,6 +1267,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; diff -Nru linux-5.10.209/net/ipv4/netfilter/ip_tables.c linux-5.10.216/net/ipv4/netfilter/ip_tables.c --- linux-5.10.209/net/ipv4/netfilter/ip_tables.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/netfilter/ip_tables.c 2024-05-02 14:23:46.000000000 +0000 @@ -1109,6 +1109,8 @@ void *loc_cpu_entry; struct ipt_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1117,6 +1119,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; @@ -1493,6 +1497,8 @@ void *loc_cpu_entry; struct ipt_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1501,6 +1507,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; diff -Nru linux-5.10.209/net/ipv4/route.c linux-5.10.216/net/ipv4/route.c --- linux-5.10.209/net/ipv4/route.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/route.c 2024-05-02 14:23:46.000000000 +0000 @@ -955,13 +955,11 @@ icmp_send(skb, ICMP_REDIRECT, ICMP_REDIR_HOST, gw); peer->rate_last = jiffies; ++peer->n_redirects; -#ifdef CONFIG_IP_ROUTE_VERBOSE - if (log_martians && + if (IS_ENABLED(CONFIG_IP_ROUTE_VERBOSE) && log_martians && peer->n_redirects == ip_rt_redirect_number) net_warn_ratelimited("host %pI4/if%d ignores redirects for %pI4 to %pI4\n", &ip_hdr(skb)->saddr, inet_iif(skb), &ip_hdr(skb)->daddr, &gw); -#endif } out_put_peer: inet_putpeer(peer); @@ -2090,6 +2088,9 @@ int err = -EINVAL; u32 tag = 0; + if (!in_dev) + return -EINVAL; + if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr)) goto martian_source; diff -Nru linux-5.10.209/net/ipv4/tcp.c linux-5.10.216/net/ipv4/tcp.c --- linux-5.10.209/net/ipv4/tcp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/tcp.c 2024-05-02 14:23:46.000000000 +0000 @@ -726,6 +726,7 @@ if (!test_bit(TSQ_THROTTLED, &sk->sk_tsq_flags)) { NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPAUTOCORKING); set_bit(TSQ_THROTTLED, &sk->sk_tsq_flags); + smp_mb__after_atomic(); } /* It is possible TX completion already happened * before we set TSQ_THROTTLED. @@ -1777,6 +1778,36 @@ return frag; } +static bool can_map_frag(const skb_frag_t *frag) +{ + struct page *page; + + if (skb_frag_size(frag) != PAGE_SIZE || skb_frag_off(frag)) + return false; + + page = skb_frag_page(frag); + + if (PageCompound(page) || page->mapping) + return false; + + return true; +} + +static int find_next_mappable_frag(const skb_frag_t *frag, + int remaining_in_skb) +{ + int offset = 0; + + if (likely(can_map_frag(frag))) + return 0; + + while (offset < remaining_in_skb && !can_map_frag(frag)) { + offset += skb_frag_size(frag); + ++frag; + } + return offset; +} + static int tcp_copy_straggler_data(struct tcp_zerocopy_receive *zc, struct sk_buff *skb, u32 copylen, u32 *offset, u32 *seq) @@ -1902,6 +1933,8 @@ ret = 0; curr_addr = address; while (length + PAGE_SIZE <= zc->length) { + int mappable_offset; + if (zc->recv_skip_hint < PAGE_SIZE) { u32 offset_frag; @@ -1929,15 +1962,11 @@ if (!frags || offset_frag) break; } - if (skb_frag_size(frags) != PAGE_SIZE || skb_frag_off(frags)) { - int remaining = zc->recv_skip_hint; - while (remaining && (skb_frag_size(frags) != PAGE_SIZE || - skb_frag_off(frags))) { - remaining -= skb_frag_size(frags); - frags++; - } - zc->recv_skip_hint -= remaining; + mappable_offset = find_next_mappable_frag(frags, + zc->recv_skip_hint); + if (mappable_offset) { + zc->recv_skip_hint = mappable_offset; break; } pages[pg_idx] = skb_frag_page(frags); @@ -2688,6 +2717,8 @@ lock_sock(sk); __tcp_close(sk, timeout); release_sock(sk); + if (!sk->sk_net_refcnt) + inet_csk_clear_xmit_timers_sync(sk); sock_put(sk); } EXPORT_SYMBOL(tcp_close); @@ -3713,11 +3744,11 @@ if (get_user(len, optlen)) return -EFAULT; - len = min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; + len = min_t(unsigned int, len, sizeof(int)); + switch (optname) { case TCP_MAXSEG: val = tp->mss_cache; diff -Nru linux-5.10.209/net/ipv4/udp.c linux-5.10.216/net/ipv4/udp.c --- linux-5.10.209/net/ipv4/udp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/udp.c 2024-05-02 14:23:46.000000000 +0000 @@ -602,6 +602,13 @@ } DEFINE_STATIC_KEY_FALSE(udp_encap_needed_key); +EXPORT_SYMBOL(udp_encap_needed_key); + +#if IS_ENABLED(CONFIG_IPV6) +DEFINE_STATIC_KEY_FALSE(udpv6_encap_needed_key); +EXPORT_SYMBOL(udpv6_encap_needed_key); +#endif + void udp_encap_enable(void) { static_branch_inc(&udp_encap_needed_key); @@ -1118,16 +1125,17 @@ if (msg->msg_controllen) { err = udp_cmsg_send(sk, msg, &ipc.gso_size); - if (err > 0) + if (err > 0) { err = ip_cmsg_send(sk, msg, &ipc, sk->sk_family == AF_INET6); + connected = 0; + } if (unlikely(err < 0)) { kfree(ipc.opt); return err; } if (ipc.opt) free = 1; - connected = 0; } if (!ipc.opt) { struct ip_options_rcu *inet_opt; @@ -2748,11 +2756,11 @@ if (get_user(len, optlen)) return -EFAULT; - len = min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; + len = min_t(unsigned int, len, sizeof(int)); + switch (optname) { case UDP_CORK: val = READ_ONCE(up->corkflag); diff -Nru linux-5.10.209/net/ipv4/udp_offload.c linux-5.10.216/net/ipv4/udp_offload.c --- linux-5.10.209/net/ipv4/udp_offload.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv4/udp_offload.c 2024-05-02 14:23:46.000000000 +0000 @@ -512,6 +512,11 @@ unsigned int off = skb_gro_offset(skb); int flush = 1; + /* We can do L4 aggregation only if the packet can't land in a tunnel + * otherwise we could corrupt the inner stream. Detecting such packets + * cannot be foolproof and the aggregation might still happen in some + * cases. Such packets should be caught in udp_unexpected_gso later. + */ NAPI_GRO_CB(skb)->is_flist = 0; if (skb->dev->features & NETIF_F_GRO_FRAGLIST) NAPI_GRO_CB(skb)->is_flist = sk ? !udp_sk(sk)->gro_enabled: 1; @@ -668,13 +673,7 @@ skb_shinfo(skb)->gso_type |= (SKB_GSO_FRAGLIST|SKB_GSO_UDP_L4); skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count; - if (skb->ip_summed == CHECKSUM_UNNECESSARY) { - if (skb->csum_level < SKB_MAX_CSUM_LEVEL) - skb->csum_level++; - } else { - skb->ip_summed = CHECKSUM_UNNECESSARY; - skb->csum_level = 0; - } + __skb_incr_checksum_unnecessary(skb); return 0; } diff -Nru linux-5.10.209/net/ipv6/addrconf.c linux-5.10.216/net/ipv6/addrconf.c --- linux-5.10.209/net/ipv6/addrconf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/addrconf.c 2024-05-02 14:23:46.000000000 +0000 @@ -698,6 +698,22 @@ return err; } +/* Combine dev_addr_genid and dev_base_seq to detect changes. + */ +static u32 inet6_base_seq(const struct net *net) +{ + u32 res = atomic_read(&net->ipv6.dev_addr_genid) + + net->dev_base_seq; + + /* Must not return 0 (see nl_dump_check_consistent()). + * Chose a value far away from 0. + */ + if (!res) + res = 0x80000000; + return res; +} + + static int inet6_netconf_dump_devconf(struct sk_buff *skb, struct netlink_callback *cb) { @@ -731,8 +747,7 @@ idx = 0; head = &net->dev_index_head[h]; rcu_read_lock(); - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ - net->dev_base_seq; + cb->seq = inet6_base_seq(net); hlist_for_each_entry_rcu(dev, head, index_hlist) { if (idx < s_idx) goto cont; @@ -2029,9 +2044,10 @@ if (ipv6_addr_equal(&ifp->addr, addr)) { if (!dev || ifp->idev->dev == dev || !(ifp->scope&(IFA_LINK|IFA_HOST) || strict)) { - result = ifp; - in6_ifa_hold(ifp); - break; + if (in6_ifa_hold_safe(ifp)) { + result = ifp; + break; + } } } } @@ -5288,7 +5304,7 @@ } rcu_read_lock(); - cb->seq = atomic_read(&tgt_net->ipv6.dev_addr_genid) ^ tgt_net->dev_base_seq; + cb->seq = inet6_base_seq(tgt_net); for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) { idx = 0; head = &tgt_net->dev_index_head[h]; @@ -5421,9 +5437,10 @@ } addr = extract_addr(tb[IFA_ADDRESS], tb[IFA_LOCAL], &peer); - if (!addr) - return -EINVAL; - + if (!addr) { + err = -EINVAL; + goto errout; + } ifm = nlmsg_data(nlh); if (ifm->ifa_index) dev = dev_get_by_index(tgt_net, ifm->ifa_index); diff -Nru linux-5.10.209/net/ipv6/addrconf_core.c linux-5.10.216/net/ipv6/addrconf_core.c --- linux-5.10.209/net/ipv6/addrconf_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/addrconf_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -213,19 +213,26 @@ EXPORT_SYMBOL_GPL(ipv6_stub); /* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */ -const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; +const struct in6_addr in6addr_loopback __aligned(BITS_PER_LONG/8) + = IN6ADDR_LOOPBACK_INIT; EXPORT_SYMBOL(in6addr_loopback); -const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; +const struct in6_addr in6addr_any __aligned(BITS_PER_LONG/8) + = IN6ADDR_ANY_INIT; EXPORT_SYMBOL(in6addr_any); -const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT; +const struct in6_addr in6addr_linklocal_allnodes __aligned(BITS_PER_LONG/8) + = IN6ADDR_LINKLOCAL_ALLNODES_INIT; EXPORT_SYMBOL(in6addr_linklocal_allnodes); -const struct in6_addr in6addr_linklocal_allrouters = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT; +const struct in6_addr in6addr_linklocal_allrouters __aligned(BITS_PER_LONG/8) + = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT; EXPORT_SYMBOL(in6addr_linklocal_allrouters); -const struct in6_addr in6addr_interfacelocal_allnodes = IN6ADDR_INTERFACELOCAL_ALLNODES_INIT; +const struct in6_addr in6addr_interfacelocal_allnodes __aligned(BITS_PER_LONG/8) + = IN6ADDR_INTERFACELOCAL_ALLNODES_INIT; EXPORT_SYMBOL(in6addr_interfacelocal_allnodes); -const struct in6_addr in6addr_interfacelocal_allrouters = IN6ADDR_INTERFACELOCAL_ALLROUTERS_INIT; +const struct in6_addr in6addr_interfacelocal_allrouters __aligned(BITS_PER_LONG/8) + = IN6ADDR_INTERFACELOCAL_ALLROUTERS_INIT; EXPORT_SYMBOL(in6addr_interfacelocal_allrouters); -const struct in6_addr in6addr_sitelocal_allrouters = IN6ADDR_SITELOCAL_ALLROUTERS_INIT; +const struct in6_addr in6addr_sitelocal_allrouters __aligned(BITS_PER_LONG/8) + = IN6ADDR_SITELOCAL_ALLROUTERS_INIT; EXPORT_SYMBOL(in6addr_sitelocal_allrouters); static void snmp6_free_dev(struct inet6_dev *idev) diff -Nru linux-5.10.209/net/ipv6/af_inet6.c linux-5.10.216/net/ipv6/af_inet6.c --- linux-5.10.209/net/ipv6/af_inet6.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/af_inet6.c 2024-05-02 14:23:46.000000000 +0000 @@ -197,6 +197,9 @@ if (INET_PROTOSW_REUSE & answer_flags) sk->sk_reuse = SK_CAN_REUSE; + if (INET_PROTOSW_ICSK & answer_flags) + inet_init_csk_locks(sk); + inet = inet_sk(sk); inet->is_icsk = (INET_PROTOSW_ICSK & answer_flags) != 0; diff -Nru linux-5.10.209/net/ipv6/fib6_rules.c linux-5.10.216/net/ipv6/fib6_rules.c --- linux-5.10.209/net/ipv6/fib6_rules.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/fib6_rules.c 2024-05-02 14:23:46.000000000 +0000 @@ -446,6 +446,11 @@ + nla_total_size(16); /* src */ } +static void fib6_rule_flush_cache(struct fib_rules_ops *ops) +{ + rt_genid_bump_ipv6(ops->fro_net); +} + static const struct fib_rules_ops __net_initconst fib6_rules_ops_template = { .family = AF_INET6, .rule_size = sizeof(struct fib6_rule), @@ -458,6 +463,7 @@ .compare = fib6_rule_compare, .fill = fib6_rule_fill, .nlmsg_payload = fib6_rule_nlmsg_payload, + .flush_cache = fib6_rule_flush_cache, .nlgroup = RTNLGRP_IPV6_RULE, .policy = fib6_rule_policy, .owner = THIS_MODULE, diff -Nru linux-5.10.209/net/ipv6/ip6_fib.c linux-5.10.216/net/ipv6/ip6_fib.c --- linux-5.10.209/net/ipv6/ip6_fib.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/ip6_fib.c 2024-05-02 14:23:46.000000000 +0000 @@ -643,19 +643,19 @@ if (!w) { /* New dump: * - * 1. hook callback destructor. - */ - cb->args[3] = (long)cb->done; - cb->done = fib6_dump_done; - - /* - * 2. allocate and initialize walker. + * 1. allocate and initialize walker. */ w = kzalloc(sizeof(*w), GFP_ATOMIC); if (!w) return -ENOMEM; w->func = fib6_dump_node; cb->args[2] = (long)w; + + /* 2. hook callback destructor. + */ + cb->args[3] = (long)cb->done; + cb->done = fib6_dump_done; + } arg.skb = skb; @@ -1373,7 +1373,10 @@ struct nl_info *info, struct netlink_ext_ack *extack) { struct fib6_table *table = rt->fib6_table; - struct fib6_node *fn, *pn = NULL; + struct fib6_node *fn; +#ifdef CONFIG_IPV6_SUBTREES + struct fib6_node *pn = NULL; +#endif int err = -ENOMEM; int allow_create = 1; int replace_required = 0; @@ -1397,9 +1400,9 @@ goto out; } +#ifdef CONFIG_IPV6_SUBTREES pn = fn; -#ifdef CONFIG_IPV6_SUBTREES if (rt->fib6_src.plen) { struct fib6_node *sn; diff -Nru linux-5.10.209/net/ipv6/ip6_gre.c linux-5.10.216/net/ipv6/ip6_gre.c --- linux-5.10.209/net/ipv6/ip6_gre.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/ip6_gre.c 2024-05-02 14:23:46.000000000 +0000 @@ -533,6 +533,9 @@ struct ip6_tnl *tunnel; u8 ver; + if (unlikely(!pskb_may_pull(skb, sizeof(*ershdr)))) + return PACKET_REJECT; + ipv6h = ipv6_hdr(skb); ershdr = (struct erspan_base_hdr *)skb->data; ver = ershdr->ver; diff -Nru linux-5.10.209/net/ipv6/ip6_tunnel.c linux-5.10.216/net/ipv6/ip6_tunnel.c --- linux-5.10.209/net/ipv6/ip6_tunnel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/ip6_tunnel.c 2024-05-02 14:23:46.000000000 +0000 @@ -829,9 +829,8 @@ struct sk_buff *skb), bool log_ecn_err) { - struct pcpu_sw_netstats *tstats; - const struct ipv6hdr *ipv6h = ipv6_hdr(skb); - int err; + const struct ipv6hdr *ipv6h; + int nh, err; if ((!(tpi->flags & TUNNEL_CSUM) && (tunnel->parms.i_flags & TUNNEL_CSUM)) || @@ -863,14 +862,29 @@ goto drop; } - ipv6h = ipv6_hdr(skb); skb->protocol = eth_type_trans(skb, tunnel->dev); skb_postpull_rcsum(skb, eth_hdr(skb), ETH_HLEN); } else { skb->dev = tunnel->dev; } + /* Save offset of outer header relative to skb->head, + * because we are going to reset the network header to the inner header + * and might change skb->head. + */ + nh = skb_network_header(skb) - skb->head; + skb_reset_network_header(skb); + + if (!pskb_inet_may_pull(skb)) { + DEV_STATS_INC(tunnel->dev, rx_length_errors); + DEV_STATS_INC(tunnel->dev, rx_errors); + goto drop; + } + + /* Get the outer header. */ + ipv6h = (struct ipv6hdr *)(skb->head + nh); + memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); __skb_tunnel_rx(skb, tunnel->dev, tunnel->net); @@ -888,11 +902,7 @@ } } - tstats = this_cpu_ptr(tunnel->dev->tstats); - u64_stats_update_begin(&tstats->syncp); - tstats->rx_packets++; - tstats->rx_bytes += skb->len; - u64_stats_update_end(&tstats->syncp); + dev_sw_netstats_rx_add(tunnel->dev, skb->len); skb_scrub_packet(skb, !net_eq(tunnel->net, dev_net(tunnel->dev))); diff -Nru linux-5.10.209/net/ipv6/ipv6_sockglue.c linux-5.10.216/net/ipv6/ipv6_sockglue.c --- linux-5.10.209/net/ipv6/ipv6_sockglue.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/ipv6_sockglue.c 2024-05-02 14:23:46.000000000 +0000 @@ -225,7 +225,7 @@ if (GROUP_FILTER_SIZE(gsf->gf_numsrc) > optlen) goto out_free_gsf; - ret = ip6_mc_msfilter(sk, gsf, gsf->gf_slist); + ret = ip6_mc_msfilter(sk, gsf, gsf->gf_slist_flex); out_free_gsf: kfree(gsf); return ret; @@ -234,7 +234,7 @@ static int compat_ipv6_set_mcast_msfilter(struct sock *sk, sockptr_t optval, int optlen) { - const int size0 = offsetof(struct compat_group_filter, gf_slist); + const int size0 = offsetof(struct compat_group_filter, gf_slist_flex); struct compat_group_filter *gf32; void *p; int ret; @@ -249,7 +249,7 @@ if (!p) return -ENOMEM; - gf32 = p + 4; /* we want ->gf_group and ->gf_slist aligned */ + gf32 = p + 4; /* we want ->gf_group and ->gf_slist_flex aligned */ ret = -EFAULT; if (copy_from_sockptr(gf32, optval, optlen)) goto out_free_p; @@ -261,14 +261,14 @@ goto out_free_p; ret = -EINVAL; - if (offsetof(struct compat_group_filter, gf_slist[n]) > optlen) + if (offsetof(struct compat_group_filter, gf_slist_flex[n]) > optlen) goto out_free_p; ret = ip6_mc_msfilter(sk, &(struct group_filter){ .gf_interface = gf32->gf_interface, .gf_group = gf32->gf_group, .gf_fmode = gf32->gf_fmode, - .gf_numsrc = gf32->gf_numsrc}, gf32->gf_slist); + .gf_numsrc = gf32->gf_numsrc}, gf32->gf_slist_flex); out_free_p: kfree(p); @@ -1051,7 +1051,7 @@ static int ipv6_get_msfilter(struct sock *sk, void __user *optval, int __user *optlen, int len) { - const int size0 = offsetof(struct group_filter, gf_slist); + const int size0 = offsetof(struct group_filter, gf_slist_flex); struct group_filter __user *p = optval; struct group_filter gsf; int num; @@ -1065,7 +1065,7 @@ return -EADDRNOTAVAIL; num = gsf.gf_numsrc; lock_sock(sk); - err = ip6_mc_msfget(sk, &gsf, p->gf_slist); + err = ip6_mc_msfget(sk, &gsf, p->gf_slist_flex); if (!err) { if (num > gsf.gf_numsrc) num = gsf.gf_numsrc; @@ -1080,7 +1080,7 @@ static int compat_ipv6_get_msfilter(struct sock *sk, void __user *optval, int __user *optlen) { - const int size0 = offsetof(struct compat_group_filter, gf_slist); + const int size0 = offsetof(struct compat_group_filter, gf_slist_flex); struct compat_group_filter __user *p = optval; struct compat_group_filter gf32; struct group_filter gf; @@ -1103,7 +1103,7 @@ return -EADDRNOTAVAIL; lock_sock(sk); - err = ip6_mc_msfget(sk, &gf, p->gf_slist); + err = ip6_mc_msfget(sk, &gf, p->gf_slist_flex); release_sock(sk); if (err) return err; diff -Nru linux-5.10.209/net/ipv6/netfilter/ip6_tables.c linux-5.10.216/net/ipv6/netfilter/ip6_tables.c --- linux-5.10.209/net/ipv6/netfilter/ip6_tables.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/netfilter/ip6_tables.c 2024-05-02 14:23:46.000000000 +0000 @@ -1127,6 +1127,8 @@ void *loc_cpu_entry; struct ip6t_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1135,6 +1137,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; @@ -1503,6 +1507,8 @@ void *loc_cpu_entry; struct ip6t_entry *iter; + if (len < sizeof(tmp)) + return -EINVAL; if (copy_from_sockptr(&tmp, arg, sizeof(tmp)) != 0) return -EFAULT; @@ -1511,6 +1517,8 @@ return -ENOMEM; if (tmp.num_counters == 0) return -EINVAL; + if ((u64)len < (u64)tmp.size + sizeof(tmp)) + return -EINVAL; tmp.name[sizeof(tmp.name)-1] = 0; diff -Nru linux-5.10.209/net/ipv6/route.c linux-5.10.216/net/ipv6/route.c --- linux-5.10.209/net/ipv6/route.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/route.c 2024-05-02 14:23:46.000000000 +0000 @@ -5235,19 +5235,7 @@ err_nh = NULL; list_for_each_entry(nh, &rt6_nh_list, next) { err = __ip6_ins_rt(nh->fib6_info, info, extack); - fib6_info_release(nh->fib6_info); - - if (!err) { - /* save reference to last route successfully inserted */ - rt_last = nh->fib6_info; - - /* save reference to first route for notification */ - if (!rt_notif) - rt_notif = nh->fib6_info; - } - /* nh->fib6_info is used or freed at this point, reset to NULL*/ - nh->fib6_info = NULL; if (err) { if (replace && nhn) NL_SET_ERR_MSG_MOD(extack, @@ -5255,6 +5243,12 @@ err_nh = nh; goto add_errout; } + /* save reference to last route successfully inserted */ + rt_last = nh->fib6_info; + + /* save reference to first route for notification */ + if (!rt_notif) + rt_notif = nh->fib6_info; /* Because each route is added like a single route we remove * these flags after the first nexthop: if there is a collision, @@ -5315,8 +5309,7 @@ cleanup: list_for_each_entry_safe(nh, nh_safe, &rt6_nh_list, next) { - if (nh->fib6_info) - fib6_info_release(nh->fib6_info); + fib6_info_release(nh->fib6_info); list_del(&nh->next); kfree(nh); } diff -Nru linux-5.10.209/net/ipv6/seg6.c linux-5.10.216/net/ipv6/seg6.c --- linux-5.10.209/net/ipv6/seg6.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/seg6.c 2024-05-02 14:23:46.000000000 +0000 @@ -451,22 +451,24 @@ { int err; - err = genl_register_family(&seg6_genl_family); + err = register_pernet_subsys(&ip6_segments_ops); if (err) goto out; - err = register_pernet_subsys(&ip6_segments_ops); + err = genl_register_family(&seg6_genl_family); if (err) - goto out_unregister_genl; + goto out_unregister_pernet; #ifdef CONFIG_IPV6_SEG6_LWTUNNEL err = seg6_iptunnel_init(); if (err) - goto out_unregister_pernet; + goto out_unregister_genl; err = seg6_local_init(); - if (err) - goto out_unregister_pernet; + if (err) { + seg6_iptunnel_exit(); + goto out_unregister_genl; + } #endif #ifdef CONFIG_IPV6_SEG6_HMAC @@ -487,11 +489,11 @@ #endif #endif #ifdef CONFIG_IPV6_SEG6_LWTUNNEL -out_unregister_pernet: - unregister_pernet_subsys(&ip6_segments_ops); -#endif out_unregister_genl: genl_unregister_family(&seg6_genl_family); +#endif +out_unregister_pernet: + unregister_pernet_subsys(&ip6_segments_ops); goto out; } diff -Nru linux-5.10.209/net/ipv6/udp.c linux-5.10.216/net/ipv6/udp.c --- linux-5.10.209/net/ipv6/udp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/udp.c 2024-05-02 14:23:46.000000000 +0000 @@ -474,7 +474,7 @@ goto try_again; } -DEFINE_STATIC_KEY_FALSE(udpv6_encap_needed_key); +DECLARE_STATIC_KEY_FALSE(udpv6_encap_needed_key); void udpv6_encap_enable(void) { static_branch_inc(&udpv6_encap_needed_key); @@ -1453,9 +1453,11 @@ ipc6.opt = opt; err = udp_cmsg_send(sk, msg, &ipc6.gso_size); - if (err > 0) + if (err > 0) { err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, &ipc6); + connected = false; + } if (err < 0) { fl6_sock_release(flowlabel); return err; @@ -1467,7 +1469,6 @@ } if (!(opt->opt_nflen|opt->opt_flen)) opt = NULL; - connected = false; } if (!opt) { opt = txopt_get(np); diff -Nru linux-5.10.209/net/ipv6/udp_offload.c linux-5.10.216/net/ipv6/udp_offload.c --- linux-5.10.209/net/ipv6/udp_offload.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/ipv6/udp_offload.c 2024-05-02 14:23:46.000000000 +0000 @@ -169,13 +169,7 @@ skb_shinfo(skb)->gso_type |= (SKB_GSO_FRAGLIST|SKB_GSO_UDP_L4); skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count; - if (skb->ip_summed == CHECKSUM_UNNECESSARY) { - if (skb->csum_level < SKB_MAX_CSUM_LEVEL) - skb->csum_level++; - } else { - skb->ip_summed = CHECKSUM_UNNECESSARY; - skb->csum_level = 0; - } + __skb_incr_checksum_unnecessary(skb); return 0; } diff -Nru linux-5.10.209/net/iucv/af_iucv.c linux-5.10.216/net/iucv/af_iucv.c --- linux-5.10.209/net/iucv/af_iucv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/iucv/af_iucv.c 2024-05-02 14:23:46.000000000 +0000 @@ -2310,7 +2310,7 @@ { int err; - if (MACHINE_IS_VM) { + if (MACHINE_IS_VM && IS_ENABLED(CONFIG_IUCV)) { cpcmd("QUERY USERID", iucv_userid, sizeof(iucv_userid), &err); if (unlikely(err)) { WARN_ON(err); @@ -2318,11 +2318,7 @@ goto out; } - pr_iucv = try_then_request_module(symbol_get(iucv_if), "iucv"); - if (!pr_iucv) { - printk(KERN_WARNING "iucv_if lookup failed\n"); - memset(&iucv_userid, 0, sizeof(iucv_userid)); - } + pr_iucv = &iucv_if; } else { memset(&iucv_userid, 0, sizeof(iucv_userid)); pr_iucv = NULL; @@ -2356,17 +2352,13 @@ out_proto: proto_unregister(&iucv_proto); out: - if (pr_iucv) - symbol_put(iucv_if); return err; } static void __exit afiucv_exit(void) { - if (pr_iucv) { + if (pr_iucv) afiucv_iucv_exit(); - symbol_put(iucv_if); - } unregister_netdevice_notifier(&afiucv_netdev_notifier); dev_remove_pack(&iucv_packet_type); diff -Nru linux-5.10.209/net/iucv/iucv.c linux-5.10.216/net/iucv/iucv.c --- linux-5.10.209/net/iucv/iucv.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/iucv/iucv.c 2024-05-02 14:23:46.000000000 +0000 @@ -156,7 +156,7 @@ static LIST_HEAD(iucv_handler_list); /* - * iucv_path_table: an array of iucv_path structures. + * iucv_path_table: array of pointers to iucv_path structures. */ static struct iucv_path **iucv_path_table; static unsigned long iucv_max_pathid; @@ -542,7 +542,7 @@ get_online_cpus(); rc = -ENOMEM; - alloc_size = iucv_max_pathid * sizeof(struct iucv_path); + alloc_size = iucv_max_pathid * sizeof(*iucv_path_table); iucv_path_table = kzalloc(alloc_size, GFP_KERNEL); if (!iucv_path_table) goto out; diff -Nru linux-5.10.209/net/kcm/kcmsock.c linux-5.10.216/net/kcm/kcmsock.c --- linux-5.10.209/net/kcm/kcmsock.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/kcm/kcmsock.c 2024-05-02 14:23:46.000000000 +0000 @@ -1275,10 +1275,11 @@ if (get_user(len, optlen)) return -EFAULT; - len = min_t(unsigned int, len, sizeof(int)); if (len < 0) return -EINVAL; + len = min_t(unsigned int, len, sizeof(int)); + switch (optname) { case KCM_RECV_DISABLE: val = kcm->rx_disabled; diff -Nru linux-5.10.209/net/l2tp/l2tp_ip6.c linux-5.10.216/net/l2tp/l2tp_ip6.c --- linux-5.10.209/net/l2tp/l2tp_ip6.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/l2tp/l2tp_ip6.c 2024-05-02 14:23:46.000000000 +0000 @@ -628,7 +628,7 @@ back_from_confirm: lock_sock(sk); - ulen = len + skb_queue_empty(&sk->sk_write_queue) ? transhdrlen : 0; + ulen = len + (skb_queue_empty(&sk->sk_write_queue) ? transhdrlen : 0); err = ip6_append_data(sk, ip_generic_getfrag, msg, ulen, transhdrlen, &ipc6, &fl6, (struct rt6_info *)dst, diff -Nru linux-5.10.209/net/l2tp/l2tp_ppp.c linux-5.10.216/net/l2tp/l2tp_ppp.c --- linux-5.10.209/net/l2tp/l2tp_ppp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/l2tp/l2tp_ppp.c 2024-05-02 14:23:46.000000000 +0000 @@ -1357,11 +1357,11 @@ if (get_user(len, optlen)) return -EFAULT; - len = min_t(unsigned int, len, sizeof(int)); - if (len < 0) return -EINVAL; + len = min_t(unsigned int, len, sizeof(int)); + err = -ENOTCONN; if (!sk->sk_user_data) goto end; diff -Nru linux-5.10.209/net/llc/af_llc.c linux-5.10.216/net/llc/af_llc.c --- linux-5.10.209/net/llc/af_llc.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/llc/af_llc.c 2024-05-02 14:23:46.000000000 +0000 @@ -227,6 +227,8 @@ if (llc->dev) dev_put(llc->dev); sock_put(sk); + sock_orphan(sk); + sock->sk = NULL; llc_sk_free(sk); out: return 0; @@ -927,14 +929,15 @@ */ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len) { + DECLARE_SOCKADDR(struct sockaddr_llc *, addr, msg->msg_name); struct sock *sk = sock->sk; struct llc_sock *llc = llc_sk(sk); - DECLARE_SOCKADDR(struct sockaddr_llc *, addr, msg->msg_name); int flags = msg->msg_flags; int noblock = flags & MSG_DONTWAIT; + int rc = -EINVAL, copied = 0, hdrlen, hh_len; struct sk_buff *skb = NULL; + struct net_device *dev; size_t size = 0; - int rc = -EINVAL, copied = 0, hdrlen; dprintk("%s: sending from %02X to %02X\n", __func__, llc->laddr.lsap, llc->daddr.lsap); @@ -954,22 +957,29 @@ if (rc) goto out; } - hdrlen = llc->dev->hard_header_len + llc_ui_header_len(sk, addr); + dev = llc->dev; + hh_len = LL_RESERVED_SPACE(dev); + hdrlen = llc_ui_header_len(sk, addr); size = hdrlen + len; - if (size > llc->dev->mtu) - size = llc->dev->mtu; + size = min_t(size_t, size, READ_ONCE(dev->mtu)); copied = size - hdrlen; rc = -EINVAL; if (copied < 0) goto out; release_sock(sk); - skb = sock_alloc_send_skb(sk, size, noblock, &rc); + skb = sock_alloc_send_skb(sk, hh_len + size, noblock, &rc); lock_sock(sk); if (!skb) goto out; - skb->dev = llc->dev; + if (sock_flag(sk, SOCK_ZAPPED) || + llc->dev != dev || + hdrlen != llc_ui_header_len(sk, addr) || + hh_len != LL_RESERVED_SPACE(dev) || + size > READ_ONCE(dev->mtu)) + goto out; + skb->dev = dev; skb->protocol = llc_proto_type(addr->sllc_arphrd); - skb_reserve(skb, hdrlen); + skb_reserve(skb, hh_len + hdrlen); rc = memcpy_from_msg(skb_put(skb, copied), msg, copied); if (rc) goto out; diff -Nru linux-5.10.209/net/llc/llc_core.c linux-5.10.216/net/llc/llc_core.c --- linux-5.10.209/net/llc/llc_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/llc/llc_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -135,22 +135,15 @@ .func = llc_rcv, }; -static struct packet_type llc_tr_packet_type __read_mostly = { - .type = cpu_to_be16(ETH_P_TR_802_2), - .func = llc_rcv, -}; - static int __init llc_init(void) { dev_add_pack(&llc_packet_type); - dev_add_pack(&llc_tr_packet_type); return 0; } static void __exit llc_exit(void) { dev_remove_pack(&llc_packet_type); - dev_remove_pack(&llc_tr_packet_type); } module_init(llc_init); diff -Nru linux-5.10.209/net/mac80211/cfg.c linux-5.10.216/net/mac80211/cfg.c --- linux-5.10.209/net/mac80211/cfg.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mac80211/cfg.c 2024-05-02 14:23:46.000000000 +0000 @@ -1811,15 +1811,14 @@ } if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && - sta->sdata->u.vlan.sta) { - ieee80211_clear_fast_rx(sta); + sta->sdata->u.vlan.sta) RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); - } if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) ieee80211_vif_dec_num_mcast(sta->sdata); sta->sdata = vlansdata; + ieee80211_check_fast_rx(sta); ieee80211_check_fast_xmit(sta); if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { diff -Nru linux-5.10.209/net/mac80211/sta_info.c linux-5.10.216/net/mac80211/sta_info.c --- linux-5.10.209/net/mac80211/sta_info.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mac80211/sta_info.c 2024-05-02 14:23:46.000000000 +0000 @@ -700,6 +700,8 @@ if (ieee80211_vif_is_mesh(&sdata->vif)) mesh_accept_plinks_update(sdata); + ieee80211_check_fast_xmit(sta); + return 0; out_remove: sta_info_hash_del(local, sta); diff -Nru linux-5.10.209/net/mac80211/tx.c linux-5.10.216/net/mac80211/tx.c --- linux-5.10.209/net/mac80211/tx.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mac80211/tx.c 2024-05-02 14:23:46.000000000 +0000 @@ -2959,7 +2959,7 @@ sdata->vif.type == NL80211_IFTYPE_STATION) goto out; - if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED)) + if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED) || !sta->uploaded) goto out; if (test_sta_flag(sta, WLAN_STA_PS_STA) || @@ -3721,6 +3721,7 @@ goto begin; skb = __skb_dequeue(&tx.skbs); + info = IEEE80211_SKB_CB(skb); if (!skb_queue_empty(&tx.skbs)) { spin_lock_bh(&fq->lock); @@ -3765,7 +3766,7 @@ } encap_out: - IEEE80211_SKB_CB(skb)->control.vif = vif; + info->control.vif = vif; if (vif && wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) { diff -Nru linux-5.10.209/net/mac802154/llsec.c linux-5.10.216/net/mac802154/llsec.c --- linux-5.10.209/net/mac802154/llsec.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mac802154/llsec.c 2024-05-02 14:23:46.000000000 +0000 @@ -265,19 +265,27 @@ return -ENOMEM; } +static void mac802154_llsec_key_del_rcu(struct rcu_head *rcu) +{ + struct ieee802154_llsec_key_entry *pos; + struct mac802154_llsec_key *mkey; + + pos = container_of(rcu, struct ieee802154_llsec_key_entry, rcu); + mkey = container_of(pos->key, struct mac802154_llsec_key, key); + + llsec_key_put(mkey); + kfree_sensitive(pos); +} + int mac802154_llsec_key_del(struct mac802154_llsec *sec, const struct ieee802154_llsec_key_id *key) { struct ieee802154_llsec_key_entry *pos; list_for_each_entry(pos, &sec->table.keys, list) { - struct mac802154_llsec_key *mkey; - - mkey = container_of(pos->key, struct mac802154_llsec_key, key); - if (llsec_key_id_equal(&pos->id, key)) { list_del_rcu(&pos->list); - llsec_key_put(mkey); + call_rcu(&pos->rcu, mac802154_llsec_key_del_rcu); return 0; } } diff -Nru linux-5.10.209/net/mptcp/diag.c linux-5.10.216/net/mptcp/diag.c --- linux-5.10.209/net/mptcp/diag.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mptcp/diag.c 2024-05-02 14:23:46.000000000 +0000 @@ -13,17 +13,22 @@ #include #include "protocol.h" -static int subflow_get_info(const struct sock *sk, struct sk_buff *skb) +static int subflow_get_info(struct sock *sk, struct sk_buff *skb) { struct mptcp_subflow_context *sf; struct nlattr *start; u32 flags = 0; + bool slow; int err; + if (inet_sk_state_load(sk) == TCP_LISTEN) + return 0; + start = nla_nest_start_noflag(skb, INET_ULP_INFO_MPTCP); if (!start) return -EMSGSIZE; + slow = lock_sock_fast(sk); rcu_read_lock(); sf = rcu_dereference(inet_csk(sk)->icsk_ulp_data); if (!sf) { @@ -69,11 +74,13 @@ } rcu_read_unlock(); + unlock_sock_fast(sk, slow); nla_nest_end(skb, start); return 0; nla_failure: rcu_read_unlock(); + unlock_sock_fast(sk, slow); nla_nest_cancel(skb, start); return err; } diff -Nru linux-5.10.209/net/mptcp/protocol.c linux-5.10.216/net/mptcp/protocol.c --- linux-5.10.209/net/mptcp/protocol.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mptcp/protocol.c 2024-05-02 14:23:46.000000000 +0000 @@ -2052,8 +2052,50 @@ return (struct ipv6_pinfo *)(((u8 *)sk) + offset); } + +static void mptcp_copy_ip6_options(struct sock *newsk, const struct sock *sk) +{ + const struct ipv6_pinfo *np = inet6_sk(sk); + struct ipv6_txoptions *opt; + struct ipv6_pinfo *newnp; + + newnp = inet6_sk(newsk); + + rcu_read_lock(); + opt = rcu_dereference(np->opt); + if (opt) { + opt = ipv6_dup_options(newsk, opt); + if (!opt) + net_warn_ratelimited("%s: Failed to copy ip6 options\n", __func__); + } + RCU_INIT_POINTER(newnp->opt, opt); + rcu_read_unlock(); +} #endif +static void mptcp_copy_ip_options(struct sock *newsk, const struct sock *sk) +{ + struct ip_options_rcu *inet_opt, *newopt = NULL; + const struct inet_sock *inet = inet_sk(sk); + struct inet_sock *newinet; + + newinet = inet_sk(newsk); + + rcu_read_lock(); + inet_opt = rcu_dereference(inet->inet_opt); + if (inet_opt) { + newopt = sock_kmalloc(newsk, sizeof(*inet_opt) + + inet_opt->opt.optlen, GFP_ATOMIC); + if (newopt) + memcpy(newopt, inet_opt, sizeof(*inet_opt) + + inet_opt->opt.optlen); + else + net_warn_ratelimited("%s: Failed to copy ip options\n", __func__); + } + RCU_INIT_POINTER(newinet->inet_opt, newopt); + rcu_read_unlock(); +} + struct sock *mptcp_sk_clone(const struct sock *sk, const struct mptcp_options_received *mp_opt, struct request_sock *req) @@ -2073,6 +2115,13 @@ __mptcp_init_sock(nsk); +#if IS_ENABLED(CONFIG_MPTCP_IPV6) + if (nsk->sk_family == AF_INET6) + mptcp_copy_ip6_options(nsk, sk); + else +#endif + mptcp_copy_ip_options(nsk, sk); + msk = mptcp_sk(nsk); msk->local_key = subflow_req->local_key; msk->token = subflow_req->token; @@ -2169,9 +2218,6 @@ __MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPCAPABLEPASSIVEACK); local_bh_enable(); - } else { - MPTCP_INC_STATS(sock_net(sk), - MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK); } out: diff -Nru linux-5.10.209/net/mptcp/subflow.c linux-5.10.216/net/mptcp/subflow.c --- linux-5.10.209/net/mptcp/subflow.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/mptcp/subflow.c 2024-05-02 14:23:46.000000000 +0000 @@ -595,6 +595,9 @@ if (fallback_is_fatal) goto dispose_child; + if (fallback) + SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK); + subflow_drop_ctx(child); goto out; } diff -Nru linux-5.10.209/net/netfilter/ipset/ip_set_bitmap_gen.h linux-5.10.216/net/netfilter/ipset/ip_set_bitmap_gen.h --- linux-5.10.209/net/netfilter/ipset/ip_set_bitmap_gen.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/ipset/ip_set_bitmap_gen.h 2024-05-02 14:23:46.000000000 +0000 @@ -28,6 +28,7 @@ #define mtype_del IPSET_TOKEN(MTYPE, _del) #define mtype_list IPSET_TOKEN(MTYPE, _list) #define mtype_gc IPSET_TOKEN(MTYPE, _gc) +#define mtype_cancel_gc IPSET_TOKEN(MTYPE, _cancel_gc) #define mtype MTYPE #define get_ext(set, map, id) ((map)->extensions + ((set)->dsize * (id))) @@ -57,9 +58,6 @@ { struct mtype *map = set->data; - if (SET_WITH_TIMEOUT(set)) - del_timer_sync(&map->gc); - if (set->dsize && set->extensions & IPSET_EXT_DESTROY) mtype_ext_cleanup(set); ip_set_free(map->members); @@ -288,6 +286,15 @@ add_timer(&map->gc); } +static void +mtype_cancel_gc(struct ip_set *set) +{ + struct mtype *map = set->data; + + if (SET_WITH_TIMEOUT(set)) + del_timer_sync(&map->gc); +} + static const struct ip_set_type_variant mtype = { .kadt = mtype_kadt, .uadt = mtype_uadt, @@ -301,6 +308,7 @@ .head = mtype_head, .list = mtype_list, .same_set = mtype_same_set, + .cancel_gc = mtype_cancel_gc, }; #endif /* __IP_SET_BITMAP_IP_GEN_H */ diff -Nru linux-5.10.209/net/netfilter/ipset/ip_set_core.c linux-5.10.216/net/netfilter/ipset/ip_set_core.c --- linux-5.10.209/net/netfilter/ipset/ip_set_core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/ipset/ip_set_core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1158,6 +1158,7 @@ return ret; cleanup: + set->variant->cancel_gc(set); set->variant->destroy(set); put_out: module_put(set->type->me); @@ -1186,6 +1187,14 @@ kfree(set); } +static void +ip_set_destroy_set_rcu(struct rcu_head *head) +{ + struct ip_set *set = container_of(head, struct ip_set, rcu); + + ip_set_destroy_set(set); +} + static int ip_set_destroy(struct net *net, struct sock *ctnl, struct sk_buff *skb, const struct nlmsghdr *nlh, const struct nlattr * const attr[], @@ -1199,8 +1208,6 @@ if (unlikely(protocol_min_failed(attr))) return -IPSET_ERR_PROTOCOL; - /* Must wait for flush to be really finished in list:set */ - rcu_barrier(); /* Commands are serialized and references are * protected by the ip_set_ref_lock. @@ -1212,8 +1219,10 @@ * counter, so if it's already zero, we can proceed * without holding the lock. */ - read_lock_bh(&ip_set_ref_lock); if (!attr[IPSET_ATTR_SETNAME]) { + /* Must wait for flush to be really finished in list:set */ + rcu_barrier(); + read_lock_bh(&ip_set_ref_lock); for (i = 0; i < inst->ip_set_max; i++) { s = ip_set(inst, i); if (s && (s->ref || s->ref_netlink)) { @@ -1227,12 +1236,17 @@ s = ip_set(inst, i); if (s) { ip_set(inst, i) = NULL; + /* Must cancel garbage collectors */ + s->variant->cancel_gc(s); ip_set_destroy_set(s); } } /* Modified by ip_set_destroy() only, which is serialized */ inst->is_destroyed = false; } else { + u16 features = 0; + + read_lock_bh(&ip_set_ref_lock); s = find_set_and_id(inst, nla_data(attr[IPSET_ATTR_SETNAME]), &i); if (!s) { @@ -1242,10 +1256,16 @@ ret = -IPSET_ERR_BUSY; goto out; } + features = s->type->features; ip_set(inst, i) = NULL; read_unlock_bh(&ip_set_ref_lock); - - ip_set_destroy_set(s); + if (features & IPSET_TYPE_NAME) { + /* Must wait for flush to be really finished */ + rcu_barrier(); + } + /* Must cancel garbage collectors */ + s->variant->cancel_gc(s); + call_rcu(&s->rcu, ip_set_destroy_set_rcu); } return 0; out: @@ -1404,9 +1424,6 @@ ip_set(inst, to_id) = from; write_unlock_bh(&ip_set_ref_lock); - /* Make sure all readers of the old set pointers are completed. */ - synchronize_rcu(); - return 0; } @@ -2397,6 +2414,7 @@ set = ip_set(inst, i); if (set) { ip_set(inst, i) = NULL; + set->variant->cancel_gc(set); ip_set_destroy_set(set); } } @@ -2444,8 +2462,11 @@ { nf_unregister_sockopt(&so_set); nfnetlink_subsys_unregister(&ip_set_netlink_subsys); - unregister_pernet_subsys(&ip_set_net_ops); + + /* Wait for call_rcu() in destroy */ + rcu_barrier(); + pr_debug("these are the famous last words\n"); } diff -Nru linux-5.10.209/net/netfilter/ipset/ip_set_hash_gen.h linux-5.10.216/net/netfilter/ipset/ip_set_hash_gen.h --- linux-5.10.209/net/netfilter/ipset/ip_set_hash_gen.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/ipset/ip_set_hash_gen.h 2024-05-02 14:23:46.000000000 +0000 @@ -235,6 +235,7 @@ #undef mtype_gc_do #undef mtype_gc #undef mtype_gc_init +#undef mtype_cancel_gc #undef mtype_variant #undef mtype_data_match @@ -279,6 +280,7 @@ #define mtype_gc_do IPSET_TOKEN(MTYPE, _gc_do) #define mtype_gc IPSET_TOKEN(MTYPE, _gc) #define mtype_gc_init IPSET_TOKEN(MTYPE, _gc_init) +#define mtype_cancel_gc IPSET_TOKEN(MTYPE, _cancel_gc) #define mtype_variant IPSET_TOKEN(MTYPE, _variant) #define mtype_data_match IPSET_TOKEN(MTYPE, _data_match) @@ -444,7 +446,7 @@ u32 i; for (i = 0; i < jhash_size(t->htable_bits); i++) { - n = __ipset_dereference(hbucket(t, i)); + n = (__force struct hbucket *)hbucket(t, i); if (!n) continue; if (set->extensions & IPSET_EXT_DESTROY && ext_destroy) @@ -464,10 +466,7 @@ struct htype *h = set->data; struct list_head *l, *lt; - if (SET_WITH_TIMEOUT(set)) - cancel_delayed_work_sync(&h->gc.dwork); - - mtype_ahash_destroy(set, ipset_dereference_nfnl(h->table), true); + mtype_ahash_destroy(set, (__force struct htable *)h->table, true); list_for_each_safe(l, lt, &h->ad) { list_del(l); kfree(l); @@ -613,6 +612,15 @@ queue_delayed_work(system_power_efficient_wq, &gc->dwork, HZ); } +static void +mtype_cancel_gc(struct ip_set *set) +{ + struct htype *h = set->data; + + if (SET_WITH_TIMEOUT(set)) + cancel_delayed_work_sync(&h->gc.dwork); +} + static int mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext, struct ip_set_ext *mext, u32 flags); @@ -1433,6 +1441,7 @@ .uref = mtype_uref, .resize = mtype_resize, .same_set = mtype_same_set, + .cancel_gc = mtype_cancel_gc, .region_lock = true, }; diff -Nru linux-5.10.209/net/netfilter/ipset/ip_set_list_set.c linux-5.10.216/net/netfilter/ipset/ip_set_list_set.c --- linux-5.10.209/net/netfilter/ipset/ip_set_list_set.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/ipset/ip_set_list_set.c 2024-05-02 14:23:46.000000000 +0000 @@ -426,9 +426,6 @@ struct list_set *map = set->data; struct set_elem *e, *n; - if (SET_WITH_TIMEOUT(set)) - del_timer_sync(&map->gc); - list_for_each_entry_safe(e, n, &map->members, list) { list_del(&e->list); ip_set_put_byindex(map->net, e->id); @@ -545,6 +542,15 @@ a->extensions == b->extensions; } +static void +list_set_cancel_gc(struct ip_set *set) +{ + struct list_set *map = set->data; + + if (SET_WITH_TIMEOUT(set)) + del_timer_sync(&map->gc); +} + static const struct ip_set_type_variant set_variant = { .kadt = list_set_kadt, .uadt = list_set_uadt, @@ -558,6 +564,7 @@ .head = list_set_head, .list = list_set_list, .same_set = list_set_same_set, + .cancel_gc = list_set_cancel_gc, }; static void diff -Nru linux-5.10.209/net/netfilter/ipvs/ip_vs_proto_sctp.c linux-5.10.216/net/netfilter/ipvs/ip_vs_proto_sctp.c --- linux-5.10.209/net/netfilter/ipvs/ip_vs_proto_sctp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/ipvs/ip_vs_proto_sctp.c 2024-05-02 14:23:46.000000000 +0000 @@ -126,7 +126,8 @@ if (sctph->source != cp->vport || payload_csum || skb->ip_summed == CHECKSUM_PARTIAL) { sctph->source = cp->vport; - sctp_nat_csum(skb, sctph, sctphoff); + if (!skb_is_gso(skb) || !skb_is_gso_sctp(skb)) + sctp_nat_csum(skb, sctph, sctphoff); } else { skb->ip_summed = CHECKSUM_UNNECESSARY; } @@ -174,7 +175,8 @@ (skb->ip_summed == CHECKSUM_PARTIAL && !(skb_dst(skb)->dev->features & NETIF_F_SCTP_CRC))) { sctph->dest = cp->dport; - sctp_nat_csum(skb, sctph, sctphoff); + if (!skb_is_gso(skb) || !skb_is_gso_sctp(skb)) + sctp_nat_csum(skb, sctph, sctphoff); } else if (skb->ip_summed != CHECKSUM_PARTIAL) { skb->ip_summed = CHECKSUM_UNNECESSARY; } diff -Nru linux-5.10.209/net/netfilter/nf_conntrack_h323_asn1.c linux-5.10.216/net/netfilter/nf_conntrack_h323_asn1.c --- linux-5.10.209/net/netfilter/nf_conntrack_h323_asn1.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nf_conntrack_h323_asn1.c 2024-05-02 14:23:46.000000000 +0000 @@ -533,6 +533,8 @@ /* Get fields bitmap */ if (nf_h323_error_boundary(bs, 0, f->sz)) return H323_ERROR_BOUND; + if (f->sz > 32) + return H323_ERROR_RANGE; bmp = get_bitmap(bs, f->sz); if (base) *(unsigned int *)base = bmp; @@ -589,6 +591,8 @@ bmp2_len = get_bits(bs, 7) + 1; if (nf_h323_error_boundary(bs, 0, bmp2_len)) return H323_ERROR_BOUND; + if (bmp2_len > 32) + return H323_ERROR_RANGE; bmp2 = get_bitmap(bs, bmp2_len); bmp |= bmp2 >> f->sz; if (base) diff -Nru linux-5.10.209/net/netfilter/nf_conntrack_proto_sctp.c linux-5.10.216/net/netfilter/nf_conntrack_proto_sctp.c --- linux-5.10.209/net/netfilter/nf_conntrack_proto_sctp.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nf_conntrack_proto_sctp.c 2024-05-02 14:23:46.000000000 +0000 @@ -299,7 +299,7 @@ pr_debug("Setting vtag %x for secondary conntrack\n", sh->vtag); ct->proto.sctp.vtag[IP_CT_DIR_ORIGINAL] = sh->vtag; - } else { + } else if (sch->type == SCTP_CID_SHUTDOWN_ACK) { /* If it is a shutdown ack OOTB packet, we expect a return shutdown complete, otherwise an ABORT Sec 8.4 (5) and (8) */ pr_debug("Setting vtag %x for new conn OOTB\n", diff -Nru linux-5.10.209/net/netfilter/nf_log.c linux-5.10.216/net/netfilter/nf_log.c --- linux-5.10.209/net/netfilter/nf_log.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nf_log.c 2024-05-02 14:23:46.000000000 +0000 @@ -203,11 +203,12 @@ return; } - BUG_ON(loggers[pf][type] == NULL); - rcu_read_lock(); logger = rcu_dereference(loggers[pf][type]); - module_put(logger->me); + if (!logger) + WARN_ON_ONCE(1); + else + module_put(logger->me); rcu_read_unlock(); } EXPORT_SYMBOL_GPL(nf_logger_put); diff -Nru linux-5.10.209/net/netfilter/nf_tables_api.c linux-5.10.216/net/netfilter/nf_tables_api.c --- linux-5.10.209/net/netfilter/nf_tables_api.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nf_tables_api.c 2024-05-02 14:23:46.000000000 +0000 @@ -25,6 +25,7 @@ #include #define NFT_MODULE_AUTOLOAD_LIMIT (MODULE_NAME_LEN - sizeof("nft-expr-255-")) +#define NFT_SET_MAX_ANONLEN 16 unsigned int nf_tables_net_id __read_mostly; @@ -1083,6 +1084,24 @@ #define __NFT_TABLE_F_UPDATE (__NFT_TABLE_F_WAS_DORMANT | \ __NFT_TABLE_F_WAS_AWAKEN) +static bool nft_table_pending_update(const struct nft_ctx *ctx) +{ + struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id); + struct nft_trans *trans; + + if (ctx->table->flags & __NFT_TABLE_F_UPDATE) + return true; + + list_for_each_entry(trans, &nft_net->commit_list, list) { + if (trans->ctx.table == ctx->table && + trans->msg_type == NFT_MSG_DELCHAIN && + nft_is_base_chain(trans->ctx.chain)) + return true; + } + + return false; +} + static int nf_tables_updtable(struct nft_ctx *ctx) { struct nft_trans *trans; @@ -1096,11 +1115,11 @@ if (flags & ~NFT_TABLE_F_DORMANT) return -EINVAL; - if (flags == ctx->table->flags) + if (flags == (ctx->table->flags & NFT_TABLE_F_MASK)) return 0; /* No dormant off/on/off/on games in single transaction */ - if (ctx->table->flags & __NFT_TABLE_F_UPDATE) + if (nft_table_pending_update(ctx)) return -EINVAL; trans = nft_trans_alloc(ctx, NFT_MSG_NEWTABLE, @@ -1131,6 +1150,7 @@ return 0; err_register_hooks: + ctx->table->flags |= NFT_TABLE_F_DORMANT; nft_trans_destroy(trans); return ret; } @@ -2223,6 +2243,9 @@ struct nft_stats __percpu *stats = NULL; struct nft_chain_hook hook; + if (table->flags & __NFT_TABLE_F_UPDATE) + return -EINVAL; + if (flags & NFT_CHAIN_BINDING) return -EOPNOTSUPP; @@ -2716,7 +2739,7 @@ { const struct nft_expr_type *type, *candidate = NULL; - list_for_each_entry(type, &nf_tables_expressions, list) { + list_for_each_entry_rcu(type, &nf_tables_expressions, list) { if (!nla_strcmp(nla, type->name)) { if (!type->family && !candidate) candidate = type; @@ -2748,9 +2771,13 @@ if (nla == NULL) return ERR_PTR(-EINVAL); + rcu_read_lock(); type = __nft_expr_type_get(family, nla); - if (type != NULL && try_module_get(type->owner)) + if (type != NULL && try_module_get(type->owner)) { + rcu_read_unlock(); return type; + } + rcu_read_unlock(); lockdep_nfnl_nft_mutex_not_held(); #ifdef CONFIG_MODULES @@ -3930,6 +3957,9 @@ if (p[1] != 'd' || strchr(p + 2, '%')) return -EINVAL; + if (strnlen(name, NFT_SET_MAX_ANONLEN) >= NFT_SET_MAX_ANONLEN) + return -EINVAL; + inuse = (unsigned long *)get_zeroed_page(GFP_KERNEL); if (inuse == NULL) return -ENOMEM; @@ -4405,6 +4435,12 @@ if ((flags & (NFT_SET_EVAL | NFT_SET_OBJECT)) == (NFT_SET_EVAL | NFT_SET_OBJECT)) return -EOPNOTSUPP; + if ((flags & (NFT_SET_ANONYMOUS | NFT_SET_TIMEOUT | NFT_SET_EVAL)) == + (NFT_SET_ANONYMOUS | NFT_SET_TIMEOUT)) + return -EOPNOTSUPP; + if ((flags & (NFT_SET_CONSTANT | NFT_SET_TIMEOUT)) == + (NFT_SET_CONSTANT | NFT_SET_TIMEOUT)) + return -EOPNOTSUPP; } dtype = 0; @@ -4446,6 +4482,9 @@ if (!(flags & NFT_SET_TIMEOUT)) return -EINVAL; + if (flags & NFT_SET_ANONYMOUS) + return -EOPNOTSUPP; + err = nf_msecs_to_jiffies64(nla[NFTA_SET_TIMEOUT], &timeout); if (err) return err; @@ -4454,6 +4493,10 @@ if (nla[NFTA_SET_GC_INTERVAL] != NULL) { if (!(flags & NFT_SET_TIMEOUT)) return -EINVAL; + + if (flags & NFT_SET_ANONYMOUS) + return -EOPNOTSUPP; + gc_int = ntohl(nla_get_be32(nla[NFTA_SET_GC_INTERVAL])); } @@ -4749,6 +4792,7 @@ if (list_empty(&set->bindings) && nft_set_is_anonymous(set)) { list_del_rcu(&set->list); + set->dead = 1; if (event) nf_tables_set_notify(ctx, set, NFT_MSG_DELSET, GFP_KERNEL); @@ -6857,11 +6901,12 @@ return err; } +/* call under rcu_read_lock */ static const struct nf_flowtable_type *__nft_flowtable_type_get(u8 family) { const struct nf_flowtable_type *type; - list_for_each_entry(type, &nf_tables_flowtables, list) { + list_for_each_entry_rcu(type, &nf_tables_flowtables, list) { if (family == type->family) return type; } @@ -6873,9 +6918,13 @@ { const struct nf_flowtable_type *type; + rcu_read_lock(); type = __nft_flowtable_type_get(family); - if (type != NULL && try_module_get(type->owner)) + if (type != NULL && try_module_get(type->owner)) { + rcu_read_unlock(); return type; + } + rcu_read_unlock(); lockdep_nfnl_nft_mutex_not_held(); #ifdef CONFIG_MODULES @@ -8773,10 +8822,11 @@ struct nft_trans *trans, *next; LIST_HEAD(set_update_list); struct nft_trans_elem *te; + int err = 0; if (action == NFNL_ABORT_VALIDATE && nf_tables_validate(net) < 0) - return -EAGAIN; + err = -EAGAIN; list_for_each_entry_safe_reverse(trans, next, &nft_net->commit_list, list) { @@ -8936,12 +8986,7 @@ nf_tables_abort_release(trans); } - if (action == NFNL_ABORT_AUTOLOAD) - nf_tables_module_autoload(net); - else - nf_tables_module_autoload_cleanup(net); - - return 0; + return err; } static int nf_tables_abort(struct net *net, struct sk_buff *skb, @@ -8955,6 +9000,16 @@ ret = __nf_tables_abort(net, action); nft_gc_seq_end(nft_net, gc_seq); + WARN_ON_ONCE(!list_empty(&nft_net->commit_list)); + + /* module autoload needs to happen after GC sequence update because it + * temporarily releases and grabs mutex again. + */ + if (action == NFNL_ABORT_AUTOLOAD) + nf_tables_module_autoload(net); + else + nf_tables_module_autoload_cleanup(net); + mutex_unlock(&nft_net->commit_mutex); return ret; @@ -9336,16 +9391,10 @@ data->verdict.code = ntohl(nla_get_be32(tb[NFTA_VERDICT_CODE])); switch (data->verdict.code) { - default: - switch (data->verdict.code & NF_VERDICT_MASK) { - case NF_ACCEPT: - case NF_DROP: - case NF_QUEUE: - break; - default: - return -EINVAL; - } - fallthrough; + case NF_ACCEPT: + case NF_DROP: + case NF_QUEUE: + break; case NFT_CONTINUE: case NFT_BREAK: case NFT_RETURN: @@ -9380,6 +9429,8 @@ data->verdict.chain = chain; break; + default: + return -EINVAL; } desc->len = sizeof(data->verdict); @@ -9693,8 +9744,11 @@ gc_seq = nft_gc_seq_begin(nft_net); - if (!list_empty(&nft_net->commit_list)) - __nf_tables_abort(net, NFNL_ABORT_NONE); + WARN_ON_ONCE(!list_empty(&nft_net->commit_list)); + + if (!list_empty(&nft_net->module_list)) + nf_tables_module_autoload_cleanup(net); + __nft_release_tables(net); nft_gc_seq_end(nft_net, gc_seq); @@ -9778,6 +9832,7 @@ unregister_netdevice_notifier(&nf_tables_flowtable_notifier); nft_chain_filter_fini(); nft_chain_route_fini(); + nf_tables_trans_destroy_flush_work(); unregister_pernet_subsys(&nf_tables_net_ops); cancel_work_sync(&trans_gc_work); cancel_work_sync(&trans_destroy_work); diff -Nru linux-5.10.209/net/netfilter/nft_byteorder.c linux-5.10.216/net/netfilter/nft_byteorder.c --- linux-5.10.209/net/netfilter/nft_byteorder.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_byteorder.c 2024-05-02 14:23:46.000000000 +0000 @@ -38,20 +38,21 @@ switch (priv->size) { case 8: { + u64 *dst64 = (void *)dst; u64 src64; switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 8; i++) { src64 = nft_reg_load64(&src[i]); - nft_reg_store64(&dst[i], be64_to_cpu(src64)); + nft_reg_store64(&dst64[i], be64_to_cpu(src64)); } break; case NFT_BYTEORDER_HTON: for (i = 0; i < priv->len / 8; i++) { src64 = (__force __u64) cpu_to_be64(nft_reg_load64(&src[i])); - nft_reg_store64(&dst[i], src64); + nft_reg_store64(&dst64[i], src64); } break; } diff -Nru linux-5.10.209/net/netfilter/nft_chain_filter.c linux-5.10.216/net/netfilter/nft_chain_filter.c --- linux-5.10.209/net/netfilter/nft_chain_filter.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_chain_filter.c 2024-05-02 14:23:46.000000000 +0000 @@ -339,7 +339,9 @@ return; if (n > 1) { - nf_unregister_net_hook(ctx->net, &found->ops); + if (!(ctx->chain->table->flags & NFT_TABLE_F_DORMANT)) + nf_unregister_net_hook(ctx->net, &found->ops); + list_del_rcu(&found->list); kfree_rcu(found, rcu); return; @@ -358,9 +360,10 @@ unsigned long event, void *ptr) { struct net_device *dev = netdev_notifier_info_to_dev(ptr); + struct nft_base_chain *basechain; struct nftables_pernet *nft_net; - struct nft_table *table; struct nft_chain *chain, *nr; + struct nft_table *table; struct nft_ctx ctx = { .net = dev_net(dev), }; @@ -372,7 +375,8 @@ nft_net = net_generic(ctx.net, nf_tables_net_id); mutex_lock(&nft_net->commit_mutex); list_for_each_entry(table, &nft_net->tables, list) { - if (table->family != NFPROTO_NETDEV) + if (table->family != NFPROTO_NETDEV && + table->family != NFPROTO_INET) continue; ctx.family = table->family; @@ -381,6 +385,11 @@ if (!nft_is_base_chain(chain)) continue; + basechain = nft_base_chain(chain); + if (table->family == NFPROTO_INET && + basechain->ops.hooknum != NF_INET_INGRESS) + continue; + ctx.chain = chain; nft_netdev_event(event, dev, &ctx); } diff -Nru linux-5.10.209/net/netfilter/nft_compat.c linux-5.10.216/net/netfilter/nft_compat.c --- linux-5.10.209/net/netfilter/nft_compat.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_compat.c 2024-05-02 14:23:46.000000000 +0000 @@ -192,6 +192,7 @@ static int nft_parse_compat(const struct nlattr *attr, u16 *proto, bool *inv) { struct nlattr *tb[NFTA_RULE_COMPAT_MAX+1]; + u32 l4proto; u32 flags; int err; @@ -204,12 +205,18 @@ return -EINVAL; flags = ntohl(nla_get_be32(tb[NFTA_RULE_COMPAT_FLAGS])); - if (flags & ~NFT_RULE_COMPAT_F_MASK) + if (flags & NFT_RULE_COMPAT_F_UNUSED || + flags & ~NFT_RULE_COMPAT_F_MASK) return -EINVAL; if (flags & NFT_RULE_COMPAT_F_INV) *inv = true; - *proto = ntohl(nla_get_be32(tb[NFTA_RULE_COMPAT_PROTO])); + l4proto = ntohl(nla_get_be32(tb[NFTA_RULE_COMPAT_PROTO])); + if (l4proto > U16_MAX) + return -EINVAL; + + *proto = l4proto; + return 0; } @@ -327,6 +334,22 @@ unsigned int hook_mask = 0; int ret; + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET && + ctx->family != NFPROTO_BRIDGE && + ctx->family != NFPROTO_ARP) + return -EOPNOTSUPP; + + ret = nft_chain_validate_hooks(ctx->chain, + (1 << NF_INET_PRE_ROUTING) | + (1 << NF_INET_LOCAL_IN) | + (1 << NF_INET_FORWARD) | + (1 << NF_INET_LOCAL_OUT) | + (1 << NF_INET_POST_ROUTING)); + if (ret) + return ret; + if (nft_is_base_chain(ctx->chain)) { const struct nft_base_chain *basechain = nft_base_chain(ctx->chain); @@ -569,6 +592,22 @@ unsigned int hook_mask = 0; int ret; + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET && + ctx->family != NFPROTO_BRIDGE && + ctx->family != NFPROTO_ARP) + return -EOPNOTSUPP; + + ret = nft_chain_validate_hooks(ctx->chain, + (1 << NF_INET_PRE_ROUTING) | + (1 << NF_INET_LOCAL_IN) | + (1 << NF_INET_FORWARD) | + (1 << NF_INET_LOCAL_OUT) | + (1 << NF_INET_POST_ROUTING)); + if (ret) + return ret; + if (nft_is_base_chain(ctx->chain)) { const struct nft_base_chain *basechain = nft_base_chain(ctx->chain); diff -Nru linux-5.10.209/net/netfilter/nft_ct.c linux-5.10.216/net/netfilter/nft_ct.c --- linux-5.10.209/net/netfilter/nft_ct.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_ct.c 2024-05-02 14:23:46.000000000 +0000 @@ -482,6 +482,9 @@ break; #endif case NFT_CT_ID: + if (tb[NFTA_CT_DIRECTION]) + return -EINVAL; + len = sizeof(u32); break; default: @@ -1182,7 +1185,30 @@ if (tb[NFTA_CT_EXPECT_L3PROTO]) priv->l3num = ntohs(nla_get_be16(tb[NFTA_CT_EXPECT_L3PROTO])); + switch (priv->l3num) { + case NFPROTO_IPV4: + case NFPROTO_IPV6: + if (priv->l3num == ctx->family || ctx->family == NFPROTO_INET) + break; + + return -EINVAL; + case NFPROTO_INET: /* tuple.src.l3num supports NFPROTO_IPV4/6 only */ + default: + return -EAFNOSUPPORT; + } + priv->l4proto = nla_get_u8(tb[NFTA_CT_EXPECT_L4PROTO]); + switch (priv->l4proto) { + case IPPROTO_TCP: + case IPPROTO_UDP: + case IPPROTO_UDPLITE: + case IPPROTO_DCCP: + case IPPROTO_SCTP: + break; + default: + return -EOPNOTSUPP; + } + priv->dport = nla_get_be16(tb[NFTA_CT_EXPECT_DPORT]); priv->timeout = nla_get_u32(tb[NFTA_CT_EXPECT_TIMEOUT]); priv->size = nla_get_u8(tb[NFTA_CT_EXPECT_SIZE]); diff -Nru linux-5.10.209/net/netfilter/nft_flow_offload.c linux-5.10.216/net/netfilter/nft_flow_offload.c --- linux-5.10.209/net/netfilter/nft_flow_offload.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_flow_offload.c 2024-05-02 14:23:46.000000000 +0000 @@ -150,6 +150,11 @@ { unsigned int hook_mask = (1 << NF_INET_FORWARD); + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + return nft_chain_validate_hooks(ctx->chain, hook_mask); } diff -Nru linux-5.10.209/net/netfilter/nft_meta.c linux-5.10.216/net/netfilter/nft_meta.c --- linux-5.10.209/net/netfilter/nft_meta.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_meta.c 2024-05-02 14:23:46.000000000 +0000 @@ -63,7 +63,7 @@ { switch (key) { case NFT_META_TIME_NS: - nft_reg_store64(dest, ktime_get_real_ns()); + nft_reg_store64((u64 *)dest, ktime_get_real_ns()); break; case NFT_META_TIME_DAY: nft_reg_store8(dest, nft_meta_weekday()); diff -Nru linux-5.10.209/net/netfilter/nft_nat.c linux-5.10.216/net/netfilter/nft_nat.c --- linux-5.10.209/net/netfilter/nft_nat.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_nat.c 2024-05-02 14:23:46.000000000 +0000 @@ -142,6 +142,11 @@ struct nft_nat *priv = nft_expr_priv(expr); int err; + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + err = nft_chain_validate_dependency(ctx->chain, NFT_CHAIN_T_NAT); if (err < 0) return err; diff -Nru linux-5.10.209/net/netfilter/nft_rt.c linux-5.10.216/net/netfilter/nft_rt.c --- linux-5.10.209/net/netfilter/nft_rt.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_rt.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,6 +166,11 @@ const struct nft_rt *priv = nft_expr_priv(expr); unsigned int hooks; + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + switch (priv->key) { case NFT_RT_NEXTHOP4: case NFT_RT_NEXTHOP6: diff -Nru linux-5.10.209/net/netfilter/nft_set_pipapo.c linux-5.10.216/net/netfilter/nft_set_pipapo.c --- linux-5.10.209/net/netfilter/nft_set_pipapo.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_set_pipapo.c 2024-05-02 14:23:46.000000000 +0000 @@ -342,9 +342,6 @@ #include "nft_set_pipapo_avx2.h" #include "nft_set_pipapo.h" -/* Current working bitmap index, toggled between field matches */ -static DEFINE_PER_CPU(bool, nft_pipapo_scratch_index); - /** * pipapo_refill() - For each set bit, set bits from selected mapping table item * @map: Bitmap to be scanned for set bits @@ -412,6 +409,7 @@ const u32 *key, const struct nft_set_ext **ext) { struct nft_pipapo *priv = nft_set_priv(set); + struct nft_pipapo_scratch *scratch; unsigned long *res_map, *fill_map; u8 genmask = nft_genmask_cur(net); const u8 *rp = (const u8 *)key; @@ -422,15 +420,17 @@ local_bh_disable(); - map_index = raw_cpu_read(nft_pipapo_scratch_index); - m = rcu_dereference(priv->match); if (unlikely(!m || !*raw_cpu_ptr(m->scratch))) goto out; - res_map = *raw_cpu_ptr(m->scratch) + (map_index ? m->bsize_max : 0); - fill_map = *raw_cpu_ptr(m->scratch) + (map_index ? 0 : m->bsize_max); + scratch = *raw_cpu_ptr(m->scratch); + + map_index = scratch->map_index; + + res_map = scratch->map + (map_index ? m->bsize_max : 0); + fill_map = scratch->map + (map_index ? 0 : m->bsize_max); memset(res_map, 0xff, m->bsize_max * sizeof(*res_map)); @@ -460,7 +460,7 @@ b = pipapo_refill(res_map, f->bsize, f->rules, fill_map, f->mt, last); if (b < 0) { - raw_cpu_write(nft_pipapo_scratch_index, map_index); + scratch->map_index = map_index; local_bh_enable(); return false; @@ -477,7 +477,7 @@ * current inactive bitmap is clean and can be reused as * *next* bitmap (not initial) for the next packet. */ - raw_cpu_write(nft_pipapo_scratch_index, map_index); + scratch->map_index = map_index; local_bh_enable(); return true; @@ -1102,6 +1102,25 @@ } /** + * pipapo_free_scratch() - Free per-CPU map at original (not aligned) address + * @m: Matching data + * @cpu: CPU number + */ +static void pipapo_free_scratch(const struct nft_pipapo_match *m, unsigned int cpu) +{ + struct nft_pipapo_scratch *s; + void *mem; + + s = *per_cpu_ptr(m->scratch, cpu); + if (!s) + return; + + mem = s; + mem -= s->align_off; + kfree(mem); +} + +/** * pipapo_realloc_scratch() - Reallocate scratch maps for partial match results * @clone: Copy of matching data with pending insertions and deletions * @bsize_max: Maximum bucket size, scratch maps cover two buckets @@ -1114,12 +1133,13 @@ int i; for_each_possible_cpu(i) { - unsigned long *scratch; + struct nft_pipapo_scratch *scratch; #ifdef NFT_PIPAPO_ALIGN - unsigned long *scratch_aligned; + void *scratch_aligned; + u32 align_off; #endif - - scratch = kzalloc_node(bsize_max * sizeof(*scratch) * 2 + + scratch = kzalloc_node(struct_size(scratch, map, + bsize_max * 2) + NFT_PIPAPO_ALIGN_HEADROOM, GFP_KERNEL, cpu_to_node(i)); if (!scratch) { @@ -1133,14 +1153,25 @@ return -ENOMEM; } - kfree(*per_cpu_ptr(clone->scratch, i)); - - *per_cpu_ptr(clone->scratch, i) = scratch; + pipapo_free_scratch(clone, i); #ifdef NFT_PIPAPO_ALIGN - scratch_aligned = NFT_PIPAPO_LT_ALIGN(scratch); - *per_cpu_ptr(clone->scratch_aligned, i) = scratch_aligned; + /* Align &scratch->map (not the struct itself): the extra + * %NFT_PIPAPO_ALIGN_HEADROOM bytes passed to kzalloc_node() + * above guarantee we can waste up to those bytes in order + * to align the map field regardless of its offset within + * the struct. + */ + BUILD_BUG_ON(offsetof(struct nft_pipapo_scratch, map) > NFT_PIPAPO_ALIGN_HEADROOM); + + scratch_aligned = NFT_PIPAPO_LT_ALIGN(&scratch->map); + scratch_aligned -= offsetof(struct nft_pipapo_scratch, map); + align_off = scratch_aligned - (void *)scratch; + + scratch = scratch_aligned; + scratch->align_off = align_off; #endif + *per_cpu_ptr(clone->scratch, i) = scratch; } return 0; @@ -1294,11 +1325,6 @@ if (!new->scratch) goto out_scratch; -#ifdef NFT_PIPAPO_ALIGN - new->scratch_aligned = alloc_percpu(*new->scratch_aligned); - if (!new->scratch_aligned) - goto out_scratch; -#endif for_each_possible_cpu(i) *per_cpu_ptr(new->scratch, i) = NULL; @@ -1350,10 +1376,7 @@ } out_scratch_realloc: for_each_possible_cpu(i) - kfree(*per_cpu_ptr(new->scratch, i)); -#ifdef NFT_PIPAPO_ALIGN - free_percpu(new->scratch_aligned); -#endif + pipapo_free_scratch(new, i); out_scratch: free_percpu(new->scratch); kfree(new); @@ -1635,13 +1658,9 @@ int i; for_each_possible_cpu(i) - kfree(*per_cpu_ptr(m->scratch, i)); + pipapo_free_scratch(m, i); -#ifdef NFT_PIPAPO_ALIGN - free_percpu(m->scratch_aligned); -#endif free_percpu(m->scratch); - pipapo_free_fields(m); kfree(m); @@ -1961,6 +1980,8 @@ rules_fx = rules_f0; nft_pipapo_for_each_field(f, i, m) { + bool last = i == m->field_count - 1; + if (!pipapo_match_field(f, start, rules_fx, match_start, match_end)) break; @@ -1973,16 +1994,18 @@ match_start += NFT_PIPAPO_GROUPS_PADDED_SIZE(f); match_end += NFT_PIPAPO_GROUPS_PADDED_SIZE(f); - } - if (i == m->field_count) { - priv->dirty = true; - pipapo_drop(m, rulemap); - return; + if (last && f->mt[rulemap[i].to].e == e) { + priv->dirty = true; + pipapo_drop(m, rulemap); + return; + } } first_rule += rules_f0; } + + WARN_ON_ONCE(1); /* elem_priv not found */ } /** @@ -2118,7 +2141,7 @@ m->field_count = field_count; m->bsize_max = 0; - m->scratch = alloc_percpu(unsigned long *); + m->scratch = alloc_percpu(struct nft_pipapo_scratch *); if (!m->scratch) { err = -ENOMEM; goto out_scratch; @@ -2126,16 +2149,6 @@ for_each_possible_cpu(i) *per_cpu_ptr(m->scratch, i) = NULL; -#ifdef NFT_PIPAPO_ALIGN - m->scratch_aligned = alloc_percpu(unsigned long *); - if (!m->scratch_aligned) { - err = -ENOMEM; - goto out_free; - } - for_each_possible_cpu(i) - *per_cpu_ptr(m->scratch_aligned, i) = NULL; -#endif - rcu_head_init(&m->rcu); nft_pipapo_for_each_field(f, i, m) { @@ -2166,9 +2179,6 @@ return 0; out_free: -#ifdef NFT_PIPAPO_ALIGN - free_percpu(m->scratch_aligned); -#endif free_percpu(m->scratch); out_scratch: kfree(m); @@ -2220,13 +2230,8 @@ if (m) { rcu_barrier(); - nft_set_pipapo_match_destroy(ctx, set, m); - -#ifdef NFT_PIPAPO_ALIGN - free_percpu(m->scratch_aligned); -#endif for_each_possible_cpu(cpu) - kfree(*per_cpu_ptr(m->scratch, cpu)); + pipapo_free_scratch(m, cpu); free_percpu(m->scratch); pipapo_free_fields(m); kfree(m); @@ -2236,14 +2241,10 @@ if (priv->clone) { m = priv->clone; - if (priv->dirty) - nft_set_pipapo_match_destroy(ctx, set, m); + nft_set_pipapo_match_destroy(ctx, set, m); -#ifdef NFT_PIPAPO_ALIGN - free_percpu(priv->clone->scratch_aligned); -#endif for_each_possible_cpu(cpu) - kfree(*per_cpu_ptr(priv->clone->scratch, cpu)); + pipapo_free_scratch(priv->clone, cpu); free_percpu(priv->clone->scratch); pipapo_free_fields(priv->clone); diff -Nru linux-5.10.209/net/netfilter/nft_set_pipapo.h linux-5.10.216/net/netfilter/nft_set_pipapo.h --- linux-5.10.209/net/netfilter/nft_set_pipapo.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_set_pipapo.h 2024-05-02 14:23:46.000000000 +0000 @@ -131,20 +131,28 @@ }; /** + * struct nft_pipapo_scratch - percpu data used for lookup and matching + * @map_index: Current working bitmap index, toggled between field matches + * @align_off: Offset to get the originally allocated address + * @map: store partial matching results during lookup + */ +struct nft_pipapo_scratch { + u8 map_index; + u32 align_off; + unsigned long map[]; +}; + +/** * struct nft_pipapo_match - Data used for lookup and matching * @field_count Amount of fields in set * @scratch: Preallocated per-CPU maps for partial matching results - * @scratch_aligned: Version of @scratch aligned to NFT_PIPAPO_ALIGN bytes * @bsize_max: Maximum lookup table bucket size of all fields, in longs * @rcu Matching data is swapped on commits * @f: Fields, with lookup and mapping tables */ struct nft_pipapo_match { int field_count; -#ifdef NFT_PIPAPO_ALIGN - unsigned long * __percpu *scratch_aligned; -#endif - unsigned long * __percpu *scratch; + struct nft_pipapo_scratch * __percpu *scratch; size_t bsize_max; struct rcu_head rcu; struct nft_pipapo_field f[]; diff -Nru linux-5.10.209/net/netfilter/nft_set_pipapo_avx2.c linux-5.10.216/net/netfilter/nft_set_pipapo_avx2.c --- linux-5.10.209/net/netfilter/nft_set_pipapo_avx2.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_set_pipapo_avx2.c 2024-05-02 14:23:46.000000000 +0000 @@ -71,9 +71,6 @@ #define NFT_PIPAPO_AVX2_ZERO(reg) \ asm volatile("vpxor %ymm" #reg ", %ymm" #reg ", %ymm" #reg) -/* Current working bitmap index, toggled between field matches */ -static DEFINE_PER_CPU(bool, nft_pipapo_avx2_scratch_index); - /** * nft_pipapo_avx2_prepare() - Prepare before main algorithm body * @@ -1123,11 +1120,12 @@ const u32 *key, const struct nft_set_ext **ext) { struct nft_pipapo *priv = nft_set_priv(set); - unsigned long *res, *fill, *scratch; + struct nft_pipapo_scratch *scratch; u8 genmask = nft_genmask_cur(net); const u8 *rp = (const u8 *)key; struct nft_pipapo_match *m; struct nft_pipapo_field *f; + unsigned long *res, *fill; bool map_index; int i, ret = 0; @@ -1139,15 +1137,16 @@ /* This also protects access to all data related to scratch maps */ kernel_fpu_begin(); - scratch = *raw_cpu_ptr(m->scratch_aligned); + scratch = *raw_cpu_ptr(m->scratch); if (unlikely(!scratch)) { kernel_fpu_end(); return false; } - map_index = raw_cpu_read(nft_pipapo_avx2_scratch_index); - res = scratch + (map_index ? m->bsize_max : 0); - fill = scratch + (map_index ? 0 : m->bsize_max); + map_index = scratch->map_index; + + res = scratch->map + (map_index ? m->bsize_max : 0); + fill = scratch->map + (map_index ? 0 : m->bsize_max); /* Starting map doesn't need to be set for this implementation */ @@ -1219,7 +1218,7 @@ out: if (i % 2) - raw_cpu_write(nft_pipapo_avx2_scratch_index, !map_index); + scratch->map_index = !map_index; kernel_fpu_end(); return ret >= 0; diff -Nru linux-5.10.209/net/netfilter/nft_set_rbtree.c linux-5.10.216/net/netfilter/nft_set_rbtree.c --- linux-5.10.209/net/netfilter/nft_set_rbtree.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_set_rbtree.c 2024-05-02 14:23:46.000000000 +0000 @@ -237,7 +237,7 @@ static const struct nft_rbtree_elem * nft_rbtree_gc_elem(const struct nft_set *__set, struct nft_rbtree *priv, - struct nft_rbtree_elem *rbe, u8 genmask) + struct nft_rbtree_elem *rbe) { struct nft_set *set = (struct nft_set *)__set; struct rb_node *prev = rb_prev(&rbe->node); @@ -256,7 +256,7 @@ while (prev) { rbe_prev = rb_entry(prev, struct nft_rbtree_elem, node); if (nft_rbtree_interval_end(rbe_prev) && - nft_set_elem_active(&rbe_prev->ext, genmask)) + nft_set_elem_active(&rbe_prev->ext, NFT_GENMASK_ANY)) break; prev = rb_prev(prev); @@ -367,7 +367,7 @@ nft_set_elem_active(&rbe->ext, cur_genmask)) { const struct nft_rbtree_elem *removed_end; - removed_end = nft_rbtree_gc_elem(set, priv, rbe, genmask); + removed_end = nft_rbtree_gc_elem(set, priv, rbe); if (IS_ERR(removed_end)) return PTR_ERR(removed_end); diff -Nru linux-5.10.209/net/netfilter/nft_socket.c linux-5.10.216/net/netfilter/nft_socket.c --- linux-5.10.209/net/netfilter/nft_socket.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_socket.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,6 +166,11 @@ const struct nft_expr *expr, const struct nft_data **data) { + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + return nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_PRE_ROUTING) | (1 << NF_INET_LOCAL_IN) | diff -Nru linux-5.10.209/net/netfilter/nft_synproxy.c linux-5.10.216/net/netfilter/nft_synproxy.c --- linux-5.10.209/net/netfilter/nft_synproxy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_synproxy.c 2024-05-02 14:23:46.000000000 +0000 @@ -186,7 +186,6 @@ break; #endif case NFPROTO_INET: - case NFPROTO_BRIDGE: err = nf_synproxy_ipv4_init(snet, ctx->net); if (err) goto nf_ct_failure; @@ -219,7 +218,6 @@ break; #endif case NFPROTO_INET: - case NFPROTO_BRIDGE: nf_synproxy_ipv4_fini(snet, ctx->net); nf_synproxy_ipv6_fini(snet, ctx->net); break; @@ -253,6 +251,11 @@ const struct nft_expr *expr, const struct nft_data **data) { + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + return nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_LOCAL_IN) | (1 << NF_INET_FORWARD)); } diff -Nru linux-5.10.209/net/netfilter/nft_tproxy.c linux-5.10.216/net/netfilter/nft_tproxy.c --- linux-5.10.209/net/netfilter/nft_tproxy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_tproxy.c 2024-05-02 14:23:46.000000000 +0000 @@ -293,6 +293,11 @@ const struct nft_expr *expr, const struct nft_data **data) { + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + return nft_chain_validate_hooks(ctx->chain, 1 << NF_INET_PRE_ROUTING); } diff -Nru linux-5.10.209/net/netfilter/nft_xfrm.c linux-5.10.216/net/netfilter/nft_xfrm.c --- linux-5.10.209/net/netfilter/nft_xfrm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netfilter/nft_xfrm.c 2024-05-02 14:23:46.000000000 +0000 @@ -233,6 +233,11 @@ const struct nft_xfrm *priv = nft_expr_priv(expr); unsigned int hooks; + if (ctx->family != NFPROTO_IPV4 && + ctx->family != NFPROTO_IPV6 && + ctx->family != NFPROTO_INET) + return -EOPNOTSUPP; + switch (priv->dir) { case XFRM_POLICY_IN: hooks = (1 << NF_INET_FORWARD) | diff -Nru linux-5.10.209/net/netlink/af_netlink.c linux-5.10.216/net/netlink/af_netlink.c --- linux-5.10.209/net/netlink/af_netlink.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netlink/af_netlink.c 2024-05-02 14:23:46.000000000 +0000 @@ -157,7 +157,7 @@ static struct sk_buff *netlink_to_full_skb(const struct sk_buff *skb, gfp_t gfp_mask) { - unsigned int len = skb_end_offset(skb); + unsigned int len = skb->len; struct sk_buff *new; new = alloc_skb(len, gfp_mask); @@ -366,7 +366,7 @@ if (is_vmalloc_addr(skb->head)) { if (!skb->cloned || !atomic_dec_return(&(skb_shinfo(skb)->dataref))) - vfree(skb->head); + vfree_atomic(skb->head); skb->head = NULL; } diff -Nru linux-5.10.209/net/netrom/af_netrom.c linux-5.10.216/net/netrom/af_netrom.c --- linux-5.10.209/net/netrom/af_netrom.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/af_netrom.c 2024-05-02 14:23:46.000000000 +0000 @@ -453,16 +453,16 @@ nr_init_timers(sk); nr->t1 = - msecs_to_jiffies(sysctl_netrom_transport_timeout); + msecs_to_jiffies(READ_ONCE(sysctl_netrom_transport_timeout)); nr->t2 = - msecs_to_jiffies(sysctl_netrom_transport_acknowledge_delay); + msecs_to_jiffies(READ_ONCE(sysctl_netrom_transport_acknowledge_delay)); nr->n2 = - msecs_to_jiffies(sysctl_netrom_transport_maximum_tries); + msecs_to_jiffies(READ_ONCE(sysctl_netrom_transport_maximum_tries)); nr->t4 = - msecs_to_jiffies(sysctl_netrom_transport_busy_delay); + msecs_to_jiffies(READ_ONCE(sysctl_netrom_transport_busy_delay)); nr->idle = - msecs_to_jiffies(sysctl_netrom_transport_no_activity_timeout); - nr->window = sysctl_netrom_transport_requested_window_size; + msecs_to_jiffies(READ_ONCE(sysctl_netrom_transport_no_activity_timeout)); + nr->window = READ_ONCE(sysctl_netrom_transport_requested_window_size); nr->bpqext = 1; nr->state = NR_STATE_0; @@ -954,7 +954,7 @@ * G8PZT's Xrouter which is sending packets with command type 7 * as an extension of the protocol. */ - if (sysctl_netrom_reset_circuit && + if (READ_ONCE(sysctl_netrom_reset_circuit) && (frametype != NR_RESET || flags != 0)) nr_transmit_reset(skb, 1); diff -Nru linux-5.10.209/net/netrom/nr_dev.c linux-5.10.216/net/netrom/nr_dev.c --- linux-5.10.209/net/netrom/nr_dev.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/nr_dev.c 2024-05-02 14:23:46.000000000 +0000 @@ -81,7 +81,7 @@ buff[6] |= AX25_SSSID_SPARE; buff += AX25_ADDR_LEN; - *buff++ = sysctl_netrom_network_ttl_initialiser; + *buff++ = READ_ONCE(sysctl_netrom_network_ttl_initialiser); *buff++ = NR_PROTO_IP; *buff++ = NR_PROTO_IP; diff -Nru linux-5.10.209/net/netrom/nr_in.c linux-5.10.216/net/netrom/nr_in.c --- linux-5.10.209/net/netrom/nr_in.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/nr_in.c 2024-05-02 14:23:46.000000000 +0000 @@ -97,7 +97,7 @@ break; case NR_RESET: - if (sysctl_netrom_reset_circuit) + if (READ_ONCE(sysctl_netrom_reset_circuit)) nr_disconnect(sk, ECONNRESET); break; @@ -128,7 +128,7 @@ break; case NR_RESET: - if (sysctl_netrom_reset_circuit) + if (READ_ONCE(sysctl_netrom_reset_circuit)) nr_disconnect(sk, ECONNRESET); break; @@ -263,7 +263,7 @@ break; case NR_RESET: - if (sysctl_netrom_reset_circuit) + if (READ_ONCE(sysctl_netrom_reset_circuit)) nr_disconnect(sk, ECONNRESET); break; diff -Nru linux-5.10.209/net/netrom/nr_out.c linux-5.10.216/net/netrom/nr_out.c --- linux-5.10.209/net/netrom/nr_out.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/nr_out.c 2024-05-02 14:23:46.000000000 +0000 @@ -204,7 +204,7 @@ dptr[6] |= AX25_SSSID_SPARE; dptr += AX25_ADDR_LEN; - *dptr++ = sysctl_netrom_network_ttl_initialiser; + *dptr++ = READ_ONCE(sysctl_netrom_network_ttl_initialiser); if (!nr_route_frame(skb, NULL)) { kfree_skb(skb); diff -Nru linux-5.10.209/net/netrom/nr_route.c linux-5.10.216/net/netrom/nr_route.c --- linux-5.10.209/net/netrom/nr_route.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/nr_route.c 2024-05-02 14:23:46.000000000 +0000 @@ -153,7 +153,7 @@ nr_neigh->digipeat = NULL; nr_neigh->ax25 = NULL; nr_neigh->dev = dev; - nr_neigh->quality = sysctl_netrom_default_path_quality; + nr_neigh->quality = READ_ONCE(sysctl_netrom_default_path_quality); nr_neigh->locked = 0; nr_neigh->count = 0; nr_neigh->number = nr_neigh_no++; @@ -725,7 +725,7 @@ nr_neigh->ax25 = NULL; ax25_cb_put(ax25); - if (++nr_neigh->failed < sysctl_netrom_link_fails_count) { + if (++nr_neigh->failed < READ_ONCE(sysctl_netrom_link_fails_count)) { nr_neigh_put(nr_neigh); return; } @@ -763,7 +763,7 @@ if (ax25 != NULL) { ret = nr_add_node(nr_src, "", &ax25->dest_addr, ax25->digipeat, ax25->ax25_dev->dev, 0, - sysctl_netrom_obsolescence_count_initialiser); + READ_ONCE(sysctl_netrom_obsolescence_count_initialiser)); if (ret) return ret; } @@ -777,7 +777,7 @@ return ret; } - if (!sysctl_netrom_routing_control && ax25 != NULL) + if (!READ_ONCE(sysctl_netrom_routing_control) && ax25 != NULL) return 0; /* Its Time-To-Live has expired */ diff -Nru linux-5.10.209/net/netrom/nr_subr.c linux-5.10.216/net/netrom/nr_subr.c --- linux-5.10.209/net/netrom/nr_subr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/netrom/nr_subr.c 2024-05-02 14:23:46.000000000 +0000 @@ -182,7 +182,8 @@ *dptr++ = nr->my_id; *dptr++ = frametype; *dptr++ = nr->window; - if (nr->bpqext) *dptr++ = sysctl_netrom_network_ttl_initialiser; + if (nr->bpqext) + *dptr++ = READ_ONCE(sysctl_netrom_network_ttl_initialiser); break; case NR_DISCREQ: @@ -236,7 +237,7 @@ dptr[6] |= AX25_SSSID_SPARE; dptr += AX25_ADDR_LEN; - *dptr++ = sysctl_netrom_network_ttl_initialiser; + *dptr++ = READ_ONCE(sysctl_netrom_network_ttl_initialiser); if (mine) { *dptr++ = 0; diff -Nru linux-5.10.209/net/nfc/nci/core.c linux-5.10.216/net/nfc/nci/core.c --- linux-5.10.209/net/nfc/nci/core.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/nfc/nci/core.c 2024-05-02 14:23:46.000000000 +0000 @@ -1197,6 +1197,10 @@ { nfc_free_device(ndev->nfc_dev); nci_hci_deallocate(ndev); + + /* drop partial rx data packet if present */ + if (ndev->rx_data_reassembly) + kfree_skb(ndev->rx_data_reassembly); kfree(ndev); } EXPORT_SYMBOL(nci_free_device); @@ -1498,6 +1502,11 @@ nfc_send_to_raw_sock(ndev->nfc_dev, skb, RAW_PAYLOAD_NCI, NFC_DIRECTION_RX); + if (!nci_plen(skb->data)) { + kfree_skb(skb); + break; + } + /* Process frame */ switch (nci_mt(skb->data)) { case NCI_MT_RSP_PKT: diff -Nru linux-5.10.209/net/openvswitch/conntrack.c linux-5.10.216/net/openvswitch/conntrack.c --- linux-5.10.209/net/openvswitch/conntrack.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/openvswitch/conntrack.c 2024-05-02 14:23:46.000000000 +0000 @@ -1692,8 +1692,9 @@ if (ct_info.timeout[0]) { if (nf_ct_set_timeout(net, ct_info.ct, family, key->ip.proto, ct_info.timeout)) - pr_info_ratelimited("Failed to associated timeout " - "policy `%s'\n", ct_info.timeout); + OVS_NLERR(log, + "Failed to associated timeout policy '%s'", + ct_info.timeout); else ct_info.nf_ct_timeout = rcu_dereference( nf_ct_timeout_find(ct_info.ct)->timeout); @@ -1901,9 +1902,9 @@ for (i = 0; i < CT_LIMIT_HASH_BUCKETS; ++i) { struct hlist_head *head = &info->limits[i]; struct ovs_ct_limit *ct_limit; + struct hlist_node *next; - hlist_for_each_entry_rcu(ct_limit, head, hlist_node, - lockdep_ovsl_is_held()) + hlist_for_each_entry_safe(ct_limit, next, head, hlist_node) kfree_rcu(ct_limit, rcu); } kfree(info->limits); diff -Nru linux-5.10.209/net/openvswitch/flow_netlink.c linux-5.10.216/net/openvswitch/flow_netlink.c --- linux-5.10.209/net/openvswitch/flow_netlink.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/openvswitch/flow_netlink.c 2024-05-02 14:23:46.000000000 +0000 @@ -47,6 +47,7 @@ #define OVS_ATTR_NESTED -1 #define OVS_ATTR_VARIABLE -2 +#define OVS_COPY_ACTIONS_MAX_DEPTH 16 static bool actions_may_change_flow(const struct nlattr *actions) { @@ -2514,13 +2515,15 @@ const struct sw_flow_key *key, struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, - u32 mpls_label_count, bool log); + u32 mpls_label_count, bool log, + u32 depth); static int validate_and_copy_sample(struct net *net, const struct nlattr *attr, const struct sw_flow_key *key, struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, - u32 mpls_label_count, bool log, bool last) + u32 mpls_label_count, bool log, bool last, + u32 depth) { const struct nlattr *attrs[OVS_SAMPLE_ATTR_MAX + 1]; const struct nlattr *probability, *actions; @@ -2571,7 +2574,8 @@ return err; err = __ovs_nla_copy_actions(net, actions, key, sfa, - eth_type, vlan_tci, mpls_label_count, log); + eth_type, vlan_tci, mpls_label_count, log, + depth + 1); if (err) return err; @@ -2586,7 +2590,8 @@ const struct sw_flow_key *key, struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, - u32 mpls_label_count, bool log) + u32 mpls_label_count, bool log, + u32 depth) { const struct nlattr *attrs[OVS_DEC_TTL_ATTR_MAX + 1]; int start, action_start, err, rem; @@ -2619,7 +2624,8 @@ return action_start; err = __ovs_nla_copy_actions(net, actions, key, sfa, eth_type, - vlan_tci, mpls_label_count, log); + vlan_tci, mpls_label_count, log, + depth + 1); if (err) return err; @@ -2633,7 +2639,8 @@ const struct sw_flow_key *key, struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, - u32 mpls_label_count, bool log, bool last) + u32 mpls_label_count, bool log, bool last, + u32 depth) { int start, err; u32 exec; @@ -2653,7 +2660,8 @@ return err; err = __ovs_nla_copy_actions(net, attr, key, sfa, - eth_type, vlan_tci, mpls_label_count, log); + eth_type, vlan_tci, mpls_label_count, log, + depth + 1); if (err) return err; @@ -3022,7 +3030,7 @@ struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, u32 mpls_label_count, - bool log, bool last) + bool log, bool last, u32 depth) { const struct nlattr *acts_if_greater, *acts_if_lesser_eq; struct nlattr *a[OVS_CHECK_PKT_LEN_ATTR_MAX + 1]; @@ -3070,7 +3078,8 @@ return nested_acts_start; err = __ovs_nla_copy_actions(net, acts_if_lesser_eq, key, sfa, - eth_type, vlan_tci, mpls_label_count, log); + eth_type, vlan_tci, mpls_label_count, log, + depth + 1); if (err) return err; @@ -3083,7 +3092,8 @@ return nested_acts_start; err = __ovs_nla_copy_actions(net, acts_if_greater, key, sfa, - eth_type, vlan_tci, mpls_label_count, log); + eth_type, vlan_tci, mpls_label_count, log, + depth + 1); if (err) return err; @@ -3111,12 +3121,16 @@ const struct sw_flow_key *key, struct sw_flow_actions **sfa, __be16 eth_type, __be16 vlan_tci, - u32 mpls_label_count, bool log) + u32 mpls_label_count, bool log, + u32 depth) { u8 mac_proto = ovs_key_mac_proto(key); const struct nlattr *a; int rem, err; + if (depth > OVS_COPY_ACTIONS_MAX_DEPTH) + return -EOVERFLOW; + nla_for_each_nested(a, attr, rem) { /* Expected argument lengths, (u32)-1 for variable length. */ static const u32 action_lens[OVS_ACTION_ATTR_MAX + 1] = { @@ -3311,7 +3325,7 @@ err = validate_and_copy_sample(net, a, key, sfa, eth_type, vlan_tci, mpls_label_count, - log, last); + log, last, depth); if (err) return err; skip_copy = true; @@ -3382,7 +3396,7 @@ err = validate_and_copy_clone(net, a, key, sfa, eth_type, vlan_tci, mpls_label_count, - log, last); + log, last, depth); if (err) return err; skip_copy = true; @@ -3396,7 +3410,8 @@ eth_type, vlan_tci, mpls_label_count, - log, last); + log, last, + depth); if (err) return err; skip_copy = true; @@ -3406,7 +3421,8 @@ case OVS_ACTION_ATTR_DEC_TTL: err = validate_and_copy_dec_ttl(net, a, key, sfa, eth_type, vlan_tci, - mpls_label_count, log); + mpls_label_count, log, + depth); if (err) return err; skip_copy = true; @@ -3446,7 +3462,8 @@ (*sfa)->orig_len = nla_len(attr); err = __ovs_nla_copy_actions(net, attr, key, sfa, key->eth.type, - key->eth.vlan.tci, mpls_label_count, log); + key->eth.vlan.tci, mpls_label_count, log, + 0); if (err) ovs_nla_free_flow_actions(*sfa); diff -Nru linux-5.10.209/net/packet/af_packet.c linux-5.10.216/net/packet/af_packet.c --- linux-5.10.209/net/packet/af_packet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/packet/af_packet.c 2024-05-02 14:23:46.000000000 +0000 @@ -1871,7 +1871,7 @@ */ spkt->spkt_family = dev->type; - strlcpy(spkt->spkt_device, dev->name, sizeof(spkt->spkt_device)); + strscpy(spkt->spkt_device, dev->name, sizeof(spkt->spkt_device)); spkt->spkt_protocol = skb->protocol; /* @@ -3252,7 +3252,7 @@ int addr_len) { struct sock *sk = sock->sk; - char name[sizeof(uaddr->sa_data) + 1]; + char name[sizeof(uaddr->sa_data_min) + 1]; /* * Check legality @@ -3263,8 +3263,8 @@ /* uaddr->sa_data comes from the userspace, it's not guaranteed to be * zero-terminated. */ - memcpy(name, uaddr->sa_data, sizeof(uaddr->sa_data)); - name[sizeof(uaddr->sa_data)] = 0; + memcpy(name, uaddr->sa_data, sizeof(uaddr->sa_data_min)); + name[sizeof(uaddr->sa_data_min)] = 0; return packet_do_bind(sk, name, 0, 0); } @@ -3536,11 +3536,11 @@ return -EOPNOTSUPP; uaddr->sa_family = AF_PACKET; - memset(uaddr->sa_data, 0, sizeof(uaddr->sa_data)); + memset(uaddr->sa_data, 0, sizeof(uaddr->sa_data_min)); rcu_read_lock(); dev = dev_get_by_index_rcu(sock_net(sk), READ_ONCE(pkt_sk(sk)->ifindex)); if (dev) - strlcpy(uaddr->sa_data, dev->name, sizeof(uaddr->sa_data)); + strscpy(uaddr->sa_data, dev->name, sizeof(uaddr->sa_data_min)); rcu_read_unlock(); return sizeof(*uaddr); @@ -3951,7 +3951,7 @@ if (val < 0 || val > 1) return -EINVAL; - po->prot_hook.ignore_outgoing = !!val; + WRITE_ONCE(po->prot_hook.ignore_outgoing, !!val); return 0; } case PACKET_TX_HAS_OFF: @@ -4083,7 +4083,7 @@ 0); break; case PACKET_IGNORE_OUTGOING: - val = po->prot_hook.ignore_outgoing; + val = READ_ONCE(po->prot_hook.ignore_outgoing); break; case PACKET_ROLLOVER_STATS: if (!po->rollover) diff -Nru linux-5.10.209/net/rds/af_rds.c linux-5.10.216/net/rds/af_rds.c --- linux-5.10.209/net/rds/af_rds.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/rds/af_rds.c 2024-05-02 14:23:46.000000000 +0000 @@ -419,7 +419,7 @@ rs->rs_rx_traces = trace.rx_traces; for (i = 0; i < rs->rs_rx_traces; i++) { - if (trace.rx_trace_pos[i] > RDS_MSG_RX_DGRAM_TRACE_MAX) { + if (trace.rx_trace_pos[i] >= RDS_MSG_RX_DGRAM_TRACE_MAX) { rs->rs_rx_traces = 0; return -EFAULT; } diff -Nru linux-5.10.209/net/rds/rdma.c linux-5.10.216/net/rds/rdma.c --- linux-5.10.209/net/rds/rdma.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/rds/rdma.c 2024-05-02 14:23:46.000000000 +0000 @@ -301,6 +301,9 @@ kfree(sg); } ret = PTR_ERR(trans_private); + /* Trigger connection so that its ready for the next retry */ + if (ret == -ENODEV && cp) + rds_conn_connect_if_down(cp->cp_conn); goto out; } diff -Nru linux-5.10.209/net/rds/send.c linux-5.10.216/net/rds/send.c --- linux-5.10.209/net/rds/send.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/rds/send.c 2024-05-02 14:23:46.000000000 +0000 @@ -103,13 +103,12 @@ static int acquire_in_xmit(struct rds_conn_path *cp) { - return test_and_set_bit(RDS_IN_XMIT, &cp->cp_flags) == 0; + return test_and_set_bit_lock(RDS_IN_XMIT, &cp->cp_flags) == 0; } static void release_in_xmit(struct rds_conn_path *cp) { - clear_bit(RDS_IN_XMIT, &cp->cp_flags); - smp_mb__after_atomic(); + clear_bit_unlock(RDS_IN_XMIT, &cp->cp_flags); /* * We don't use wait_on_bit()/wake_up_bit() because our waking is in a * hot path and finding waiters is very rare. We don't want to walk @@ -1314,12 +1313,8 @@ /* Parse any control messages the user may have included. */ ret = rds_cmsg_send(rs, rm, msg, &allocated_mr, &vct); - if (ret) { - /* Trigger connection so that its ready for the next retry */ - if (ret == -EAGAIN) - rds_conn_connect_if_down(conn); + if (ret) goto out; - } if (rm->rdma.op_active && !conn->c_trans->xmit_rdma) { printk_ratelimited(KERN_NOTICE "rdma_op %p conn xmit_rdma %p\n", diff -Nru linux-5.10.209/net/rxrpc/conn_event.c linux-5.10.216/net/rxrpc/conn_event.c --- linux-5.10.209/net/rxrpc/conn_event.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/rxrpc/conn_event.c 2024-05-02 14:23:46.000000000 +0000 @@ -41,6 +41,14 @@ _enter("%d", conn->debug_id); + if (sp && sp->hdr.type == RXRPC_PACKET_TYPE_ACK) { + if (skb_copy_bits(skb, sizeof(struct rxrpc_wire_header), + &pkt.ack, sizeof(pkt.ack)) < 0) + return; + if (pkt.ack.reason == RXRPC_ACK_PING_RESPONSE) + return; + } + chan = &conn->channels[channel]; /* If the last call got moved on whilst we were waiting to run, just diff -Nru linux-5.10.209/net/rxrpc/conn_service.c linux-5.10.216/net/rxrpc/conn_service.c --- linux-5.10.209/net/rxrpc/conn_service.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/rxrpc/conn_service.c 2024-05-02 14:23:46.000000000 +0000 @@ -31,7 +31,7 @@ struct rxrpc_conn_proto k; struct rxrpc_skb_priv *sp = rxrpc_skb(skb); struct rb_node *p; - unsigned int seq = 0; + unsigned int seq = 1; k.epoch = sp->hdr.epoch; k.cid = sp->hdr.cid & RXRPC_CIDMASK; @@ -41,6 +41,7 @@ * under just the RCU read lock, so we have to check for * changes. */ + seq++; /* 2 on the 1st/lockless path, otherwise odd */ read_seqbegin_or_lock(&peer->service_conn_lock, &seq); p = rcu_dereference_raw(peer->service_conns.rb_node); diff -Nru linux-5.10.209/net/sched/Kconfig linux-5.10.216/net/sched/Kconfig --- linux-5.10.209/net/sched/Kconfig 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/Kconfig 2024-05-02 14:23:46.000000000 +0000 @@ -45,23 +45,6 @@ comment "Queueing/Scheduling" -config NET_SCH_CBQ - tristate "Class Based Queueing (CBQ)" - help - Say Y here if you want to use the Class-Based Queueing (CBQ) packet - scheduling algorithm. This algorithm classifies the waiting packets - into a tree-like hierarchy of classes; the leaves of this tree are - in turn scheduled by separate algorithms. - - See the top of for more details. - - CBQ is a commonly used scheduler, so if you're unsure, you should - say Y here. Then say Y to all the queueing algorithms below that you - want to use as leaf disciplines. - - To compile this code as a module, choose M here: the - module will be called sch_cbq. - config NET_SCH_HTB tristate "Hierarchical Token Bucket (HTB)" help @@ -85,20 +68,6 @@ To compile this code as a module, choose M here: the module will be called sch_hfsc. -config NET_SCH_ATM - tristate "ATM Virtual Circuits (ATM)" - depends on ATM - help - Say Y here if you want to use the ATM pseudo-scheduler. This - provides a framework for invoking classifiers, which in turn - select classes of this queuing discipline. Each class maps - the flow(s) it is handling to a given virtual circuit. - - See the top of for more details. - - To compile this code as a module, choose M here: the - module will be called sch_atm. - config NET_SCH_PRIO tristate "Multi Band Priority Queueing (PRIO)" help @@ -217,17 +186,6 @@ To compile this code as a module, choose M here: the module will be called sch_gred. -config NET_SCH_DSMARK - tristate "Differentiated Services marker (DSMARK)" - help - Say Y if you want to schedule packets according to the - Differentiated Services architecture proposed in RFC 2475. - Technical information on this method, with pointers to associated - RFCs, is available at . - - To compile this code as a module, choose M here: the - module will be called sch_dsmark. - config NET_SCH_NETEM tristate "Network emulator (NETEM)" help diff -Nru linux-5.10.209/net/sched/Makefile linux-5.10.216/net/sched/Makefile --- linux-5.10.209/net/sched/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -32,20 +32,17 @@ obj-$(CONFIG_NET_ACT_CT) += act_ct.o obj-$(CONFIG_NET_ACT_GATE) += act_gate.o obj-$(CONFIG_NET_SCH_FIFO) += sch_fifo.o -obj-$(CONFIG_NET_SCH_CBQ) += sch_cbq.o obj-$(CONFIG_NET_SCH_HTB) += sch_htb.o obj-$(CONFIG_NET_SCH_HFSC) += sch_hfsc.o obj-$(CONFIG_NET_SCH_RED) += sch_red.o obj-$(CONFIG_NET_SCH_GRED) += sch_gred.o obj-$(CONFIG_NET_SCH_INGRESS) += sch_ingress.o -obj-$(CONFIG_NET_SCH_DSMARK) += sch_dsmark.o obj-$(CONFIG_NET_SCH_SFB) += sch_sfb.o obj-$(CONFIG_NET_SCH_SFQ) += sch_sfq.o obj-$(CONFIG_NET_SCH_TBF) += sch_tbf.o obj-$(CONFIG_NET_SCH_TEQL) += sch_teql.o obj-$(CONFIG_NET_SCH_PRIO) += sch_prio.o obj-$(CONFIG_NET_SCH_MULTIQ) += sch_multiq.o -obj-$(CONFIG_NET_SCH_ATM) += sch_atm.o obj-$(CONFIG_NET_SCH_NETEM) += sch_netem.o obj-$(CONFIG_NET_SCH_DRR) += sch_drr.o obj-$(CONFIG_NET_SCH_PLUG) += sch_plug.o diff -Nru linux-5.10.209/net/sched/act_skbmod.c linux-5.10.216/net/sched/act_skbmod.c --- linux-5.10.209/net/sched/act_skbmod.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/act_skbmod.c 2024-05-02 14:23:46.000000000 +0000 @@ -219,13 +219,13 @@ struct tcf_skbmod *d = to_skbmod(a); unsigned char *b = skb_tail_pointer(skb); struct tcf_skbmod_params *p; - struct tc_skbmod opt = { - .index = d->tcf_index, - .refcnt = refcount_read(&d->tcf_refcnt) - ref, - .bindcnt = atomic_read(&d->tcf_bindcnt) - bind, - }; + struct tc_skbmod opt; struct tcf_t t; + memset(&opt, 0, sizeof(opt)); + opt.index = d->tcf_index; + opt.refcnt = refcount_read(&d->tcf_refcnt) - ref, + opt.bindcnt = atomic_read(&d->tcf_bindcnt) - bind; spin_lock_bh(&d->tcf_lock); opt.action = d->tcf_action; p = rcu_dereference_protected(d->skbmod_p, diff -Nru linux-5.10.209/net/sched/sch_atm.c linux-5.10.216/net/sched/sch_atm.c --- linux-5.10.209/net/sched/sch_atm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/sch_atm.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,709 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* net/sched/sch_atm.c - ATM VC selection "queueing discipline" */ - -/* Written 1998-2000 by Werner Almesberger, EPFL ICA */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* for fput */ -#include -#include -#include - -/* - * The ATM queuing discipline provides a framework for invoking classifiers - * (aka "filters"), which in turn select classes of this queuing discipline. - * Each class maps the flow(s) it is handling to a given VC. Multiple classes - * may share the same VC. - * - * When creating a class, VCs are specified by passing the number of the open - * socket descriptor by which the calling process references the VC. The kernel - * keeps the VC open at least until all classes using it are removed. - * - * In this file, most functions are named atm_tc_* to avoid confusion with all - * the atm_* in net/atm. This naming convention differs from what's used in the - * rest of net/sched. - * - * Known bugs: - * - sometimes messes up the IP stack - * - any manipulations besides the few operations described in the README, are - * untested and likely to crash the system - * - should lock the flow while there is data in the queue (?) - */ - -#define VCC2FLOW(vcc) ((struct atm_flow_data *) ((vcc)->user_back)) - -struct atm_flow_data { - struct Qdisc_class_common common; - struct Qdisc *q; /* FIFO, TBF, etc. */ - struct tcf_proto __rcu *filter_list; - struct tcf_block *block; - struct atm_vcc *vcc; /* VCC; NULL if VCC is closed */ - void (*old_pop)(struct atm_vcc *vcc, - struct sk_buff *skb); /* chaining */ - struct atm_qdisc_data *parent; /* parent qdisc */ - struct socket *sock; /* for closing */ - int ref; /* reference count */ - struct gnet_stats_basic_packed bstats; - struct gnet_stats_queue qstats; - struct list_head list; - struct atm_flow_data *excess; /* flow for excess traffic; - NULL to set CLP instead */ - int hdr_len; - unsigned char hdr[]; /* header data; MUST BE LAST */ -}; - -struct atm_qdisc_data { - struct atm_flow_data link; /* unclassified skbs go here */ - struct list_head flows; /* NB: "link" is also on this - list */ - struct tasklet_struct task; /* dequeue tasklet */ -}; - -/* ------------------------- Class/flow operations ------------------------- */ - -static inline struct atm_flow_data *lookup_flow(struct Qdisc *sch, u32 classid) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow; - - list_for_each_entry(flow, &p->flows, list) { - if (flow->common.classid == classid) - return flow; - } - return NULL; -} - -static int atm_tc_graft(struct Qdisc *sch, unsigned long arg, - struct Qdisc *new, struct Qdisc **old, - struct netlink_ext_ack *extack) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)arg; - - pr_debug("atm_tc_graft(sch %p,[qdisc %p],flow %p,new %p,old %p)\n", - sch, p, flow, new, old); - if (list_empty(&flow->list)) - return -EINVAL; - if (!new) - new = &noop_qdisc; - *old = flow->q; - flow->q = new; - if (*old) - qdisc_reset(*old); - return 0; -} - -static struct Qdisc *atm_tc_leaf(struct Qdisc *sch, unsigned long cl) -{ - struct atm_flow_data *flow = (struct atm_flow_data *)cl; - - pr_debug("atm_tc_leaf(sch %p,flow %p)\n", sch, flow); - return flow ? flow->q : NULL; -} - -static unsigned long atm_tc_find(struct Qdisc *sch, u32 classid) -{ - struct atm_qdisc_data *p __maybe_unused = qdisc_priv(sch); - struct atm_flow_data *flow; - - pr_debug("%s(sch %p,[qdisc %p],classid %x)\n", __func__, sch, p, classid); - flow = lookup_flow(sch, classid); - pr_debug("%s: flow %p\n", __func__, flow); - return (unsigned long)flow; -} - -static unsigned long atm_tc_bind_filter(struct Qdisc *sch, - unsigned long parent, u32 classid) -{ - struct atm_qdisc_data *p __maybe_unused = qdisc_priv(sch); - struct atm_flow_data *flow; - - pr_debug("%s(sch %p,[qdisc %p],classid %x)\n", __func__, sch, p, classid); - flow = lookup_flow(sch, classid); - if (flow) - flow->ref++; - pr_debug("%s: flow %p\n", __func__, flow); - return (unsigned long)flow; -} - -/* - * atm_tc_put handles all destructions, including the ones that are explicitly - * requested (atm_tc_destroy, etc.). The assumption here is that we never drop - * anything that still seems to be in use. - */ -static void atm_tc_put(struct Qdisc *sch, unsigned long cl) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)cl; - - pr_debug("atm_tc_put(sch %p,[qdisc %p],flow %p)\n", sch, p, flow); - if (--flow->ref) - return; - pr_debug("atm_tc_put: destroying\n"); - list_del_init(&flow->list); - pr_debug("atm_tc_put: qdisc %p\n", flow->q); - qdisc_put(flow->q); - tcf_block_put(flow->block); - if (flow->sock) { - pr_debug("atm_tc_put: f_count %ld\n", - file_count(flow->sock->file)); - flow->vcc->pop = flow->old_pop; - sockfd_put(flow->sock); - } - if (flow->excess) - atm_tc_put(sch, (unsigned long)flow->excess); - if (flow != &p->link) - kfree(flow); - /* - * If flow == &p->link, the qdisc no longer works at this point and - * needs to be removed. (By the caller of atm_tc_put.) - */ -} - -static void sch_atm_pop(struct atm_vcc *vcc, struct sk_buff *skb) -{ - struct atm_qdisc_data *p = VCC2FLOW(vcc)->parent; - - pr_debug("sch_atm_pop(vcc %p,skb %p,[qdisc %p])\n", vcc, skb, p); - VCC2FLOW(vcc)->old_pop(vcc, skb); - tasklet_schedule(&p->task); -} - -static const u8 llc_oui_ip[] = { - 0xaa, /* DSAP: non-ISO */ - 0xaa, /* SSAP: non-ISO */ - 0x03, /* Ctrl: Unnumbered Information Command PDU */ - 0x00, /* OUI: EtherType */ - 0x00, 0x00, - 0x08, 0x00 -}; /* Ethertype IP (0800) */ - -static const struct nla_policy atm_policy[TCA_ATM_MAX + 1] = { - [TCA_ATM_FD] = { .type = NLA_U32 }, - [TCA_ATM_EXCESS] = { .type = NLA_U32 }, -}; - -static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent, - struct nlattr **tca, unsigned long *arg, - struct netlink_ext_ack *extack) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)*arg; - struct atm_flow_data *excess = NULL; - struct nlattr *opt = tca[TCA_OPTIONS]; - struct nlattr *tb[TCA_ATM_MAX + 1]; - struct socket *sock; - int fd, error, hdr_len; - void *hdr; - - pr_debug("atm_tc_change(sch %p,[qdisc %p],classid %x,parent %x," - "flow %p,opt %p)\n", sch, p, classid, parent, flow, opt); - /* - * The concept of parents doesn't apply for this qdisc. - */ - if (parent && parent != TC_H_ROOT && parent != sch->handle) - return -EINVAL; - /* - * ATM classes cannot be changed. In order to change properties of the - * ATM connection, that socket needs to be modified directly (via the - * native ATM API. In order to send a flow to a different VC, the old - * class needs to be removed and a new one added. (This may be changed - * later.) - */ - if (flow) - return -EBUSY; - if (opt == NULL) - return -EINVAL; - - error = nla_parse_nested_deprecated(tb, TCA_ATM_MAX, opt, atm_policy, - NULL); - if (error < 0) - return error; - - if (!tb[TCA_ATM_FD]) - return -EINVAL; - fd = nla_get_u32(tb[TCA_ATM_FD]); - pr_debug("atm_tc_change: fd %d\n", fd); - if (tb[TCA_ATM_HDR]) { - hdr_len = nla_len(tb[TCA_ATM_HDR]); - hdr = nla_data(tb[TCA_ATM_HDR]); - } else { - hdr_len = RFC1483LLC_LEN; - hdr = NULL; /* default LLC/SNAP for IP */ - } - if (!tb[TCA_ATM_EXCESS]) - excess = NULL; - else { - excess = (struct atm_flow_data *) - atm_tc_find(sch, nla_get_u32(tb[TCA_ATM_EXCESS])); - if (!excess) - return -ENOENT; - } - pr_debug("atm_tc_change: type %d, payload %d, hdr_len %d\n", - opt->nla_type, nla_len(opt), hdr_len); - sock = sockfd_lookup(fd, &error); - if (!sock) - return error; /* f_count++ */ - pr_debug("atm_tc_change: f_count %ld\n", file_count(sock->file)); - if (sock->ops->family != PF_ATMSVC && sock->ops->family != PF_ATMPVC) { - error = -EPROTOTYPE; - goto err_out; - } - /* @@@ should check if the socket is really operational or we'll crash - on vcc->send */ - if (classid) { - if (TC_H_MAJ(classid ^ sch->handle)) { - pr_debug("atm_tc_change: classid mismatch\n"); - error = -EINVAL; - goto err_out; - } - } else { - int i; - unsigned long cl; - - for (i = 1; i < 0x8000; i++) { - classid = TC_H_MAKE(sch->handle, 0x8000 | i); - cl = atm_tc_find(sch, classid); - if (!cl) - break; - } - } - pr_debug("atm_tc_change: new id %x\n", classid); - flow = kzalloc(sizeof(struct atm_flow_data) + hdr_len, GFP_KERNEL); - pr_debug("atm_tc_change: flow %p\n", flow); - if (!flow) { - error = -ENOBUFS; - goto err_out; - } - - error = tcf_block_get(&flow->block, &flow->filter_list, sch, - extack); - if (error) { - kfree(flow); - goto err_out; - } - - flow->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid, - extack); - if (!flow->q) - flow->q = &noop_qdisc; - pr_debug("atm_tc_change: qdisc %p\n", flow->q); - flow->sock = sock; - flow->vcc = ATM_SD(sock); /* speedup */ - flow->vcc->user_back = flow; - pr_debug("atm_tc_change: vcc %p\n", flow->vcc); - flow->old_pop = flow->vcc->pop; - flow->parent = p; - flow->vcc->pop = sch_atm_pop; - flow->common.classid = classid; - flow->ref = 1; - flow->excess = excess; - list_add(&flow->list, &p->link.list); - flow->hdr_len = hdr_len; - if (hdr) - memcpy(flow->hdr, hdr, hdr_len); - else - memcpy(flow->hdr, llc_oui_ip, sizeof(llc_oui_ip)); - *arg = (unsigned long)flow; - return 0; -err_out: - sockfd_put(sock); - return error; -} - -static int atm_tc_delete(struct Qdisc *sch, unsigned long arg) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)arg; - - pr_debug("atm_tc_delete(sch %p,[qdisc %p],flow %p)\n", sch, p, flow); - if (list_empty(&flow->list)) - return -EINVAL; - if (rcu_access_pointer(flow->filter_list) || flow == &p->link) - return -EBUSY; - /* - * Reference count must be 2: one for "keepalive" (set at class - * creation), and one for the reference held when calling delete. - */ - if (flow->ref < 2) { - pr_err("atm_tc_delete: flow->ref == %d\n", flow->ref); - return -EINVAL; - } - if (flow->ref > 2) - return -EBUSY; /* catch references via excess, etc. */ - atm_tc_put(sch, arg); - return 0; -} - -static void atm_tc_walk(struct Qdisc *sch, struct qdisc_walker *walker) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow; - - pr_debug("atm_tc_walk(sch %p,[qdisc %p],walker %p)\n", sch, p, walker); - if (walker->stop) - return; - list_for_each_entry(flow, &p->flows, list) { - if (walker->count >= walker->skip && - walker->fn(sch, (unsigned long)flow, walker) < 0) { - walker->stop = 1; - break; - } - walker->count++; - } -} - -static struct tcf_block *atm_tc_tcf_block(struct Qdisc *sch, unsigned long cl, - struct netlink_ext_ack *extack) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)cl; - - pr_debug("atm_tc_find_tcf(sch %p,[qdisc %p],flow %p)\n", sch, p, flow); - return flow ? flow->block : p->link.block; -} - -/* --------------------------- Qdisc operations ---------------------------- */ - -static int atm_tc_enqueue(struct sk_buff *skb, struct Qdisc *sch, - struct sk_buff **to_free) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow; - struct tcf_result res; - int result; - int ret = NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; - - pr_debug("atm_tc_enqueue(skb %p,sch %p,[qdisc %p])\n", skb, sch, p); - result = TC_ACT_OK; /* be nice to gcc */ - flow = NULL; - if (TC_H_MAJ(skb->priority) != sch->handle || - !(flow = (struct atm_flow_data *)atm_tc_find(sch, skb->priority))) { - struct tcf_proto *fl; - - list_for_each_entry(flow, &p->flows, list) { - fl = rcu_dereference_bh(flow->filter_list); - if (fl) { - result = tcf_classify(skb, fl, &res, true); - if (result < 0) - continue; - if (result == TC_ACT_SHOT) - goto done; - - flow = (struct atm_flow_data *)res.class; - if (!flow) - flow = lookup_flow(sch, res.classid); - goto drop; - } - } - flow = NULL; -done: - ; - } - if (!flow) { - flow = &p->link; - } else { - if (flow->vcc) - ATM_SKB(skb)->atm_options = flow->vcc->atm_options; - /*@@@ looks good ... but it's not supposed to work :-) */ -#ifdef CONFIG_NET_CLS_ACT - switch (result) { - case TC_ACT_QUEUED: - case TC_ACT_STOLEN: - case TC_ACT_TRAP: - __qdisc_drop(skb, to_free); - return NET_XMIT_SUCCESS | __NET_XMIT_STOLEN; - case TC_ACT_SHOT: - __qdisc_drop(skb, to_free); - goto drop; - case TC_ACT_RECLASSIFY: - if (flow->excess) - flow = flow->excess; - else - ATM_SKB(skb)->atm_options |= ATM_ATMOPT_CLP; - break; - } -#endif - } - - ret = qdisc_enqueue(skb, flow->q, to_free); - if (ret != NET_XMIT_SUCCESS) { -drop: __maybe_unused - if (net_xmit_drop_count(ret)) { - qdisc_qstats_drop(sch); - if (flow) - flow->qstats.drops++; - } - return ret; - } - /* - * Okay, this may seem weird. We pretend we've dropped the packet if - * it goes via ATM. The reason for this is that the outer qdisc - * expects to be able to q->dequeue the packet later on if we return - * success at this place. Also, sch->q.qdisc needs to reflect whether - * there is a packet egligible for dequeuing or not. Note that the - * statistics of the outer qdisc are necessarily wrong because of all - * this. There's currently no correct solution for this. - */ - if (flow == &p->link) { - sch->q.qlen++; - return NET_XMIT_SUCCESS; - } - tasklet_schedule(&p->task); - return NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; -} - -/* - * Dequeue packets and send them over ATM. Note that we quite deliberately - * avoid checking net_device's flow control here, simply because sch_atm - * uses its own channels, which have nothing to do with any CLIP/LANE/or - * non-ATM interfaces. - */ - -static void sch_atm_dequeue(unsigned long data) -{ - struct Qdisc *sch = (struct Qdisc *)data; - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow; - struct sk_buff *skb; - - pr_debug("sch_atm_dequeue(sch %p,[qdisc %p])\n", sch, p); - list_for_each_entry(flow, &p->flows, list) { - if (flow == &p->link) - continue; - /* - * If traffic is properly shaped, this won't generate nasty - * little bursts. Otherwise, it may ... (but that's okay) - */ - while ((skb = flow->q->ops->peek(flow->q))) { - if (!atm_may_send(flow->vcc, skb->truesize)) - break; - - skb = qdisc_dequeue_peeked(flow->q); - if (unlikely(!skb)) - break; - - qdisc_bstats_update(sch, skb); - bstats_update(&flow->bstats, skb); - pr_debug("atm_tc_dequeue: sending on class %p\n", flow); - /* remove any LL header somebody else has attached */ - skb_pull(skb, skb_network_offset(skb)); - if (skb_headroom(skb) < flow->hdr_len) { - struct sk_buff *new; - - new = skb_realloc_headroom(skb, flow->hdr_len); - dev_kfree_skb(skb); - if (!new) - continue; - skb = new; - } - pr_debug("sch_atm_dequeue: ip %p, data %p\n", - skb_network_header(skb), skb->data); - ATM_SKB(skb)->vcc = flow->vcc; - memcpy(skb_push(skb, flow->hdr_len), flow->hdr, - flow->hdr_len); - refcount_add(skb->truesize, - &sk_atm(flow->vcc)->sk_wmem_alloc); - /* atm.atm_options are already set by atm_tc_enqueue */ - flow->vcc->send(flow->vcc, skb); - } - } -} - -static struct sk_buff *atm_tc_dequeue(struct Qdisc *sch) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct sk_buff *skb; - - pr_debug("atm_tc_dequeue(sch %p,[qdisc %p])\n", sch, p); - tasklet_schedule(&p->task); - skb = qdisc_dequeue_peeked(p->link.q); - if (skb) - sch->q.qlen--; - return skb; -} - -static struct sk_buff *atm_tc_peek(struct Qdisc *sch) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - - pr_debug("atm_tc_peek(sch %p,[qdisc %p])\n", sch, p); - - return p->link.q->ops->peek(p->link.q); -} - -static int atm_tc_init(struct Qdisc *sch, struct nlattr *opt, - struct netlink_ext_ack *extack) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - int err; - - pr_debug("atm_tc_init(sch %p,[qdisc %p],opt %p)\n", sch, p, opt); - INIT_LIST_HEAD(&p->flows); - INIT_LIST_HEAD(&p->link.list); - list_add(&p->link.list, &p->flows); - p->link.q = qdisc_create_dflt(sch->dev_queue, - &pfifo_qdisc_ops, sch->handle, extack); - if (!p->link.q) - p->link.q = &noop_qdisc; - pr_debug("atm_tc_init: link (%p) qdisc %p\n", &p->link, p->link.q); - p->link.vcc = NULL; - p->link.sock = NULL; - p->link.common.classid = sch->handle; - p->link.ref = 1; - - err = tcf_block_get(&p->link.block, &p->link.filter_list, sch, - extack); - if (err) - return err; - - tasklet_init(&p->task, sch_atm_dequeue, (unsigned long)sch); - return 0; -} - -static void atm_tc_reset(struct Qdisc *sch) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow; - - pr_debug("atm_tc_reset(sch %p,[qdisc %p])\n", sch, p); - list_for_each_entry(flow, &p->flows, list) - qdisc_reset(flow->q); -} - -static void atm_tc_destroy(struct Qdisc *sch) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow, *tmp; - - pr_debug("atm_tc_destroy(sch %p,[qdisc %p])\n", sch, p); - list_for_each_entry(flow, &p->flows, list) { - tcf_block_put(flow->block); - flow->block = NULL; - } - - list_for_each_entry_safe(flow, tmp, &p->flows, list) { - if (flow->ref > 1) - pr_err("atm_destroy: %p->ref = %d\n", flow, flow->ref); - atm_tc_put(sch, (unsigned long)flow); - } - tasklet_kill(&p->task); -} - -static int atm_tc_dump_class(struct Qdisc *sch, unsigned long cl, - struct sk_buff *skb, struct tcmsg *tcm) -{ - struct atm_qdisc_data *p = qdisc_priv(sch); - struct atm_flow_data *flow = (struct atm_flow_data *)cl; - struct nlattr *nest; - - pr_debug("atm_tc_dump_class(sch %p,[qdisc %p],flow %p,skb %p,tcm %p)\n", - sch, p, flow, skb, tcm); - if (list_empty(&flow->list)) - return -EINVAL; - tcm->tcm_handle = flow->common.classid; - tcm->tcm_info = flow->q->handle; - - nest = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (nest == NULL) - goto nla_put_failure; - - if (nla_put(skb, TCA_ATM_HDR, flow->hdr_len, flow->hdr)) - goto nla_put_failure; - if (flow->vcc) { - struct sockaddr_atmpvc pvc; - int state; - - memset(&pvc, 0, sizeof(pvc)); - pvc.sap_family = AF_ATMPVC; - pvc.sap_addr.itf = flow->vcc->dev ? flow->vcc->dev->number : -1; - pvc.sap_addr.vpi = flow->vcc->vpi; - pvc.sap_addr.vci = flow->vcc->vci; - if (nla_put(skb, TCA_ATM_ADDR, sizeof(pvc), &pvc)) - goto nla_put_failure; - state = ATM_VF2VS(flow->vcc->flags); - if (nla_put_u32(skb, TCA_ATM_STATE, state)) - goto nla_put_failure; - } - if (flow->excess) { - if (nla_put_u32(skb, TCA_ATM_EXCESS, flow->common.classid)) - goto nla_put_failure; - } else { - if (nla_put_u32(skb, TCA_ATM_EXCESS, 0)) - goto nla_put_failure; - } - return nla_nest_end(skb, nest); - -nla_put_failure: - nla_nest_cancel(skb, nest); - return -1; -} -static int -atm_tc_dump_class_stats(struct Qdisc *sch, unsigned long arg, - struct gnet_dump *d) -{ - struct atm_flow_data *flow = (struct atm_flow_data *)arg; - - if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch), - d, NULL, &flow->bstats) < 0 || - gnet_stats_copy_queue(d, NULL, &flow->qstats, flow->q->q.qlen) < 0) - return -1; - - return 0; -} - -static int atm_tc_dump(struct Qdisc *sch, struct sk_buff *skb) -{ - return 0; -} - -static const struct Qdisc_class_ops atm_class_ops = { - .graft = atm_tc_graft, - .leaf = atm_tc_leaf, - .find = atm_tc_find, - .change = atm_tc_change, - .delete = atm_tc_delete, - .walk = atm_tc_walk, - .tcf_block = atm_tc_tcf_block, - .bind_tcf = atm_tc_bind_filter, - .unbind_tcf = atm_tc_put, - .dump = atm_tc_dump_class, - .dump_stats = atm_tc_dump_class_stats, -}; - -static struct Qdisc_ops atm_qdisc_ops __read_mostly = { - .cl_ops = &atm_class_ops, - .id = "atm", - .priv_size = sizeof(struct atm_qdisc_data), - .enqueue = atm_tc_enqueue, - .dequeue = atm_tc_dequeue, - .peek = atm_tc_peek, - .init = atm_tc_init, - .reset = atm_tc_reset, - .destroy = atm_tc_destroy, - .dump = atm_tc_dump, - .owner = THIS_MODULE, -}; - -static int __init atm_init(void) -{ - return register_qdisc(&atm_qdisc_ops); -} - -static void __exit atm_exit(void) -{ - unregister_qdisc(&atm_qdisc_ops); -} - -module_init(atm_init) -module_exit(atm_exit) -MODULE_LICENSE("GPL"); diff -Nru linux-5.10.209/net/sched/sch_cbq.c linux-5.10.216/net/sched/sch_cbq.c --- linux-5.10.209/net/sched/sch_cbq.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/sch_cbq.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1816 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * net/sched/sch_cbq.c Class-Based Queueing discipline. - * - * Authors: Alexey Kuznetsov, - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -/* Class-Based Queueing (CBQ) algorithm. - ======================================= - - Sources: [1] Sally Floyd and Van Jacobson, "Link-sharing and Resource - Management Models for Packet Networks", - IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995 - - [2] Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995 - - [3] Sally Floyd, "Notes on Class-Based Queueing: Setting - Parameters", 1996 - - [4] Sally Floyd and Michael Speer, "Experimental Results - for Class-Based Queueing", 1998, not published. - - ----------------------------------------------------------------------- - - Algorithm skeleton was taken from NS simulator cbq.cc. - If someone wants to check this code against the LBL version, - he should take into account that ONLY the skeleton was borrowed, - the implementation is different. Particularly: - - --- The WRR algorithm is different. Our version looks more - reasonable (I hope) and works when quanta are allowed to be - less than MTU, which is always the case when real time classes - have small rates. Note, that the statement of [3] is - incomplete, delay may actually be estimated even if class - per-round allotment is less than MTU. Namely, if per-round - allotment is W*r_i, and r_1+...+r_k = r < 1 - - delay_i <= ([MTU/(W*r_i)]*W*r + W*r + k*MTU)/B - - In the worst case we have IntServ estimate with D = W*r+k*MTU - and C = MTU*r. The proof (if correct at all) is trivial. - - - --- It seems that cbq-2.0 is not very accurate. At least, I cannot - interpret some places, which look like wrong translations - from NS. Anyone is advised to find these differences - and explain to me, why I am wrong 8). - - --- Linux has no EOI event, so that we cannot estimate true class - idle time. Workaround is to consider the next dequeue event - as sign that previous packet is finished. This is wrong because of - internal device queueing, but on a permanently loaded link it is true. - Moreover, combined with clock integrator, this scheme looks - very close to an ideal solution. */ - -struct cbq_sched_data; - - -struct cbq_class { - struct Qdisc_class_common common; - struct cbq_class *next_alive; /* next class with backlog in this priority band */ - -/* Parameters */ - unsigned char priority; /* class priority */ - unsigned char priority2; /* priority to be used after overlimit */ - unsigned char ewma_log; /* time constant for idle time calculation */ - - u32 defmap; - - /* Link-sharing scheduler parameters */ - long maxidle; /* Class parameters: see below. */ - long offtime; - long minidle; - u32 avpkt; - struct qdisc_rate_table *R_tab; - - /* General scheduler (WRR) parameters */ - long allot; - long quantum; /* Allotment per WRR round */ - long weight; /* Relative allotment: see below */ - - struct Qdisc *qdisc; /* Ptr to CBQ discipline */ - struct cbq_class *split; /* Ptr to split node */ - struct cbq_class *share; /* Ptr to LS parent in the class tree */ - struct cbq_class *tparent; /* Ptr to tree parent in the class tree */ - struct cbq_class *borrow; /* NULL if class is bandwidth limited; - parent otherwise */ - struct cbq_class *sibling; /* Sibling chain */ - struct cbq_class *children; /* Pointer to children chain */ - - struct Qdisc *q; /* Elementary queueing discipline */ - - -/* Variables */ - unsigned char cpriority; /* Effective priority */ - unsigned char delayed; - unsigned char level; /* level of the class in hierarchy: - 0 for leaf classes, and maximal - level of children + 1 for nodes. - */ - - psched_time_t last; /* Last end of service */ - psched_time_t undertime; - long avgidle; - long deficit; /* Saved deficit for WRR */ - psched_time_t penalized; - struct gnet_stats_basic_packed bstats; - struct gnet_stats_queue qstats; - struct net_rate_estimator __rcu *rate_est; - struct tc_cbq_xstats xstats; - - struct tcf_proto __rcu *filter_list; - struct tcf_block *block; - - int filters; - - struct cbq_class *defaults[TC_PRIO_MAX + 1]; -}; - -struct cbq_sched_data { - struct Qdisc_class_hash clhash; /* Hash table of all classes */ - int nclasses[TC_CBQ_MAXPRIO + 1]; - unsigned int quanta[TC_CBQ_MAXPRIO + 1]; - - struct cbq_class link; - - unsigned int activemask; - struct cbq_class *active[TC_CBQ_MAXPRIO + 1]; /* List of all classes - with backlog */ - -#ifdef CONFIG_NET_CLS_ACT - struct cbq_class *rx_class; -#endif - struct cbq_class *tx_class; - struct cbq_class *tx_borrowed; - int tx_len; - psched_time_t now; /* Cached timestamp */ - unsigned int pmask; - - struct hrtimer delay_timer; - struct qdisc_watchdog watchdog; /* Watchdog timer, - started when CBQ has - backlog, but cannot - transmit just now */ - psched_tdiff_t wd_expires; - int toplevel; - u32 hgenerator; -}; - - -#define L2T(cl, len) qdisc_l2t((cl)->R_tab, len) - -static inline struct cbq_class * -cbq_class_lookup(struct cbq_sched_data *q, u32 classid) -{ - struct Qdisc_class_common *clc; - - clc = qdisc_class_find(&q->clhash, classid); - if (clc == NULL) - return NULL; - return container_of(clc, struct cbq_class, common); -} - -#ifdef CONFIG_NET_CLS_ACT - -static struct cbq_class * -cbq_reclassify(struct sk_buff *skb, struct cbq_class *this) -{ - struct cbq_class *cl; - - for (cl = this->tparent; cl; cl = cl->tparent) { - struct cbq_class *new = cl->defaults[TC_PRIO_BESTEFFORT]; - - if (new != NULL && new != this) - return new; - } - return NULL; -} - -#endif - -/* Classify packet. The procedure is pretty complicated, but - * it allows us to combine link sharing and priority scheduling - * transparently. - * - * Namely, you can put link sharing rules (f.e. route based) at root of CBQ, - * so that it resolves to split nodes. Then packets are classified - * by logical priority, or a more specific classifier may be attached - * to the split node. - */ - -static struct cbq_class * -cbq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *head = &q->link; - struct cbq_class **defmap; - struct cbq_class *cl = NULL; - u32 prio = skb->priority; - struct tcf_proto *fl; - struct tcf_result res; - - /* - * Step 1. If skb->priority points to one of our classes, use it. - */ - if (TC_H_MAJ(prio ^ sch->handle) == 0 && - (cl = cbq_class_lookup(q, prio)) != NULL) - return cl; - - *qerr = NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; - for (;;) { - int result = 0; - defmap = head->defaults; - - fl = rcu_dereference_bh(head->filter_list); - /* - * Step 2+n. Apply classifier. - */ - result = tcf_classify(skb, fl, &res, true); - if (!fl || result < 0) - goto fallback; - if (result == TC_ACT_SHOT) - return NULL; - - cl = (void *)res.class; - if (!cl) { - if (TC_H_MAJ(res.classid)) - cl = cbq_class_lookup(q, res.classid); - else if ((cl = defmap[res.classid & TC_PRIO_MAX]) == NULL) - cl = defmap[TC_PRIO_BESTEFFORT]; - - if (cl == NULL) - goto fallback; - } - if (cl->level >= head->level) - goto fallback; -#ifdef CONFIG_NET_CLS_ACT - switch (result) { - case TC_ACT_QUEUED: - case TC_ACT_STOLEN: - case TC_ACT_TRAP: - *qerr = NET_XMIT_SUCCESS | __NET_XMIT_STOLEN; - fallthrough; - case TC_ACT_RECLASSIFY: - return cbq_reclassify(skb, cl); - } -#endif - if (cl->level == 0) - return cl; - - /* - * Step 3+n. If classifier selected a link sharing class, - * apply agency specific classifier. - * Repeat this procdure until we hit a leaf node. - */ - head = cl; - } - -fallback: - cl = head; - - /* - * Step 4. No success... - */ - if (TC_H_MAJ(prio) == 0 && - !(cl = head->defaults[prio & TC_PRIO_MAX]) && - !(cl = head->defaults[TC_PRIO_BESTEFFORT])) - return head; - - return cl; -} - -/* - * A packet has just been enqueued on the empty class. - * cbq_activate_class adds it to the tail of active class list - * of its priority band. - */ - -static inline void cbq_activate_class(struct cbq_class *cl) -{ - struct cbq_sched_data *q = qdisc_priv(cl->qdisc); - int prio = cl->cpriority; - struct cbq_class *cl_tail; - - cl_tail = q->active[prio]; - q->active[prio] = cl; - - if (cl_tail != NULL) { - cl->next_alive = cl_tail->next_alive; - cl_tail->next_alive = cl; - } else { - cl->next_alive = cl; - q->activemask |= (1<qdisc); - int prio = this->cpriority; - struct cbq_class *cl; - struct cbq_class *cl_prev = q->active[prio]; - - do { - cl = cl_prev->next_alive; - if (cl == this) { - cl_prev->next_alive = cl->next_alive; - cl->next_alive = NULL; - - if (cl == q->active[prio]) { - q->active[prio] = cl_prev; - if (cl == q->active[prio]) { - q->active[prio] = NULL; - q->activemask &= ~(1<active[prio]); -} - -static void -cbq_mark_toplevel(struct cbq_sched_data *q, struct cbq_class *cl) -{ - int toplevel = q->toplevel; - - if (toplevel > cl->level) { - psched_time_t now = psched_get_time(); - - do { - if (cl->undertime < now) { - q->toplevel = cl->level; - return; - } - } while ((cl = cl->borrow) != NULL && toplevel > cl->level); - } -} - -static int -cbq_enqueue(struct sk_buff *skb, struct Qdisc *sch, - struct sk_buff **to_free) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - int ret; - struct cbq_class *cl = cbq_classify(skb, sch, &ret); - -#ifdef CONFIG_NET_CLS_ACT - q->rx_class = cl; -#endif - if (cl == NULL) { - if (ret & __NET_XMIT_BYPASS) - qdisc_qstats_drop(sch); - __qdisc_drop(skb, to_free); - return ret; - } - - ret = qdisc_enqueue(skb, cl->q, to_free); - if (ret == NET_XMIT_SUCCESS) { - sch->q.qlen++; - cbq_mark_toplevel(q, cl); - if (!cl->next_alive) - cbq_activate_class(cl); - return ret; - } - - if (net_xmit_drop_count(ret)) { - qdisc_qstats_drop(sch); - cbq_mark_toplevel(q, cl); - cl->qstats.drops++; - } - return ret; -} - -/* Overlimit action: penalize leaf class by adding offtime */ -static void cbq_overlimit(struct cbq_class *cl) -{ - struct cbq_sched_data *q = qdisc_priv(cl->qdisc); - psched_tdiff_t delay = cl->undertime - q->now; - - if (!cl->delayed) { - delay += cl->offtime; - - /* - * Class goes to sleep, so that it will have no - * chance to work avgidle. Let's forgive it 8) - * - * BTW cbq-2.0 has a crap in this - * place, apparently they forgot to shift it by cl->ewma_log. - */ - if (cl->avgidle < 0) - delay -= (-cl->avgidle) - ((-cl->avgidle) >> cl->ewma_log); - if (cl->avgidle < cl->minidle) - cl->avgidle = cl->minidle; - if (delay <= 0) - delay = 1; - cl->undertime = q->now + delay; - - cl->xstats.overactions++; - cl->delayed = 1; - } - if (q->wd_expires == 0 || q->wd_expires > delay) - q->wd_expires = delay; - - /* Dirty work! We must schedule wakeups based on - * real available rate, rather than leaf rate, - * which may be tiny (even zero). - */ - if (q->toplevel == TC_CBQ_MAXLEVEL) { - struct cbq_class *b; - psched_tdiff_t base_delay = q->wd_expires; - - for (b = cl->borrow; b; b = b->borrow) { - delay = b->undertime - q->now; - if (delay < base_delay) { - if (delay <= 0) - delay = 1; - base_delay = delay; - } - } - - q->wd_expires = base_delay; - } -} - -static psched_tdiff_t cbq_undelay_prio(struct cbq_sched_data *q, int prio, - psched_time_t now) -{ - struct cbq_class *cl; - struct cbq_class *cl_prev = q->active[prio]; - psched_time_t sched = now; - - if (cl_prev == NULL) - return 0; - - do { - cl = cl_prev->next_alive; - if (now - cl->penalized > 0) { - cl_prev->next_alive = cl->next_alive; - cl->next_alive = NULL; - cl->cpriority = cl->priority; - cl->delayed = 0; - cbq_activate_class(cl); - - if (cl == q->active[prio]) { - q->active[prio] = cl_prev; - if (cl == q->active[prio]) { - q->active[prio] = NULL; - return 0; - } - } - - cl = cl_prev->next_alive; - } else if (sched - cl->penalized > 0) - sched = cl->penalized; - } while ((cl_prev = cl) != q->active[prio]); - - return sched - now; -} - -static enum hrtimer_restart cbq_undelay(struct hrtimer *timer) -{ - struct cbq_sched_data *q = container_of(timer, struct cbq_sched_data, - delay_timer); - struct Qdisc *sch = q->watchdog.qdisc; - psched_time_t now; - psched_tdiff_t delay = 0; - unsigned int pmask; - - now = psched_get_time(); - - pmask = q->pmask; - q->pmask = 0; - - while (pmask) { - int prio = ffz(~pmask); - psched_tdiff_t tmp; - - pmask &= ~(1< 0) { - q->pmask |= 1<delay_timer, time, HRTIMER_MODE_ABS_PINNED); - } - - __netif_schedule(qdisc_root(sch)); - return HRTIMER_NORESTART; -} - -/* - * It is mission critical procedure. - * - * We "regenerate" toplevel cutoff, if transmitting class - * has backlog and it is not regulated. It is not part of - * original CBQ description, but looks more reasonable. - * Probably, it is wrong. This question needs further investigation. - */ - -static inline void -cbq_update_toplevel(struct cbq_sched_data *q, struct cbq_class *cl, - struct cbq_class *borrowed) -{ - if (cl && q->toplevel >= borrowed->level) { - if (cl->q->q.qlen > 1) { - do { - if (borrowed->undertime == PSCHED_PASTPERFECT) { - q->toplevel = borrowed->level; - return; - } - } while ((borrowed = borrowed->borrow) != NULL); - } -#if 0 - /* It is not necessary now. Uncommenting it - will save CPU cycles, but decrease fairness. - */ - q->toplevel = TC_CBQ_MAXLEVEL; -#endif - } -} - -static void -cbq_update(struct cbq_sched_data *q) -{ - struct cbq_class *this = q->tx_class; - struct cbq_class *cl = this; - int len = q->tx_len; - psched_time_t now; - - q->tx_class = NULL; - /* Time integrator. We calculate EOS time - * by adding expected packet transmission time. - */ - now = q->now + L2T(&q->link, len); - - for ( ; cl; cl = cl->share) { - long avgidle = cl->avgidle; - long idle; - - cl->bstats.packets++; - cl->bstats.bytes += len; - - /* - * (now - last) is total time between packet right edges. - * (last_pktlen/rate) is "virtual" busy time, so that - * - * idle = (now - last) - last_pktlen/rate - */ - - idle = now - cl->last; - if ((unsigned long)idle > 128*1024*1024) { - avgidle = cl->maxidle; - } else { - idle -= L2T(cl, len); - - /* true_avgidle := (1-W)*true_avgidle + W*idle, - * where W=2^{-ewma_log}. But cl->avgidle is scaled: - * cl->avgidle == true_avgidle/W, - * hence: - */ - avgidle += idle - (avgidle>>cl->ewma_log); - } - - if (avgidle <= 0) { - /* Overlimit or at-limit */ - - if (avgidle < cl->minidle) - avgidle = cl->minidle; - - cl->avgidle = avgidle; - - /* Calculate expected time, when this class - * will be allowed to send. - * It will occur, when: - * (1-W)*true_avgidle + W*delay = 0, i.e. - * idle = (1/W - 1)*(-true_avgidle) - * or - * idle = (1 - W)*(-cl->avgidle); - */ - idle = (-avgidle) - ((-avgidle) >> cl->ewma_log); - - /* - * That is not all. - * To maintain the rate allocated to the class, - * we add to undertime virtual clock, - * necessary to complete transmitted packet. - * (len/phys_bandwidth has been already passed - * to the moment of cbq_update) - */ - - idle -= L2T(&q->link, len); - idle += L2T(cl, len); - - cl->undertime = now + idle; - } else { - /* Underlimit */ - - cl->undertime = PSCHED_PASTPERFECT; - if (avgidle > cl->maxidle) - cl->avgidle = cl->maxidle; - else - cl->avgidle = avgidle; - } - if ((s64)(now - cl->last) > 0) - cl->last = now; - } - - cbq_update_toplevel(q, this, q->tx_borrowed); -} - -static inline struct cbq_class * -cbq_under_limit(struct cbq_class *cl) -{ - struct cbq_sched_data *q = qdisc_priv(cl->qdisc); - struct cbq_class *this_cl = cl; - - if (cl->tparent == NULL) - return cl; - - if (cl->undertime == PSCHED_PASTPERFECT || q->now >= cl->undertime) { - cl->delayed = 0; - return cl; - } - - do { - /* It is very suspicious place. Now overlimit - * action is generated for not bounded classes - * only if link is completely congested. - * Though it is in agree with ancestor-only paradigm, - * it looks very stupid. Particularly, - * it means that this chunk of code will either - * never be called or result in strong amplification - * of burstiness. Dangerous, silly, and, however, - * no another solution exists. - */ - cl = cl->borrow; - if (!cl) { - this_cl->qstats.overlimits++; - cbq_overlimit(this_cl); - return NULL; - } - if (cl->level > q->toplevel) - return NULL; - } while (cl->undertime != PSCHED_PASTPERFECT && q->now < cl->undertime); - - cl->delayed = 0; - return cl; -} - -static inline struct sk_buff * -cbq_dequeue_prio(struct Qdisc *sch, int prio) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl_tail, *cl_prev, *cl; - struct sk_buff *skb; - int deficit; - - cl_tail = cl_prev = q->active[prio]; - cl = cl_prev->next_alive; - - do { - deficit = 0; - - /* Start round */ - do { - struct cbq_class *borrow = cl; - - if (cl->q->q.qlen && - (borrow = cbq_under_limit(cl)) == NULL) - goto skip_class; - - if (cl->deficit <= 0) { - /* Class exhausted its allotment per - * this round. Switch to the next one. - */ - deficit = 1; - cl->deficit += cl->quantum; - goto next_class; - } - - skb = cl->q->dequeue(cl->q); - - /* Class did not give us any skb :-( - * It could occur even if cl->q->q.qlen != 0 - * f.e. if cl->q == "tbf" - */ - if (skb == NULL) - goto skip_class; - - cl->deficit -= qdisc_pkt_len(skb); - q->tx_class = cl; - q->tx_borrowed = borrow; - if (borrow != cl) { -#ifndef CBQ_XSTATS_BORROWS_BYTES - borrow->xstats.borrows++; - cl->xstats.borrows++; -#else - borrow->xstats.borrows += qdisc_pkt_len(skb); - cl->xstats.borrows += qdisc_pkt_len(skb); -#endif - } - q->tx_len = qdisc_pkt_len(skb); - - if (cl->deficit <= 0) { - q->active[prio] = cl; - cl = cl->next_alive; - cl->deficit += cl->quantum; - } - return skb; - -skip_class: - if (cl->q->q.qlen == 0 || prio != cl->cpriority) { - /* Class is empty or penalized. - * Unlink it from active chain. - */ - cl_prev->next_alive = cl->next_alive; - cl->next_alive = NULL; - - /* Did cl_tail point to it? */ - if (cl == cl_tail) { - /* Repair it! */ - cl_tail = cl_prev; - - /* Was it the last class in this band? */ - if (cl == cl_tail) { - /* Kill the band! */ - q->active[prio] = NULL; - q->activemask &= ~(1<q->q.qlen) - cbq_activate_class(cl); - return NULL; - } - - q->active[prio] = cl_tail; - } - if (cl->q->q.qlen) - cbq_activate_class(cl); - - cl = cl_prev; - } - -next_class: - cl_prev = cl; - cl = cl->next_alive; - } while (cl_prev != cl_tail); - } while (deficit); - - q->active[prio] = cl_prev; - - return NULL; -} - -static inline struct sk_buff * -cbq_dequeue_1(struct Qdisc *sch) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct sk_buff *skb; - unsigned int activemask; - - activemask = q->activemask & 0xFF; - while (activemask) { - int prio = ffz(~activemask); - activemask &= ~(1<tx_class) - cbq_update(q); - - q->now = now; - - for (;;) { - q->wd_expires = 0; - - skb = cbq_dequeue_1(sch); - if (skb) { - qdisc_bstats_update(sch, skb); - sch->q.qlen--; - return skb; - } - - /* All the classes are overlimit. - * - * It is possible, if: - * - * 1. Scheduler is empty. - * 2. Toplevel cutoff inhibited borrowing. - * 3. Root class is overlimit. - * - * Reset 2d and 3d conditions and retry. - * - * Note, that NS and cbq-2.0 are buggy, peeking - * an arbitrary class is appropriate for ancestor-only - * sharing, but not for toplevel algorithm. - * - * Our version is better, but slower, because it requires - * two passes, but it is unavoidable with top-level sharing. - */ - - if (q->toplevel == TC_CBQ_MAXLEVEL && - q->link.undertime == PSCHED_PASTPERFECT) - break; - - q->toplevel = TC_CBQ_MAXLEVEL; - q->link.undertime = PSCHED_PASTPERFECT; - } - - /* No packets in scheduler or nobody wants to give them to us :-( - * Sigh... start watchdog timer in the last case. - */ - - if (sch->q.qlen) { - qdisc_qstats_overlimit(sch); - if (q->wd_expires) - qdisc_watchdog_schedule(&q->watchdog, - now + q->wd_expires); - } - return NULL; -} - -/* CBQ class maintanance routines */ - -static void cbq_adjust_levels(struct cbq_class *this) -{ - if (this == NULL) - return; - - do { - int level = 0; - struct cbq_class *cl; - - cl = this->children; - if (cl) { - do { - if (cl->level > level) - level = cl->level; - } while ((cl = cl->sibling) != this->children); - } - this->level = level + 1; - } while ((this = this->tparent) != NULL); -} - -static void cbq_normalize_quanta(struct cbq_sched_data *q, int prio) -{ - struct cbq_class *cl; - unsigned int h; - - if (q->quanta[prio] == 0) - return; - - for (h = 0; h < q->clhash.hashsize; h++) { - hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { - /* BUGGGG... Beware! This expression suffer of - * arithmetic overflows! - */ - if (cl->priority == prio) { - cl->quantum = (cl->weight*cl->allot*q->nclasses[prio])/ - q->quanta[prio]; - } - if (cl->quantum <= 0 || - cl->quantum > 32*qdisc_dev(cl->qdisc)->mtu) { - pr_warn("CBQ: class %08x has bad quantum==%ld, repaired.\n", - cl->common.classid, cl->quantum); - cl->quantum = qdisc_dev(cl->qdisc)->mtu/2 + 1; - } - } - } -} - -static void cbq_sync_defmap(struct cbq_class *cl) -{ - struct cbq_sched_data *q = qdisc_priv(cl->qdisc); - struct cbq_class *split = cl->split; - unsigned int h; - int i; - - if (split == NULL) - return; - - for (i = 0; i <= TC_PRIO_MAX; i++) { - if (split->defaults[i] == cl && !(cl->defmap & (1<defaults[i] = NULL; - } - - for (i = 0; i <= TC_PRIO_MAX; i++) { - int level = split->level; - - if (split->defaults[i]) - continue; - - for (h = 0; h < q->clhash.hashsize; h++) { - struct cbq_class *c; - - hlist_for_each_entry(c, &q->clhash.hash[h], - common.hnode) { - if (c->split == split && c->level < level && - c->defmap & (1<defaults[i] = c; - level = c->level; - } - } - } - } -} - -static void cbq_change_defmap(struct cbq_class *cl, u32 splitid, u32 def, u32 mask) -{ - struct cbq_class *split = NULL; - - if (splitid == 0) { - split = cl->split; - if (!split) - return; - splitid = split->common.classid; - } - - if (split == NULL || split->common.classid != splitid) { - for (split = cl->tparent; split; split = split->tparent) - if (split->common.classid == splitid) - break; - } - - if (split == NULL) - return; - - if (cl->split != split) { - cl->defmap = 0; - cbq_sync_defmap(cl); - cl->split = split; - cl->defmap = def & mask; - } else - cl->defmap = (cl->defmap & ~mask) | (def & mask); - - cbq_sync_defmap(cl); -} - -static void cbq_unlink_class(struct cbq_class *this) -{ - struct cbq_class *cl, **clp; - struct cbq_sched_data *q = qdisc_priv(this->qdisc); - - qdisc_class_hash_remove(&q->clhash, &this->common); - - if (this->tparent) { - clp = &this->sibling; - cl = *clp; - do { - if (cl == this) { - *clp = cl->sibling; - break; - } - clp = &cl->sibling; - } while ((cl = *clp) != this->sibling); - - if (this->tparent->children == this) { - this->tparent->children = this->sibling; - if (this->sibling == this) - this->tparent->children = NULL; - } - } else { - WARN_ON(this->sibling != this); - } -} - -static void cbq_link_class(struct cbq_class *this) -{ - struct cbq_sched_data *q = qdisc_priv(this->qdisc); - struct cbq_class *parent = this->tparent; - - this->sibling = this; - qdisc_class_hash_insert(&q->clhash, &this->common); - - if (parent == NULL) - return; - - if (parent->children == NULL) { - parent->children = this; - } else { - this->sibling = parent->children->sibling; - parent->children->sibling = this; - } -} - -static void -cbq_reset(struct Qdisc *sch) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl; - int prio; - unsigned int h; - - q->activemask = 0; - q->pmask = 0; - q->tx_class = NULL; - q->tx_borrowed = NULL; - qdisc_watchdog_cancel(&q->watchdog); - hrtimer_cancel(&q->delay_timer); - q->toplevel = TC_CBQ_MAXLEVEL; - q->now = psched_get_time(); - - for (prio = 0; prio <= TC_CBQ_MAXPRIO; prio++) - q->active[prio] = NULL; - - for (h = 0; h < q->clhash.hashsize; h++) { - hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { - qdisc_reset(cl->q); - - cl->next_alive = NULL; - cl->undertime = PSCHED_PASTPERFECT; - cl->avgidle = cl->maxidle; - cl->deficit = cl->quantum; - cl->cpriority = cl->priority; - } - } -} - - -static int cbq_set_lss(struct cbq_class *cl, struct tc_cbq_lssopt *lss) -{ - if (lss->change & TCF_CBQ_LSS_FLAGS) { - cl->share = (lss->flags & TCF_CBQ_LSS_ISOLATED) ? NULL : cl->tparent; - cl->borrow = (lss->flags & TCF_CBQ_LSS_BOUNDED) ? NULL : cl->tparent; - } - if (lss->change & TCF_CBQ_LSS_EWMA) - cl->ewma_log = lss->ewma_log; - if (lss->change & TCF_CBQ_LSS_AVPKT) - cl->avpkt = lss->avpkt; - if (lss->change & TCF_CBQ_LSS_MINIDLE) - cl->minidle = -(long)lss->minidle; - if (lss->change & TCF_CBQ_LSS_MAXIDLE) { - cl->maxidle = lss->maxidle; - cl->avgidle = lss->maxidle; - } - if (lss->change & TCF_CBQ_LSS_OFFTIME) - cl->offtime = lss->offtime; - return 0; -} - -static void cbq_rmprio(struct cbq_sched_data *q, struct cbq_class *cl) -{ - q->nclasses[cl->priority]--; - q->quanta[cl->priority] -= cl->weight; - cbq_normalize_quanta(q, cl->priority); -} - -static void cbq_addprio(struct cbq_sched_data *q, struct cbq_class *cl) -{ - q->nclasses[cl->priority]++; - q->quanta[cl->priority] += cl->weight; - cbq_normalize_quanta(q, cl->priority); -} - -static int cbq_set_wrr(struct cbq_class *cl, struct tc_cbq_wrropt *wrr) -{ - struct cbq_sched_data *q = qdisc_priv(cl->qdisc); - - if (wrr->allot) - cl->allot = wrr->allot; - if (wrr->weight) - cl->weight = wrr->weight; - if (wrr->priority) { - cl->priority = wrr->priority - 1; - cl->cpriority = cl->priority; - if (cl->priority >= cl->priority2) - cl->priority2 = TC_CBQ_MAXPRIO - 1; - } - - cbq_addprio(q, cl); - return 0; -} - -static int cbq_set_fopt(struct cbq_class *cl, struct tc_cbq_fopt *fopt) -{ - cbq_change_defmap(cl, fopt->split, fopt->defmap, fopt->defchange); - return 0; -} - -static const struct nla_policy cbq_policy[TCA_CBQ_MAX + 1] = { - [TCA_CBQ_LSSOPT] = { .len = sizeof(struct tc_cbq_lssopt) }, - [TCA_CBQ_WRROPT] = { .len = sizeof(struct tc_cbq_wrropt) }, - [TCA_CBQ_FOPT] = { .len = sizeof(struct tc_cbq_fopt) }, - [TCA_CBQ_OVL_STRATEGY] = { .len = sizeof(struct tc_cbq_ovl) }, - [TCA_CBQ_RATE] = { .len = sizeof(struct tc_ratespec) }, - [TCA_CBQ_RTAB] = { .type = NLA_BINARY, .len = TC_RTAB_SIZE }, - [TCA_CBQ_POLICE] = { .len = sizeof(struct tc_cbq_police) }, -}; - -static int cbq_opt_parse(struct nlattr *tb[TCA_CBQ_MAX + 1], - struct nlattr *opt, - struct netlink_ext_ack *extack) -{ - int err; - - if (!opt) { - NL_SET_ERR_MSG(extack, "CBQ options are required for this operation"); - return -EINVAL; - } - - err = nla_parse_nested_deprecated(tb, TCA_CBQ_MAX, opt, - cbq_policy, extack); - if (err < 0) - return err; - - if (tb[TCA_CBQ_WRROPT]) { - const struct tc_cbq_wrropt *wrr = nla_data(tb[TCA_CBQ_WRROPT]); - - if (wrr->priority > TC_CBQ_MAXPRIO) { - NL_SET_ERR_MSG(extack, "priority is bigger than TC_CBQ_MAXPRIO"); - err = -EINVAL; - } - } - return err; -} - -static int cbq_init(struct Qdisc *sch, struct nlattr *opt, - struct netlink_ext_ack *extack) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct nlattr *tb[TCA_CBQ_MAX + 1]; - struct tc_ratespec *r; - int err; - - qdisc_watchdog_init(&q->watchdog, sch); - hrtimer_init(&q->delay_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED); - q->delay_timer.function = cbq_undelay; - - err = cbq_opt_parse(tb, opt, extack); - if (err < 0) - return err; - - if (!tb[TCA_CBQ_RTAB] || !tb[TCA_CBQ_RATE]) { - NL_SET_ERR_MSG(extack, "Rate specification missing or incomplete"); - return -EINVAL; - } - - r = nla_data(tb[TCA_CBQ_RATE]); - - q->link.R_tab = qdisc_get_rtab(r, tb[TCA_CBQ_RTAB], extack); - if (!q->link.R_tab) - return -EINVAL; - - err = tcf_block_get(&q->link.block, &q->link.filter_list, sch, extack); - if (err) - goto put_rtab; - - err = qdisc_class_hash_init(&q->clhash); - if (err < 0) - goto put_block; - - q->link.sibling = &q->link; - q->link.common.classid = sch->handle; - q->link.qdisc = sch; - q->link.q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, - sch->handle, NULL); - if (!q->link.q) - q->link.q = &noop_qdisc; - else - qdisc_hash_add(q->link.q, true); - - q->link.priority = TC_CBQ_MAXPRIO - 1; - q->link.priority2 = TC_CBQ_MAXPRIO - 1; - q->link.cpriority = TC_CBQ_MAXPRIO - 1; - q->link.allot = psched_mtu(qdisc_dev(sch)); - q->link.quantum = q->link.allot; - q->link.weight = q->link.R_tab->rate.rate; - - q->link.ewma_log = TC_CBQ_DEF_EWMA; - q->link.avpkt = q->link.allot/2; - q->link.minidle = -0x7FFFFFFF; - - q->toplevel = TC_CBQ_MAXLEVEL; - q->now = psched_get_time(); - - cbq_link_class(&q->link); - - if (tb[TCA_CBQ_LSSOPT]) - cbq_set_lss(&q->link, nla_data(tb[TCA_CBQ_LSSOPT])); - - cbq_addprio(q, &q->link); - return 0; - -put_block: - tcf_block_put(q->link.block); - -put_rtab: - qdisc_put_rtab(q->link.R_tab); - return err; -} - -static int cbq_dump_rate(struct sk_buff *skb, struct cbq_class *cl) -{ - unsigned char *b = skb_tail_pointer(skb); - - if (nla_put(skb, TCA_CBQ_RATE, sizeof(cl->R_tab->rate), &cl->R_tab->rate)) - goto nla_put_failure; - return skb->len; - -nla_put_failure: - nlmsg_trim(skb, b); - return -1; -} - -static int cbq_dump_lss(struct sk_buff *skb, struct cbq_class *cl) -{ - unsigned char *b = skb_tail_pointer(skb); - struct tc_cbq_lssopt opt; - - opt.flags = 0; - if (cl->borrow == NULL) - opt.flags |= TCF_CBQ_LSS_BOUNDED; - if (cl->share == NULL) - opt.flags |= TCF_CBQ_LSS_ISOLATED; - opt.ewma_log = cl->ewma_log; - opt.level = cl->level; - opt.avpkt = cl->avpkt; - opt.maxidle = cl->maxidle; - opt.minidle = (u32)(-cl->minidle); - opt.offtime = cl->offtime; - opt.change = ~0; - if (nla_put(skb, TCA_CBQ_LSSOPT, sizeof(opt), &opt)) - goto nla_put_failure; - return skb->len; - -nla_put_failure: - nlmsg_trim(skb, b); - return -1; -} - -static int cbq_dump_wrr(struct sk_buff *skb, struct cbq_class *cl) -{ - unsigned char *b = skb_tail_pointer(skb); - struct tc_cbq_wrropt opt; - - memset(&opt, 0, sizeof(opt)); - opt.flags = 0; - opt.allot = cl->allot; - opt.priority = cl->priority + 1; - opt.cpriority = cl->cpriority + 1; - opt.weight = cl->weight; - if (nla_put(skb, TCA_CBQ_WRROPT, sizeof(opt), &opt)) - goto nla_put_failure; - return skb->len; - -nla_put_failure: - nlmsg_trim(skb, b); - return -1; -} - -static int cbq_dump_fopt(struct sk_buff *skb, struct cbq_class *cl) -{ - unsigned char *b = skb_tail_pointer(skb); - struct tc_cbq_fopt opt; - - if (cl->split || cl->defmap) { - opt.split = cl->split ? cl->split->common.classid : 0; - opt.defmap = cl->defmap; - opt.defchange = ~0; - if (nla_put(skb, TCA_CBQ_FOPT, sizeof(opt), &opt)) - goto nla_put_failure; - } - return skb->len; - -nla_put_failure: - nlmsg_trim(skb, b); - return -1; -} - -static int cbq_dump_attr(struct sk_buff *skb, struct cbq_class *cl) -{ - if (cbq_dump_lss(skb, cl) < 0 || - cbq_dump_rate(skb, cl) < 0 || - cbq_dump_wrr(skb, cl) < 0 || - cbq_dump_fopt(skb, cl) < 0) - return -1; - return 0; -} - -static int cbq_dump(struct Qdisc *sch, struct sk_buff *skb) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct nlattr *nest; - - nest = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (nest == NULL) - goto nla_put_failure; - if (cbq_dump_attr(skb, &q->link) < 0) - goto nla_put_failure; - return nla_nest_end(skb, nest); - -nla_put_failure: - nla_nest_cancel(skb, nest); - return -1; -} - -static int -cbq_dump_stats(struct Qdisc *sch, struct gnet_dump *d) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - - q->link.xstats.avgidle = q->link.avgidle; - return gnet_stats_copy_app(d, &q->link.xstats, sizeof(q->link.xstats)); -} - -static int -cbq_dump_class(struct Qdisc *sch, unsigned long arg, - struct sk_buff *skb, struct tcmsg *tcm) -{ - struct cbq_class *cl = (struct cbq_class *)arg; - struct nlattr *nest; - - if (cl->tparent) - tcm->tcm_parent = cl->tparent->common.classid; - else - tcm->tcm_parent = TC_H_ROOT; - tcm->tcm_handle = cl->common.classid; - tcm->tcm_info = cl->q->handle; - - nest = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (nest == NULL) - goto nla_put_failure; - if (cbq_dump_attr(skb, cl) < 0) - goto nla_put_failure; - return nla_nest_end(skb, nest); - -nla_put_failure: - nla_nest_cancel(skb, nest); - return -1; -} - -static int -cbq_dump_class_stats(struct Qdisc *sch, unsigned long arg, - struct gnet_dump *d) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl = (struct cbq_class *)arg; - __u32 qlen; - - cl->xstats.avgidle = cl->avgidle; - cl->xstats.undertime = 0; - qdisc_qstats_qlen_backlog(cl->q, &qlen, &cl->qstats.backlog); - - if (cl->undertime != PSCHED_PASTPERFECT) - cl->xstats.undertime = cl->undertime - q->now; - - if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch), - d, NULL, &cl->bstats) < 0 || - gnet_stats_copy_rate_est(d, &cl->rate_est) < 0 || - gnet_stats_copy_queue(d, NULL, &cl->qstats, qlen) < 0) - return -1; - - return gnet_stats_copy_app(d, &cl->xstats, sizeof(cl->xstats)); -} - -static int cbq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, - struct Qdisc **old, struct netlink_ext_ack *extack) -{ - struct cbq_class *cl = (struct cbq_class *)arg; - - if (new == NULL) { - new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, - cl->common.classid, extack); - if (new == NULL) - return -ENOBUFS; - } - - *old = qdisc_replace(sch, new, &cl->q); - return 0; -} - -static struct Qdisc *cbq_leaf(struct Qdisc *sch, unsigned long arg) -{ - struct cbq_class *cl = (struct cbq_class *)arg; - - return cl->q; -} - -static void cbq_qlen_notify(struct Qdisc *sch, unsigned long arg) -{ - struct cbq_class *cl = (struct cbq_class *)arg; - - cbq_deactivate_class(cl); -} - -static unsigned long cbq_find(struct Qdisc *sch, u32 classid) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - - return (unsigned long)cbq_class_lookup(q, classid); -} - -static void cbq_destroy_class(struct Qdisc *sch, struct cbq_class *cl) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - - WARN_ON(cl->filters); - - tcf_block_put(cl->block); - qdisc_put(cl->q); - qdisc_put_rtab(cl->R_tab); - gen_kill_estimator(&cl->rate_est); - if (cl != &q->link) - kfree(cl); -} - -static void cbq_destroy(struct Qdisc *sch) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct hlist_node *next; - struct cbq_class *cl; - unsigned int h; - -#ifdef CONFIG_NET_CLS_ACT - q->rx_class = NULL; -#endif - /* - * Filters must be destroyed first because we don't destroy the - * classes from root to leafs which means that filters can still - * be bound to classes which have been destroyed already. --TGR '04 - */ - for (h = 0; h < q->clhash.hashsize; h++) { - hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { - tcf_block_put(cl->block); - cl->block = NULL; - } - } - for (h = 0; h < q->clhash.hashsize; h++) { - hlist_for_each_entry_safe(cl, next, &q->clhash.hash[h], - common.hnode) - cbq_destroy_class(sch, cl); - } - qdisc_class_hash_destroy(&q->clhash); -} - -static int -cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **tca, - unsigned long *arg, struct netlink_ext_ack *extack) -{ - int err; - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl = (struct cbq_class *)*arg; - struct nlattr *opt = tca[TCA_OPTIONS]; - struct nlattr *tb[TCA_CBQ_MAX + 1]; - struct cbq_class *parent; - struct qdisc_rate_table *rtab = NULL; - - err = cbq_opt_parse(tb, opt, extack); - if (err < 0) - return err; - - if (tb[TCA_CBQ_OVL_STRATEGY] || tb[TCA_CBQ_POLICE]) { - NL_SET_ERR_MSG(extack, "Neither overlimit strategy nor policing attributes can be used for changing class params"); - return -EOPNOTSUPP; - } - - if (cl) { - /* Check parent */ - if (parentid) { - if (cl->tparent && - cl->tparent->common.classid != parentid) { - NL_SET_ERR_MSG(extack, "Invalid parent id"); - return -EINVAL; - } - if (!cl->tparent && parentid != TC_H_ROOT) { - NL_SET_ERR_MSG(extack, "Parent must be root"); - return -EINVAL; - } - } - - if (tb[TCA_CBQ_RATE]) { - rtab = qdisc_get_rtab(nla_data(tb[TCA_CBQ_RATE]), - tb[TCA_CBQ_RTAB], extack); - if (rtab == NULL) - return -EINVAL; - } - - if (tca[TCA_RATE]) { - err = gen_replace_estimator(&cl->bstats, NULL, - &cl->rate_est, - NULL, - qdisc_root_sleeping_running(sch), - tca[TCA_RATE]); - if (err) { - NL_SET_ERR_MSG(extack, "Failed to replace specified rate estimator"); - qdisc_put_rtab(rtab); - return err; - } - } - - /* Change class parameters */ - sch_tree_lock(sch); - - if (cl->next_alive != NULL) - cbq_deactivate_class(cl); - - if (rtab) { - qdisc_put_rtab(cl->R_tab); - cl->R_tab = rtab; - } - - if (tb[TCA_CBQ_LSSOPT]) - cbq_set_lss(cl, nla_data(tb[TCA_CBQ_LSSOPT])); - - if (tb[TCA_CBQ_WRROPT]) { - cbq_rmprio(q, cl); - cbq_set_wrr(cl, nla_data(tb[TCA_CBQ_WRROPT])); - } - - if (tb[TCA_CBQ_FOPT]) - cbq_set_fopt(cl, nla_data(tb[TCA_CBQ_FOPT])); - - if (cl->q->q.qlen) - cbq_activate_class(cl); - - sch_tree_unlock(sch); - - return 0; - } - - if (parentid == TC_H_ROOT) - return -EINVAL; - - if (!tb[TCA_CBQ_WRROPT] || !tb[TCA_CBQ_RATE] || !tb[TCA_CBQ_LSSOPT]) { - NL_SET_ERR_MSG(extack, "One of the following attributes MUST be specified: WRR, rate or link sharing"); - return -EINVAL; - } - - rtab = qdisc_get_rtab(nla_data(tb[TCA_CBQ_RATE]), tb[TCA_CBQ_RTAB], - extack); - if (rtab == NULL) - return -EINVAL; - - if (classid) { - err = -EINVAL; - if (TC_H_MAJ(classid ^ sch->handle) || - cbq_class_lookup(q, classid)) { - NL_SET_ERR_MSG(extack, "Specified class not found"); - goto failure; - } - } else { - int i; - classid = TC_H_MAKE(sch->handle, 0x8000); - - for (i = 0; i < 0x8000; i++) { - if (++q->hgenerator >= 0x8000) - q->hgenerator = 1; - if (cbq_class_lookup(q, classid|q->hgenerator) == NULL) - break; - } - err = -ENOSR; - if (i >= 0x8000) { - NL_SET_ERR_MSG(extack, "Unable to generate classid"); - goto failure; - } - classid = classid|q->hgenerator; - } - - parent = &q->link; - if (parentid) { - parent = cbq_class_lookup(q, parentid); - err = -EINVAL; - if (!parent) { - NL_SET_ERR_MSG(extack, "Failed to find parentid"); - goto failure; - } - } - - err = -ENOBUFS; - cl = kzalloc(sizeof(*cl), GFP_KERNEL); - if (cl == NULL) - goto failure; - - err = tcf_block_get(&cl->block, &cl->filter_list, sch, extack); - if (err) { - kfree(cl); - goto failure; - } - - if (tca[TCA_RATE]) { - err = gen_new_estimator(&cl->bstats, NULL, &cl->rate_est, - NULL, - qdisc_root_sleeping_running(sch), - tca[TCA_RATE]); - if (err) { - NL_SET_ERR_MSG(extack, "Couldn't create new estimator"); - tcf_block_put(cl->block); - kfree(cl); - goto failure; - } - } - - cl->R_tab = rtab; - rtab = NULL; - cl->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid, - NULL); - if (!cl->q) - cl->q = &noop_qdisc; - else - qdisc_hash_add(cl->q, true); - - cl->common.classid = classid; - cl->tparent = parent; - cl->qdisc = sch; - cl->allot = parent->allot; - cl->quantum = cl->allot; - cl->weight = cl->R_tab->rate.rate; - - sch_tree_lock(sch); - cbq_link_class(cl); - cl->borrow = cl->tparent; - if (cl->tparent != &q->link) - cl->share = cl->tparent; - cbq_adjust_levels(parent); - cl->minidle = -0x7FFFFFFF; - cbq_set_lss(cl, nla_data(tb[TCA_CBQ_LSSOPT])); - cbq_set_wrr(cl, nla_data(tb[TCA_CBQ_WRROPT])); - if (cl->ewma_log == 0) - cl->ewma_log = q->link.ewma_log; - if (cl->maxidle == 0) - cl->maxidle = q->link.maxidle; - if (cl->avpkt == 0) - cl->avpkt = q->link.avpkt; - if (tb[TCA_CBQ_FOPT]) - cbq_set_fopt(cl, nla_data(tb[TCA_CBQ_FOPT])); - sch_tree_unlock(sch); - - qdisc_class_hash_grow(sch, &q->clhash); - - *arg = (unsigned long)cl; - return 0; - -failure: - qdisc_put_rtab(rtab); - return err; -} - -static int cbq_delete(struct Qdisc *sch, unsigned long arg) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl = (struct cbq_class *)arg; - - if (cl->filters || cl->children || cl == &q->link) - return -EBUSY; - - sch_tree_lock(sch); - - qdisc_purge_queue(cl->q); - - if (cl->next_alive) - cbq_deactivate_class(cl); - - if (q->tx_borrowed == cl) - q->tx_borrowed = q->tx_class; - if (q->tx_class == cl) { - q->tx_class = NULL; - q->tx_borrowed = NULL; - } -#ifdef CONFIG_NET_CLS_ACT - if (q->rx_class == cl) - q->rx_class = NULL; -#endif - - cbq_unlink_class(cl); - cbq_adjust_levels(cl->tparent); - cl->defmap = 0; - cbq_sync_defmap(cl); - - cbq_rmprio(q, cl); - sch_tree_unlock(sch); - - cbq_destroy_class(sch, cl); - return 0; -} - -static struct tcf_block *cbq_tcf_block(struct Qdisc *sch, unsigned long arg, - struct netlink_ext_ack *extack) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl = (struct cbq_class *)arg; - - if (cl == NULL) - cl = &q->link; - - return cl->block; -} - -static unsigned long cbq_bind_filter(struct Qdisc *sch, unsigned long parent, - u32 classid) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *p = (struct cbq_class *)parent; - struct cbq_class *cl = cbq_class_lookup(q, classid); - - if (cl) { - if (p && p->level <= cl->level) - return 0; - cl->filters++; - return (unsigned long)cl; - } - return 0; -} - -static void cbq_unbind_filter(struct Qdisc *sch, unsigned long arg) -{ - struct cbq_class *cl = (struct cbq_class *)arg; - - cl->filters--; -} - -static void cbq_walk(struct Qdisc *sch, struct qdisc_walker *arg) -{ - struct cbq_sched_data *q = qdisc_priv(sch); - struct cbq_class *cl; - unsigned int h; - - if (arg->stop) - return; - - for (h = 0; h < q->clhash.hashsize; h++) { - hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { - if (arg->count < arg->skip) { - arg->count++; - continue; - } - if (arg->fn(sch, (unsigned long)cl, arg) < 0) { - arg->stop = 1; - return; - } - arg->count++; - } - } -} - -static const struct Qdisc_class_ops cbq_class_ops = { - .graft = cbq_graft, - .leaf = cbq_leaf, - .qlen_notify = cbq_qlen_notify, - .find = cbq_find, - .change = cbq_change_class, - .delete = cbq_delete, - .walk = cbq_walk, - .tcf_block = cbq_tcf_block, - .bind_tcf = cbq_bind_filter, - .unbind_tcf = cbq_unbind_filter, - .dump = cbq_dump_class, - .dump_stats = cbq_dump_class_stats, -}; - -static struct Qdisc_ops cbq_qdisc_ops __read_mostly = { - .next = NULL, - .cl_ops = &cbq_class_ops, - .id = "cbq", - .priv_size = sizeof(struct cbq_sched_data), - .enqueue = cbq_enqueue, - .dequeue = cbq_dequeue, - .peek = qdisc_peek_dequeued, - .init = cbq_init, - .reset = cbq_reset, - .destroy = cbq_destroy, - .change = NULL, - .dump = cbq_dump, - .dump_stats = cbq_dump_stats, - .owner = THIS_MODULE, -}; - -static int __init cbq_module_init(void) -{ - return register_qdisc(&cbq_qdisc_ops); -} -static void __exit cbq_module_exit(void) -{ - unregister_qdisc(&cbq_qdisc_ops); -} -module_init(cbq_module_init) -module_exit(cbq_module_exit) -MODULE_LICENSE("GPL"); diff -Nru linux-5.10.209/net/sched/sch_dsmark.c linux-5.10.216/net/sched/sch_dsmark.c --- linux-5.10.209/net/sched/sch_dsmark.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sched/sch_dsmark.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,521 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* net/sched/sch_dsmark.c - Differentiated Services field marker */ - -/* Written 1998-2000 by Werner Almesberger, EPFL ICA */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * classid class marking - * ------- ----- ------- - * n/a 0 n/a - * x:0 1 use entry [0] - * ... ... ... - * x:y y>0 y+1 use entry [y] - * ... ... ... - * x:indices-1 indices use entry [indices-1] - * ... ... ... - * x:y y+1 use entry [y & (indices-1)] - * ... ... ... - * 0xffff 0x10000 use entry [indices-1] - */ - - -#define NO_DEFAULT_INDEX (1 << 16) - -struct mask_value { - u8 mask; - u8 value; -}; - -struct dsmark_qdisc_data { - struct Qdisc *q; - struct tcf_proto __rcu *filter_list; - struct tcf_block *block; - struct mask_value *mv; - u16 indices; - u8 set_tc_index; - u32 default_index; /* index range is 0...0xffff */ -#define DSMARK_EMBEDDED_SZ 16 - struct mask_value embedded[DSMARK_EMBEDDED_SZ]; -}; - -static inline int dsmark_valid_index(struct dsmark_qdisc_data *p, u16 index) -{ - return index <= p->indices && index > 0; -} - -/* ------------------------- Class/flow operations ------------------------- */ - -static int dsmark_graft(struct Qdisc *sch, unsigned long arg, - struct Qdisc *new, struct Qdisc **old, - struct netlink_ext_ack *extack) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - pr_debug("%s(sch %p,[qdisc %p],new %p,old %p)\n", - __func__, sch, p, new, old); - - if (new == NULL) { - new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, - sch->handle, NULL); - if (new == NULL) - new = &noop_qdisc; - } - - *old = qdisc_replace(sch, new, &p->q); - return 0; -} - -static struct Qdisc *dsmark_leaf(struct Qdisc *sch, unsigned long arg) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - return p->q; -} - -static unsigned long dsmark_find(struct Qdisc *sch, u32 classid) -{ - return TC_H_MIN(classid) + 1; -} - -static unsigned long dsmark_bind_filter(struct Qdisc *sch, - unsigned long parent, u32 classid) -{ - pr_debug("%s(sch %p,[qdisc %p],classid %x)\n", - __func__, sch, qdisc_priv(sch), classid); - - return dsmark_find(sch, classid); -} - -static void dsmark_unbind_filter(struct Qdisc *sch, unsigned long cl) -{ -} - -static const struct nla_policy dsmark_policy[TCA_DSMARK_MAX + 1] = { - [TCA_DSMARK_INDICES] = { .type = NLA_U16 }, - [TCA_DSMARK_DEFAULT_INDEX] = { .type = NLA_U16 }, - [TCA_DSMARK_SET_TC_INDEX] = { .type = NLA_FLAG }, - [TCA_DSMARK_MASK] = { .type = NLA_U8 }, - [TCA_DSMARK_VALUE] = { .type = NLA_U8 }, -}; - -static int dsmark_change(struct Qdisc *sch, u32 classid, u32 parent, - struct nlattr **tca, unsigned long *arg, - struct netlink_ext_ack *extack) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - struct nlattr *opt = tca[TCA_OPTIONS]; - struct nlattr *tb[TCA_DSMARK_MAX + 1]; - int err = -EINVAL; - - pr_debug("%s(sch %p,[qdisc %p],classid %x,parent %x), arg 0x%lx\n", - __func__, sch, p, classid, parent, *arg); - - if (!dsmark_valid_index(p, *arg)) { - err = -ENOENT; - goto errout; - } - - if (!opt) - goto errout; - - err = nla_parse_nested_deprecated(tb, TCA_DSMARK_MAX, opt, - dsmark_policy, NULL); - if (err < 0) - goto errout; - - if (tb[TCA_DSMARK_VALUE]) - p->mv[*arg - 1].value = nla_get_u8(tb[TCA_DSMARK_VALUE]); - - if (tb[TCA_DSMARK_MASK]) - p->mv[*arg - 1].mask = nla_get_u8(tb[TCA_DSMARK_MASK]); - - err = 0; - -errout: - return err; -} - -static int dsmark_delete(struct Qdisc *sch, unsigned long arg) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - if (!dsmark_valid_index(p, arg)) - return -EINVAL; - - p->mv[arg - 1].mask = 0xff; - p->mv[arg - 1].value = 0; - - return 0; -} - -static void dsmark_walk(struct Qdisc *sch, struct qdisc_walker *walker) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - int i; - - pr_debug("%s(sch %p,[qdisc %p],walker %p)\n", - __func__, sch, p, walker); - - if (walker->stop) - return; - - for (i = 0; i < p->indices; i++) { - if (p->mv[i].mask == 0xff && !p->mv[i].value) - goto ignore; - if (walker->count >= walker->skip) { - if (walker->fn(sch, i + 1, walker) < 0) { - walker->stop = 1; - break; - } - } -ignore: - walker->count++; - } -} - -static struct tcf_block *dsmark_tcf_block(struct Qdisc *sch, unsigned long cl, - struct netlink_ext_ack *extack) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - return p->block; -} - -/* --------------------------- Qdisc operations ---------------------------- */ - -static int dsmark_enqueue(struct sk_buff *skb, struct Qdisc *sch, - struct sk_buff **to_free) -{ - unsigned int len = qdisc_pkt_len(skb); - struct dsmark_qdisc_data *p = qdisc_priv(sch); - int err; - - pr_debug("%s(skb %p,sch %p,[qdisc %p])\n", __func__, skb, sch, p); - - if (p->set_tc_index) { - int wlen = skb_network_offset(skb); - - switch (skb_protocol(skb, true)) { - case htons(ETH_P_IP): - wlen += sizeof(struct iphdr); - if (!pskb_may_pull(skb, wlen) || - skb_try_make_writable(skb, wlen)) - goto drop; - - skb->tc_index = ipv4_get_dsfield(ip_hdr(skb)) - & ~INET_ECN_MASK; - break; - - case htons(ETH_P_IPV6): - wlen += sizeof(struct ipv6hdr); - if (!pskb_may_pull(skb, wlen) || - skb_try_make_writable(skb, wlen)) - goto drop; - - skb->tc_index = ipv6_get_dsfield(ipv6_hdr(skb)) - & ~INET_ECN_MASK; - break; - default: - skb->tc_index = 0; - break; - } - } - - if (TC_H_MAJ(skb->priority) == sch->handle) - skb->tc_index = TC_H_MIN(skb->priority); - else { - struct tcf_result res; - struct tcf_proto *fl = rcu_dereference_bh(p->filter_list); - int result = tcf_classify(skb, fl, &res, false); - - pr_debug("result %d class 0x%04x\n", result, res.classid); - - switch (result) { -#ifdef CONFIG_NET_CLS_ACT - case TC_ACT_QUEUED: - case TC_ACT_STOLEN: - case TC_ACT_TRAP: - __qdisc_drop(skb, to_free); - return NET_XMIT_SUCCESS | __NET_XMIT_STOLEN; - - case TC_ACT_SHOT: - goto drop; -#endif - case TC_ACT_OK: - skb->tc_index = TC_H_MIN(res.classid); - break; - - default: - if (p->default_index != NO_DEFAULT_INDEX) - skb->tc_index = p->default_index; - break; - } - } - - err = qdisc_enqueue(skb, p->q, to_free); - if (err != NET_XMIT_SUCCESS) { - if (net_xmit_drop_count(err)) - qdisc_qstats_drop(sch); - return err; - } - - sch->qstats.backlog += len; - sch->q.qlen++; - - return NET_XMIT_SUCCESS; - -drop: - qdisc_drop(skb, sch, to_free); - return NET_XMIT_SUCCESS | __NET_XMIT_BYPASS; -} - -static struct sk_buff *dsmark_dequeue(struct Qdisc *sch) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - struct sk_buff *skb; - u32 index; - - pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); - - skb = qdisc_dequeue_peeked(p->q); - if (skb == NULL) - return NULL; - - qdisc_bstats_update(sch, skb); - qdisc_qstats_backlog_dec(sch, skb); - sch->q.qlen--; - - index = skb->tc_index & (p->indices - 1); - pr_debug("index %d->%d\n", skb->tc_index, index); - - switch (skb_protocol(skb, true)) { - case htons(ETH_P_IP): - ipv4_change_dsfield(ip_hdr(skb), p->mv[index].mask, - p->mv[index].value); - break; - case htons(ETH_P_IPV6): - ipv6_change_dsfield(ipv6_hdr(skb), p->mv[index].mask, - p->mv[index].value); - break; - default: - /* - * Only complain if a change was actually attempted. - * This way, we can send non-IP traffic through dsmark - * and don't need yet another qdisc as a bypass. - */ - if (p->mv[index].mask != 0xff || p->mv[index].value) - pr_warn("%s: unsupported protocol %d\n", - __func__, ntohs(skb_protocol(skb, true))); - break; - } - - return skb; -} - -static struct sk_buff *dsmark_peek(struct Qdisc *sch) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); - - return p->q->ops->peek(p->q); -} - -static int dsmark_init(struct Qdisc *sch, struct nlattr *opt, - struct netlink_ext_ack *extack) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - struct nlattr *tb[TCA_DSMARK_MAX + 1]; - int err = -EINVAL; - u32 default_index = NO_DEFAULT_INDEX; - u16 indices; - int i; - - pr_debug("%s(sch %p,[qdisc %p],opt %p)\n", __func__, sch, p, opt); - - if (!opt) - goto errout; - - err = tcf_block_get(&p->block, &p->filter_list, sch, extack); - if (err) - return err; - - err = nla_parse_nested_deprecated(tb, TCA_DSMARK_MAX, opt, - dsmark_policy, NULL); - if (err < 0) - goto errout; - - err = -EINVAL; - if (!tb[TCA_DSMARK_INDICES]) - goto errout; - indices = nla_get_u16(tb[TCA_DSMARK_INDICES]); - - if (hweight32(indices) != 1) - goto errout; - - if (tb[TCA_DSMARK_DEFAULT_INDEX]) - default_index = nla_get_u16(tb[TCA_DSMARK_DEFAULT_INDEX]); - - if (indices <= DSMARK_EMBEDDED_SZ) - p->mv = p->embedded; - else - p->mv = kmalloc_array(indices, sizeof(*p->mv), GFP_KERNEL); - if (!p->mv) { - err = -ENOMEM; - goto errout; - } - for (i = 0; i < indices; i++) { - p->mv[i].mask = 0xff; - p->mv[i].value = 0; - } - p->indices = indices; - p->default_index = default_index; - p->set_tc_index = nla_get_flag(tb[TCA_DSMARK_SET_TC_INDEX]); - - p->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, sch->handle, - NULL); - if (p->q == NULL) - p->q = &noop_qdisc; - else - qdisc_hash_add(p->q, true); - - pr_debug("%s: qdisc %p\n", __func__, p->q); - - err = 0; -errout: - return err; -} - -static void dsmark_reset(struct Qdisc *sch) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); - if (p->q) - qdisc_reset(p->q); -} - -static void dsmark_destroy(struct Qdisc *sch) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - - pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); - - tcf_block_put(p->block); - qdisc_put(p->q); - if (p->mv != p->embedded) - kfree(p->mv); -} - -static int dsmark_dump_class(struct Qdisc *sch, unsigned long cl, - struct sk_buff *skb, struct tcmsg *tcm) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - struct nlattr *opts = NULL; - - pr_debug("%s(sch %p,[qdisc %p],class %ld\n", __func__, sch, p, cl); - - if (!dsmark_valid_index(p, cl)) - return -EINVAL; - - tcm->tcm_handle = TC_H_MAKE(TC_H_MAJ(sch->handle), cl - 1); - tcm->tcm_info = p->q->handle; - - opts = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (opts == NULL) - goto nla_put_failure; - if (nla_put_u8(skb, TCA_DSMARK_MASK, p->mv[cl - 1].mask) || - nla_put_u8(skb, TCA_DSMARK_VALUE, p->mv[cl - 1].value)) - goto nla_put_failure; - - return nla_nest_end(skb, opts); - -nla_put_failure: - nla_nest_cancel(skb, opts); - return -EMSGSIZE; -} - -static int dsmark_dump(struct Qdisc *sch, struct sk_buff *skb) -{ - struct dsmark_qdisc_data *p = qdisc_priv(sch); - struct nlattr *opts = NULL; - - opts = nla_nest_start_noflag(skb, TCA_OPTIONS); - if (opts == NULL) - goto nla_put_failure; - if (nla_put_u16(skb, TCA_DSMARK_INDICES, p->indices)) - goto nla_put_failure; - - if (p->default_index != NO_DEFAULT_INDEX && - nla_put_u16(skb, TCA_DSMARK_DEFAULT_INDEX, p->default_index)) - goto nla_put_failure; - - if (p->set_tc_index && - nla_put_flag(skb, TCA_DSMARK_SET_TC_INDEX)) - goto nla_put_failure; - - return nla_nest_end(skb, opts); - -nla_put_failure: - nla_nest_cancel(skb, opts); - return -EMSGSIZE; -} - -static const struct Qdisc_class_ops dsmark_class_ops = { - .graft = dsmark_graft, - .leaf = dsmark_leaf, - .find = dsmark_find, - .change = dsmark_change, - .delete = dsmark_delete, - .walk = dsmark_walk, - .tcf_block = dsmark_tcf_block, - .bind_tcf = dsmark_bind_filter, - .unbind_tcf = dsmark_unbind_filter, - .dump = dsmark_dump_class, -}; - -static struct Qdisc_ops dsmark_qdisc_ops __read_mostly = { - .next = NULL, - .cl_ops = &dsmark_class_ops, - .id = "dsmark", - .priv_size = sizeof(struct dsmark_qdisc_data), - .enqueue = dsmark_enqueue, - .dequeue = dsmark_dequeue, - .peek = dsmark_peek, - .init = dsmark_init, - .reset = dsmark_reset, - .destroy = dsmark_destroy, - .change = NULL, - .dump = dsmark_dump, - .owner = THIS_MODULE, -}; - -static int __init dsmark_module_init(void) -{ - return register_qdisc(&dsmark_qdisc_ops); -} - -static void __exit dsmark_module_exit(void) -{ - unregister_qdisc(&dsmark_qdisc_ops); -} - -module_init(dsmark_module_init) -module_exit(dsmark_module_exit) - -MODULE_LICENSE("GPL"); diff -Nru linux-5.10.209/net/smc/smc_diag.c linux-5.10.216/net/smc/smc_diag.c --- linux-5.10.209/net/smc/smc_diag.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/smc/smc_diag.c 2024-05-02 14:23:46.000000000 +0000 @@ -177,7 +177,7 @@ } if (smc->conn.lgr && smc->conn.lgr->is_smcd && (req->diag_ext & (1 << (SMC_DIAG_DMBINFO - 1))) && - !list_empty(&smc->conn.lgr->list)) { + !list_empty(&smc->conn.lgr->list) && smc->conn.rmb_desc) { struct smc_connection *conn = &smc->conn; struct smcd_diag_dmbinfo dinfo; diff -Nru linux-5.10.209/net/smc/smc_pnet.c linux-5.10.216/net/smc/smc_pnet.c --- linux-5.10.209/net/smc/smc_pnet.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/smc/smc_pnet.c 2024-05-02 14:23:46.000000000 +0000 @@ -797,6 +797,16 @@ u8 ndev_pnetid[SMC_MAX_PNETID_LEN]; struct net_device *dev; + /* Newly created netns do not have devices. + * Do not even acquire rtnl. + */ + if (list_empty(&net->dev_base_head)) + return; + + /* Note: This might not be needed, because smc_pnet_netdev_event() + * is also calling smc_pnet_add_base_pnetid() when handling + * NETDEV_UP event. + */ rtnl_lock(); for_each_netdev(net, dev) smc_pnet_add_base_pnetid(net, dev, ndev_pnetid); diff -Nru linux-5.10.209/net/sunrpc/addr.c linux-5.10.216/net/sunrpc/addr.c --- linux-5.10.209/net/sunrpc/addr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sunrpc/addr.c 2024-05-02 14:23:46.000000000 +0000 @@ -284,10 +284,10 @@ } if (snprintf(portbuf, sizeof(portbuf), - ".%u.%u", port >> 8, port & 0xff) > (int)sizeof(portbuf)) + ".%u.%u", port >> 8, port & 0xff) >= (int)sizeof(portbuf)) return NULL; - if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) > sizeof(addrbuf)) + if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) >= sizeof(addrbuf)) return NULL; return kstrdup(addrbuf, gfp_flags); diff -Nru linux-5.10.209/net/sunrpc/auth_gss/gss_rpc_xdr.c linux-5.10.216/net/sunrpc/auth_gss/gss_rpc_xdr.c --- linux-5.10.209/net/sunrpc/auth_gss/gss_rpc_xdr.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sunrpc/auth_gss/gss_rpc_xdr.c 2024-05-02 14:23:46.000000000 +0000 @@ -250,8 +250,8 @@ creds = kzalloc(sizeof(struct svc_cred), GFP_KERNEL); if (!creds) { - kfree(oa->data); - return -ENOMEM; + err = -ENOMEM; + goto free_oa; } oa->data[0].option.data = CREDS_VALUE; @@ -265,29 +265,40 @@ /* option buffer */ p = xdr_inline_decode(xdr, 4); - if (unlikely(p == NULL)) - return -ENOSPC; + if (unlikely(p == NULL)) { + err = -ENOSPC; + goto free_creds; + } length = be32_to_cpup(p); p = xdr_inline_decode(xdr, length); - if (unlikely(p == NULL)) - return -ENOSPC; + if (unlikely(p == NULL)) { + err = -ENOSPC; + goto free_creds; + } if (length == sizeof(CREDS_VALUE) && memcmp(p, CREDS_VALUE, sizeof(CREDS_VALUE)) == 0) { /* We have creds here. parse them */ err = gssx_dec_linux_creds(xdr, creds); if (err) - return err; + goto free_creds; oa->data[0].value.len = 1; /* presence */ } else { /* consume uninteresting buffer */ err = gssx_dec_buffer(xdr, &dummy); if (err) - return err; + goto free_creds; } } return 0; + +free_creds: + kfree(creds); +free_oa: + kfree(oa->data); + oa->data = NULL; + return err; } static int gssx_dec_status(struct xdr_stream *xdr, diff -Nru linux-5.10.209/net/sunrpc/xprtmultipath.c linux-5.10.216/net/sunrpc/xprtmultipath.c --- linux-5.10.209/net/sunrpc/xprtmultipath.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/sunrpc/xprtmultipath.c 2024-05-02 14:23:46.000000000 +0000 @@ -253,8 +253,9 @@ return xprt_switch_find_current_entry(head, xpi->xpi_cursor); } -bool rpc_xprt_switch_has_addr(struct rpc_xprt_switch *xps, - const struct sockaddr *sap) +static +bool __rpc_xprt_switch_has_addr(struct rpc_xprt_switch *xps, + const struct sockaddr *sap) { struct list_head *head; struct rpc_xprt *pos; @@ -273,6 +274,18 @@ return false; } +bool rpc_xprt_switch_has_addr(struct rpc_xprt_switch *xps, + const struct sockaddr *sap) +{ + bool res; + + rcu_read_lock(); + res = __rpc_xprt_switch_has_addr(xps, sap); + rcu_read_unlock(); + + return res; +} + static struct rpc_xprt *xprt_switch_find_next_entry(struct list_head *head, const struct rpc_xprt *cur) diff -Nru linux-5.10.209/net/tipc/bearer.c linux-5.10.216/net/tipc/bearer.c --- linux-5.10.209/net/tipc/bearer.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/tipc/bearer.c 2024-05-02 14:23:46.000000000 +0000 @@ -1072,6 +1072,12 @@ #ifdef CONFIG_TIPC_MEDIA_UDP if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) { + if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) { + rtnl_unlock(); + NL_SET_ERR_MSG(info->extack, "UDP option is unsupported"); + return -EINVAL; + } + err = tipc_udp_nl_bearer_add(b, attrs[TIPC_NLA_BEARER_UDP_OPTS]); if (err) { diff -Nru linux-5.10.209/net/tls/tls_main.c linux-5.10.216/net/tls/tls_main.c --- linux-5.10.209/net/tls/tls_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/tls/tls_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -800,7 +800,7 @@ } } -static int tls_get_info(const struct sock *sk, struct sk_buff *skb) +static int tls_get_info(struct sock *sk, struct sk_buff *skb) { u16 version, cipher_type; struct tls_context *ctx; diff -Nru linux-5.10.209/net/tls/tls_sw.c linux-5.10.216/net/tls/tls_sw.c --- linux-5.10.209/net/tls/tls_sw.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/tls/tls_sw.c 2024-05-02 14:23:46.000000000 +0000 @@ -1754,6 +1754,7 @@ struct tls_sw_context_rx *ctx = tls_sw_ctx_rx(tls_ctx); struct tls_prot_info *prot = &tls_ctx->prot_info; struct sk_psock *psock; + int num_async, pending; unsigned char control = 0; ssize_t decrypted = 0; struct strp_msg *rxm; @@ -1766,8 +1767,6 @@ bool is_kvec = iov_iter_is_kvec(&msg->msg_iter); bool is_peek = flags & MSG_PEEK; bool bpf_strp_enabled; - int num_async = 0; - int pending; flags |= nonblock; @@ -1784,17 +1783,18 @@ if (err < 0) { tls_err_abort(sk, err); goto end; - } else { - copied = err; } - if (len <= copied) - goto recv_end; + copied = err; + if (len <= copied || (copied && control != TLS_RECORD_TYPE_DATA)) + goto end; target = sock_rcvlowat(sk, flags & MSG_WAITALL, len); len = len - copied; timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); + decrypted = 0; + num_async = 0; while (len && (decrypted + copied < target || ctx->recv_pkt)) { bool retain_skb = false; bool zc = false; diff -Nru linux-5.10.209/net/unix/af_unix.c linux-5.10.216/net/unix/af_unix.c --- linux-5.10.209/net/unix/af_unix.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/unix/af_unix.c 2024-05-02 14:23:46.000000000 +0000 @@ -817,11 +817,11 @@ sk->sk_write_space = unix_write_space; sk->sk_max_ack_backlog = net->unx.sysctl_max_dgram_qlen; sk->sk_destruct = unix_sock_destructor; - u = unix_sk(sk); + u = unix_sk(sk); + u->inflight = 0; u->path.dentry = NULL; u->path.mnt = NULL; spin_lock_init(&u->lock); - atomic_long_set(&u->inflight, 0); INIT_LIST_HEAD(&u->link); mutex_init(&u->iolock); /* single task reading lock */ mutex_init(&u->bindlock); /* single task binding lock */ @@ -1126,13 +1126,11 @@ unix_state_lock(sk1); return; } - if (sk1 < sk2) { - unix_state_lock(sk1); - unix_state_lock_nested(sk2); - } else { - unix_state_lock(sk2); - unix_state_lock_nested(sk1); - } + if (sk1 > sk2) + swap(sk1, sk2); + + unix_state_lock(sk1); + unix_state_lock_nested(sk2, U_LOCK_SECOND); } static void unix_state_double_unlock(struct sock *sk1, struct sock *sk2) @@ -1352,7 +1350,7 @@ goto out_unlock; } - unix_state_lock_nested(sk); + unix_state_lock_nested(sk, U_LOCK_SECOND); if (sk->sk_state != st) { unix_state_unlock(sk); diff -Nru linux-5.10.209/net/unix/diag.c linux-5.10.216/net/unix/diag.c --- linux-5.10.209/net/unix/diag.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/unix/diag.c 2024-05-02 14:23:46.000000000 +0000 @@ -83,7 +83,7 @@ * queue lock. With the other's queue locked it's * OK to lock the state. */ - unix_state_lock_nested(req); + unix_state_lock_nested(req, U_LOCK_DIAG); peer = unix_sk(req)->peer; buf[i++] = (peer ? sock_i_ino(peer) : 0); unix_state_unlock(req); diff -Nru linux-5.10.209/net/unix/garbage.c linux-5.10.216/net/unix/garbage.c --- linux-5.10.209/net/unix/garbage.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/unix/garbage.c 2024-05-02 14:23:46.000000000 +0000 @@ -166,17 +166,18 @@ static void dec_inflight(struct unix_sock *usk) { - atomic_long_dec(&usk->inflight); + usk->inflight--; } static void inc_inflight(struct unix_sock *usk) { - atomic_long_inc(&usk->inflight); + usk->inflight++; } static void inc_inflight_move_tail(struct unix_sock *u) { - atomic_long_inc(&u->inflight); + u->inflight++; + /* If this still might be part of a cycle, move it to the end * of the list, so that it's checked even if it was already * passed over @@ -198,7 +199,7 @@ if (READ_ONCE(unix_tot_inflight) > UNIX_INFLIGHT_TRIGGER_GC && !READ_ONCE(gc_in_progress)) unix_gc(); - wait_event(unix_gc_wait, gc_in_progress == false); + wait_event(unix_gc_wait, !READ_ONCE(gc_in_progress)); } /* The external entry point: unix_gc() */ @@ -234,20 +235,34 @@ * receive queues. Other, non candidate sockets _can_ be * added to queue, so we must make sure only to touch * candidates. + * + * Embryos, though never candidates themselves, affect which + * candidates are reachable by the garbage collector. Before + * being added to a listener's queue, an embryo may already + * receive data carrying SCM_RIGHTS, potentially making the + * passed socket a candidate that is not yet reachable by the + * collector. It becomes reachable once the embryo is + * enqueued. Therefore, we must ensure that no SCM-laden + * embryo appears in a (candidate) listener's queue between + * consecutive scan_children() calls. */ list_for_each_entry_safe(u, next, &gc_inflight_list, link) { + struct sock *sk = &u->sk; long total_refs; - long inflight_refs; - total_refs = file_count(u->sk.sk_socket->file); - inflight_refs = atomic_long_read(&u->inflight); + total_refs = file_count(sk->sk_socket->file); - BUG_ON(inflight_refs < 1); - BUG_ON(total_refs < inflight_refs); - if (total_refs == inflight_refs) { + BUG_ON(!u->inflight); + BUG_ON(total_refs < u->inflight); + if (total_refs == u->inflight) { list_move_tail(&u->link, &gc_candidates); __set_bit(UNIX_GC_CANDIDATE, &u->gc_flags); __set_bit(UNIX_GC_MAYBE_CYCLE, &u->gc_flags); + + if (sk->sk_state == TCP_LISTEN) { + unix_state_lock_nested(sk, U_LOCK_GC_LISTENER); + unix_state_unlock(sk); + } } } @@ -271,7 +286,7 @@ /* Move cursor to after the current position. */ list_move(&cursor, &u->link); - if (atomic_long_read(&u->inflight) > 0) { + if (u->inflight) { list_move_tail(&u->link, ¬_cycle_list); __clear_bit(UNIX_GC_MAYBE_CYCLE, &u->gc_flags); scan_children(&u->sk, inc_inflight_move_tail, NULL); diff -Nru linux-5.10.209/net/unix/scm.c linux-5.10.216/net/unix/scm.c --- linux-5.10.209/net/unix/scm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/unix/scm.c 2024-05-02 14:23:46.000000000 +0000 @@ -34,10 +34,8 @@ /* PF_UNIX ? */ if (s && sock->ops && sock->ops->family == PF_UNIX) u_sock = s; - } else { - /* Could be an io_uring instance */ - u_sock = io_uring_get_socket(filp); } + return u_sock; } EXPORT_SYMBOL(unix_get_socket); @@ -54,12 +52,13 @@ if (s) { struct unix_sock *u = unix_sk(s); - if (atomic_long_inc_return(&u->inflight) == 1) { + if (!u->inflight) { BUG_ON(!list_empty(&u->link)); list_add_tail(&u->link, &gc_inflight_list); } else { BUG_ON(list_empty(&u->link)); } + u->inflight++; /* Paired with READ_ONCE() in wait_for_unix_gc() */ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight + 1); } @@ -76,10 +75,11 @@ if (s) { struct unix_sock *u = unix_sk(s); - BUG_ON(!atomic_long_read(&u->inflight)); + BUG_ON(!u->inflight); BUG_ON(list_empty(&u->link)); - if (atomic_long_dec_and_test(&u->inflight)) + u->inflight--; + if (!u->inflight) list_del_init(&u->link); /* Paired with READ_ONCE() in wait_for_unix_gc() */ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight - 1); diff -Nru linux-5.10.209/net/wireless/nl80211.c linux-5.10.216/net/wireless/nl80211.c --- linux-5.10.209/net/wireless/nl80211.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/wireless/nl80211.c 2024-05-02 14:23:46.000000000 +0000 @@ -3595,6 +3595,7 @@ if_idx++; } + if_start = 0; wp_idx++; } out: @@ -3771,6 +3772,8 @@ if (ntype != NL80211_IFTYPE_MESH_POINT) return -EINVAL; + if (otype != NL80211_IFTYPE_MESH_POINT) + return -EINVAL; if (netif_running(dev)) return -EBUSY; diff -Nru linux-5.10.209/net/wireless/scan.c linux-5.10.216/net/wireless/scan.c --- linux-5.10.209/net/wireless/scan.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/wireless/scan.c 2024-05-02 14:23:46.000000000 +0000 @@ -1801,8 +1801,12 @@ list_add(&new->hidden_list, &hidden->hidden_list); hidden->refcount++; + + ies = (void *)rcu_access_pointer(new->pub.beacon_ies); rcu_assign_pointer(new->pub.beacon_ies, hidden->pub.beacon_ies); + if (ies) + kfree_rcu(ies, rcu_head); } } else { /* diff -Nru linux-5.10.209/net/x25/af_x25.c linux-5.10.216/net/x25/af_x25.c --- linux-5.10.209/net/x25/af_x25.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/x25/af_x25.c 2024-05-02 14:23:46.000000000 +0000 @@ -470,12 +470,12 @@ if (get_user(len, optlen)) goto out; - len = min_t(unsigned int, len, sizeof(int)); - rc = -EINVAL; if (len < 0) goto out; + len = min_t(unsigned int, len, sizeof(int)); + rc = -EFAULT; if (put_user(len, optlen)) goto out; diff -Nru linux-5.10.209/net/xdp/xsk.c linux-5.10.216/net/xdp/xsk.c --- linux-5.10.209/net/xdp/xsk.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/xdp/xsk.c 2024-05-02 14:23:46.000000000 +0000 @@ -895,6 +895,8 @@ struct xsk_queue **q; int entries; + if (optlen < sizeof(entries)) + return -EINVAL; if (copy_from_sockptr(&entries, optval, sizeof(entries))) return -EFAULT; diff -Nru linux-5.10.209/net/xfrm/xfrm_user.c linux-5.10.216/net/xfrm/xfrm_user.c --- linux-5.10.209/net/xfrm/xfrm_user.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/net/xfrm/xfrm_user.c 2024-05-02 14:23:46.000000000 +0000 @@ -1753,6 +1753,9 @@ if (xp->xfrm_nr == 0) return 0; + if (xp->xfrm_nr > XFRM_MAX_DEPTH) + return -ENOBUFS; + for (i = 0; i < xp->xfrm_nr; i++) { struct xfrm_user_tmpl *up = &vec[i]; struct xfrm_tmpl *kp = &xp->xfrm_vec[i]; diff -Nru linux-5.10.209/scripts/Makefile.extrawarn linux-5.10.216/scripts/Makefile.extrawarn --- linux-5.10.209/scripts/Makefile.extrawarn 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/Makefile.extrawarn 2024-05-02 14:23:46.000000000 +0000 @@ -53,6 +53,8 @@ KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) KBUILD_CFLAGS += $(call cc-disable-warning, cast-function-type-strict) +KBUILD_CFLAGS += -Wno-enum-compare-conditional +KBUILD_CFLAGS += -Wno-enum-enum-conversion endif endif diff -Nru linux-5.10.209/scripts/bpf_helpers_doc.py linux-5.10.216/scripts/bpf_helpers_doc.py --- linux-5.10.209/scripts/bpf_helpers_doc.py 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/bpf_helpers_doc.py 2024-05-02 14:23:46.000000000 +0000 @@ -284,7 +284,7 @@ instructions to the kernel when the programs are loaded. The format for that string is identical to the one in use for kernel modules (Dual licenses, such as "Dual BSD/GPL", may be used). Some helper functions are only accessible to -programs that are compatible with the GNU Privacy License (GPL). +programs that are compatible with the GNU General Public License (GNU GPL). In order to use such helpers, the eBPF program must be loaded with the correct license string passed (via **attr**) to the **bpf**\ () system call, and this diff -Nru linux-5.10.209/scripts/clang-tools/gen_compile_commands.py linux-5.10.216/scripts/clang-tools/gen_compile_commands.py --- linux-5.10.209/scripts/clang-tools/gen_compile_commands.py 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/clang-tools/gen_compile_commands.py 2024-05-02 14:23:46.000000000 +0000 @@ -176,7 +176,7 @@ # escape the pound sign '#', either as '\#' or '$(pound)' (depending on the # kernel version). The compile_commands.json file is not interepreted # by Make, so this code replaces the escaped version with '#'. - prefix = command_prefix.replace('\#', '#').replace('$(pound)', '#') + prefix = command_prefix.replace(r'\#', '#').replace('$(pound)', '#') # Use os.path.abspath() to normalize the path resolving '.' and '..' . abs_path = os.path.abspath(os.path.join(root_directory, file_path)) diff -Nru linux-5.10.209/scripts/decode_stacktrace.sh linux-5.10.216/scripts/decode_stacktrace.sh --- linux-5.10.209/scripts/decode_stacktrace.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/decode_stacktrace.sh 2024-05-02 14:23:46.000000000 +0000 @@ -9,6 +9,29 @@ exit 1 fi +# Try to find a Rust demangler +if type llvm-cxxfilt >/dev/null 2>&1 ; then + cppfilt=llvm-cxxfilt +elif type c++filt >/dev/null 2>&1 ; then + cppfilt=c++filt + cppfilt_opts=-i +fi + +UTIL_SUFFIX= +if [[ -z ${LLVM:-} ]]; then + UTIL_PREFIX=${CROSS_COMPILE:-} +else + UTIL_PREFIX=llvm- + if [[ ${LLVM} == */ ]]; then + UTIL_PREFIX=${LLVM}${UTIL_PREFIX} + elif [[ ${LLVM} == -* ]]; then + UTIL_SUFFIX=${LLVM} + fi +fi + +READELF=${UTIL_PREFIX}readelf${UTIL_SUFFIX} +ADDR2LINE=${UTIL_PREFIX}addr2line${UTIL_SUFFIX} + if [[ $1 == "-r" ]] ; then vmlinux="" basepath="auto" @@ -33,13 +56,18 @@ release="" fi -declare -A cache -declare -A modcache +declare aarray_support=true +declare -A cache 2>/dev/null +if [[ $? != 0 ]]; then + aarray_support=false +else + declare -A modcache +fi find_module() { if [[ "$modpath" != "" ]] ; then for fn in $(find "$modpath" -name "${module//_/[-_]}.ko*") ; do - if readelf -WS "$fn" | grep -qwF .debug_line ; then + if ${READELF} -WS "$fn" | grep -qwF .debug_line ; then echo $fn return fi @@ -51,7 +79,7 @@ find_module && return if [[ $release == "" ]] ; then - release=$(gdb -ex 'print init_uts_ns.name.release' -ex 'quit' -quiet -batch "$vmlinux" | sed -n 's/\$1 = "\(.*\)".*/\1/p') + release=$(gdb -ex 'print init_uts_ns.name.release' -ex 'quit' -quiet -batch "$vmlinux" 2>/dev/null | sed -n 's/\$1 = "\(.*\)".*/\1/p') fi for dn in {/usr/lib/debug,}/lib/modules/$release ; do @@ -74,7 +102,7 @@ if [[ $module == "" ]] ; then local objfile=$vmlinux - elif [[ "${modcache[$module]+isset}" == "isset" ]]; then + elif [[ $aarray_support == true && "${modcache[$module]+isset}" == "isset" ]]; then local objfile=${modcache[$module]} else local objfile=$(find_module) @@ -82,7 +110,9 @@ echo "WARNING! Modules path isn't set, but is needed to parse this symbol" >&2 return fi - modcache[$module]=$objfile + if [[ $aarray_support == true ]]; then + modcache[$module]=$objfile + fi fi # Remove the englobing parenthesis @@ -102,15 +132,17 @@ # Use 'nm vmlinux' to figure out the base address of said symbol. # It's actually faster to call it every time than to load it # all into bash. - if [[ "${cache[$module,$name]+isset}" == "isset" ]]; then + if [[ $aarray_support == true && "${cache[$module,$name]+isset}" == "isset" ]]; then local base_addr=${cache[$module,$name]} else - local base_addr=$(nm "$objfile" | awk '$3 == "'$name'" && ($2 == "t" || $2 == "T") {print $1; exit}') + local base_addr=$(nm "$objfile" 2>/dev/null | awk '$3 == "'$name'" && ($2 == "t" || $2 == "T") {print $1; exit}') if [[ $base_addr == "" ]] ; then # address not found return fi - cache[$module,$name]="$base_addr" + if [[ $aarray_support == true ]]; then + cache[$module,$name]="$base_addr" + fi fi # Let's start doing the math to get the exact address into the # symbol. First, strip out the symbol total length. @@ -126,11 +158,13 @@ # Pass it to addr2line to get filename and line number # Could get more than one result - if [[ "${cache[$module,$address]+isset}" == "isset" ]]; then + if [[ $aarray_support == true && "${cache[$module,$address]+isset}" == "isset" ]]; then local code=${cache[$module,$address]} else - local code=$(${CROSS_COMPILE}addr2line -i -e "$objfile" "$address") - cache[$module,$address]=$code + local code=$(${ADDR2LINE} -i -e "$objfile" "$address" 2>/dev/null) + if [[ $aarray_support == true ]]; then + cache[$module,$address]=$code + fi fi # addr2line doesn't return a proper error code if it fails, so @@ -146,6 +180,12 @@ # In the case of inlines, move everything to same line code=${code//$'\n'/' '} + # Demangle if the name looks like a Rust symbol and if + # we got a Rust demangler + if [[ $name =~ ^_R && $cppfilt != "" ]] ; then + name=$("$cppfilt" "$cppfilt_opts" "$name") + fi + # Replace old address with pretty line numbers symbol="$segment$name ($code)" } diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arc/hsdk.dts linux-5.10.216/scripts/dtc/include-prefixes/arc/hsdk.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arc/hsdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arc/hsdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -205,7 +205,6 @@ }; gmac: ethernet@8000 { - #interrupt-cells = <1>; compatible = "snps,dwmac"; reg = <0x8000 0x2000>; interrupts = <10>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/arm-realview-pb1176.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/arm-realview-pb1176.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/arm-realview-pb1176.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/arm-realview-pb1176.dts 2024-05-02 14:23:46.000000000 +0000 @@ -435,7 +435,7 @@ /* Direct-mapped development chip ROM */ pb1176_rom@10200000 { - compatible = "direct-mapped"; + compatible = "mtd-rom"; reg = <0x10200000 0x4000>; bank-width = <1>; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-1440.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-1440.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-1440.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-1440.dts 2024-05-02 14:23:46.000000000 +0000 @@ -26,7 +26,6 @@ wlan { label = "bcm53xx:blue:wlan"; gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>; - linux,default-trigger = "default-off"; }; system { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-810.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-810.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-810.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/bcm47189-luxul-xap-810.dts 2024-05-02 14:23:46.000000000 +0000 @@ -26,7 +26,6 @@ 5ghz { label = "bcm53xx:blue:5ghz"; gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "default-off"; }; system { @@ -42,7 +41,6 @@ 2ghz { label = "bcm53xx:blue:2ghz"; gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "default-off"; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/exynos4210-i9100.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/exynos4210-i9100.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/exynos4210-i9100.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/exynos4210-i9100.dts 2024-05-02 14:23:46.000000000 +0000 @@ -464,6 +464,14 @@ regulator-name = "VT_CAM_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + + /* + * Force-enable this regulator; otherwise the + * kernel hangs very early in the boot process + * for about 12 seconds, without apparent + * reason. + */ + regulator-always-on; }; vcclcd_reg: LDO13 { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1-ads.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1-ads.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1-ads.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1-ads.dts 2024-05-02 14:23:46.000000000 +0000 @@ -65,7 +65,7 @@ pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <4>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1-apf9328.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1-apf9328.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1-apf9328.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1-apf9328.dts 2024-05-02 14:23:46.000000000 +0000 @@ -45,7 +45,7 @@ pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx1.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx1.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -268,9 +268,12 @@ status = "disabled"; }; - esram: esram@300000 { + esram: sram@300000 { compatible = "mmio-sram"; reg = <0x00300000 0x20000>; + ranges = <0 0x00300000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx23-sansa.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx23-sansa.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx23-sansa.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx23-sansa.dts 2024-05-02 14:23:46.000000000 +0000 @@ -175,10 +175,8 @@ #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio1 24 0 /* SDA */ - &gpio1 22 0 /* SCL */ - >; + sda-gpios = <&gpio1 24 0>; + scl-gpios = <&gpio1 22 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ }; @@ -186,10 +184,8 @@ #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio0 31 0 /* SDA */ - &gpio0 30 0 /* SCL */ - >; + sda-gpios = <&gpio0 31 0>; + scl-gpios = <&gpio0 30 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ touch: touch@20 { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx23.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx23.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx23.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx23.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -414,7 +414,7 @@ status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx23-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <7 5 9 26 diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-cpuimx25.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-cpuimx25.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-cpuimx25.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-cpuimx25.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -27,7 +27,7 @@ pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&qvga_timings>; - qvga_timings: 320x240 { + qvga_timings: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&dvi_svga_timings>; - dvi_svga_timings: 800x600 { + dvi_svga_timings: timing0 { clock-frequency = <40000000>; hactive = <800>; vactive = <600>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ bus-width = <18>; display-timings { native-mode = <&dvi_vga_timings>; - dvi_vga_timings: 640x480 { + dvi_vga_timings: timing0 { clock-frequency = <31250000>; hactive = <640>; vactive = <480>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-pdk.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-pdk.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25-pdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25-pdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -78,7 +78,7 @@ bus-width = <18>; display-timings { native-mode = <&wvga_timings>; - wvga_timings: 640x480 { + wvga_timings: timing0 { hactive = <640>; vactive = <480>; hback-porch = <45>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx25.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx25.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -543,7 +543,7 @@ }; iim: efuse@53ff0000 { - compatible = "fsl,imx25-iim", "fsl,imx27-iim"; + compatible = "fsl,imx25-iim"; reg = <0x53ff0000 0x4000>; interrupts = <19>; clocks = <&clks 99>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-apf27dev.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-apf27dev.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-apf27dev.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-apf27dev.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ fsl,pcr = <0xfae80083>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 800x480 { + timing0: timing0 { clock-frequency = <33000033>; hactive = <800>; vactive = <480>; @@ -47,7 +47,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_leds>; - user { + led-user { label = "Heartbeat"; gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-eukrea-cpuimx27.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-eukrea-cpuimx27.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-eukrea-cpuimx27.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-eukrea-cpuimx27.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -33,7 +33,7 @@ pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; @@ -90,7 +90,7 @@ &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { #address-cells = <1>; #size-cells = <1>; compatible = "cfi-flash"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-eukrea-mbimxsd27-baseboard.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-eukrea-mbimxsd27-baseboard.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-eukrea-mbimxsd27-baseboard.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-eukrea-mbimxsd27-baseboard.dts 2024-05-02 14:23:46.000000000 +0000 @@ -16,7 +16,7 @@ display-timings { native-mode = <&timing0>; - timing0: 320x240 { + timing0: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycard-s-rdk.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycard-s-rdk.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycard-s-rdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycard-s-rdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ fsl,pcr = <0xf0c88080>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 640x480 { + timing0: timing0 { hactive = <640>; vactive = <480>; hback-porch = <112>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-rdk.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-rdk.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-rdk.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-rdk.dts 2024-05-02 14:23:46.000000000 +0000 @@ -19,7 +19,7 @@ display-timings { native-mode = <&timing0>; - timing0: 240x320 { + timing0: timing0 { clock-frequency = <5500000>; hactive = <240>; vactive = <320>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-som.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-som.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-som.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27-phytec-phycore-som.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -322,7 +322,7 @@ &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx27.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx27.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -588,6 +588,9 @@ iram: sram@ffff4c00 { compatible = "mmio-sram"; reg = <0xffff4c00 0xb400>; + ranges = <0 0xffff4c00 0xb400>; + #address-cells = <1>; + #size-cells = <1>; }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx28.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx28.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx28.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx28.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -982,7 +982,7 @@ status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx28-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <78 79 66 0 diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx6dl-yapp4-common.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx6dl-yapp4-common.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx6dl-yapp4-common.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx6dl-yapp4-common.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -103,8 +103,6 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii-id"; - phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; - phy-reset-duration = <20>; phy-supply = <&sw2_reg>; status = "okay"; @@ -117,17 +115,10 @@ #address-cells = <1>; #size-cells = <0>; - phy_port2: phy@1 { - reg = <1>; - }; - - phy_port3: phy@2 { - reg = <2>; - }; - switch@10 { compatible = "qca,qca8334"; - reg = <10>; + reg = <0x10>; + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; switch_ports: ports { #address-cells = <1>; @@ -148,15 +139,30 @@ eth2: port@2 { reg = <2>; label = "eth2"; + phy-mode = "internal"; phy-handle = <&phy_port2>; }; eth1: port@3 { reg = <3>; label = "eth1"; + phy-mode = "internal"; phy-handle = <&phy_port3>; }; }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + phy_port2: ethernet-phy@1 { + reg = <1>; + }; + + phy_port3: ethernet-phy@2 { + reg = <2>; + }; + }; }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx6sx.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx6sx.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx6sx.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx6sx.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -981,6 +981,8 @@ <&clks IMX6SX_CLK_USDHC1>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; @@ -993,6 +995,8 @@ <&clks IMX6SX_CLK_USDHC2>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; @@ -1005,6 +1009,8 @@ <&clks IMX6SX_CLK_USDHC3>; clock-names = "ipg", "ahb", "per"; bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; status = "disabled"; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx7d.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx7d.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx7d.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx7d.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -209,9 +209,6 @@ }; &ca_funnel_in_ports { - #address-cells = <1>; - #size-cells = <0>; - port@1 { reg = <1>; ca_funnel_in_port1: endpoint { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/imx7s.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/imx7s.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/imx7s.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/imx7s.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -173,7 +173,11 @@ clock-names = "apb_pclk"; ca_funnel_in_ports: in-ports { - port { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; ca_funnel_in_port0: endpoint { remote-endpoint = <&etm0_out_port>; }; @@ -769,7 +773,7 @@ }; lcdif: lcdif@30730000 { - compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif"; reg = <0x30730000 0x10000>; interrupts = ; clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>, @@ -1231,7 +1235,7 @@ gpmi: nand-controller@33002000{ compatible = "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = ; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/mmp2-brownstone.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/mmp2-brownstone.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/mmp2-brownstone.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/mmp2-brownstone.dts 2024-05-02 14:23:46.000000000 +0000 @@ -28,7 +28,7 @@ &twsi1 { status = "okay"; pmic: max8925@3c { - compatible = "maxium,max8925"; + compatible = "maxim,max8925"; reg = <0x3c>; interrupts = <1>; interrupt-parent = <&intcmux4>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/rk3036.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm/rk3036.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm/rk3036.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/rk3036.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -336,12 +336,20 @@ pinctrl-0 = <&hdmi_ctl>; status = "disabled"; - hdmi_in: port { + ports { #address-cells = <1>; #size-cells = <0>; - hdmi_in_vop: endpoint@0 { + + hdmi_in: port@0 { reg = <0>; - remote-endpoint = <&vop_out_hdmi>; + + hdmi_in_vop: endpoint { + remote-endpoint = <&vop_out_hdmi>; + }; + }; + + hdmi_out: port@1 { + reg = <1>; }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm/sun8i-h2-plus-bananapi-m2-zero.dts linux-5.10.216/scripts/dtc/include-prefixes/arm/sun8i-h2-plus-bananapi-m2-zero.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm/sun8i-h2-plus-bananapi-m2-zero.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm/sun8i-h2-plus-bananapi-m2-zero.dts 2024-05-02 14:23:46.000000000 +0000 @@ -62,6 +62,30 @@ states = <1100000 0>, <1300000 1>; }; + reg_vcc_dram: vcc-dram { + compatible = "regulator-fixed"; + regulator-name = "vcc-dram"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ + vin-supply = <®_vcc5v0>; + }; + + reg_vcc1v2: vcc1v2 { + compatible = "regulator-fixed"; + regulator-name = "vcc1v2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + enable-active-high; + gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ + vin-supply = <®_vcc5v0>; + }; + wifi_pwrseq: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/marvell/armada-37xx.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/marvell/armada-37xx.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/marvell/armada-37xx.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/marvell/armada-37xx.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -414,14 +414,14 @@ crypto: crypto@90000 { compatible = "inside-secure,safexcel-eip97ies"; reg = <0x90000 0x20000>; - interrupts = , - , + interrupts = , , , , - ; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + , + ; + interrupt-names = "ring0", "ring1", "ring2", + "ring3", "eip", "mem"; clocks = <&nb_periph_clk 15>; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/marvell/armada-cp11x.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/marvell/armada-cp11x.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/marvell/armada-cp11x.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/marvell/armada-cp11x.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -477,14 +477,14 @@ CP11X_LABEL(crypto): crypto@800000 { compatible = "inside-secure,safexcel-eip197b"; reg = <0x800000 0x200000>; - interrupts = <87 IRQ_TYPE_LEVEL_HIGH>, - <88 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <88 IRQ_TYPE_LEVEL_HIGH>, <89 IRQ_TYPE_LEVEL_HIGH>, <90 IRQ_TYPE_LEVEL_HIGH>, <91 IRQ_TYPE_LEVEL_HIGH>, - <92 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "mem", "ring0", "ring1", - "ring2", "ring3", "eip"; + <92 IRQ_TYPE_LEVEL_HIGH>, + <87 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ring0", "ring1", "ring2", "ring3", + "eip", "mem"; clock-names = "core", "reg"; clocks = <&CP11X_LABEL(clk) 1 26>, <&CP11X_LABEL(clk) 1 17>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt2712-evb.dts linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt2712-evb.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt2712-evb.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt2712-evb.dts 2024-05-02 14:23:46.000000000 +0000 @@ -127,7 +127,7 @@ }; &pio { - eth_default: eth_default { + eth_default: eth-default-pins { tx_pins { pinmux = , , @@ -154,7 +154,7 @@ }; }; - eth_sleep: eth_sleep { + eth_sleep: eth-sleep-pins { tx_pins { pinmux = , , @@ -180,14 +180,14 @@ }; }; - usb0_id_pins_float: usb0_iddig { + usb0_id_pins_float: usb0-iddig-pins { pins_iddig { pinmux = ; bias-pull-up; }; }; - usb1_id_pins_float: usb1_iddig { + usb1_id_pins_float: usb1-iddig-pins { pins_iddig { pinmux = ; bias-pull-up; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt2712e.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt2712e.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt2712e.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt2712e.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -249,10 +249,11 @@ #clock-cells = <1>; }; - infracfg: syscon@10001000 { + infracfg: clock-controller@10001000 { compatible = "mediatek,mt2712-infracfg", "syscon"; reg = <0 0x10001000 0 0x1000>; #clock-cells = <1>; + #reset-cells = <1>; }; pericfg: syscon@10003000 { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-bananapi-bpi-r64.dts linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-bananapi-bpi-r64.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-bananapi-bpi-r64.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-bananapi-bpi-r64.dts 2024-05-02 14:23:46.000000000 +0000 @@ -71,6 +71,7 @@ memory@40000000 { reg = <0 0x40000000 0 0x40000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-rfb1.dts linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-rfb1.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-rfb1.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622-rfb1.dts 2024-05-02 14:23:46.000000000 +0000 @@ -57,6 +57,7 @@ memory@40000000 { reg = <0 0x40000000 0 0x20000000>; + device_type = "memory"; }; reg_1p8v: regulator-1p8v { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/mediatek/mt7622.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/mediatek/mt7622.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -244,7 +244,7 @@ clock-names = "hif_sel"; }; - cir: cir@10009000 { + cir: ir-receiver@10009000 { compatible = "mediatek,mt7622-cir"; reg = <0 0x10009000 0 0x1000>; interrupts = ; @@ -275,16 +275,14 @@ }; }; - apmixedsys: apmixedsys@10209000 { - compatible = "mediatek,mt7622-apmixedsys", - "syscon"; + apmixedsys: clock-controller@10209000 { + compatible = "mediatek,mt7622-apmixedsys"; reg = <0 0x10209000 0 0x1000>; #clock-cells = <1>; }; - topckgen: topckgen@10210000 { - compatible = "mediatek,mt7622-topckgen", - "syscon"; + topckgen: clock-controller@10210000 { + compatible = "mediatek,mt7622-topckgen"; reg = <0 0x10210000 0 0x1000>; #clock-cells = <1>; }; @@ -357,7 +355,7 @@ }; cci_control2: slave-if@5000 { - compatible = "arm,cci-400-ctrl-if"; + compatible = "arm,cci-400-ctrl-if", "syscon"; interface-type = "ace"; reg = <0x5000 0x1000>; }; @@ -507,7 +505,6 @@ <&pericfg CLK_PERI_AUXADC_PD>; clock-names = "therm", "auxadc"; resets = <&pericfg MT7622_PERI_THERM_SW_RST>; - reset-names = "therm"; mediatek,auxadc = <&auxadc>; mediatek,apmixedsys = <&apmixedsys>; nvmem-cells = <&thermal_calibration>; @@ -715,9 +712,8 @@ power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>; }; - ssusbsys: ssusbsys@1a000000 { - compatible = "mediatek,mt7622-ssusbsys", - "syscon"; + ssusbsys: clock-controller@1a000000 { + compatible = "mediatek,mt7622-ssusbsys"; reg = <0 0x1a000000 0 0x1000>; #clock-cells = <1>; #reset-cells = <1>; @@ -774,9 +770,8 @@ }; }; - pciesys: pciesys@1a100800 { - compatible = "mediatek,mt7622-pciesys", - "syscon"; + pciesys: clock-controller@1a100800 { + compatible = "mediatek,mt7622-pciesys"; reg = <0 0x1a100800 0 0x1000>; #clock-cells = <1>; #reset-cells = <1>; @@ -893,7 +888,13 @@ }; }; - ethsys: syscon@1b000000 { + hifsys: clock-controller@1af00000 { + compatible = "mediatek,mt7622-hifsys"; + reg = <0 0x1af00000 0 0x70>; + #clock-cells = <1>; + }; + + ethsys: clock-controller@1b000000 { compatible = "mediatek,mt7622-ethsys", "syscon"; reg = <0 0x1b000000 0 0x1000>; @@ -911,10 +912,28 @@ #dma-cells = <1>; }; - eth: ethernet@1b100000 { - compatible = "mediatek,mt7622-eth", - "mediatek,mt2701-eth", + pcie_mirror: pcie-mirror@10000400 { + compatible = "mediatek,mt7622-pcie-mirror", "syscon"; + reg = <0 0x10000400 0 0x10>; + }; + + wed0: wed@1020a000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020a000 0 0x1000>; + interrupts = ; + }; + + wed1: wed@1020b000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020b000 0 0x1000>; + interrupts = ; + }; + + eth: ethernet@1b100000 { + compatible = "mediatek,mt7622-eth"; reg = <0 0x1b100000 0 0x20000>; interrupts = , , @@ -937,6 +956,11 @@ power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>; mediatek,ethsys = <ðsys>; mediatek,sgmiisys = <&sgmiisys>; + mediatek,cci-control = <&cci_control2>; + mediatek,wed = <&wed0>, <&wed1>; + mediatek,pcie-mirror = <&pcie_mirror>; + mediatek,hifsys = <&hifsys>; + dma-coherent; #address-cells = <1>; #size-cells = <0>; status = "disabled"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/msm8996.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/msm8996.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/msm8996.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/msm8996.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -139,6 +139,19 @@ reg = <0 0 0 0>; }; + etm { + compatible = "qcom,coresight-remote-etm"; + + out-ports { + port { + modem_etm_out_funnel_in2: endpoint { + remote-endpoint = + <&funnel_in2_in_modem_etm>; + }; + }; + }; + }; + psci { compatible = "arm,psci-1.0"; method = "smc"; @@ -1374,6 +1387,14 @@ clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; clock-names = "apb_pclk", "atclk"; + in-ports { + port { + funnel_in2_in_modem_etm: endpoint { + remote-endpoint = + <&modem_etm_out_funnel_in2>; + }; + }; + }; out-ports { port { diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/msm8998.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/msm8998.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/msm8998.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/msm8998.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -1577,9 +1577,11 @@ cpu = <&CPU4>; - port{ - etm4_out: endpoint { - remote-endpoint = <&apss_funnel_in4>; + out-ports { + port{ + etm4_out: endpoint { + remote-endpoint = <&apss_funnel_in4>; + }; }; }; }; @@ -1594,9 +1596,11 @@ cpu = <&CPU5>; - port{ - etm5_out: endpoint { - remote-endpoint = <&apss_funnel_in5>; + out-ports { + port{ + etm5_out: endpoint { + remote-endpoint = <&apss_funnel_in5>; + }; }; }; }; @@ -1611,9 +1615,11 @@ cpu = <&CPU6>; - port{ - etm6_out: endpoint { - remote-endpoint = <&apss_funnel_in6>; + out-ports { + port{ + etm6_out: endpoint { + remote-endpoint = <&apss_funnel_in6>; + }; }; }; }; @@ -1628,9 +1634,11 @@ cpu = <&CPU7>; - port{ - etm7_out: endpoint { - remote-endpoint = <&apss_funnel_in7>; + out-ports { + port{ + etm7_out: endpoint { + remote-endpoint = <&apss_funnel_in7>; + }; }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sc7180-trogdor.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -810,7 +810,8 @@ vddrf-supply = <&pp1300_l2c>; vddch0-supply = <&pp3300_l10c>; max-speed = <3200000>; - clocks = <&rpmhcc RPMH_RF_CLK2>; + + qcom,local-bd-address-broken; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sc7180.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sc7180.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sc7180.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sc7180.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -2688,10 +2688,10 @@ <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sdm845.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sdm845.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/qcom/sdm845.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/qcom/sdm845.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -3565,10 +3565,10 @@ <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; @@ -3613,10 +3613,10 @@ <&gcc GCC_USB30_SEC_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = , - , - , - ; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/px30.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/px30.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/px30.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/px30.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -577,6 +577,7 @@ clock-names = "spiclk", "apb_pclk"; dmas = <&dmac 12>, <&dmac 13>; dma-names = "tx", "rx"; + num-cs = <2>; pinctrl-names = "default"; pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>; #address-cells = <1>; @@ -592,6 +593,7 @@ clock-names = "spiclk", "apb_pclk"; dmas = <&dmac 14>, <&dmac 15>; dma-names = "tx", "rx"; + num-cs = <2>; pinctrl-names = "default"; pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>; #address-cells = <1>; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3328.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3328.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3328.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3328.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -732,11 +732,20 @@ status = "disabled"; ports { - hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in: port@0 { + reg = <0>; + hdmi_in_vop: endpoint { remote-endpoint = <&vop_out_hdmi>; }; }; + + hdmi_out: port@1 { + reg = <1>; + }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-pinebook-pro.dts linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-pinebook-pro.dts --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-pinebook-pro.dts 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-pinebook-pro.dts 2024-05-02 14:23:46.000000000 +0000 @@ -784,7 +784,6 @@ }; &pcie0 { - bus-scan-delay-ms = <1000>; ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; num-lanes = <4>; pinctrl-names = "default"; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-puma.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-puma.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-puma.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399-puma.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -430,16 +430,22 @@ gpio1830-supply = <&vcc_1v8>; }; -&pmu_io_domains { - status = "okay"; - pmu1830-supply = <&vcc_1v8>; -}; - -&pwm2 { - status = "okay"; +&pcie_clkreqn_cpm { + rockchip,pins = + <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; }; &pinctrl { + pinctrl-names = "default"; + pinctrl-0 = <&q7_thermal_pin>; + + gpios { + q7_thermal_pin: q7-thermal-pin { + rockchip,pins = + <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + i2c8 { i2c8_xfer_a: i2c8-xfer { rockchip,pins = @@ -470,6 +476,15 @@ }; }; +&pmu_io_domains { + status = "okay"; + pmu1830-supply = <&vcc_1v8>; +}; + +&pwm2 { + status = "okay"; +}; + &sdhci { /* * Signal integrity isn't great at 200MHz but 100MHz has proven stable diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399.dtsi linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399.dtsi --- linux-5.10.209/scripts/dtc/include-prefixes/arm64/rockchip/rk3399.dtsi 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/arm64/rockchip/rk3399.dtsi 2024-05-02 14:23:46.000000000 +0000 @@ -1769,6 +1769,7 @@ hdmi: hdmi@ff940000 { compatible = "rockchip,rk3399-dw-hdmi"; reg = <0x0 0xff940000 0x0 0x20000>; + reg-io-width = <4>; interrupts = ; clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, @@ -1777,13 +1778,16 @@ <&cru PLL_VPLL>; clock-names = "iahb", "isfr", "cec", "grf", "vpll"; power-domains = <&power RK3399_PD_HDCP>; - reg-io-width = <4>; rockchip,grf = <&grf>; #sound-dai-cells = <0>; status = "disabled"; ports { - hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_in: port@0 { + reg = <0>; #address-cells = <1>; #size-cells = <0>; @@ -1796,6 +1800,10 @@ remote-endpoint = <&vopl_out_hdmi>; }; }; + + hdmi_out: port@1 { + reg = <1>; + }; }; }; diff -Nru linux-5.10.209/scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h linux-5.10.216/scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h --- linux-5.10.209/scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h 2024-05-02 14:23:46.000000000 +0000 @@ -602,6 +602,7 @@ #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ diff -Nru linux-5.10.209/scripts/dummy-tools/gcc linux-5.10.216/scripts/dummy-tools/gcc --- linux-5.10.209/scripts/dummy-tools/gcc 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/dummy-tools/gcc 2024-05-02 14:23:46.000000000 +0000 @@ -76,7 +76,11 @@ if arg_contain -S "$@"; then # For scripts/gcc-x86-*-has-stack-protector.sh if arg_contain -fstack-protector "$@"; then - echo "%gs" + if arg_contain -mstack-protector-guard-reg=fs "$@"; then + echo "%fs" + else + echo "%gs" + fi exit 0 fi fi diff -Nru linux-5.10.209/scripts/gcc-x86_32-has-stack-protector.sh linux-5.10.216/scripts/gcc-x86_32-has-stack-protector.sh --- linux-5.10.209/scripts/gcc-x86_32-has-stack-protector.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/gcc-x86_32-has-stack-protector.sh 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,8 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0 -echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -m32 -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs" +# This requires GCC 8.1 or better. Specifically, we require +# -mstack-protector-guard-reg, added by +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81708 + +echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -m32 -O0 -fstack-protector -mstack-protector-guard-reg=fs -mstack-protector-guard-symbol=__stack_chk_guard - -o - 2> /dev/null | grep -q "%fs" diff -Nru linux-5.10.209/scripts/get_abi.pl linux-5.10.216/scripts/get_abi.pl --- linux-5.10.209/scripts/get_abi.pl 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/get_abi.pl 2024-05-02 14:23:46.000000000 +0000 @@ -75,7 +75,7 @@ $name =~ s,.*/,,; my $fn = $file; - $fn =~ s,Documentation/ABI/,,; + $fn =~ s,.*Documentation/ABI/,,; my $nametag = "File $fn"; $data{$nametag}->{what} = "File $name"; diff -Nru linux-5.10.209/scripts/kconfig/lexer.l linux-5.10.216/scripts/kconfig/lexer.l --- linux-5.10.209/scripts/kconfig/lexer.l 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/kconfig/lexer.l 2024-05-02 14:23:46.000000000 +0000 @@ -305,8 +305,11 @@ new_string(); append_string(in, n); - /* get the whole line because we do not know the end of token. */ - while ((c = input()) != EOF) { + /* + * get the whole line because we do not know the end of token. + * input() returns 0 (not EOF!) when it reachs the end of file. + */ + while ((c = input()) != 0) { if (c == '\n') { unput(c); break; diff -Nru linux-5.10.209/scripts/kernel-doc linux-5.10.216/scripts/kernel-doc --- linux-5.10.209/scripts/kernel-doc 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/kernel-doc 2024-05-02 14:23:46.000000000 +0000 @@ -1232,7 +1232,8 @@ $members =~ s/DECLARE_KFIFO\s*\(([^,)]+),\s*([^,)]+),\s*([^,)]+)\)/$2 \*$1/gos; # replace DECLARE_KFIFO_PTR $members =~ s/DECLARE_KFIFO_PTR\s*\(([^,)]+),\s*([^,)]+)\)/$2 \*$1/gos; - + # replace DECLARE_FLEX_ARRAY + $members =~ s/(?:__)?DECLARE_FLEX_ARRAY\s*\(([^,)]+),\s*([^,)]+)\)/$1 $2\[\]/gos; my $declaration = $members; # Split nested struct/union elements as newer ones diff -Nru linux-5.10.209/scripts/link-vmlinux.sh linux-5.10.216/scripts/link-vmlinux.sh --- linux-5.10.209/scripts/link-vmlinux.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/link-vmlinux.sh 2024-05-02 14:23:46.000000000 +0000 @@ -171,8 +171,13 @@ ${OBJCOPY} --only-section=.BTF --set-section-flags .BTF=alloc,readonly \ --strip-all ${1} ${2} 2>/dev/null # Change e_type to ET_REL so that it can be used to link final vmlinux. - # Unlike GNU ld, lld does not allow an ET_EXEC input. - printf '\1' | dd of=${2} conv=notrunc bs=1 seek=16 status=none + # GNU ld 2.35+ and lld do not allow an ET_EXEC input. + if [ -n "${CONFIG_CPU_BIG_ENDIAN}" ]; then + et_rel='\0\1' + else + et_rel='\1\0' + fi + printf "${et_rel}" | dd of=${2} conv=notrunc bs=1 seek=16 status=none } # Create ${2} .S file with all symbols from the ${1} object file diff -Nru linux-5.10.209/scripts/mod/sumversion.c linux-5.10.216/scripts/mod/sumversion.c --- linux-5.10.209/scripts/mod/sumversion.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/scripts/mod/sumversion.c 2024-05-02 14:23:46.000000000 +0000 @@ -328,7 +328,12 @@ /* Sum all files in the same dir or subdirs. */ while ((line = get_line(&pos))) { - char* p = line; + char* p; + + /* trim the leading spaces away */ + while (isspace(*line)) + line++; + p = line; if (strncmp(line, "source_", sizeof("source_")-1) == 0) { p = strrchr(line, ' '); diff -Nru linux-5.10.209/security/apparmor/lsm.c linux-5.10.216/security/apparmor/lsm.c --- linux-5.10.209/security/apparmor/lsm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/apparmor/lsm.c 2024-05-02 14:23:46.000000000 +0000 @@ -1070,11 +1070,10 @@ * Note: for tcp only valid if using ipsec or cipso on lan */ static int apparmor_socket_getpeersec_stream(struct socket *sock, - char __user *optval, - int __user *optlen, + sockptr_t optval, sockptr_t optlen, unsigned int len) { - char *name; + char *name = NULL; int slen, error = 0; struct aa_label *label; struct aa_label *peer; @@ -1091,23 +1090,21 @@ /* don't include terminating \0 in slen, it breaks some apps */ if (slen < 0) { error = -ENOMEM; - } else { - if (slen > len) { - error = -ERANGE; - } else if (copy_to_user(optval, name, slen)) { - error = -EFAULT; - goto out; - } - if (put_user(slen, optlen)) - error = -EFAULT; -out: - kfree(name); - + goto done; + } + if (slen > len) { + error = -ERANGE; + goto done_len; } + if (copy_to_sockptr(optval, name, slen)) + error = -EFAULT; +done_len: + if (copy_to_sockptr(optlen, &slen, sizeof(slen))) + error = -EFAULT; done: end_current_label_crit_section(label); - + kfree(name); return error; } diff -Nru linux-5.10.209/security/security.c linux-5.10.216/security/security.c --- linux-5.10.209/security/security.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/security.c 2024-05-02 14:23:46.000000000 +0000 @@ -1498,6 +1498,24 @@ } EXPORT_SYMBOL_GPL(security_file_ioctl); +/** + * security_file_ioctl_compat() - Check if an ioctl is allowed in compat mode + * @file: associated file + * @cmd: ioctl cmd + * @arg: ioctl arguments + * + * Compat version of security_file_ioctl() that correctly handles 32-bit + * processes running on 64-bit kernels. + * + * Return: Returns 0 if permission is granted. + */ +int security_file_ioctl_compat(struct file *file, unsigned int cmd, + unsigned long arg) +{ + return call_int_hook(file_ioctl_compat, 0, file, cmd, arg); +} +EXPORT_SYMBOL_GPL(security_file_ioctl_compat); + static inline unsigned long mmap_prot(struct file *file, unsigned long prot) { /* @@ -2080,7 +2098,19 @@ int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) { - return call_int_hook(inode_getsecctx, -EOPNOTSUPP, inode, ctx, ctxlen); + struct security_hook_list *hp; + int rc; + + /* + * Only one module will provide a security context. + */ + hlist_for_each_entry(hp, &security_hook_heads.inode_getsecctx, list) { + rc = hp->hook.inode_getsecctx(inode, ctx, ctxlen); + if (rc != LSM_RET_DEFAULT(inode_getsecctx)) + return rc; + } + + return LSM_RET_DEFAULT(inode_getsecctx); } EXPORT_SYMBOL(security_inode_getsecctx); @@ -2194,17 +2224,40 @@ } EXPORT_SYMBOL(security_sock_rcv_skb); -int security_socket_getpeersec_stream(struct socket *sock, char __user *optval, - int __user *optlen, unsigned len) +int security_socket_getpeersec_stream(struct socket *sock, sockptr_t optval, + sockptr_t optlen, unsigned int len) { - return call_int_hook(socket_getpeersec_stream, -ENOPROTOOPT, sock, - optval, optlen, len); + struct security_hook_list *hp; + int rc; + + /* + * Only one module will provide a security context. + */ + hlist_for_each_entry(hp, &security_hook_heads.socket_getpeersec_stream, + list) { + rc = hp->hook.socket_getpeersec_stream(sock, optval, optlen, + len); + if (rc != LSM_RET_DEFAULT(socket_getpeersec_stream)) + return rc; + } + return LSM_RET_DEFAULT(socket_getpeersec_stream); } int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid) { - return call_int_hook(socket_getpeersec_dgram, -ENOPROTOOPT, sock, - skb, secid); + struct security_hook_list *hp; + int rc; + + /* + * Only one module will provide a security context. + */ + hlist_for_each_entry(hp, &security_hook_heads.socket_getpeersec_dgram, + list) { + rc = hp->hook.socket_getpeersec_dgram(sock, skb, secid); + if (rc != LSM_RET_DEFAULT(socket_getpeersec_dgram)) + return rc; + } + return LSM_RET_DEFAULT(socket_getpeersec_dgram); } EXPORT_SYMBOL(security_socket_getpeersec_dgram); diff -Nru linux-5.10.209/security/selinux/hooks.c linux-5.10.216/security/selinux/hooks.c --- linux-5.10.209/security/selinux/hooks.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/selinux/hooks.c 2024-05-02 14:23:46.000000000 +0000 @@ -3662,6 +3662,33 @@ return error; } +static int selinux_file_ioctl_compat(struct file *file, unsigned int cmd, + unsigned long arg) +{ + /* + * If we are in a 64-bit kernel running 32-bit userspace, we need to + * make sure we don't compare 32-bit flags to 64-bit flags. + */ + switch (cmd) { + case FS_IOC32_GETFLAGS: + cmd = FS_IOC_GETFLAGS; + break; + case FS_IOC32_SETFLAGS: + cmd = FS_IOC_SETFLAGS; + break; + case FS_IOC32_GETVERSION: + cmd = FS_IOC_GETVERSION; + break; + case FS_IOC32_SETVERSION: + cmd = FS_IOC_SETVERSION; + break; + default: + break; + } + + return selinux_file_ioctl(file, cmd, arg); +} + static int default_noexec __ro_after_init; static int file_map_prot_check(struct file *file, unsigned long prot, int shared) @@ -5083,11 +5110,12 @@ return err; } -static int selinux_socket_getpeersec_stream(struct socket *sock, char __user *optval, - int __user *optlen, unsigned len) +static int selinux_socket_getpeersec_stream(struct socket *sock, + sockptr_t optval, sockptr_t optlen, + unsigned int len) { int err = 0; - char *scontext; + char *scontext = NULL; u32 scontext_len; struct sk_security_struct *sksec = sock->sk->sk_security; u32 peer_sid = SECSID_NULL; @@ -5103,17 +5131,15 @@ &scontext_len); if (err) return err; - if (scontext_len > len) { err = -ERANGE; goto out_len; } - if (copy_to_user(optval, scontext, scontext_len)) + if (copy_to_sockptr(optval, scontext, scontext_len)) err = -EFAULT; - out_len: - if (put_user(scontext_len, optlen)) + if (copy_to_sockptr(optlen, &scontext_len, sizeof(scontext_len))) err = -EFAULT; kfree(scontext); return err; @@ -7049,6 +7075,7 @@ LSM_HOOK_INIT(file_permission, selinux_file_permission), LSM_HOOK_INIT(file_alloc_security, selinux_file_alloc_security), LSM_HOOK_INIT(file_ioctl, selinux_file_ioctl), + LSM_HOOK_INIT(file_ioctl_compat, selinux_file_ioctl_compat), LSM_HOOK_INIT(mmap_file, selinux_mmap_file), LSM_HOOK_INIT(mmap_addr, selinux_mmap_addr), LSM_HOOK_INIT(file_mprotect, selinux_file_mprotect), diff -Nru linux-5.10.209/security/smack/smack_lsm.c linux-5.10.216/security/smack/smack_lsm.c --- linux-5.10.209/security/smack/smack_lsm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/smack/smack_lsm.c 2024-05-02 14:23:46.000000000 +0000 @@ -1280,7 +1280,8 @@ check_star = 1; } else if (strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0) { check_priv = 1; - if (size != TRANS_TRUE_SIZE || + if (!S_ISDIR(d_backing_inode(dentry)->i_mode) || + size != TRANS_TRUE_SIZE || strncmp(value, TRANS_TRUE, TRANS_TRUE_SIZE) != 0) rc = -EINVAL; } else @@ -2721,6 +2722,15 @@ if (value == NULL || size > SMK_LONGLABEL || size == 0) return -EINVAL; + if (strcmp(name, XATTR_SMACK_TRANSMUTE) == 0) { + if (!S_ISDIR(inode->i_mode) || size != TRANS_TRUE_SIZE || + strncmp(value, TRANS_TRUE, TRANS_TRUE_SIZE) != 0) + return -EINVAL; + + nsp->smk_flags |= SMK_INODE_TRANSMUTE; + return 0; + } + skp = smk_import_entry(value, size); if (IS_ERR(skp)) return PTR_ERR(skp); @@ -4022,12 +4032,12 @@ * returns zero on success, an error code otherwise */ static int smack_socket_getpeersec_stream(struct socket *sock, - char __user *optval, - int __user *optlen, unsigned len) + sockptr_t optval, sockptr_t optlen, + unsigned int len) { struct socket_smack *ssp; char *rcp = ""; - int slen = 1; + u32 slen = 1; int rc = 0; ssp = sock->sk->sk_security; @@ -4035,15 +4045,16 @@ rcp = ssp->smk_packet->smk_known; slen = strlen(rcp) + 1; } - - if (slen > len) + if (slen > len) { rc = -ERANGE; - else if (copy_to_user(optval, rcp, slen) != 0) - rc = -EFAULT; + goto out_len; + } - if (put_user(slen, optlen) != 0) + if (copy_to_sockptr(optval, rcp, slen)) + rc = -EFAULT; +out_len: + if (copy_to_sockptr(optlen, &slen, sizeof(slen))) rc = -EFAULT; - return rc; } @@ -4767,6 +4778,7 @@ LSM_HOOK_INIT(file_alloc_security, smack_file_alloc_security), LSM_HOOK_INIT(file_ioctl, smack_file_ioctl), + LSM_HOOK_INIT(file_ioctl_compat, smack_file_ioctl), LSM_HOOK_INIT(file_lock, smack_file_lock), LSM_HOOK_INIT(file_fcntl, smack_file_fcntl), LSM_HOOK_INIT(mmap_file, smack_mmap_file), diff -Nru linux-5.10.209/security/tomoyo/common.c linux-5.10.216/security/tomoyo/common.c --- linux-5.10.209/security/tomoyo/common.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/tomoyo/common.c 2024-05-02 14:23:46.000000000 +0000 @@ -2657,13 +2657,14 @@ { int error = buffer_len; size_t avail_len = buffer_len; - char *cp0 = head->write_buf; + char *cp0; int idx; if (!head->write) return -EINVAL; if (mutex_lock_interruptible(&head->io_sem)) return -EINTR; + cp0 = head->write_buf; head->read_user_buf_avail = 0; idx = tomoyo_read_lock(); /* Read a line and dispatch it to the policy handler. */ diff -Nru linux-5.10.209/security/tomoyo/tomoyo.c linux-5.10.216/security/tomoyo/tomoyo.c --- linux-5.10.209/security/tomoyo/tomoyo.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/security/tomoyo/tomoyo.c 2024-05-02 14:23:46.000000000 +0000 @@ -548,6 +548,7 @@ LSM_HOOK_INIT(path_rename, tomoyo_path_rename), LSM_HOOK_INIT(inode_getattr, tomoyo_inode_getattr), LSM_HOOK_INIT(file_ioctl, tomoyo_file_ioctl), + LSM_HOOK_INIT(file_ioctl_compat, tomoyo_file_ioctl), LSM_HOOK_INIT(path_chmod, tomoyo_path_chmod), LSM_HOOK_INIT(path_chown, tomoyo_path_chown), LSM_HOOK_INIT(path_chroot, tomoyo_path_chroot), diff -Nru linux-5.10.209/sound/core/Makefile linux-5.10.216/sound/core/Makefile --- linux-5.10.209/sound/core/Makefile 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/core/Makefile 2024-05-02 14:23:46.000000000 +0000 @@ -32,7 +32,6 @@ snd-rawmidi-objs := rawmidi.o snd-timer-objs := timer.o snd-hrtimer-objs := hrtimer.o -snd-rtctimer-objs := rtctimer.o snd-hwdep-objs := hwdep.o snd-seq-device-objs := seq_device.o diff -Nru linux-5.10.209/sound/core/seq/seq_midi.c linux-5.10.216/sound/core/seq/seq_midi.c --- linux-5.10.209/sound/core/seq/seq_midi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/core/seq/seq_midi.c 2024-05-02 14:23:46.000000000 +0000 @@ -111,6 +111,12 @@ return 0; } +/* callback for snd_seq_dump_var_event(), bridging to dump_midi() */ +static int __dump_midi(void *ptr, void *buf, int count) +{ + return dump_midi(ptr, buf, count); +} + static int event_process_midi(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop) { @@ -130,7 +136,7 @@ pr_debug("ALSA: seq_midi: invalid sysex event flags = 0x%x\n", ev->flags); return 0; } - snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)dump_midi, substream); + snd_seq_dump_var_event(ev, __dump_midi, substream); snd_midi_event_reset_decode(msynth->parser); } else { if (msynth->parser == NULL) diff -Nru linux-5.10.209/sound/core/seq/seq_virmidi.c linux-5.10.216/sound/core/seq/seq_virmidi.c --- linux-5.10.209/sound/core/seq/seq_virmidi.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/core/seq/seq_virmidi.c 2024-05-02 14:23:46.000000000 +0000 @@ -62,6 +62,13 @@ /* * decode input event and put to read buffer of each opened file */ + +/* callback for snd_seq_dump_var_event(), bridging to snd_rawmidi_receive() */ +static int dump_to_rawmidi(void *ptr, void *buf, int count) +{ + return snd_rawmidi_receive(ptr, buf, count); +} + static int snd_virmidi_dev_receive_event(struct snd_virmidi_dev *rdev, struct snd_seq_event *ev, bool atomic) @@ -80,7 +87,7 @@ if (ev->type == SNDRV_SEQ_EVENT_SYSEX) { if ((ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) != SNDRV_SEQ_EVENT_LENGTH_VARIABLE) continue; - snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)snd_rawmidi_receive, vmidi->substream); + snd_seq_dump_var_event(ev, dump_to_rawmidi, vmidi->substream); snd_midi_event_reset_decode(vmidi->parser); } else { len = snd_midi_event_decode(vmidi->parser, msg, sizeof(msg), ev); diff -Nru linux-5.10.209/sound/hda/hdac_stream.c linux-5.10.216/sound/hda/hdac_stream.c --- linux-5.10.209/sound/hda/hdac_stream.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/hda/hdac_stream.c 2024-05-02 14:23:46.000000000 +0000 @@ -605,17 +605,15 @@ struct hdac_stream *s; bool inited = false; u64 cycle_last = 0; - int i = 0; list_for_each_entry(s, &bus->stream_list, list) { - if (streams & (1 << i)) { + if ((streams & (1 << s->index))) { azx_timecounter_init(s, inited, cycle_last); if (!inited) { inited = true; cycle_last = s->tc.cycle_last; } } - i++; } snd_pcm_gettime(runtime, &runtime->trigger_tstamp); @@ -660,14 +658,13 @@ unsigned int streams) { struct hdac_bus *bus = azx_dev->bus; - int i, nwait, timeout; + int nwait, timeout; struct hdac_stream *s; for (timeout = 5000; timeout; timeout--) { nwait = 0; - i = 0; list_for_each_entry(s, &bus->stream_list, list) { - if (!(streams & (1 << i++))) + if (!(streams & (1 << s->index))) continue; if (start) { diff -Nru linux-5.10.209/sound/hda/intel-dsp-config.c linux-5.10.216/sound/hda/intel-dsp-config.c --- linux-5.10.209/sound/hda/intel-dsp-config.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/hda/intel-dsp-config.c 2024-05-02 14:23:46.000000000 +0000 @@ -372,6 +372,16 @@ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, .device = 0x7e28, }, + /* ArrowLake-S */ + { + .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, + .device = PCI_DEVICE_ID_INTEL_HDA_ARL_S, + }, + /* ArrowLake */ + { + .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, + .device = PCI_DEVICE_ID_INTEL_HDA_ARL, + }, #endif /* Lunar Lake */ diff -Nru linux-5.10.209/sound/pci/hda/hda_intel.c linux-5.10.216/sound/pci/hda/hda_intel.c --- linux-5.10.209/sound/pci/hda/hda_intel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/pci/hda/hda_intel.c 2024-05-02 14:23:46.000000000 +0000 @@ -2581,6 +2581,8 @@ .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, { PCI_DEVICE(0x8086, 0x4b58), .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE}, + /* Arrow Lake */ + { PCI_DEVICE_DATA(INTEL, HDA_ARL, AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE) }, /* Broxton-P(Apollolake) */ { PCI_DEVICE(0x8086, 0x5a98), .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_BROXTON }, diff -Nru linux-5.10.209/sound/pci/hda/patch_conexant.c linux-5.10.216/sound/pci/hda/patch_conexant.c --- linux-5.10.209/sound/pci/hda/patch_conexant.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/pci/hda/patch_conexant.c 2024-05-02 14:23:46.000000000 +0000 @@ -235,6 +235,7 @@ CXT_FIXUP_HP_ZBOOK_MUTE_LED, CXT_FIXUP_HEADSET_MIC, CXT_FIXUP_HP_MIC_NO_PRESENCE, + CXT_PINCFG_SWS_JS201D, }; /* for hda_fixup_thinkpad_acpi() */ @@ -732,6 +733,17 @@ {} }; +/* SuoWoSi/South-holding JS201D with sn6140 */ +static const struct hda_pintbl cxt_pincfg_sws_js201d[] = { + { 0x16, 0x03211040 }, /* hp out */ + { 0x17, 0x91170110 }, /* SPK/Class_D */ + { 0x18, 0x95a70130 }, /* Internal mic */ + { 0x19, 0x03a11020 }, /* Headset Mic */ + { 0x1a, 0x40f001f0 }, /* Not used */ + { 0x21, 0x40f001f0 }, /* Not used */ + {} +}; + static const struct hda_fixup cxt_fixups[] = { [CXT_PINCFG_LENOVO_X200] = { .type = HDA_FIXUP_PINS, @@ -887,6 +899,10 @@ .chained = true, .chain_id = CXT_FIXUP_HEADSET_MIC, }, + [CXT_PINCFG_SWS_JS201D] = { + .type = HDA_FIXUP_PINS, + .v.pins = cxt_pincfg_sws_js201d, + }, }; static const struct snd_pci_quirk cxt5045_fixups[] = { @@ -960,6 +976,7 @@ SND_PCI_QUIRK(0x103c, 0x8457, "HP Z2 G4 mini", CXT_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x8458, "HP Z2 G4 mini premium", CXT_FIXUP_HP_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN), + SND_PCI_QUIRK(0x14f1, 0x0265, "SWS JS201D", CXT_PINCFG_SWS_JS201D), SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO), SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410), @@ -1000,6 +1017,7 @@ { .id = CXT_FIXUP_HP_ZBOOK_MUTE_LED, .name = "hp-zbook-mute-led" }, { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" }, { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" }, + { .id = CXT_PINCFG_SWS_JS201D, .name = "sws-js201d" }, {} }; diff -Nru linux-5.10.209/sound/pci/hda/patch_realtek.c linux-5.10.216/sound/pci/hda/patch_realtek.c --- linux-5.10.209/sound/pci/hda/patch_realtek.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/pci/hda/patch_realtek.c 2024-05-02 14:23:46.000000000 +0000 @@ -6612,6 +6612,60 @@ } } +static void alc285_fixup_hp_envy_x360(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + static const struct coef_fw coefs[] = { + WRITE_COEF(0x08, 0x6a0c), WRITE_COEF(0x0d, 0xa023), + WRITE_COEF(0x10, 0x0320), WRITE_COEF(0x1a, 0x8c03), + WRITE_COEF(0x25, 0x1800), WRITE_COEF(0x26, 0x003a), + WRITE_COEF(0x28, 0x1dfe), WRITE_COEF(0x29, 0xb014), + WRITE_COEF(0x2b, 0x1dfe), WRITE_COEF(0x37, 0xfe15), + WRITE_COEF(0x38, 0x7909), WRITE_COEF(0x45, 0xd489), + WRITE_COEF(0x46, 0x00f4), WRITE_COEF(0x4a, 0x21e0), + WRITE_COEF(0x66, 0x03f0), WRITE_COEF(0x67, 0x1000), + WRITE_COEF(0x6e, 0x1005), { } + }; + + static const struct hda_pintbl pincfgs[] = { + { 0x12, 0xb7a60130 }, /* Internal microphone*/ + { 0x14, 0x90170150 }, /* B&O soundbar speakers */ + { 0x17, 0x90170153 }, /* Side speakers */ + { 0x19, 0x03a11040 }, /* Headset microphone */ + { } + }; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + snd_hda_apply_pincfgs(codec, pincfgs); + + /* Fixes volume control problem for side speakers */ + alc295_fixup_disable_dac3(codec, fix, action); + + /* Fixes no sound from headset speaker */ + snd_hda_codec_amp_stereo(codec, 0x21, HDA_OUTPUT, 0, -1, 0); + + /* Auto-enable headset mic when plugged */ + snd_hda_jack_set_gating_jack(codec, 0x19, 0x21); + + /* Headset mic volume enhancement */ + snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREF50); + break; + case HDA_FIXUP_ACT_INIT: + alc_process_coef_fw(codec, coefs); + break; + case HDA_FIXUP_ACT_BUILD: + rename_ctl(codec, "Bass Speaker Playback Volume", + "B&O-Tuned Playback Volume"); + rename_ctl(codec, "Front Playback Switch", + "B&O Soundbar Playback Switch"); + rename_ctl(codec, "Bass Speaker Playback Switch", + "Side Speaker Playback Switch"); + break; + } +} + /* for hda_fixup_thinkpad_acpi() */ #include "thinkpad_helper.c" @@ -6819,6 +6873,7 @@ ALC280_FIXUP_HP_9480M, ALC245_FIXUP_HP_X360_AMP, ALC285_FIXUP_HP_SPECTRE_X360_EB1, + ALC285_FIXUP_HP_ENVY_X360, ALC288_FIXUP_DELL_HEADSET_MODE, ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, ALC288_FIXUP_DELL_XPS_13, @@ -8614,6 +8669,12 @@ .type = HDA_FIXUP_FUNC, .v.func = alc285_fixup_hp_spectre_x360_eb1 }, + [ALC285_FIXUP_HP_ENVY_X360] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc285_fixup_hp_envy_x360, + .chained = true, + .chain_id = ALC285_FIXUP_HP_GPIO_AMP_INIT, + }, [ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP] = { .type = HDA_FIXUP_FUNC, .v.func = alc285_fixup_ideapad_s740_coef, @@ -8841,6 +8902,7 @@ SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox", ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS), SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G", ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54", ALC256_FIXUP_ACER_HEADSET_MIC), + SND_PCI_QUIRK(0x1025, 0x126a, "Acer Swift SF114-32", ALC256_FIXUP_ACER_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC), SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC), SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G", ALC286_FIXUP_ACER_AIO_HEADSET_MIC), @@ -9000,6 +9062,7 @@ SND_PCI_QUIRK(0x103c, 0x84e7, "HP Pavilion 15", ALC269_FIXUP_HP_MUTE_LED_MIC3), SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360), SND_PCI_QUIRK(0x103c, 0x8537, "HP ProBook 440 G6", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_ENVY_X360), SND_PCI_QUIRK(0x103c, 0x860f, "HP ZBook 15 G6", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), @@ -9025,6 +9088,7 @@ SND_PCI_QUIRK(0x103c, 0x8786, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8787, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8788, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x87b7, "HP Laptop 14-fq0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x87e7, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED), @@ -9128,7 +9192,7 @@ SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), - SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE), + SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_ASPIRE_HEADSET_MIC), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP), SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP), @@ -9331,6 +9395,7 @@ SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC), SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO), + SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME), SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), @@ -9514,6 +9579,7 @@ {.id = ALC295_FIXUP_HP_OMEN, .name = "alc295-hp-omen"}, {.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"}, {.id = ALC285_FIXUP_HP_SPECTRE_X360_EB1, .name = "alc285-hp-spectre-x360-eb1"}, + {.id = ALC285_FIXUP_HP_ENVY_X360, .name = "alc285-hp-envy-x360"}, {.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"}, {.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"}, {.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"}, @@ -10626,8 +10692,7 @@ snd_hda_gen_hp_automute(codec, jack); vref = spec->gen.hp_jack_present ? (PIN_HP | AC_PINCTL_VREF_100) : PIN_HP; - snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - vref); + snd_hda_set_pin_ctl(codec, 0x1b, vref); } static void alc897_fixup_lenovo_headset_mic(struct hda_codec *codec, @@ -10636,6 +10701,10 @@ struct alc_spec *spec = codec->spec; if (action == HDA_FIXUP_ACT_PRE_PROBE) { spec->gen.hp_automute_hook = alc897_hp_automute_hook; + spec->no_shutup_pins = 1; + } + if (action == HDA_FIXUP_ACT_PROBE) { + snd_hda_set_pin_ctl_cache(codec, 0x1a, PIN_IN | AC_PINCTL_VREF_100); } } diff -Nru linux-5.10.209/sound/sh/aica.c linux-5.10.216/sound/sh/aica.c --- linux-5.10.209/sound/sh/aica.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/sh/aica.c 2024-05-02 14:23:46.000000000 +0000 @@ -279,7 +279,8 @@ dreamcastcard->clicks++; if (unlikely(dreamcastcard->clicks >= AICA_PERIOD_NUMBER)) dreamcastcard->clicks %= AICA_PERIOD_NUMBER; - mod_timer(&dreamcastcard->timer, jiffies + 1); + if (snd_pcm_running(dreamcastcard->substream)) + mod_timer(&dreamcastcard->timer, jiffies + 1); } } @@ -291,6 +292,8 @@ /*timer function - so cannot sleep */ int play_period; struct snd_pcm_runtime *runtime; + if (!snd_pcm_running(substream)) + return; runtime = substream->runtime; dreamcastcard = substream->pcm->private_data; /* Have we played out an additional period? */ @@ -351,12 +354,19 @@ return 0; } +static int snd_aicapcm_pcm_sync_stop(struct snd_pcm_substream *substream) +{ + struct snd_card_aica *dreamcastcard = substream->pcm->private_data; + + del_timer_sync(&dreamcastcard->timer); + cancel_work_sync(&dreamcastcard->spu_dma_work); + return 0; +} + static int snd_aicapcm_pcm_close(struct snd_pcm_substream *substream) { struct snd_card_aica *dreamcastcard = substream->pcm->private_data; - flush_work(&(dreamcastcard->spu_dma_work)); - del_timer(&dreamcastcard->timer); dreamcastcard->substream = NULL; kfree(dreamcastcard->channel); spu_disable(); @@ -402,6 +412,7 @@ .prepare = snd_aicapcm_pcm_prepare, .trigger = snd_aicapcm_pcm_trigger, .pointer = snd_aicapcm_pcm_pointer, + .sync_stop = snd_aicapcm_pcm_sync_stop, }; /* TO DO: set up to handle more than one pcm instance */ diff -Nru linux-5.10.209/sound/soc/codecs/rt5645.c linux-5.10.216/sound/soc/codecs/rt5645.c --- linux-5.10.209/sound/soc/codecs/rt5645.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/codecs/rt5645.c 2024-05-02 14:23:46.000000000 +0000 @@ -3276,6 +3276,7 @@ report, SND_JACK_HEADPHONE); snd_soc_jack_report(rt5645->mic_jack, report, SND_JACK_MICROPHONE); + mutex_unlock(&rt5645->jd_mutex); return; case 4: val = snd_soc_component_read(rt5645->component, RT5645_A_JD_CTRL1) & 0x0020; @@ -3771,6 +3772,16 @@ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), DMI_EXACT_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"), DMI_EXACT_MATCH(DMI_BOARD_VERSION, "Default string"), + /* + * Above strings are too generic, LattePanda BIOS versions for + * all 4 hw revisions are: + * DF-BI-7-S70CR100-* + * DF-BI-7-S70CR110-* + * DF-BI-7-S70CR200-* + * LP-BS-7-S70CR700-* + * Do a partial match for S70CR to avoid false positive matches. + */ + DMI_MATCH(DMI_BIOS_VERSION, "S70CR"), }, .driver_data = (void *)&lattepanda_board_platform_data, }, diff -Nru linux-5.10.209/sound/soc/codecs/wm8962.c linux-5.10.216/sound/soc/codecs/wm8962.c --- linux-5.10.209/sound/soc/codecs/wm8962.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/codecs/wm8962.c 2024-05-02 14:23:46.000000000 +0000 @@ -2219,6 +2219,9 @@ SND_SOC_DAPM_OUTPUT("HPOUTL"), SND_SOC_DAPM_OUTPUT("HPOUTR"), + +SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0), +SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0), }; static const struct snd_soc_dapm_widget wm8962_dapm_spk_mono_widgets[] = { @@ -2226,7 +2229,6 @@ spkmixl, ARRAY_SIZE(spkmixl)), SND_SOC_DAPM_MUX_E("Speaker PGA", WM8962_PWR_MGMT_2, 4, 0, &spkoutl_mux, out_pga_event, SND_SOC_DAPM_POST_PMU), -SND_SOC_DAPM_PGA("Speaker Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0), SND_SOC_DAPM_OUTPUT("SPKOUT"), }; @@ -2241,9 +2243,6 @@ SND_SOC_DAPM_MUX_E("SPKOUTR PGA", WM8962_PWR_MGMT_2, 3, 0, &spkoutr_mux, out_pga_event, SND_SOC_DAPM_POST_PMU), -SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0), -SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0), - SND_SOC_DAPM_OUTPUT("SPKOUTL"), SND_SOC_DAPM_OUTPUT("SPKOUTR"), }; @@ -2353,12 +2352,18 @@ { "Speaker PGA", "Mixer", "Speaker Mixer" }, { "Speaker PGA", "DAC", "DACL" }, - { "Speaker Output", NULL, "Speaker PGA" }, - { "Speaker Output", NULL, "SYSCLK" }, - { "Speaker Output", NULL, "TOCLK" }, - { "Speaker Output", NULL, "TEMP_SPK" }, + { "SPKOUTL Output", NULL, "Speaker PGA" }, + { "SPKOUTL Output", NULL, "SYSCLK" }, + { "SPKOUTL Output", NULL, "TOCLK" }, + { "SPKOUTL Output", NULL, "TEMP_SPK" }, - { "SPKOUT", NULL, "Speaker Output" }, + { "SPKOUTR Output", NULL, "Speaker PGA" }, + { "SPKOUTR Output", NULL, "SYSCLK" }, + { "SPKOUTR Output", NULL, "TOCLK" }, + { "SPKOUTR Output", NULL, "TEMP_SPK" }, + + { "SPKOUT", NULL, "SPKOUTL Output" }, + { "SPKOUT", NULL, "SPKOUTR Output" }, }; static const struct snd_soc_dapm_route wm8962_spk_stereo_intercon[] = { @@ -2898,8 +2903,12 @@ switch (fll_id) { case WM8962_FLL_MCLK: case WM8962_FLL_BCLK: + fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; + break; case WM8962_FLL_OSC: fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; + snd_soc_component_update_bits(component, WM8962_PLL2, + WM8962_OSC_ENA, WM8962_OSC_ENA); break; case WM8962_FLL_INT: snd_soc_component_update_bits(component, WM8962_FLL_CONTROL_1, @@ -2908,7 +2917,7 @@ WM8962_FLL_FRC_NCO, WM8962_FLL_FRC_NCO); break; default: - dev_err(component->dev, "Unknown FLL source %d\n", ret); + dev_err(component->dev, "Unknown FLL source %d\n", source); return -EINVAL; } diff -Nru linux-5.10.209/sound/soc/fsl/fsl_micfil.c linux-5.10.216/sound/soc/fsl/fsl_micfil.c --- linux-5.10.209/sound/soc/fsl/fsl_micfil.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/fsl/fsl_micfil.c 2024-05-02 14:23:46.000000000 +0000 @@ -756,18 +756,23 @@ pm_runtime_enable(&pdev->dev); + /* + * Register platform component before registering cpu dai for there + * is not defer probe for platform component in snd_soc_add_pcm_runtime(). + */ + ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); + if (ret) { + dev_err(&pdev->dev, "failed to pcm register\n"); + return ret; + } + ret = devm_snd_soc_register_component(&pdev->dev, &fsl_micfil_component, &fsl_micfil_dai, 1); if (ret) { dev_err(&pdev->dev, "failed to register component %s\n", fsl_micfil_component.name); - return ret; } - ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); - if (ret) - dev_err(&pdev->dev, "failed to pcm register\n"); - return ret; } diff -Nru linux-5.10.209/sound/soc/intel/boards/bytcht_es8316.c linux-5.10.216/sound/soc/intel/boards/bytcht_es8316.c --- linux-5.10.209/sound/soc/intel/boards/bytcht_es8316.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/intel/boards/bytcht_es8316.c 2024-05-02 14:23:46.000000000 +0000 @@ -37,6 +37,7 @@ struct clk *mclk; struct snd_soc_jack jack; struct gpio_desc *speaker_en_gpio; + struct device *codec_dev; bool speaker_en; }; @@ -549,9 +550,10 @@ } /* get speaker enable GPIO */ - codec_dev = bus_find_device_by_name(&i2c_bus_type, NULL, codec_name); + codec_dev = acpi_get_first_physical_node(adev); if (!codec_dev) return -EPROBE_DEFER; + priv->codec_dev = get_device(codec_dev); if (quirk & BYT_CHT_ES8316_JD_INVERTED) props[cnt++] = PROPERTY_ENTRY_BOOL("everest,jack-detect-inverted"); @@ -569,7 +571,6 @@ gpiod_get_index(codec_dev, "speaker-enable", 0, /* see comment in byt_cht_es8316_resume */ GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE); - put_device(codec_dev); if (IS_ERR(priv->speaker_en_gpio)) { ret = PTR_ERR(priv->speaker_en_gpio); @@ -581,7 +582,7 @@ dev_err(dev, "get speaker GPIO failed: %d\n", ret); fallthrough; case -EPROBE_DEFER: - return ret; + goto err_put_codec; } } @@ -604,10 +605,14 @@ if (ret) { gpiod_put(priv->speaker_en_gpio); dev_err(dev, "snd_soc_register_card failed: %d\n", ret); - return ret; + goto err_put_codec; } platform_set_drvdata(pdev, &byt_cht_es8316_card); return 0; + +err_put_codec: + put_device(priv->codec_dev); + return ret; } static int snd_byt_cht_es8316_mc_remove(struct platform_device *pdev) @@ -616,6 +621,7 @@ struct byt_cht_es8316_private *priv = snd_soc_card_get_drvdata(card); gpiod_put(priv->speaker_en_gpio); + put_device(priv->codec_dev); return 0; } diff -Nru linux-5.10.209/sound/soc/intel/boards/bytcr_rt5640.c linux-5.10.216/sound/soc/intel/boards/bytcr_rt5640.c --- linux-5.10.209/sound/soc/intel/boards/bytcr_rt5640.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/intel/boards/bytcr_rt5640.c 2024-05-02 14:23:46.000000000 +0000 @@ -86,6 +86,7 @@ struct byt_rt5640_private { struct snd_soc_jack jack; struct clk *mclk; + struct device *codec_dev; }; static bool is_bytcr; @@ -528,6 +529,18 @@ BYT_RT5640_SSP0_AIF1 | BYT_RT5640_MCLK_EN), }, + { /* Chuwi Vi8 dual-boot (CWI506) */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Insyde"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "i86"), + /* The above are too generic, also match BIOS info */ + DMI_MATCH(DMI_BIOS_VERSION, "CHUWI2.D86JHBNR02"), + }, + .driver_data = (void *)(BYTCR_INPUT_DEFAULTS | + BYT_RT5640_MONO_SPEAKER | + BYT_RT5640_SSP0_AIF1 | + BYT_RT5640_MCLK_EN), + }, { /* Chuwi Vi10 (CWI505) */ .matches = { @@ -941,15 +954,11 @@ * Note this MUST be called before snd_soc_register_card(), so that the props * are in place before the codec component driver's probe function parses them. */ -static int byt_rt5640_add_codec_device_props(const char *i2c_dev_name) +static int byt_rt5640_add_codec_device_props(struct device *i2c_dev, + struct byt_rt5640_private *priv) { struct property_entry props[MAX_NO_PROPS] = {}; - struct device *i2c_dev; - int ret, cnt = 0; - - i2c_dev = bus_find_device_by_name(&i2c_bus_type, NULL, i2c_dev_name); - if (!i2c_dev) - return -EPROBE_DEFER; + int cnt = 0; switch (BYT_RT5640_MAP(byt_rt5640_quirk)) { case BYT_RT5640_DMIC1_MAP: @@ -989,10 +998,7 @@ if (byt_rt5640_quirk & BYT_RT5640_JD_NOT_INV) props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,jack-detect-not-inverted"); - ret = device_add_properties(i2c_dev, props); - put_device(i2c_dev); - - return ret; + return device_add_properties(i2c_dev, props); } static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime) @@ -1324,6 +1330,7 @@ struct snd_soc_acpi_mach *mach; const char *platform_name; struct acpi_device *adev; + struct device *codec_dev; int ret_val = 0; int dai_index = 0; int i, cfg_spk; @@ -1430,10 +1437,15 @@ byt_rt5640_quirk = quirk_override; } + codec_dev = acpi_get_first_physical_node(adev); + if (!codec_dev) + return -EPROBE_DEFER; + priv->codec_dev = get_device(codec_dev); + /* Must be called before register_card, also see declaration comment. */ - ret_val = byt_rt5640_add_codec_device_props(byt_rt5640_codec_name); + ret_val = byt_rt5640_add_codec_device_props(codec_dev, priv); if (ret_val) - return ret_val; + goto err; log_quirks(&pdev->dev); @@ -1460,7 +1472,7 @@ * for all other errors, including -EPROBE_DEFER */ if (ret_val != -ENOENT) - return ret_val; + goto err; byt_rt5640_quirk &= ~BYT_RT5640_MCLK_EN; } } @@ -1493,17 +1505,30 @@ ret_val = snd_soc_fixup_dai_links_platform_name(&byt_rt5640_card, platform_name); if (ret_val) - return ret_val; + goto err; ret_val = devm_snd_soc_register_card(&pdev->dev, &byt_rt5640_card); if (ret_val) { dev_err(&pdev->dev, "devm_snd_soc_register_card failed %d\n", ret_val); - return ret_val; + goto err; } platform_set_drvdata(pdev, &byt_rt5640_card); return ret_val; + +err: + put_device(priv->codec_dev); + return ret_val; +} + +static int snd_byt_rt5640_mc_remove(struct platform_device *pdev) +{ + struct snd_soc_card *card = platform_get_drvdata(pdev); + struct byt_rt5640_private *priv = snd_soc_card_get_drvdata(card); + + put_device(priv->codec_dev); + return 0; } static struct platform_driver snd_byt_rt5640_mc_driver = { @@ -1514,6 +1539,7 @@ #endif }, .probe = snd_byt_rt5640_mc_probe, + .remove = snd_byt_rt5640_mc_remove, }; module_platform_driver(snd_byt_rt5640_mc_driver); diff -Nru linux-5.10.209/sound/soc/intel/boards/bytcr_rt5651.c linux-5.10.216/sound/soc/intel/boards/bytcr_rt5651.c --- linux-5.10.209/sound/soc/intel/boards/bytcr_rt5651.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/intel/boards/bytcr_rt5651.c 2024-05-02 14:23:46.000000000 +0000 @@ -85,6 +85,7 @@ struct gpio_desc *ext_amp_gpio; struct gpio_desc *hp_detect; struct snd_soc_jack jack; + struct device *codec_dev; }; static const struct acpi_gpio_mapping *byt_rt5651_gpios; @@ -918,17 +919,17 @@ if (adev) { snprintf(byt_rt5651_codec_name, sizeof(byt_rt5651_codec_name), "i2c-%s", acpi_dev_name(adev)); - put_device(&adev->dev); byt_rt5651_dais[dai_index].codecs->name = byt_rt5651_codec_name; } else { dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id); return -ENODEV; } - codec_dev = bus_find_device_by_name(&i2c_bus_type, NULL, - byt_rt5651_codec_name); + codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); if (!codec_dev) return -EPROBE_DEFER; + priv->codec_dev = get_device(codec_dev); /* * swap SSP0 if bytcr is detected @@ -997,10 +998,8 @@ /* Must be called before register_card, also see declaration comment. */ ret_val = byt_rt5651_add_codec_device_props(codec_dev); - if (ret_val) { - put_device(codec_dev); - return ret_val; - } + if (ret_val) + goto err; /* Cherry Trail devices use an external amplifier enable gpio */ if (soc_intel_is_cht() && !byt_rt5651_gpios) @@ -1024,8 +1023,7 @@ ret_val); fallthrough; case -EPROBE_DEFER: - put_device(codec_dev); - return ret_val; + goto err; } } priv->hp_detect = devm_fwnode_gpiod_get(&pdev->dev, @@ -1044,14 +1042,11 @@ ret_val); fallthrough; case -EPROBE_DEFER: - put_device(codec_dev); - return ret_val; + goto err; } } } - put_device(codec_dev); - log_quirks(&pdev->dev); if ((byt_rt5651_quirk & BYT_RT5651_SSP2_AIF2) || @@ -1075,7 +1070,7 @@ * for all other errors, including -EPROBE_DEFER */ if (ret_val != -ENOENT) - return ret_val; + goto err; byt_rt5651_quirk &= ~BYT_RT5651_MCLK_EN; } } @@ -1104,17 +1099,30 @@ ret_val = snd_soc_fixup_dai_links_platform_name(&byt_rt5651_card, platform_name); if (ret_val) - return ret_val; + goto err; ret_val = devm_snd_soc_register_card(&pdev->dev, &byt_rt5651_card); if (ret_val) { dev_err(&pdev->dev, "devm_snd_soc_register_card failed %d\n", ret_val); - return ret_val; + goto err; } platform_set_drvdata(pdev, &byt_rt5651_card); return ret_val; + +err: + put_device(priv->codec_dev); + return ret_val; +} + +static int snd_byt_rt5651_mc_remove(struct platform_device *pdev) +{ + struct snd_soc_card *card = platform_get_drvdata(pdev); + struct byt_rt5651_private *priv = snd_soc_card_get_drvdata(card); + + put_device(priv->codec_dev); + return 0; } static struct platform_driver snd_byt_rt5651_mc_driver = { @@ -1125,6 +1133,7 @@ #endif }, .probe = snd_byt_rt5651_mc_probe, + .remove = snd_byt_rt5651_mc_remove, }; module_platform_driver(snd_byt_rt5651_mc_driver); diff -Nru linux-5.10.209/sound/soc/meson/aiu.c linux-5.10.216/sound/soc/meson/aiu.c --- linux-5.10.209/sound/soc/meson/aiu.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/aiu.c 2024-05-02 14:23:46.000000000 +0000 @@ -215,49 +215,27 @@ static int aiu_clk_get(struct device *dev) { struct aiu *aiu = dev_get_drvdata(dev); + struct clk *pclk; int ret; - aiu->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(aiu->pclk)) { - if (PTR_ERR(aiu->pclk) != -EPROBE_DEFER) - dev_err(dev, "Can't get the aiu pclk\n"); - return PTR_ERR(aiu->pclk); - } + pclk = devm_clk_get_enabled(dev, "pclk"); + if (IS_ERR(pclk)) + return dev_err_probe(dev, PTR_ERR(pclk), "Can't get the aiu pclk\n"); aiu->spdif_mclk = devm_clk_get(dev, "spdif_mclk"); - if (IS_ERR(aiu->spdif_mclk)) { - if (PTR_ERR(aiu->spdif_mclk) != -EPROBE_DEFER) - dev_err(dev, "Can't get the aiu spdif master clock\n"); - return PTR_ERR(aiu->spdif_mclk); - } + if (IS_ERR(aiu->spdif_mclk)) + return dev_err_probe(dev, PTR_ERR(aiu->spdif_mclk), + "Can't get the aiu spdif master clock\n"); ret = aiu_clk_bulk_get(dev, aiu_i2s_ids, ARRAY_SIZE(aiu_i2s_ids), &aiu->i2s); - if (ret) { - if (ret != -EPROBE_DEFER) - dev_err(dev, "Can't get the i2s clocks\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Can't get the i2s clocks\n"); ret = aiu_clk_bulk_get(dev, aiu_spdif_ids, ARRAY_SIZE(aiu_spdif_ids), &aiu->spdif); - if (ret) { - if (ret != -EPROBE_DEFER) - dev_err(dev, "Can't get the spdif clocks\n"); - return ret; - } - - ret = clk_prepare_enable(aiu->pclk); - if (ret) { - dev_err(dev, "peripheral clock enable failed\n"); - return ret; - } - - ret = devm_add_action_or_reset(dev, - (void(*)(void *))clk_disable_unprepare, - aiu->pclk); if (ret) - dev_err(dev, "failed to add reset action on pclk"); + return dev_err_probe(dev, ret, "Can't get the spdif clocks\n"); return ret; } @@ -281,11 +259,8 @@ platform_set_drvdata(pdev, aiu); ret = device_reset(dev); - if (ret) { - if (ret != -EPROBE_DEFER) - dev_err(dev, "Failed to reset device\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Failed to reset device\n"); regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(regs)) diff -Nru linux-5.10.209/sound/soc/meson/aiu.h linux-5.10.216/sound/soc/meson/aiu.h --- linux-5.10.209/sound/soc/meson/aiu.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/aiu.h 2024-05-02 14:23:46.000000000 +0000 @@ -33,7 +33,6 @@ }; struct aiu { - struct clk *pclk; struct clk *spdif_mclk; struct aiu_interface i2s; struct aiu_interface spdif; diff -Nru linux-5.10.209/sound/soc/meson/axg-fifo.c linux-5.10.216/sound/soc/meson/axg-fifo.c --- linux-5.10.209/sound/soc/meson/axg-fifo.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-fifo.c 2024-05-02 14:23:46.000000000 +0000 @@ -350,20 +350,12 @@ } fifo->pclk = devm_clk_get(dev, NULL); - if (IS_ERR(fifo->pclk)) { - if (PTR_ERR(fifo->pclk) != -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %ld\n", - PTR_ERR(fifo->pclk)); - return PTR_ERR(fifo->pclk); - } + if (IS_ERR(fifo->pclk)) + return dev_err_probe(dev, PTR_ERR(fifo->pclk), "failed to get pclk\n"); fifo->arb = devm_reset_control_get_exclusive(dev, NULL); - if (IS_ERR(fifo->arb)) { - if (PTR_ERR(fifo->arb) != -EPROBE_DEFER) - dev_err(dev, "failed to get arb reset: %ld\n", - PTR_ERR(fifo->arb)); - return PTR_ERR(fifo->arb); - } + if (IS_ERR(fifo->arb)) + return dev_err_probe(dev, PTR_ERR(fifo->arb), "failed to get arb reset\n"); fifo->irq = of_irq_get(dev->of_node, 0); if (fifo->irq <= 0) { diff -Nru linux-5.10.209/sound/soc/meson/axg-pdm.c linux-5.10.216/sound/soc/meson/axg-pdm.c --- linux-5.10.209/sound/soc/meson/axg-pdm.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-pdm.c 2024-05-02 14:23:46.000000000 +0000 @@ -586,7 +586,6 @@ struct device *dev = &pdev->dev; struct axg_pdm *priv; void __iomem *regs; - int ret; priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -611,28 +610,16 @@ } priv->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret = PTR_ERR(priv->pclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); priv->dclk = devm_clk_get(dev, "dclk"); - if (IS_ERR(priv->dclk)) { - ret = PTR_ERR(priv->dclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get dclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->dclk)) + return dev_err_probe(dev, PTR_ERR(priv->dclk), "failed to get dclk\n"); priv->sysclk = devm_clk_get(dev, "sysclk"); - if (IS_ERR(priv->sysclk)) { - ret = PTR_ERR(priv->sysclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get dclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->sysclk)) + return dev_err_probe(dev, PTR_ERR(priv->sysclk), "failed to get dclk\n"); return devm_snd_soc_register_component(dev, &axg_pdm_component_drv, &axg_pdm_dai_drv, 1); diff -Nru linux-5.10.209/sound/soc/meson/axg-spdifin.c linux-5.10.216/sound/soc/meson/axg-spdifin.c --- linux-5.10.209/sound/soc/meson/axg-spdifin.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-spdifin.c 2024-05-02 14:23:46.000000000 +0000 @@ -439,7 +439,6 @@ struct axg_spdifin *priv; struct snd_soc_dai_driver *dai_drv; void __iomem *regs; - int ret; priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -464,20 +463,12 @@ } priv->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret = PTR_ERR(priv->pclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); priv->refclk = devm_clk_get(dev, "refclk"); - if (IS_ERR(priv->refclk)) { - ret = PTR_ERR(priv->refclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->refclk)) + return dev_err_probe(dev, PTR_ERR(priv->refclk), "failed to get mclk\n"); dai_drv = axg_spdifin_get_dai_drv(dev, priv); if (IS_ERR(dai_drv)) { diff -Nru linux-5.10.209/sound/soc/meson/axg-spdifout.c linux-5.10.216/sound/soc/meson/axg-spdifout.c --- linux-5.10.209/sound/soc/meson/axg-spdifout.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-spdifout.c 2024-05-02 14:23:46.000000000 +0000 @@ -403,7 +403,6 @@ struct device *dev = &pdev->dev; struct axg_spdifout *priv; void __iomem *regs; - int ret; priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -422,20 +421,12 @@ } priv->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - ret = PTR_ERR(priv->pclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->pclk)) + return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); priv->mclk = devm_clk_get(dev, "mclk"); - if (IS_ERR(priv->mclk)) { - ret = PTR_ERR(priv->mclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + if (IS_ERR(priv->mclk)) + return dev_err_probe(dev, PTR_ERR(priv->mclk), "failed to get mclk\n"); return devm_snd_soc_register_component(dev, &axg_spdifout_component_drv, axg_spdifout_dai_drv, ARRAY_SIZE(axg_spdifout_dai_drv)); diff -Nru linux-5.10.209/sound/soc/meson/axg-tdm-formatter.c linux-5.10.216/sound/soc/meson/axg-tdm-formatter.c --- linux-5.10.209/sound/soc/meson/axg-tdm-formatter.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-tdm-formatter.c 2024-05-02 14:23:46.000000000 +0000 @@ -265,7 +265,6 @@ const struct axg_tdm_formatter_driver *drv; struct axg_tdm_formatter *formatter; void __iomem *regs; - int ret; drv = of_device_get_match_data(dev); if (!drv) { @@ -292,57 +291,34 @@ /* Peripharal clock */ formatter->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(formatter->pclk)) { - ret = PTR_ERR(formatter->pclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get pclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->pclk)) + return dev_err_probe(dev, PTR_ERR(formatter->pclk), "failed to get pclk\n"); /* Formatter bit clock */ formatter->sclk = devm_clk_get(dev, "sclk"); - if (IS_ERR(formatter->sclk)) { - ret = PTR_ERR(formatter->sclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get sclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->sclk)) + return dev_err_probe(dev, PTR_ERR(formatter->sclk), "failed to get sclk\n"); /* Formatter sample clock */ formatter->lrclk = devm_clk_get(dev, "lrclk"); - if (IS_ERR(formatter->lrclk)) { - ret = PTR_ERR(formatter->lrclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->lrclk)) + return dev_err_probe(dev, PTR_ERR(formatter->lrclk), "failed to get lrclk\n"); /* Formatter bit clock input multiplexer */ formatter->sclk_sel = devm_clk_get(dev, "sclk_sel"); - if (IS_ERR(formatter->sclk_sel)) { - ret = PTR_ERR(formatter->sclk_sel); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get sclk_sel: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->sclk_sel)) + return dev_err_probe(dev, PTR_ERR(formatter->sclk_sel), "failed to get sclk_sel\n"); /* Formatter sample clock input multiplexer */ formatter->lrclk_sel = devm_clk_get(dev, "lrclk_sel"); - if (IS_ERR(formatter->lrclk_sel)) { - ret = PTR_ERR(formatter->lrclk_sel); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk_sel: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->lrclk_sel)) + return dev_err_probe(dev, PTR_ERR(formatter->lrclk_sel), + "failed to get lrclk_sel\n"); /* Formatter dedicated reset line */ formatter->reset = devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(formatter->reset)) { - ret = PTR_ERR(formatter->reset); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get reset: %d\n", ret); - return ret; - } + if (IS_ERR(formatter->reset)) + return dev_err_probe(dev, PTR_ERR(formatter->reset), "failed to get reset\n"); return devm_snd_soc_register_component(dev, drv->component_drv, NULL, 0); diff -Nru linux-5.10.209/sound/soc/meson/axg-tdm-interface.c linux-5.10.216/sound/soc/meson/axg-tdm-interface.c --- linux-5.10.209/sound/soc/meson/axg-tdm-interface.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/axg-tdm-interface.c 2024-05-02 14:23:46.000000000 +0000 @@ -12,6 +12,9 @@ #include "axg-tdm.h" +/* Maximum bit clock frequency according the datasheets */ +#define MAX_SCLK 100000000 /* Hz */ + enum { TDM_IFACE_PAD, TDM_IFACE_LOOPBACK, @@ -155,19 +158,27 @@ return -EINVAL; } - /* Apply component wide rate symmetry */ if (snd_soc_component_active(dai->component)) { + /* Apply component wide rate symmetry */ ret = snd_pcm_hw_constraint_single(substream->runtime, SNDRV_PCM_HW_PARAM_RATE, iface->rate); - if (ret < 0) { - dev_err(dai->dev, - "can't set iface rate constraint\n"); - return ret; - } + + } else { + /* Limit rate according to the slot number and width */ + unsigned int max_rate = + MAX_SCLK / (iface->slots * iface->slot_width); + ret = snd_pcm_hw_constraint_minmax(substream->runtime, + SNDRV_PCM_HW_PARAM_RATE, + 0, max_rate); } - return 0; + if (ret < 0) + dev_err(dai->dev, "can't set iface rate constraint\n"); + else + ret = 0; + + return ret; } static int axg_tdm_iface_set_stream(struct snd_pcm_substream *substream, @@ -266,8 +277,8 @@ srate = iface->slots * iface->slot_width * params_rate(params); if (!iface->mclk_rate) { - /* If no specific mclk is requested, default to bit clock * 4 */ - clk_set_rate(iface->mclk, 4 * srate); + /* If no specific mclk is requested, default to bit clock * 2 */ + clk_set_rate(iface->mclk, 2 * srate); } else { /* Check if we can actually get the bit clock from mclk */ if (iface->mclk_rate % srate) { @@ -517,21 +528,13 @@ /* Bit clock provided on the pad */ iface->sclk = devm_clk_get(dev, "sclk"); - if (IS_ERR(iface->sclk)) { - ret = PTR_ERR(iface->sclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get sclk: %d\n", ret); - return ret; - } + if (IS_ERR(iface->sclk)) + return dev_err_probe(dev, PTR_ERR(iface->sclk), "failed to get sclk\n"); /* Sample clock provided on the pad */ iface->lrclk = devm_clk_get(dev, "lrclk"); - if (IS_ERR(iface->lrclk)) { - ret = PTR_ERR(iface->lrclk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get lrclk: %d\n", ret); - return ret; - } + if (IS_ERR(iface->lrclk)) + return dev_err_probe(dev, PTR_ERR(iface->lrclk), "failed to get lrclk\n"); /* * mclk maybe be missing when the cpu dai is in slave mode and @@ -542,13 +545,10 @@ iface->mclk = devm_clk_get(dev, "mclk"); if (IS_ERR(iface->mclk)) { ret = PTR_ERR(iface->mclk); - if (ret == -ENOENT) { + if (ret == -ENOENT) iface->mclk = NULL; - } else { - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get mclk: %d\n", ret); - return ret; - } + else + return dev_err_probe(dev, ret, "failed to get mclk\n"); } return devm_snd_soc_register_component(dev, diff -Nru linux-5.10.209/sound/soc/meson/meson-card-utils.c linux-5.10.216/sound/soc/meson/meson-card-utils.c --- linux-5.10.209/sound/soc/meson/meson-card-utils.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/meson-card-utils.c 2024-05-02 14:23:46.000000000 +0000 @@ -85,11 +85,9 @@ ret = of_parse_phandle_with_args(node, "sound-dai", "#sound-dai-cells", 0, &args); - if (ret) { - if (ret != -EPROBE_DEFER) - dev_err(card->dev, "can't parse dai %d\n", ret); - return ret; - } + if (ret) + return dev_err_probe(card->dev, ret, "can't parse dai\n"); + *dai_of_node = args.np; return snd_soc_get_dai_name(&args, dai_name); diff -Nru linux-5.10.209/sound/soc/meson/t9015.c linux-5.10.216/sound/soc/meson/t9015.c --- linux-5.10.209/sound/soc/meson/t9015.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/meson/t9015.c 2024-05-02 14:23:46.000000000 +0000 @@ -48,7 +48,6 @@ #define POWER_CFG 0x10 struct t9015 { - struct clk *pclk; struct regulator *avdd; }; @@ -250,6 +249,7 @@ struct t9015 *priv; void __iomem *regs; struct regmap *regmap; + struct clk *pclk; int ret; priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); @@ -257,31 +257,13 @@ return -ENOMEM; platform_set_drvdata(pdev, priv); - priv->pclk = devm_clk_get(dev, "pclk"); - if (IS_ERR(priv->pclk)) { - if (PTR_ERR(priv->pclk) != -EPROBE_DEFER) - dev_err(dev, "failed to get core clock\n"); - return PTR_ERR(priv->pclk); - } + pclk = devm_clk_get_enabled(dev, "pclk"); + if (IS_ERR(pclk)) + return dev_err_probe(dev, PTR_ERR(pclk), "failed to get core clock\n"); priv->avdd = devm_regulator_get(dev, "AVDD"); - if (IS_ERR(priv->avdd)) { - if (PTR_ERR(priv->avdd) != -EPROBE_DEFER) - dev_err(dev, "failed to AVDD\n"); - return PTR_ERR(priv->avdd); - } - - ret = clk_prepare_enable(priv->pclk); - if (ret) { - dev_err(dev, "core clock enable failed\n"); - return ret; - } - - ret = devm_add_action_or_reset(dev, - (void(*)(void *))clk_disable_unprepare, - priv->pclk); - if (ret) - return ret; + if (IS_ERR(priv->avdd)) + return dev_err_probe(dev, PTR_ERR(priv->avdd), "failed to AVDD\n"); ret = device_reset(dev); if (ret) { diff -Nru linux-5.10.209/sound/soc/soc-ops.c linux-5.10.216/sound/soc/soc-ops.c --- linux-5.10.209/sound/soc/soc-ops.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/soc-ops.c 2024-05-02 14:23:46.000000000 +0000 @@ -246,7 +246,7 @@ int max = mc->max; int min = mc->min; int sign_bit = mc->sign_bit; - unsigned int mask = (1 << fls(max)) - 1; + unsigned int mask = (1ULL << fls(max)) - 1; unsigned int invert = mc->invert; int val; int ret; diff -Nru linux-5.10.209/sound/soc/sunxi/sun4i-spdif.c linux-5.10.216/sound/soc/sunxi/sun4i-spdif.c --- linux-5.10.209/sound/soc/sunxi/sun4i-spdif.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/soc/sunxi/sun4i-spdif.c 2024-05-02 14:23:46.000000000 +0000 @@ -464,6 +464,11 @@ .compatible = "allwinner,sun50i-h6-spdif", .data = &sun50i_h6_spdif_quirks, }, + { + .compatible = "allwinner,sun50i-h616-spdif", + /* Essentially the same as the H6, but without RX */ + .data = &sun50i_h6_spdif_quirks, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sun4i_spdif_of_match); diff -Nru linux-5.10.209/sound/usb/stream.c linux-5.10.216/sound/usb/stream.c --- linux-5.10.209/sound/usb/stream.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/sound/usb/stream.c 2024-05-02 14:23:46.000000000 +0000 @@ -301,9 +301,12 @@ c = 0; if (bits) { - for (; bits && *maps; maps++, bits >>= 1) + for (; bits && *maps; maps++, bits >>= 1) { if (bits & 1) chmap->map[c++] = *maps; + if (c == chmap->channels) + break; + } } else { /* If we're missing wChannelConfig, then guess something to make sure the channel map is not skipped entirely */ diff -Nru linux-5.10.209/tools/bpf/bpftool/prog.c linux-5.10.216/tools/bpf/bpftool/prog.c --- linux-5.10.209/tools/bpf/bpftool/prog.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/bpf/bpftool/prog.c 2024-05-02 14:23:46.000000000 +0000 @@ -1946,7 +1946,7 @@ int map_fd; profile_perf_events = calloc( - sizeof(int), obj->rodata->num_cpu * obj->rodata->num_metric); + obj->rodata->num_cpu * obj->rodata->num_metric, sizeof(int)); if (!profile_perf_events) { p_err("failed to allocate memory for perf_event array: %s", strerror(errno)); diff -Nru linux-5.10.209/tools/iio/iio_utils.c linux-5.10.216/tools/iio/iio_utils.c --- linux-5.10.209/tools/iio/iio_utils.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/iio/iio_utils.c 2024-05-02 14:23:46.000000000 +0000 @@ -373,7 +373,7 @@ goto error_close_dir; } - seekdir(dp, 0); + rewinddir(dp); while (ent = readdir(dp), ent) { if (strcmp(ent->d_name + strlen(ent->d_name) - strlen("_en"), "_en") == 0) { diff -Nru linux-5.10.209/tools/include/linux/objtool.h linux-5.10.216/tools/include/linux/objtool.h --- linux-5.10.209/tools/include/linux/objtool.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/include/linux/objtool.h 2024-05-02 14:23:46.000000000 +0000 @@ -141,6 +141,12 @@ .popsection .endm +.macro STACK_FRAME_NON_STANDARD func:req + .pushsection .discard.func_stack_frame_non_standard, "aw" + .long \func - . + .popsection +.endm + #endif /* __ASSEMBLY__ */ #else /* !CONFIG_STACK_VALIDATION */ @@ -158,6 +164,8 @@ .endm .macro ANNOTATE_NOENDBR .endm +.macro STACK_FRAME_NON_STANDARD func:req +.endm #endif #endif /* CONFIG_STACK_VALIDATION */ diff -Nru linux-5.10.209/tools/lib/perf/evlist.c linux-5.10.216/tools/lib/perf/evlist.c --- linux-5.10.209/tools/lib/perf/evlist.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/lib/perf/evlist.c 2024-05-02 14:23:46.000000000 +0000 @@ -226,10 +226,10 @@ static void perf_evlist__id_hash(struct perf_evlist *evlist, struct perf_evsel *evsel, - int cpu, int thread, u64 id) + int cpu_map_idx, int thread, u64 id) { int hash; - struct perf_sample_id *sid = SID(evsel, cpu, thread); + struct perf_sample_id *sid = SID(evsel, cpu_map_idx, thread); sid->id = id; sid->evsel = evsel; @@ -239,21 +239,27 @@ void perf_evlist__id_add(struct perf_evlist *evlist, struct perf_evsel *evsel, - int cpu, int thread, u64 id) + int cpu_map_idx, int thread, u64 id) { - perf_evlist__id_hash(evlist, evsel, cpu, thread, id); + if (!SID(evsel, cpu_map_idx, thread)) + return; + + perf_evlist__id_hash(evlist, evsel, cpu_map_idx, thread, id); evsel->id[evsel->ids++] = id; } int perf_evlist__id_add_fd(struct perf_evlist *evlist, struct perf_evsel *evsel, - int cpu, int thread, int fd) + int cpu_map_idx, int thread, int fd) { u64 read_data[4] = { 0, }; int id_idx = 1; /* The first entry is the counter value */ u64 id; int ret; + if (!SID(evsel, cpu_map_idx, thread)) + return -1; + ret = ioctl(fd, PERF_EVENT_IOC_ID, &id); if (!ret) goto add; @@ -282,7 +288,7 @@ id = read_data[id_idx]; add: - perf_evlist__id_add(evlist, evsel, cpu, thread, id); + perf_evlist__id_add(evlist, evsel, cpu_map_idx, thread, id); return 0; } diff -Nru linux-5.10.209/tools/lib/perf/include/internal/evlist.h linux-5.10.216/tools/lib/perf/include/internal/evlist.h --- linux-5.10.209/tools/lib/perf/include/internal/evlist.h 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/lib/perf/include/internal/evlist.h 2024-05-02 14:23:46.000000000 +0000 @@ -118,10 +118,10 @@ void perf_evlist__id_add(struct perf_evlist *evlist, struct perf_evsel *evsel, - int cpu, int thread, u64 id); + int cpu_map_idx, int thread, u64 id); int perf_evlist__id_add_fd(struct perf_evlist *evlist, struct perf_evsel *evsel, - int cpu, int thread, int fd); + int cpu_map_idx, int thread, int fd); #endif /* __LIBPERF_INTERNAL_EVLIST_H */ diff -Nru linux-5.10.209/tools/lib/subcmd/help.c linux-5.10.216/tools/lib/subcmd/help.c --- linux-5.10.209/tools/lib/subcmd/help.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/lib/subcmd/help.c 2024-05-02 14:23:46.000000000 +0000 @@ -50,11 +50,21 @@ if (!cmds->cnt) return; - for (i = j = 1; i < cmds->cnt; i++) - if (strcmp(cmds->names[i]->name, cmds->names[i-1]->name)) - cmds->names[j++] = cmds->names[i]; - + for (i = 1; i < cmds->cnt; i++) { + if (!strcmp(cmds->names[i]->name, cmds->names[i-1]->name)) + zfree(&cmds->names[i - 1]); + } + for (i = 0, j = 0; i < cmds->cnt; i++) { + if (cmds->names[i]) { + if (i == j) + j++; + else + cmds->names[j++] = cmds->names[i]; + } + } cmds->cnt = j; + while (j < i) + cmds->names[j++] = NULL; } void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes) diff -Nru linux-5.10.209/tools/perf/builtin-record.c linux-5.10.216/tools/perf/builtin-record.c --- linux-5.10.209/tools/perf/builtin-record.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/perf/builtin-record.c 2024-05-02 14:23:46.000000000 +0000 @@ -1264,8 +1264,8 @@ record__switch_output(struct record *rec, bool at_exit) { struct perf_data *data = &rec->data; + char *new_filename = NULL; int fd, err; - char *new_filename; /* Same Size: "2015122520103046"*/ char timestamp[] = "InvalidTimestamp"; diff -Nru linux-5.10.209/tools/perf/util/evsel.c linux-5.10.216/tools/perf/util/evsel.c --- linux-5.10.209/tools/perf/util/evsel.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/perf/util/evsel.c 2024-05-02 14:23:46.000000000 +0000 @@ -2109,7 +2109,6 @@ data->period = evsel->core.attr.sample_period; data->cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; data->misc = event->header.misc; - data->id = -1ULL; data->data_src = PERF_MEM_DATA_SRC_NONE; if (event->header.type != PERF_RECORD_SAMPLE) { diff -Nru linux-5.10.209/tools/perf/util/stat-display.c linux-5.10.216/tools/perf/util/stat-display.c --- linux-5.10.209/tools/perf/util/stat-display.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/perf/util/stat-display.c 2024-05-02 14:23:46.000000000 +0000 @@ -271,7 +271,7 @@ if (color) mlen += strlen(color) + sizeof(PERF_COLOR_RESET) - 1; - color_snprintf(str, sizeof(str), color ?: "", fmt, val); + color_snprintf(str, sizeof(str), color ?: "", fmt ?: "", val); fprintf(out, "%*s ", mlen, str); } diff -Nru linux-5.10.209/tools/perf/util/thread_map.c linux-5.10.216/tools/perf/util/thread_map.c --- linux-5.10.209/tools/perf/util/thread_map.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/perf/util/thread_map.c 2024-05-02 14:23:46.000000000 +0000 @@ -279,13 +279,13 @@ threads->nr = ntasks; } out: + strlist__delete(slist); if (threads) refcount_set(&threads->refcnt, 1); return threads; out_free_threads: zfree(&threads); - strlist__delete(slist); goto out; } diff -Nru linux-5.10.209/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c linux-5.10.216/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c --- linux-5.10.209/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c 2024-05-02 14:23:46.000000000 +0000 @@ -1152,6 +1152,7 @@ retval = fscanf(fp, "%d\n", &pkg); if (retval != 1) errx(1, "%s: failed to parse", pathname); + fclose(fp); return pkg; } diff -Nru linux-5.10.209/tools/testing/ktest/ktest.pl linux-5.10.216/tools/testing/ktest/ktest.pl --- linux-5.10.209/tools/testing/ktest/ktest.pl 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/ktest/ktest.pl 2024-05-02 14:23:46.000000000 +0000 @@ -773,6 +773,7 @@ if ($lvalue =~ /^(TEST|BISECT|CONFIG_BISECT)_TYPE(\[.*\])?$/ && $prvalue !~ /^(config_|)bisect$/ && $prvalue !~ /^build$/ && + $prvalue !~ /^make_warnings_file$/ && $buildonly) { # Note if a test is something other than build, then we diff -Nru linux-5.10.209/tools/testing/selftests/bpf/prog_tests/btf.c linux-5.10.216/tools/testing/selftests/bpf/prog_tests/btf.c --- linux-5.10.209/tools/testing/selftests/bpf/prog_tests/btf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/bpf/prog_tests/btf.c 2024-05-02 14:23:46.000000000 +0000 @@ -4611,6 +4611,7 @@ #endif assert(0); + return 0; } static void set_pprint_mapv(enum pprint_mapv_kind_t mapv_kind, diff -Nru linux-5.10.209/tools/testing/selftests/bpf/progs/pyperf180.c linux-5.10.216/tools/testing/selftests/bpf/progs/pyperf180.c --- linux-5.10.209/tools/testing/selftests/bpf/progs/pyperf180.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/bpf/progs/pyperf180.c 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,26 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2019 Facebook #define STACK_MAX_LEN 180 + +/* llvm upstream commit at clang18 + * https://github.com/llvm/llvm-project/commit/1a2e77cf9e11dbf56b5720c607313a566eebb16e + * changed inlining behavior and caused compilation failure as some branch + * target distance exceeded 16bit representation which is the maximum for + * cpu v1/v2/v3. Macro __BPF_CPU_VERSION__ is later implemented in clang18 + * to specify which cpu version is used for compilation. So a smaller + * unroll_count can be set if __BPF_CPU_VERSION__ is less than 4, which + * reduced some branch target distances and resolved the compilation failure. + * + * To capture the case where a developer/ci uses clang18 but the corresponding + * repo checkpoint does not have __BPF_CPU_VERSION__, a smaller unroll_count + * will be set as well to prevent potential compilation failures. + */ +#ifdef __BPF_CPU_VERSION__ +#if __BPF_CPU_VERSION__ < 4 +#define UNROLL_COUNT 90 +#endif +#elif __clang_major__ == 18 +#define UNROLL_COUNT 90 +#endif + #include "pyperf.h" diff -Nru linux-5.10.209/tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh linux-5.10.216/tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh --- linux-5.10.209/tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh 2024-05-02 14:23:46.000000000 +0000 @@ -269,6 +269,7 @@ echo 1 > $NSIM_DEV_SYS/new_port fi NSIM_NETDEV=`get_netdev_name old_netdevs` + ifconfig $NSIM_NETDEV up msg="new NIC device created" exp0=( 0 0 0 0 ) @@ -430,6 +431,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up overflow_table0 "overflow NIC table" @@ -487,6 +489,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up overflow_table0 "overflow NIC table" @@ -543,6 +546,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up overflow_table0 "destroy NIC" @@ -572,6 +576,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up msg="create VxLANs v6" @@ -632,6 +637,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up echo 110 > $NSIM_DEV_DFS/ports/$port/udp_ports_inject_error @@ -687,6 +693,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up msg="create VxLANs v6" @@ -746,6 +753,7 @@ fi echo $port > $NSIM_DEV_SYS/new_port + NSIM_NETDEV=`get_netdev_name old_netdevs` ifconfig $NSIM_NETDEV up msg="create VxLANs v6" @@ -876,6 +884,7 @@ echo 2 > $NSIM_DEV_SYS/del_port echo 2 > $NSIM_DEV_SYS/new_port +NSIM_NETDEV=`get_netdev_name old_netdevs` check_tables msg="replace VxLAN in overflow table" diff -Nru linux-5.10.209/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc linux-5.10.216/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc --- linux-5.10.209/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc 2024-05-02 14:23:46.000000000 +0000 @@ -18,7 +18,7 @@ yield -count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` +count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` if [ $count -lt 3 ]; then fail "at least fork, exec and exit events should be recorded" fi @@ -29,7 +29,7 @@ yield -count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` +count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` if [ $count -lt 3 ]; then fail "at least fork, exec and exit events should be recorded" fi @@ -40,7 +40,7 @@ yield -count=`cat trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` +count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` if [ $count -ne 0 ]; then fail "any of scheduler events should not be recorded" fi diff -Nru linux-5.10.209/tools/testing/selftests/mqueue/setting linux-5.10.216/tools/testing/selftests/mqueue/setting --- linux-5.10.209/tools/testing/selftests/mqueue/setting 1970-01-01 00:00:00.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/mqueue/setting 2024-05-02 14:23:46.000000000 +0000 @@ -0,0 +1 @@ +timeout=180 diff -Nru linux-5.10.209/tools/testing/selftests/net/pmtu.sh linux-5.10.216/tools/testing/selftests/net/pmtu.sh --- linux-5.10.209/tools/testing/selftests/net/pmtu.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/net/pmtu.sh 2024-05-02 14:23:46.000000000 +0000 @@ -1583,6 +1583,13 @@ return 0 } +check_running() { + pid=${1} + cmd=${2} + + [ "$(cat /proc/${pid}/cmdline 2>/dev/null | tr -d '\0')" = "{cmd}" ] +} + test_cleanup_vxlanX_exception() { outer="${1}" encap="vxlan" @@ -1613,11 +1620,12 @@ ${ns_a} ip link del dev veth_A-R1 & iplink_pid=$! - sleep 1 - if [ "$(cat /proc/${iplink_pid}/cmdline 2>/dev/null | tr -d '\0')" = "iplinkdeldevveth_A-R1" ]; then - err " can't delete veth device in a timely manner, PMTU dst likely leaked" - return 1 - fi + for i in $(seq 1 20); do + check_running ${iplink_pid} "iplinkdeldevveth_A-R1" || return 0 + sleep 0.1 + done + err " can't delete veth device in a timely manner, PMTU dst likely leaked" + return 1 } test_cleanup_ipv6_exception() { diff -Nru linux-5.10.209/tools/testing/selftests/net/reuseaddr_conflict.c linux-5.10.216/tools/testing/selftests/net/reuseaddr_conflict.c --- linux-5.10.209/tools/testing/selftests/net/reuseaddr_conflict.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/net/reuseaddr_conflict.c 2024-05-02 14:23:46.000000000 +0000 @@ -109,6 +109,6 @@ fd1 = open_port(0, 1); if (fd1 >= 0) error(1, 0, "Was allowed to create an ipv4 reuseport on an already bound non-reuseport socket with no ipv6"); - fprintf(stderr, "Success"); + fprintf(stderr, "Success\n"); return 0; } diff -Nru linux-5.10.209/tools/testing/selftests/net/tls.c linux-5.10.216/tools/testing/selftests/net/tls.c --- linux-5.10.209/tools/testing/selftests/net/tls.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/net/tls.c 2024-05-02 14:23:46.000000000 +0000 @@ -653,12 +653,12 @@ memset(recv_mem, 0, sizeof(recv_mem)); EXPECT_EQ(send(self->fd, test_str, send_len, 0), send_len); - EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_first), - MSG_WAITALL), -1); + EXPECT_EQ(recv(self->cfd, recv_mem, strlen(test_str_first), + MSG_WAITALL), strlen(test_str_first)); EXPECT_EQ(memcmp(test_str_first, recv_mem, strlen(test_str_first)), 0); memset(recv_mem, 0, sizeof(recv_mem)); - EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_second), - MSG_WAITALL), -1); + EXPECT_EQ(recv(self->cfd, recv_mem, strlen(test_str_second), + MSG_WAITALL), strlen(test_str_second)); EXPECT_EQ(memcmp(test_str_second, recv_mem, strlen(test_str_second)), 0); } diff -Nru linux-5.10.209/tools/testing/selftests/timers/posix_timers.c linux-5.10.216/tools/testing/selftests/timers/posix_timers.c --- linux-5.10.209/tools/testing/selftests/timers/posix_timers.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/timers/posix_timers.c 2024-05-02 14:23:46.000000000 +0000 @@ -66,7 +66,7 @@ diff = end.tv_usec - start.tv_usec; diff += (end.tv_sec - start.tv_sec) * USECS_PER_SEC; - if (abs(diff - DELAY * USECS_PER_SEC) > USECS_PER_SEC / 2) { + if (llabs(diff - DELAY * USECS_PER_SEC) > USECS_PER_SEC / 2) { printf("Diff too high: %lld..", diff); return -1; } diff -Nru linux-5.10.209/tools/testing/selftests/vm/charge_reserved_hugetlb.sh linux-5.10.216/tools/testing/selftests/vm/charge_reserved_hugetlb.sh --- linux-5.10.209/tools/testing/selftests/vm/charge_reserved_hugetlb.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/vm/charge_reserved_hugetlb.sh 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # SPDX-License-Identifier: GPL-2.0 set -e diff -Nru linux-5.10.209/tools/testing/selftests/vm/map_hugetlb.c linux-5.10.216/tools/testing/selftests/vm/map_hugetlb.c --- linux-5.10.209/tools/testing/selftests/vm/map_hugetlb.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/vm/map_hugetlb.c 2024-05-02 14:23:46.000000000 +0000 @@ -15,6 +15,7 @@ #include #include #include +#include "vm_util.h" #define LENGTH (256UL*1024*1024) #define PROTECTION (PROT_READ | PROT_WRITE) @@ -70,10 +71,16 @@ { void *addr; int ret; + size_t hugepage_size; size_t length = LENGTH; int flags = FLAGS; int shift = 0; + hugepage_size = default_huge_page_size(); + /* munmap with fail if the length is not page aligned */ + if (hugepage_size > length) + length = hugepage_size; + if (argc > 1) length = atol(argv[1]) << 20; if (argc > 2) { diff -Nru linux-5.10.209/tools/testing/selftests/vm/write_hugetlb_memory.sh linux-5.10.216/tools/testing/selftests/vm/write_hugetlb_memory.sh --- linux-5.10.209/tools/testing/selftests/vm/write_hugetlb_memory.sh 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/tools/testing/selftests/vm/write_hugetlb_memory.sh 2024-05-02 14:23:46.000000000 +0000 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # SPDX-License-Identifier: GPL-2.0 set -e diff -Nru linux-5.10.209/virt/kvm/async_pf.c linux-5.10.216/virt/kvm/async_pf.c --- linux-5.10.209/virt/kvm/async_pf.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/virt/kvm/async_pf.c 2024-05-02 14:23:46.000000000 +0000 @@ -88,7 +88,27 @@ rcuwait_wake_up(&vcpu->wait); mmput(mm); - kvm_put_kvm(vcpu->kvm); +} + +static void kvm_flush_and_free_async_pf_work(struct kvm_async_pf *work) +{ + /* + * The async #PF is "done", but KVM must wait for the work item itself, + * i.e. async_pf_execute(), to run to completion. If KVM is a module, + * KVM must ensure *no* code owned by the KVM (the module) can be run + * after the last call to module_put(). Note, flushing the work item + * is always required when the item is taken off the completion queue. + * E.g. even if the vCPU handles the item in the "normal" path, the VM + * could be terminated before async_pf_execute() completes. + * + * Wake all events skip the queue and go straight done, i.e. don't + * need to be flushed (but sanity check that the work wasn't queued). + */ + if (work->wakeup_all) + WARN_ON_ONCE(work->work.func); + else + flush_work(&work->work); + kmem_cache_free(async_pf_cache, work); } void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu) @@ -115,7 +135,6 @@ #else if (cancel_work_sync(&work->work)) { mmput(work->mm); - kvm_put_kvm(vcpu->kvm); /* == work->vcpu->kvm */ kmem_cache_free(async_pf_cache, work); } #endif @@ -127,7 +146,10 @@ list_first_entry(&vcpu->async_pf.done, typeof(*work), link); list_del(&work->link); - kmem_cache_free(async_pf_cache, work); + + spin_unlock(&vcpu->async_pf.lock); + kvm_flush_and_free_async_pf_work(work); + spin_lock(&vcpu->async_pf.lock); } spin_unlock(&vcpu->async_pf.lock); @@ -152,7 +174,7 @@ list_del(&work->queue); vcpu->async_pf.queued--; - kmem_cache_free(async_pf_cache, work); + kvm_flush_and_free_async_pf_work(work); } } @@ -187,7 +209,6 @@ work->arch = *arch; work->mm = current->mm; mmget(work->mm); - kvm_get_kvm(work->vcpu->kvm); INIT_WORK(&work->work, async_pf_execute); diff -Nru linux-5.10.209/virt/kvm/kvm_main.c linux-5.10.216/virt/kvm/kvm_main.c --- linux-5.10.209/virt/kvm/kvm_main.c 2024-01-25 22:37:57.000000000 +0000 +++ linux-5.10.216/virt/kvm/kvm_main.c 2024-05-02 14:23:46.000000000 +0000 @@ -1008,9 +1008,9 @@ */ static int kvm_alloc_dirty_bitmap(struct kvm_memory_slot *memslot) { - unsigned long dirty_bytes = 2 * kvm_dirty_bitmap_bytes(memslot); + unsigned long dirty_bytes = kvm_dirty_bitmap_bytes(memslot); - memslot->dirty_bitmap = kvzalloc(dirty_bytes, GFP_KERNEL_ACCOUNT); + memslot->dirty_bitmap = __vcalloc(2, dirty_bytes, GFP_KERNEL_ACCOUNT); if (!memslot->dirty_bitmap) return -ENOMEM;